Bladeren bron

调整分发组关联通道

杜魏 4 jaren geleden
bovenliggende
commit
3eb51bfefd
18 gewijzigde bestanden met toevoegingen van 215 en 65 verwijderingen
  1. 8 0
      common/fire-dto/src/main/java/com/fire/dto/DistributeGroup.java
  2. 5 2
      common/fire-dto/src/main/java/com/fire/dto/DistributeGroupChannel.java
  3. 0 6
      modules/admin/src/main/java/com/fire/admin/mapper/BankCardMapper.java
  4. 0 3
      modules/admin/src/main/java/com/fire/admin/mapper/ChannelGroupMapper.java
  5. 0 8
      modules/admin/src/main/java/com/fire/admin/mapper/ChannelSupplierMapper.java
  6. 18 0
      modules/admin/src/main/java/com/fire/admin/mapper/DistGroupChannelMapper.java
  7. 3 6
      modules/admin/src/main/java/com/fire/admin/rest/ChannelInfoRest.java
  8. 1 1
      modules/admin/src/main/java/com/fire/admin/rest/ChannelProductInfoRest.java
  9. 6 5
      modules/admin/src/main/java/com/fire/admin/rest/DistributeGroupRest.java
  10. 2 0
      modules/admin/src/main/java/com/fire/admin/service/ChannelProductService.java
  11. 21 0
      modules/admin/src/main/java/com/fire/admin/service/DistGroupChannelService.java
  12. 1 2
      modules/admin/src/main/java/com/fire/admin/service/DistributeGroupService.java
  13. 2 0
      modules/admin/src/main/java/com/fire/admin/service/impl/ChannelInfoServiceImpl.java
  14. 13 0
      modules/admin/src/main/java/com/fire/admin/service/impl/ChannelProductServiceImpl.java
  15. 76 0
      modules/admin/src/main/java/com/fire/admin/service/impl/DistGroupChannelServiceImpl.java
  16. 14 28
      modules/admin/src/main/java/com/fire/admin/service/impl/DistributeGroupServiceImpl.java
  17. 15 4
      modules/admin/src/main/java/com/fire/admin/util/EnumUtils.java
  18. 30 0
      modules/admin/src/main/resources/mapper/DistGroupChannelMapper.xml

+ 8 - 0
common/fire-dto/src/main/java/com/fire/dto/DistributeGroup.java

