| @@ -63,6 +63,16 @@ public class TtGoodsCategoryController extends BaseController { | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @TenantIgnore | |||||
| @ApiOperation("分页列表接口") | |||||
| @GetMapping("allTreeList") | |||||
| @ApiImplicitParams({}) | |||||
| @SystemControllerLog(description = "列表") | |||||
| public ResultData allTreeList() { | |||||
| logger.debug("[" + getIpAddr() + "] TtMerchantPoiController::allTreeList"); | |||||
| return new ResultData(ttGoodsCategoryService.findAllTreeList()); | |||||
| } | |||||
| @TenantIgnore | @TenantIgnore | ||||
| @ApiOperation("设置抖音软件服务费率") | @ApiOperation("设置抖音软件服务费率") | ||||
| @PostMapping("setServiceFee") | @PostMapping("setServiceFee") | ||||
| @@ -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(); | |||||
| } | |||||
| } | |||||
| @@ -29,4 +29,7 @@ public class TtMallGoodsCategory extends TenantEntity { | |||||
| @io.swagger.annotations.ApiModelProperty(value="",name="isDel") | @io.swagger.annotations.ApiModelProperty(value="",name="isDel") | ||||
| private Integer isDel; | private Integer isDel; | ||||
| @TableField(exist = false) | |||||
| private List<Integer> categoryIds; | |||||
| } | } | ||||
| @@ -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<TtMallGoodsCategoryVo> child; | |||||
| @io.swagger.annotations.ApiModelProperty(value="",name="isDel") | |||||
| private Integer isDel; | |||||
| } | |||||
| @@ -10,9 +10,12 @@ public interface TtGoodsCategoryMapper extends CommonMapper<TtGoodsCategory, Str | |||||
| List<TtGoodsCategory> findList(TtGoodsCategory record); | List<TtGoodsCategory> findList(TtGoodsCategory record); | ||||
| List<TtGoodsCategory> findMinList(TtGoodsCategory record); | |||||
| List<Integer> findIdAll(TtGoodsCategory record); | List<Integer> findIdAll(TtGoodsCategory record); | ||||
| int updDelByIds(TtGoodsCategory record); | int updDelByIds(TtGoodsCategory record); | ||||
| int updateFeeByIds(TtGoodsCategory updgc); | int updateFeeByIds(TtGoodsCategory updgc); | ||||
| } | } | ||||
| @@ -3,11 +3,16 @@ package com.iformall.mapper; | |||||
| import com.iformall.common.CommonMapper; | import com.iformall.common.CommonMapper; | ||||
| import com.iformall.domain.po.TtGoodsCategory; | import com.iformall.domain.po.TtGoodsCategory; | ||||
| import com.iformall.domain.po.TtMallGoodsCategory; | import com.iformall.domain.po.TtMallGoodsCategory; | ||||
| import com.iformall.domain.vo.TtMallGoodsCategoryVo; | |||||
| import java.util.List; | import java.util.List; | ||||
| public interface TtMallGoodsCategoryMapper extends CommonMapper<TtMallGoodsCategory, String> { | public interface TtMallGoodsCategoryMapper extends CommonMapper<TtMallGoodsCategory, String> { | ||||
| List<TtMallGoodsCategoryVo> findAllTreeList(TtMallGoodsCategoryVo recordVo); | |||||
| List<TtMallGoodsCategory> findList(TtMallGoodsCategory record); | List<TtMallGoodsCategory> findList(TtMallGoodsCategory record); | ||||
| List<Integer> findIdAll(TtMallGoodsCategory record); | List<Integer> findIdAll(TtMallGoodsCategory record); | ||||
| @@ -16,4 +21,5 @@ public interface TtMallGoodsCategoryMapper extends CommonMapper<TtMallGoodsCateg | |||||
| int updateFeeByIds(TtMallGoodsCategory record); | int updateFeeByIds(TtMallGoodsCategory record); | ||||
| } | } | ||||
| @@ -19,6 +19,8 @@ public interface TtGoodsCategoryService { | |||||
| */ | */ | ||||
| List<TtGoodsCategory> findTreeList(); | List<TtGoodsCategory> findTreeList(); | ||||
| List<TtGoodsCategory> findAllTreeList(); | |||||
| /** | /** | ||||
| * A端是否显示处理 | * A端是否显示处理 | ||||
| @@ -46,4 +48,5 @@ public interface TtGoodsCategoryService { | |||||
| List<GoodsCategory> categoryGet(Integer categoryId); | List<GoodsCategory> categoryGet(Integer categoryId); | ||||
| void updateFee(TtGoodsCategory record); | void updateFee(TtGoodsCategory record); | ||||
| } | } | ||||
| @@ -1,6 +1,17 @@ | |||||
| package com.iformall.service; | 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 { | public interface TtMallGoodsCategoryService { | ||||
| List<TtMallGoodsCategoryVo> findAllTreeList(TenantEntity tenantInfo); | |||||
| void updateFee(TtMallGoodsCategoryVo record); | |||||
| } | } | ||||
| @@ -13,6 +13,7 @@ import com.iformall.douyin.web.bean.GoodsCategory; | |||||
| import com.iformall.douyin.web.bean.GoodsTemplateGet; | import com.iformall.douyin.web.bean.GoodsTemplateGet; | ||||
| import com.iformall.enums.EnumCouponValidType; | import com.iformall.enums.EnumCouponValidType; | ||||
| import com.iformall.enums.EnumGoodsCategoryRate; | import com.iformall.enums.EnumGoodsCategoryRate; | ||||
| import com.iformall.enums.EnumMerchantStatus; | |||||
| import com.iformall.enums.EnumYesOrNo; | import com.iformall.enums.EnumYesOrNo; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.mapper.TtGoodsCategoryMapper; | import com.iformall.mapper.TtGoodsCategoryMapper; | ||||
| @@ -34,6 +35,7 @@ import org.springframework.stereotype.Service; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.stream.Collectors; | |||||
| @Service | @Service | ||||
| public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { | public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { | ||||
| @@ -53,14 +55,37 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { | |||||
| public List<TtGoodsCategory> findTreeList() { | public List<TtGoodsCategory> findTreeList() { | ||||
| TtGoodsCategory record = new TtGoodsCategory(); | TtGoodsCategory record = new TtGoodsCategory(); | ||||
| record.setEnable(EnumYesOrNo.YES.getCode()); | record.setEnable(EnumYesOrNo.YES.getCode()); | ||||
| record.setIsDel(EnumYesOrNo.NO.getCode()); | |||||
| record.setSortColumns(BaseEntity.SortField.Id_ASC); | |||||
| List<TtGoodsCategory> listAll = ttGoodsCategoryMapper.findMinList(record); | |||||
| if(listAll == null || listAll.isEmpty()){ | |||||
| return new ArrayList<>(); | |||||
| } | |||||
| List<TtGoodsCategory> 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<TtGoodsCategory> findAllTreeList() { | |||||
| TtGoodsCategory record = new TtGoodsCategory(); | |||||
| // record.setEnable(EnumYesOrNo.YES.getCode()); | |||||
| record.setIsDel(EnumYesOrNo.NO.getCode()); | record.setIsDel(EnumYesOrNo.NO.getCode()); | ||||
| record.setSortColumns(BaseEntity.SortField.Id_ASC); | record.setSortColumns(BaseEntity.SortField.Id_ASC); | ||||
| List<TtGoodsCategory> listAll = ttGoodsCategoryMapper.findList(record); | List<TtGoodsCategory> listAll = ttGoodsCategoryMapper.findList(record); | ||||
| List<TtGoodsCategory> topList = new ArrayList<TtGoodsCategory>(); | |||||
| for (TtGoodsCategory category:listAll) { | |||||
| if(category.getParentId().intValue() == 0){ | |||||
| if(listAll == null || listAll.isEmpty()){ | |||||
| return new ArrayList<>(); | |||||
| } | |||||
| List<TtGoodsCategory> 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())); | category.setChild(getChild(listAll,category.getId())); | ||||
| topList.add(category); | |||||
| } | } | ||||
| } | } | ||||
| return topList; | return topList; | ||||
| @@ -69,11 +94,18 @@ public class TtGoodsCategoryServiceImpl implements TtGoodsCategoryService { | |||||
| private List<TtGoodsCategory> getChild(List<TtGoodsCategory> listAll,Integer parentId){ | private List<TtGoodsCategory> getChild(List<TtGoodsCategory> listAll,Integer parentId){ | ||||
| List<TtGoodsCategory> childList = new ArrayList<TtGoodsCategory>(); | List<TtGoodsCategory> childList = new ArrayList<TtGoodsCategory>(); | ||||
| 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())); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,6 +1,12 @@ | |||||
| package com.iformall.service.impl; | 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.TtGoodsCategoryMapper; | ||||
| import com.iformall.mapper.TtMallGoodsCategoryMapper; | import com.iformall.mapper.TtMallGoodsCategoryMapper; | ||||
| import com.iformall.service.TtMallGoodsCategoryService; | 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.data.redis.core.RedisTemplate; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import java.util.ArrayList; | |||||
| import java.util.List; | |||||
| import java.util.stream.Collectors; | |||||
| @Service | @Service | ||||
| public class TtMallGoodsCategoryServiceImpl implements TtMallGoodsCategoryService { | public class TtMallGoodsCategoryServiceImpl implements TtMallGoodsCategoryService { | ||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
| @@ -19,13 +29,58 @@ public class TtMallGoodsCategoryServiceImpl implements TtMallGoodsCategoryServic | |||||
| @Autowired | @Autowired | ||||
| TtMallGoodsCategoryMapper ttMallGoodsCategoryMapper; | TtMallGoodsCategoryMapper ttMallGoodsCategoryMapper; | ||||
| @Autowired | |||||
| private TtMerchantPoiService ttMerchantPoiService; | |||||
| @Autowired | @Autowired | ||||
| @Qualifier("objectCommonRedisTemplate") | @Qualifier("objectCommonRedisTemplate") | ||||
| RedisTemplate<String, Object> categoryRedisTemplate; | RedisTemplate<String, Object> categoryRedisTemplate; | ||||
| @Override | |||||
| public List<TtMallGoodsCategoryVo> findAllTreeList(TenantEntity tenantInfo) { | |||||
| TtMallGoodsCategoryVo mgcVoQ = new TtMallGoodsCategoryVo(); | |||||
| mgcVoQ.updateTenantInfo(tenantInfo); | |||||
| mgcVoQ.setIsDel(EnumYesOrNo.NO.getCode()); | |||||
| mgcVoQ.setSortColumns(BaseEntity.SortField.Id_ASC); | |||||
| List<TtMallGoodsCategoryVo> listAll = ttMallGoodsCategoryMapper.findAllTreeList(mgcVoQ); | |||||
| if(listAll == null || listAll.isEmpty()){ | |||||
| return new ArrayList<>(); | |||||
| } | |||||
| List<TtMallGoodsCategoryVo> 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<TtMallGoodsCategoryVo> getChild(List<TtMallGoodsCategoryVo> listAll, Integer parentId){ | |||||
| List<TtMallGoodsCategoryVo> childList = new ArrayList<TtMallGoodsCategoryVo>(); | |||||
| 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(); | |||||
| } | |||||
| } | } | ||||
| @@ -68,6 +68,12 @@ | |||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| </select> | </select> | ||||
| <select id="findMinList" parameterType="com.iformall.domain.po.TtGoodsCategory" resultMap="BaseResultMap"> | |||||
| select `id`,`level`,`name`,`parent_id`,`enable`,`is_leaf` | |||||
| from tt_goods_category | |||||
| <include refid="dynamicWhereConditions" /> | |||||
| </select> | |||||
| <select id="findIdAll" parameterType="com.iformall.domain.po.TtGoodsCategory" resultType="Integer"> | <select id="findIdAll" parameterType="com.iformall.domain.po.TtGoodsCategory" resultType="Integer"> | ||||
| select id from tt_goods_category | select id from tt_goods_category | ||||
| <include refid="dynamicWhereConditions" /> | <include refid="dynamicWhereConditions" /> | ||||
| @@ -65,4 +65,58 @@ | |||||
| </foreach> | </foreach> | ||||
| </update> | </update> | ||||
| <resultMap id="BaseResultMapVo" type="com.iformall.domain.vo.TtMallGoodsCategoryVo"> | |||||
| <result column="id" jdbcType="INTEGER" property="goodsCategoryId" /> | |||||
| <result column="level" jdbcType="INTEGER" property="level" /> | |||||
| <result column="name" jdbcType="VARCHAR" property="name" /> | |||||
| <result column="parent_id" jdbcType="INTEGER" property="parentId" /> | |||||
| <result column="enable" jdbcType="INTEGER" property="enable" /> | |||||
| <result column="is_leaf" jdbcType="INTEGER" property="isLeaf" /> | |||||
| <result column="service_fee" jdbcType="INTEGER" property="serviceFee" /> | |||||
| <result column="software_fee" jdbcType="INTEGER" property="softwareFee" /> | |||||
| <result column="tenant_id" jdbcType="VARCHAR" property="tenantId"/> | |||||
| <result column="parent_tenant_id" jdbcType="VARCHAR" property="parentTenantId"/> | |||||
| <result column="mall_software_fee" jdbcType="INTEGER" property="mallSoftwareFee" /> | |||||
| </resultMap> | |||||
| <select id="findAllTreeList" parameterType="com.iformall.domain.vo.TtMallGoodsCategoryVo" resultMap="BaseResultMapVo"> | |||||
| 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 | |||||
| <if test=" null != categoryId "> | |||||
| and gc.`id` = #{categoryId} | |||||
| </if> | |||||
| <if test=" null != level "> | |||||
| and gc.`level` = #{level} | |||||
| </if> | |||||
| <if test=" null != name "> | |||||
| and gc.`name` like concat('%', #{name},'%') | |||||
| </if> | |||||
| <if test=" null != parentId "> | |||||
| and gc.`parent_id` = #{parentId} | |||||
| </if> | |||||
| <if test=" null != enable "> | |||||
| and gc.`enable` = #{enable} | |||||
| </if> | |||||
| <if test=" null != isLeaf "> | |||||
| and gc.`is_leaf` = #{isLeaf} | |||||
| </if> | |||||
| <if test=" null != isDel "> | |||||
| and gc.`is_del` = #{isDel} | |||||
| </if> | |||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||