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 new file mode 100644 index 000000000..8aa5ca275 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/TtMallGoodsCategory.java @@ -0,0 +1,35 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.BaseEntity; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; +import java.util.List; + +@TableName(value = "tt_mall_goods_category") +@Data +@EqualsAndHashCode(callSuper = true) +public class TtMallGoodsCategory extends TenantEntity { + + @io.swagger.annotations.ApiModelProperty(value="",name="goodsCategoryId") + private Integer goodsCategoryId; + + @io.swagger.annotations.ApiModelProperty(value="",name="softwareFee") + private Integer softwareFee; + + @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") + private Date createDate; + @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") + private Date updateDate; + + @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 7a261d916..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 updateByFreeIds(TtGoodsCategory updgc); + 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 new file mode 100644 index 000000000..7c8083271 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/TtMallGoodsCategoryMapper.java @@ -0,0 +1,25 @@ +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); + + int updDelByIds(TtMallGoodsCategory record); + + int updateFeeByIds(TtMallGoodsCategory record); + + +} diff --git a/mallinkService/src/main/java/com/iformall/service/TtGoodsCategoryService.java b/mallinkService/src/main/java/com/iformall/service/TtGoodsCategoryService.java index 5eb19f4c6..460426d44 100644 --- a/mallinkService/src/main/java/com/iformall/service/TtGoodsCategoryService.java +++ b/mallinkService/src/main/java/com/iformall/service/TtGoodsCategoryService.java @@ -19,6 +19,8 @@ public interface TtGoodsCategoryService { */ List 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 new file mode 100644 index 000000000..fe3a0d712 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/TtMallGoodsCategoryService.java @@ -0,0 +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 109eb4243..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())); } } @@ -601,7 +633,7 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { updgc.setServiceFee(serviceFee); updgc.setSoftwareFee(softwareFee); updgc.setUpdateDate(now); - int i = ttGoodsCategoryMapper.updateByFreeIds(updgc); + int i = ttGoodsCategoryMapper.updateFeeByIds(updgc); if(i > 0){ TtGoodsCategory gcq = new TtGoodsCategory(); gcq.setParentIds(ids); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/TtMallGoodsCategoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/TtMallGoodsCategoryServiceImpl.java new file mode 100644 index 000000000..c99642e4b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/TtMallGoodsCategoryServiceImpl.java @@ -0,0 +1,86 @@ +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; +import com.iformall.service.TtMerchantPoiService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +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()); + + @Autowired + TtMallGoodsCategoryMapper ttMallGoodsCategoryMapper; + + @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 f451eda1f..952f6b2cc 100644 --- a/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml @@ -68,6 +68,12 @@ + + + select from tt_mall_goods_category + + + + + + + update tt_mall_goods_category set is_del = #{isDel}, update_date = #{updateDate} + where goods_category_id in + + #{idItem} + + + + + update tt_mall_goods_category set `software_fee` = #{softwareFee}, update_date = #{updateDate} + where goods_category_id in + + #{idItem} + + + + + + + + + + + + + + + + + + + + + + +