@@ -33,6 +33,10 @@ public class DistributeGroup {
     @ApiModelProperty("通道id")
     private Long channelId;
 
+    @TableField(exist = false)
+    @ApiModelProperty("通道名称")
+    private String channelName;
+
     @ApiModelProperty("通道组id")
     private Long channelGroupId;
 
@@ -67,4 +71,8 @@ public class DistributeGroup {
     @TableField(exist = false)
     @ApiModelProperty("通道列表")
     private List<ChannelInfo> channelInfos;
+
+    @TableField(exist = false)
+    @ApiModelProperty("分发组-通道列表")
+    private List<DistributeGroupChannel> channels;
 }

+ 5 - 2
common/fire-dto/src/main/java/com/fire/dto/DistributeGroupChannel.java

@@ -24,11 +24,14 @@ public class DistributeGroupChannel {
     @ApiModelProperty("主键")
     private Long id;
 
+    @ApiModelProperty("通道id")
+    private Long channelId;
+
     @ApiModelProperty("通道组id")
-    private Integer channelGroupId;
+    private Long channelGroupId;
 
     @ApiModelProperty("分发组id")
-    private Integer distributeGroupId;
+    private Long distributeGroupId;
 
     @ApiModelProperty("权重")
     private Integer weight;

+ 0 - 6
modules/admin/src/main/java/com/fire/admin/mapper/BankCardMapper.java

@@ -1,10 +1,7 @@
 package com.fire.admin.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fire.dto.BankCard;
-import org.apache.ibatis.annotations.Param;
 
 /**
  * @author: admin
@@ -14,7 +11,4 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface BankCardMapper extends BaseMapper<BankCard> {
 
-    IPage<BankCard> getBankCardList(Page page, @Param("supplierId") Integer supplierId);
-
-//    int saveBankCards(@Param("bankCards") List<BankCard> bankCards);
 }

+ 0 - 3
modules/admin/src/main/java/com/fire/admin/mapper/ChannelGroupMapper.java

@@ -3,8 +3,6 @@ package com.fire.admin.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fire.dto.ChannelGroup;
 
-import java.util.List;
-
 /**
  * @author: admin
  * @Description:
@@ -13,5 +11,4 @@ import java.util.List;
  */
 public interface ChannelGroupMapper extends BaseMapper<ChannelGroup> {
 
-    List<ChannelGroup> channelGroupList(String channelGroupName);
 }

+ 0 - 8
modules/admin/src/main/java/com/fire/admin/mapper/ChannelSupplierMapper.java

@@ -1,10 +1,7 @@
 package com.fire.admin.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fire.dto.ChannelSupplier;
-import org.apache.ibatis.annotations.Param;
 
 /**
  * @author: admin
@@ -14,9 +11,4 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface ChannelSupplierMapper extends BaseMapper<ChannelSupplier> {
 
-    IPage<ChannelSupplier> getSupplierList(Page page, @Param("supplierName") String supplierName);
-
-//    void updateSupplier(ChannelSupplier channelSupplier);
-
-    int deleteSupplierById(Integer supplierId);
 }

+ 18 - 0
modules/admin/src/main/java/com/fire/admin/mapper/DistGroupChannelMapper.java

@@ -0,0 +1,18 @@
+package com.fire.admin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fire.dto.DistributeGroupChannel;
+
+import java.util.List;
+
+/**
+ * @author: admin
+ * @Description:
+ * @date: 2021-06-21 14:31
+ * @Modified By:
+ */
+public interface DistGroupChannelMapper extends BaseMapper<DistributeGroupChannel> {
+
+    List<DistributeGroupChannel> getChannelInfoByDistGroupId(Long distGroupId);
+
+}

+ 3 - 6
modules/admin/src/main/java/com/fire/admin/rest/ChannelInfoRest.java

@@ -39,9 +39,8 @@ public class ChannelInfoRest {
         IPage<ChannelInfo> channelList = channelInfoService.getChannelList(channelPageParam);
         if (channelList != null) {
             return new BaseRestResponse(channelList);
-        } else {
-            return new BaseRestResponse(null);
         }
+        return new BaseRestResponse(null);
     }
 
     @GetMapping("/getAllChannelnfos")
@@ -60,9 +59,8 @@ public class ChannelInfoRest {
         List<FireProductInfo> fireProductInfos = channelInfoService.getChannelProduct(operator);
         if (fireProductInfos != null) {
             return new BaseRestResponse(fireProductInfos);
-        } else {
-            return new BaseRestResponse(null);
         }
+        return new BaseRestResponse(null);
     }
 
     @GetMapping("/supplierInfo")
@@ -71,9 +69,8 @@ public class ChannelInfoRest {
         List<ChannelSupplier> supplierList = channelInfoService.getSupplierInfo(supplierName);
         if (supplierList != null) {
             return new BaseRestResponse(supplierList);
-        } else {
-            return new BaseRestResponse(null);
         }
+        return new BaseRestResponse(null);
     }
 
     @PostMapping("/add")

+ 1 - 1
modules/admin/src/main/java/com/fire/admin/rest/ChannelProductInfoRest.java

@@ -38,7 +38,7 @@ public class ChannelProductInfoRest {
 
     @DeleteMapping("/delete/{channelProductId}")
     public BaseResponse deleteChannelProduct(@PathVariable("channelProductId") Long channelProductId) {
-        channelProductService.deleteChannelProductByChanId(channelProductId);
+        channelProductService.deleteChannelProductByChanProdId(channelProductId);
         return new BaseResponse();
     }
 

+ 6 - 5
modules/admin/src/main/java/com/fire/admin/rest/DistributeGroupRest.java

@@ -1,5 +1,6 @@
 package com.fire.admin.rest;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.fire.admin.service.DistributeGroupService;
 import com.fire.admin.util.EnumUtils;
 import com.fire.dto.DistributeGroup;
@@ -40,17 +41,17 @@ public class DistributeGroupRest {
     @GetMapping("/getAllPolicy")
     @ApiOperation(value = "获取所有分发策略", notes = "get_distribute_policy.py")
     public BaseRestResponse getDistributePolicy() {
-        List<String> allDistributePolicy = EnumUtils.getAllDistributePolicy();
-        if (allDistributePolicy != null) {
-            return new BaseRestResponse(allDistributePolicy);
+        List<Object> list = EnumUtils.getAllDistributePolicy();
+        if (ObjectUtil.isNotEmpty(list)) {
+            return new BaseRestResponse(list);
         }
         return new BaseRestResponse(null);
     }
 
     @DeleteMapping("/delete/{distributeGroupId}")
     @ApiOperation(value = "删除分发组", notes = "delete_distributeGroup.py")
-    public BaseResponse deleteDistributeGroup(@PathVariable("distributeGroupId") Long channelId) {
-        distributeGroupService.removeDistGroupAndChannelByChannelId(channelId);
+    public BaseResponse deleteDistributeGroup(@PathVariable("distributeGroupId") Long distributeGroupId) {
+        distributeGroupService.removeDistGroupAndChannelByDistGroupId(distributeGroupId);
         return new BaseResponse();
     }
 }

+ 2 - 0
modules/admin/src/main/java/com/fire/admin/service/ChannelProductService.java

@@ -17,6 +17,8 @@ public interface ChannelProductService extends IService<ChannelProductInfo> {
 
     void saveChannelProducts(List<ChannelProductInfo> channelProductInfos);
 
+    void deleteChannelProductByChanProdId(Long channelProductId);
+
     int deleteChannelProductByChanId(Long channelId);
 
 }

+ 21 - 0
modules/admin/src/main/java/com/fire/admin/service/DistGroupChannelService.java

@@ -0,0 +1,21 @@
+package com.fire.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fire.dto.DistributeGroupChannel;
+
+import java.util.List;
+
+/**
+ * @author: admin
+ * @Description:
+ * @date: 2021-06-21 13:45
+ * @Modified By:
+ */
+public interface DistGroupChannelService extends IService<DistributeGroupChannel> {
+
+    List<DistributeGroupChannel> getChannelInfoByDistGroupId(Long distGroupId);
+
+    void saveOrUpdateChannel(List<DistributeGroupChannel> channels);
+
+    int removeChannelByDistGroupId(Long id);
+}

+ 1 - 2
modules/admin/src/main/java/com/fire/admin/service/DistributeGroupService.java

@@ -19,7 +19,6 @@ public interface DistributeGroupService extends IService<DistributeGroup> {
 
     int removeDistributeGroupByChannelGroupId(Long channelGroupId);
 
-    int removeDistGroupAndChannelByChannelId(Long channelGroupId);
+    void removeDistGroupAndChannelByDistGroupId(Long channelGroupId);
 
-    void updateDistributeGroupById(DistributeGroup distributeGroup);
 }

+ 2 - 0
modules/admin/src/main/java/com/fire/admin/service/impl/ChannelInfoServiceImpl.java

@@ -191,6 +191,8 @@ public class ChannelInfoServiceImpl extends ServiceImpl<ChannelInfoMapper, Chann
                 log.info("编号为【{}】的通道删除成功!", channelId);
                 return result;
             }
+        } else {
+            throw new BaseException(Status.PARAM_ERROR.status(), Status.PARAM_ERROR.message());
         }
         return 0;
     }

+ 13 - 0
modules/admin/src/main/java/com/fire/admin/service/impl/ChannelProductServiceImpl.java

@@ -73,6 +73,19 @@ public class ChannelProductServiceImpl extends ServiceImpl<ChannelProductMapper,
         }
     }
 
