diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtGoodsCategoryController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtGoodsCategoryController.java index 305a34aeb..06d48e792 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtGoodsCategoryController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtGoodsCategoryController.java @@ -63,6 +63,16 @@ public class TtGoodsCategoryController extends BaseController { return new ResultData(); } + @TenantIgnore + @ApiOperation("分页列表接口") + @GetMapping("allTreeList") + @ApiImplicitParams({}) + @SystemControllerLog(description = "列表") + public ResultData allTreeList() { + logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::allTreeList"); + return new ResultData(ttGoodsCategoryService.findAllTreeList()); + } + @TenantIgnore @ApiOperation("设置抖音软件服务费率") @PostMapping("setServiceFee") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMallGoodsCategoryController.java b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMallGoodsCategoryController.java new file mode 100644 index 000000000..d7f33764c --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/controller/basic/TtMallGoodsCategoryController.java @@ -0,0 +1,57 @@ +package com.iformall.controller.basic; + + +import com.iformall.annotation.SystemControllerLog; +import com.iformall.annotation.TenantIgnore; +import com.iformall.common.ErrorCode; +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.TtGoodsCategory; +import com.iformall.domain.vo.TtMallGoodsCategoryVo; +import com.iformall.service.TtGoodsCategoryService; +import com.iformall.service.TtMallGoodsCategoryService; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + + +/** + * @author gongbiao + */ +@RestController +@RequestMapping("mallGoodsCategory") +public class TtMallGoodsCategoryController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private TtMallGoodsCategoryService ttMallGoodsCategoryService; + + + @ApiOperation("分页列表接口") + @GetMapping("allTreeList") + @ApiImplicitParams({}) + @SystemControllerLog(description = "列表") + public ResultData allTreeList() { + logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::allTreeList"); + return new ResultData(ttMallGoodsCategoryService.findAllTreeList(getTenantInfo())); + } + + @ApiOperation("设置软件服务费") + @PostMapping("setMallSoftwareFee") + @ApiImplicitParams({}) + @SystemControllerLog(description = "修改") + public ResultData setMallSoftwareFee(@RequestBody TtMallGoodsCategoryVo record) { + logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::setMallSoftwareFee"); + if(record.getCategoryId() == null || record.getMallSoftwareFee() == null){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + record.updateTenantInfo(getTenantInfo()); + + ttMallGoodsCategoryService.updateFee(record); + return new ResultData(); + } + +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/TtMallGoodsCategory.java b/mallinkService/src/main/java/com/iformall/domain/po/TtMallGoodsCategory.java index 9c43c9274..8aa5ca275 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/TtMallGoodsCategory.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/TtMallGoodsCategory.java @@ -29,4 +29,7 @@ public class TtMallGoodsCategory extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="",name="isDel") private Integer isDel; + @TableField(exist = false) + private List categoryIds; + } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/TtMallGoodsCategoryVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/TtMallGoodsCategoryVo.java new file mode 100644 index 000000000..ba0cffe62 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/TtMallGoodsCategoryVo.java @@ -0,0 +1,52 @@ +package com.iformall.domain.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.TtGoodsCategory; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = true) +public class TtMallGoodsCategoryVo extends TenantEntity { + + @io.swagger.annotations.ApiModelProperty(value="",name="categoryId") + private Integer categoryId; + + @io.swagger.annotations.ApiModelProperty(value="层级",name="level") + private Integer level; + + @io.swagger.annotations.ApiModelProperty(value="",name="name") + private String name; + + @io.swagger.annotations.ApiModelProperty(value="",name="parentId") + private Integer parentId; + + @io.swagger.annotations.ApiModelProperty(value="类目是否开放",name="enable") + private Integer enable; + + @io.swagger.annotations.ApiModelProperty(value="是否是叶子结点",name="isLeaf") + private Integer isLeaf; + + @io.swagger.annotations.ApiModelProperty(value="",name="serviceFee") + private Integer serviceFee; + + @io.swagger.annotations.ApiModelProperty(value="",name="softwareFee") + private Integer softwareFee; + + @io.swagger.annotations.ApiModelProperty(value="",name="mallSoftwareFee") + private Integer mallSoftwareFee; + + + @TableField(exist = false) + protected List child; + + + @io.swagger.annotations.ApiModelProperty(value="",name="isDel") + private Integer isDel; + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/TtGoodsCategoryMapper.java b/mallinkService/src/main/java/com/iformall/mapper/TtGoodsCategoryMapper.java index 131240580..7ab90384b 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/TtGoodsCategoryMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/TtGoodsCategoryMapper.java @@ -10,9 +10,12 @@ public interface TtGoodsCategoryMapper extends CommonMapper findList(TtGoodsCategory record); + List findMinList(TtGoodsCategory record); + List findIdAll(TtGoodsCategory record); int updDelByIds(TtGoodsCategory record); int updateFeeByIds(TtGoodsCategory updgc); + } diff --git a/mallinkService/src/main/java/com/iformall/mapper/TtMallGoodsCategoryMapper.java b/mallinkService/src/main/java/com/iformall/mapper/TtMallGoodsCategoryMapper.java index 124134994..7c8083271 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/TtMallGoodsCategoryMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/TtMallGoodsCategoryMapper.java @@ -3,11 +3,16 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.TtGoodsCategory; import com.iformall.domain.po.TtMallGoodsCategory; +import com.iformall.domain.vo.TtMallGoodsCategoryVo; import java.util.List; public interface TtMallGoodsCategoryMapper extends CommonMapper { + + List findAllTreeList(TtMallGoodsCategoryVo recordVo); + + List findList(TtMallGoodsCategory record); List findIdAll(TtMallGoodsCategory record); @@ -16,4 +21,5 @@ public interface TtMallGoodsCategoryMapper extends CommonMapper findTreeList(); + List findAllTreeList(); + /** * A端是否显示处理 @@ -46,4 +48,5 @@ public interface TtGoodsCategoryService { List categoryGet(Integer categoryId); void updateFee(TtGoodsCategory record); + } diff --git a/mallinkService/src/main/java/com/iformall/service/TtMallGoodsCategoryService.java b/mallinkService/src/main/java/com/iformall/service/TtMallGoodsCategoryService.java index 150b6fa69..fe3a0d712 100644 --- a/mallinkService/src/main/java/com/iformall/service/TtMallGoodsCategoryService.java +++ b/mallinkService/src/main/java/com/iformall/service/TtMallGoodsCategoryService.java @@ -1,6 +1,17 @@ package com.iformall.service; +import com.iformall.common.ErrorCode; +import com.iformall.domain.po.TtGoodsCategory; +import com.iformall.domain.po.TtMallGoodsCategory; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.TtMallGoodsCategoryVo; + +import java.util.List; + public interface TtMallGoodsCategoryService { + List findAllTreeList(TenantEntity tenantInfo); + + void updateFee(TtMallGoodsCategoryVo record); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java index b3d42858d..4f57d1fc8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtGoodsCategoryServiceImpl.java @@ -13,6 +13,7 @@ import com.iformall.douyin.web.bean.GoodsCategory; import com.iformall.douyin.web.bean.GoodsTemplateGet; import com.iformall.enums.EnumCouponValidType; import com.iformall.enums.EnumGoodsCategoryRate; +import com.iformall.enums.EnumMerchantStatus; import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.mapper.TtGoodsCategoryMapper; @@ -34,6 +35,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @Service public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { @@ -53,14 +55,37 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { public List findTreeList() { TtGoodsCategory record = new TtGoodsCategory(); record.setEnable(EnumYesOrNo.YES.getCode()); + record.setIsDel(EnumYesOrNo.NO.getCode()); + record.setSortColumns(BaseEntity.SortField.Id_ASC); + List listAll = ttGoodsCategoryMapper.findMinList(record); + if(listAll == null || listAll.isEmpty()){ + return new ArrayList<>(); + } + List topList = listAll.stream().filter(gc -> gc.getParentId().intValue() == 0).collect(Collectors.toList()); + if(topList != null && !topList.isEmpty()){ + listAll.removeAll(topList); + for (TtGoodsCategory category:topList) { + category.setChild(getChild(listAll,category.getId())); + } + } + return topList; + } + + @Override + public List findAllTreeList() { + TtGoodsCategory record = new TtGoodsCategory(); +// record.setEnable(EnumYesOrNo.YES.getCode()); record.setIsDel(EnumYesOrNo.NO.getCode()); record.setSortColumns(BaseEntity.SortField.Id_ASC); List listAll = ttGoodsCategoryMapper.findList(record); - List topList = new ArrayList(); - for (TtGoodsCategory category:listAll) { - if(category.getParentId().intValue() == 0){ + if(listAll == null || listAll.isEmpty()){ + return new ArrayList<>(); + } + List topList = listAll.stream().filter(gc -> gc.getParentId().intValue() == 0).collect(Collectors.toList()); + if(topList != null && !topList.isEmpty()){ + listAll.removeAll(topList); + for (TtGoodsCategory category:topList) { category.setChild(getChild(listAll,category.getId())); - topList.add(category); } } return topList; @@ -69,11 +94,18 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { private List getChild(List listAll,Integer parentId){ List childList = new ArrayList(); - - for(TtGoodsCategory entity : listAll){ - if(parentId.equals(entity.getParentId())){ - entity.setChild(getChild(listAll,entity.getId())); - childList.add(entity); + if(listAll == null || listAll.isEmpty()){ + return childList; + } + for(TtGoodsCategory category : listAll){ + if(parentId.equals(category.getParentId())){ + childList.add(category); + } + } + if(!childList.isEmpty()){ + listAll.removeAll(childList); + for (TtGoodsCategory category:childList) { + category.setChild(getChild(listAll,category.getId())); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtMallGoodsCategoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtMallGoodsCategoryServiceImpl.java index 0c6b57d10..c99642e4b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/TtMallGoodsCategoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtMallGoodsCategoryServiceImpl.java @@ -1,6 +1,12 @@ package com.iformall.service.impl; +import com.iformall.domain.po.TtGoodsCategory; +import com.iformall.domain.po.TtMallGoodsCategory; +import com.iformall.domain.po.base.BaseEntity; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.TtMallGoodsCategoryVo; +import com.iformall.enums.EnumYesOrNo; import com.iformall.mapper.TtGoodsCategoryMapper; import com.iformall.mapper.TtMallGoodsCategoryMapper; import com.iformall.service.TtMallGoodsCategoryService; @@ -12,6 +18,10 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + @Service public class TtMallGoodsCategoryServiceImpl implements TtMallGoodsCategoryService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @@ -19,13 +29,58 @@ public class TtMallGoodsCategoryServiceImpl implements TtMallGoodsCategoryServic @Autowired TtMallGoodsCategoryMapper ttMallGoodsCategoryMapper; - @Autowired - private TtMerchantPoiService ttMerchantPoiService; - @Autowired @Qualifier("objectCommonRedisTemplate") RedisTemplate categoryRedisTemplate; + @Override + public List findAllTreeList(TenantEntity tenantInfo) { + TtMallGoodsCategoryVo mgcVoQ = new TtMallGoodsCategoryVo(); + mgcVoQ.updateTenantInfo(tenantInfo); + mgcVoQ.setIsDel(EnumYesOrNo.NO.getCode()); + mgcVoQ.setSortColumns(BaseEntity.SortField.Id_ASC); + List listAll = ttMallGoodsCategoryMapper.findAllTreeList(mgcVoQ); + if(listAll == null || listAll.isEmpty()){ + return new ArrayList<>(); + } + List topList = listAll.stream().filter(gc -> gc.getParentId().intValue() == 0).collect(Collectors.toList()); + if(topList != null && !topList.isEmpty()){ + listAll.removeAll(topList); + for (TtMallGoodsCategoryVo categoryVo:topList) { + categoryVo.setChild(getChild(listAll,categoryVo.getCategoryId())); + } + } + return topList; + } + + private List getChild(List listAll, Integer parentId){ + List childList = new ArrayList(); + if(listAll == null || listAll.isEmpty()){ + return childList; + } + for(TtMallGoodsCategoryVo categoryVo : listAll){ + if(parentId.equals(categoryVo.getParentId())){ + childList.add(categoryVo); + } + } + if(!childList.isEmpty()){ + listAll.removeAll(childList); + for (TtMallGoodsCategoryVo categoryVo:childList) { + categoryVo.setChild(getChild(listAll,categoryVo.getCategoryId())); + } + } + + return childList; + } + + @Override + public void updateFee(TtMallGoodsCategoryVo record) { + TtMallGoodsCategory mgcUpd = new TtMallGoodsCategory(); + mgcUpd.setGoodsCategoryId(record.getCategoryId()); + mgcUpd.updateTenantInfo(record); +// ttMallGoodsCategoryMapper.selectByTenantAnd(); + + } } diff --git a/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml b/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml index c0f68b86f..952f6b2cc 100644 --- a/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml @@ -68,6 +68,12 @@ + + + select gc.`id`,gc.`level`,gc.`name`,gc.`parent_id`,gc.`enable`,gc.`is_leaf`,gc.`service_fee`,gc.`software_fee`, + mgc.`tenant_id`,mgc.`parent_tenant_id`,mgc.`software_fee` mall_software_fee + from tt_goods_category gc + left join tt_mall_goods_category mgc on mgc.goods_category_id = gc.id and mgc.tenant_id = #{tenantId} + where 1=1 + + and gc.`id` = #{categoryId} + + + + and gc.`level` = #{level} + + + + and gc.`name` like concat('%', #{name},'%') + + + + and gc.`parent_id` = #{parentId} + + + + and gc.`enable` = #{enable} + + + + and gc.`is_leaf` = #{isLeaf} + + + + and gc.`is_del` = #{isDel} + + order by ${sortColumns} + + +