diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyDao.java index ff2bca8..7a38ea8 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyDao.java @@ -10,6 +10,7 @@ package com.heyu.api.data.dao.vv; import com.baomidou.mybatisplus.core.metadata.IPage; import com.heyu.api.data.entity.vv.VvPropertyEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lz.mybatis.plugin.annotations.IN; import com.lz.mybatis.plugin.annotations.LIKE; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -40,4 +41,6 @@ public interface VvPropertyDao extends BaseMapper { List selectVvProperByCondition(IPage page, @LIKE String propertyName,@LIKE String categoryName, Long categoryId); + + List selectVvPropertyByIds(@IN List id); } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyValueDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyValueDao.java index 7fe820e..a0301df 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyValueDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvPropertyValueDao.java @@ -7,8 +7,10 @@ package com.heyu.api.data.dao.vv; * @author quyixiao * @since 2025-08-20 */ +import com.heyu.api.data.entity.vv.VvPropertyEntity; import com.heyu.api.data.entity.vv.VvPropertyValueEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lz.mybatis.plugin.annotations.IN; import com.lz.mybatis.plugin.annotations.OrderBy; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -39,4 +41,8 @@ public interface VvPropertyValueDao extends BaseMapper { @OrderBy(VvPropertyValueEntity.default_sort) List selectVvPropertyValueByPropertyId(Long propertyId); + + + + List selectVvPropertyValueByIds(@IN List id); } \ No newline at end of file diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyIndexSortRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyIndexSortRequest.java new file mode 100644 index 0000000..a2ba9fb --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyIndexSortRequest.java @@ -0,0 +1,16 @@ +package com.heyu.api.alibaba.request.mm; + + +import lombok.Data; + +@Data +public class VvPropertyIndexSortRequest { + + private Long propertyId; + + + + + private int defaultSort; + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyIndexValueSortRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyIndexValueSortRequest.java new file mode 100644 index 0000000..ac8c11c --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyIndexValueSortRequest.java @@ -0,0 +1,15 @@ +package com.heyu.api.alibaba.request.mm; + + +import lombok.Data; + +@Data +public class VvPropertyIndexValueSortRequest { + + private Long propertyValueId; + + + + private int defaultSort; + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyInsertOrUpdateRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyInsertOrUpdateRequest.java new file mode 100644 index 0000000..169d357 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyInsertOrUpdateRequest.java @@ -0,0 +1,22 @@ +package com.heyu.api.alibaba.request.mm; + +import com.heyu.api.data.entity.vv.VvPropertyEntity; +import com.heyu.api.data.entity.vv.VvPropertyValueEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class VvPropertyInsertOrUpdateRequest extends VvPropertyEntity { + + + /*** + * 属性值列表 + */ + private List vvPropertyValueList; + + + + + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertySortRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertySortRequest.java new file mode 100644 index 0000000..33b5d41 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertySortRequest.java @@ -0,0 +1,14 @@ +package com.heyu.api.alibaba.request.mm; + + +import lombok.Data; + +import java.util.List; + + + + +@Data +public class VvPropertySortRequest { + private List propertyIds; +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyValueSortRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyValueSortRequest.java new file mode 100644 index 0000000..c85a325 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropertyValueSortRequest.java @@ -0,0 +1,13 @@ +package com.heyu.api.alibaba.request.mm; + + +import lombok.Data; + +import java.util.List; + +@Data +public class VvPropertyValueSortRequest { + private List propertyValueIds; + + +} diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropesrtyRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropesrtyRequest.java new file mode 100644 index 0000000..8f2520f --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvPropesrtyRequest.java @@ -0,0 +1,22 @@ +package com.heyu.api.alibaba.request.mm; + + +import lombok.Data; + +@Data +public class VvPropesrtyRequest { + + private Integer pageNum; + + private Integer pageSize; + + + private String propertyName; + + private String categoryName; + + + private Long categoryId; + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/PropertyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/PropertyController.java index 3ce14d3..a0b4609 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/PropertyController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/PropertyController.java @@ -2,19 +2,17 @@ package com.heyu.api.controller.mm; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.heyu.api.alibaba.request.mm.VvCategoryIndexSortRequest; -import com.heyu.api.alibaba.request.mm.VvCategorySortRequest; -import com.heyu.api.alibaba.request.mm.VvPropertyRequest; +import com.heyu.api.alibaba.request.mm.*; import com.heyu.api.data.dao.vv.VvPropertyDao; import com.heyu.api.data.dao.vv.VvPropertyValueDao; import com.heyu.api.data.dto.vv.VvPropertyDTO; -import com.heyu.api.data.entity.vv.VvCategoryEntity; import com.heyu.api.data.entity.vv.VvPropertyEntity; import com.heyu.api.data.entity.vv.VvPropertyValueEntity; import com.heyu.api.data.utils.R; import com.heyu.api.utils.ISelect; import com.heyu.api.utils.PPageUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; @@ -40,7 +38,7 @@ public class PropertyController { * 列表 */ @RequestMapping("/list") - public R list(VvPropertyRequest vvPropertyRequest) { + public R list(VvPropesrtyRequest vvPropertyRequest) { PPageUtils pageUtils = PPageUtils.startPage(vvPropertyRequest.getPageNum(), vvPropertyRequest.getPageSize()) .doSelect(new ISelect() { @Override @@ -72,12 +70,19 @@ public class PropertyController { /*** * 插入或更新 - * @param vvCategoryEntity + * * @return */ @RequestMapping("/insertOrUpdate") - public R insert(VvCategoryEntity vvCategoryEntity) { - + public R insert(VvPropertyInsertOrUpdateRequest vvPropertyInsertOrUpdateRequest) { + VvPropertyEntity vvPropertyEntity = new VvPropertyEntity(); + BeanUtils.copyProperties(vvPropertyInsertOrUpdateRequest, vvPropertyEntity); + vvPropertyDao.insertOrUpdateVvProperty(vvPropertyEntity); + if (CollectionUtils.isNotEmpty(vvPropertyInsertOrUpdateRequest.getVvPropertyValueList())) { + for (VvPropertyValueEntity vvPropertyValueEntity : vvPropertyInsertOrUpdateRequest.getVvPropertyValueList()) { + vvPropertyValueDao.insertOrUpdateVvPropertyValue(vvPropertyValueEntity); + } + } return R.ok().setData("保存成功"); } @@ -85,7 +90,26 @@ public class PropertyController { * 排序 */ @RequestMapping("/sort") - public R sort(VvCategorySortRequest vvCategorySortRequest) { + public R sort(VvPropertySortRequest vvPropertySortRequest) { + List propertyEntities = vvPropertyDao.selectVvPropertyByIds(vvPropertySortRequest.getPropertyIds()); + for (VvPropertyEntity propertyEntity : propertyEntities) { + propertyEntity.setDefaultSort(vvPropertySortRequest.getPropertyIds().indexOf(propertyEntity.getId()) + 1); + vvPropertyDao.updateVvPropertyById(propertyEntity); + } + return R.ok().setData("保存成功"); + } + + + /*** + * 排序 + */ + @RequestMapping("/value/sort") + public R sortValue(VvPropertyValueSortRequest vvPropertyValueSortRequest) { + List propertyEntities = vvPropertyValueDao.selectVvPropertyValueByIds(vvPropertyValueSortRequest.getPropertyValueIds()); + for (VvPropertyValueEntity propertyEntity : propertyEntities) { + propertyEntity.setDefaultSort(vvPropertyValueSortRequest.getPropertyValueIds().indexOf(propertyEntity.getId()) + 1); + vvPropertyValueDao.updateVvPropertyValueById(propertyEntity); + } return R.ok().setData("保存成功"); } @@ -94,11 +118,27 @@ public class PropertyController { * 排序 */ @RequestMapping("/update/sort/index") - public R updateSortIndex(VvCategoryIndexSortRequest vvCategorySortRequest) { + public R updateSortIndex(VvPropertyIndexSortRequest vvCategorySortRequest) { + VvPropertyEntity vvPropertyEntity = vvPropertyDao.selectVvPropertyById(vvCategorySortRequest.getPropertyId()); + vvPropertyEntity.setDefaultSort(vvCategorySortRequest.getDefaultSort()); + + vvPropertyDao.updateVvPropertyById(vvPropertyEntity); return R.ok().setData("保存成功"); } + /*** + * 排序 + */ + @RequestMapping("/update/value/sort/index") + public R updateSortIndex(VvPropertyIndexValueSortRequest vvCategorySortRequest) { + VvPropertyValueEntity vvPropertyValue = vvPropertyValueDao.selectVvPropertyValueById(vvCategorySortRequest.getPropertyValueId()); + vvPropertyValue.setDefaultSort(vvCategorySortRequest.getDefaultSort()); + vvPropertyValueDao.updateVvPropertyValueById(vvPropertyValue); + return R.ok().setData("保存成功"); + } + + }