+    @Override
+    public void deleteChannelProductByChanProdId(Long channelProductId) {
+        if (channelProductId != null) {
+            int result = baseMapper.deleteById(channelProductId);
+            if (result > 0) {
+                rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
+                log.info("通道产品编号为【{}】的通道产品删除成功!", channelProductId);
+            }
+        } else {
+            throw new BaseException(Status.PARAM_ERROR.status(), Status.PARAM_ERROR.message());
+        }
+    }
+
     @Override
     public int deleteChannelProductByChanId(Long channelId) {
         if (channelId != null) {

+ 76 - 0
modules/admin/src/main/java/com/fire/admin/service/impl/DistGroupChannelServiceImpl.java

@@ -0,0 +1,76 @@
+package com.fire.admin.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fire.admin.mapper.DistGroupChannelMapper;
+import com.fire.admin.service.DistGroupChannelService;
+import com.fire.dto.DistributeGroupChannel;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.springframework.messaging.support.MessageBuilder;
+import org.springframework.stereotype.Service;
+import redis.clients.jedis.JedisCluster;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static com.fire.common.constants.RocketTags.SUPPLIER_TAG;
+import static com.fire.common.constants.RocketTopic.UPDATE_TOPIC;
+import static com.fire.dto.enums.RedisKey.GLOBAL_ID_INCR;
+
+/**
+ * @author: admin
+ * @Description:
+ * @date: 2021-06-21 14:41
+ * @Modified By:
+ */
+@Service
+@Slf4j
+public class DistGroupChannelServiceImpl extends ServiceImpl<DistGroupChannelMapper, DistributeGroupChannel> implements DistGroupChannelService {
+
+    @Resource
+    private JedisCluster jedisCluster;
+
+    @Resource
+    private RocketMQTemplate rocketMQTemplate;
+
+    @Override
+    public List<DistributeGroupChannel> getChannelInfoByDistGroupId(Long distGroupId) {
+        List<DistributeGroupChannel> distributeGroupList = baseMapper.getChannelInfoByDistGroupId(distGroupId);
+        if (distributeGroupList != null) {
+            return distributeGroupList;
+        }
+        return null;
+    }
+
+    @Override
+    public void saveOrUpdateChannel(List<DistributeGroupChannel> channels) {
+        if (ObjectUtil.isNotEmpty(channels)) {
+            for (DistributeGroupChannel info : channels) {
+                if (info.getId() == null) {
+                    info.setId(jedisCluster.incr(GLOBAL_ID_INCR.key()));
+                    log.info("添加的通道是:", channels);
+                } else {
+                    log.info("修改的通道是:", channels);
+                }
+            }
+            this.saveOrUpdateBatch(channels);
+        }
+    }
+
+    @Override
+    public int removeChannelByDistGroupId(Long distGroupId) {
+        if (distGroupId != null) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("distribute_group_id", distGroupId);
+            int result = baseMapper.deleteByMap(map);
+            if (result > 0) {
+                rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
+                return result;
+            }
+        }
+        return 0;
+    }
+}

+ 14 - 28
modules/admin/src/main/java/com/fire/admin/service/impl/DistributeGroupServiceImpl.java

@@ -4,7 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fire.admin.mapper.DistributeGroupMapper;
-import com.fire.admin.service.ChannelInfoService;
+import com.fire.admin.service.DistGroupChannelService;
 import com.fire.admin.service.DistributeGroupService;
 import com.fire.admin.util.SecurityUtil;
 import com.fire.common.exception.BaseException;
@@ -37,7 +37,7 @@ import static com.fire.dto.enums.RedisKey.GLOBAL_ID_INCR;
 public class DistributeGroupServiceImpl extends ServiceImpl<DistributeGroupMapper, DistributeGroup> implements DistributeGroupService {
 
     @Resource
-    private ChannelInfoService channelInfoService;
+    private DistGroupChannelService distGroupChannelService;
 
     @Resource
     private JedisCluster jedisCluster;
@@ -50,6 +50,9 @@ public class DistributeGroupServiceImpl extends ServiceImpl<DistributeGroupMappe
         if (ObjectUtil.isNotEmpty(channelGroupId)) {
             List<DistributeGroup> distributeGroupList = new LambdaQueryChainWrapper<>(baseMapper).eq(channelGroupId != null, DistributeGroup::getChannelGroupId, channelGroupId).list();
             if (ObjectUtil.isNotEmpty(distributeGroupList)) {
+                for (DistributeGroup distributeGroup : distributeGroupList) {
+                    distributeGroup.setChannels(distGroupChannelService.getChannelInfoByDistGroupId(distributeGroup.getDistributeGroupId()));
+                }
                 return distributeGroupList;
             }
         }
@@ -64,6 +67,9 @@ public class DistributeGroupServiceImpl extends ServiceImpl<DistributeGroupMappe
                     distributeGroup.setDistributeGroupId(jedisCluster.incr(GLOBAL_ID_INCR.key()));
                     distributeGroup.setCreator(SecurityUtil.getUser().getUsername());
                     distributeGroup.setCreateTime(new Date());
+                    if (distributeGroup.getChannelGroupId() == null) {
+                        distributeGroup.setChannelId(1L);
+                    }
                     log.info("添加的分发组是:", distributeGroups);
                 } else {
                     distributeGroup.setUpdator(SecurityUtil.getUser().getUsername());
@@ -97,38 +103,18 @@ public class DistributeGroupServiceImpl extends ServiceImpl<DistributeGroupMappe
 
 
     @Override
-    public int removeDistGroupAndChannelByChannelId(Long channelId) {
-        if (channelId != null) {
-            Map<String, Object> map = new HashMap<>();
-            map.put("channel_id", channelId);
-            int distResult = baseMapper.deleteByMap(map);
-            int channelResult = channelInfoService.deleteChannelByChannelId(channelId);
+    public void removeDistGroupAndChannelByDistGroupId(Long distGroupId) {
+        if (distGroupId != null) {
+            int distResult = baseMapper.deleteById(distGroupId);
+            int channelResult = distGroupChannelService.removeChannelByDistGroupId(distGroupId);
             if (distResult > 0 && channelResult > 0) {
                 rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
-                log.info("编号为【{}】的分发组删除成功!", channelId);
-                log.info("编号为【{}】的通道删除成功!", channelId);
-                return distResult + channelResult;
+                log.info("编号为【{}】的分发组删除成功!", distGroupId);
+                log.info("分发组编号为【{}】的通道删除成功!", distGroupId);
             }
         } else {
             throw new BaseException(Status.PARAM_ERROR.status(), Status.PARAM_ERROR.message());
         }
-        return 0;
     }
 
-    @Override
-    public void updateDistributeGroupById(DistributeGroup distributeGroup) {
-        if (distributeGroup != null) {
-            distributeGroup.setUpdator(SecurityUtil.getUser().getUsername());
-            distributeGroup.setUpdateTime(new Date());
-        }
-        int distResult = baseMapper.updateById(distributeGroup);
-        if (distResult > 0) {
-            rocketMQTemplate.send(UPDATE_TOPIC + ":" + SUPPLIER_TAG, MessageBuilder.withPayload(SUPPLIER_TAG).build());
-            log.info("分发组已修改为【{}】:", distributeGroup);
-        }
-
-        if (ObjectUtil.isNotEmpty(distributeGroup.getChannelInfos())) {
-            channelInfoService.saveOrUpdateChannelInfos(distributeGroup.getChannelInfos());
-        }
-    }
 }

+ 15 - 4
modules/admin/src/main/java/com/fire/admin/util/EnumUtils.java

@@ -5,7 +5,9 @@ import com.fire.dto.enums.DistributePolicy;
 import com.fire.dto.enums.Province;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -55,13 +57,22 @@ public class EnumUtils {
 
     /**
      * 获取所有分发策略
+     *
      * @return
      */
-    public static List<String> getAllDistributePolicy() {
-        List<String> policyList = new ArrayList<>();
+    public static List<Object> getAllDistributePolicy() {
+        List<Object> policyList = new ArrayList<>();
         for (DistributePolicy dist : DistributePolicy.values()) {
-            String policyDesc = dist.desc();
-            policyList.add(policyDesc);
+            Integer code = dist.code();
+            String desc = dist.desc();
+            Map<String, Integer> codeMap = new HashMap<>();
+            codeMap.put("policy", code);
+            Map<String, String> descMap = new HashMap<>();
+            descMap.put("desc", desc);
+            Map<Object, Object> map = new HashMap<>();
+            map.putAll(codeMap);
+            map.putAll(descMap);
+            policyList.add(map);
         }
         return policyList;
     }

+ 30 - 0
modules/admin/src/main/resources/mapper/DistGroupChannelMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fire.admin.mapper.DistGroupChannelMapper">
+
+    <resultMap id="distGroupChannelResultMap" type="com.fire.dto.DistributeGroupChannel">
+        <id column="id" property="id"/>
+        <result column="channel_id" property="channelId"/>
+        <result column="channel_group_id" property="channelGroupId"/>
+        <result column="distribute_group_id" property="distributeGroupId"/>
+        <result column="weight" property="weight"/>
+    </resultMap>
+
+    <sql id="common_field">
+        aci.channel_id,
+        aci.channel_name,
+        dgc.weight
+    </sql>
+
+    <select id="getChannelInfoByDistGroupId" resultMap="distGroupChannelResultMap">
+        SELECT
+        <include refid="common_field"/>
+        FROM access_channel_info AS aci LEFT JOIN distribute_group_channel AS dgc
+        ON aci.channel_id = dgc.channel_id
+        <where>
+            aci.is_delete = 0
+        </where>
+            ORDER BY aci.create_time DESC
+    </select>
+
+</mapper>