Bläddra i källkod

获取卡余额接口

yq 3 år sedan
förälder
incheckning
bc42336fd8

+ 26 - 0
src/main/java/com/usky/dxtop/controller/web/MsgLogController.java

@@ -0,0 +1,26 @@
+package com.usky.dxtop.controller.web;
+
+import com.usky.dxtop.common.core.domain.AjaxResult;
+import com.usky.dxtop.service.MsgLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author yq
+ * @date 2021/11/29 16:53
+ */
+@RestController
+@RequestMapping("/dxtop/msglog")
+public class MsgLogController {
+
+    @Autowired
+    private MsgLogService msgLogService;
+
+    @GetMapping("/one")
+    public AjaxResult one(@RequestParam Long id){
+        return AjaxResult.success(msgLogService.getById(id));
+    }
+}

+ 25 - 0
src/main/java/com/usky/dxtop/controller/web/StaffController.java

@@ -24,6 +24,7 @@ public class StaffController {
     @Autowired
     private StaffService staffService;
 
+
     /**
      *
      * @return
@@ -59,4 +60,28 @@ public class StaffController {
         return AjaxResult.success(staffService.page(staffRequest));
     }
 
+    /**
+     * 发送获取余额信息
+     * @param card
+     * @return
+     */
+    @PostMapping("cardBalance")
+    public AjaxResult getCardBalance(@RequestParam String card){
+        return AjaxResult.success(staffService.getBalance(card));
+    }
+
+    /**
+     * 获取用户详情
+     * @param id
+     * @param phone
+     * @param card
+     * @return
+     */
+    @PostMapping("one")
+    public AjaxResult getCardBalance(@RequestParam(required = false) String id,
+                                     @RequestParam(required = false) String phone,
+                                     @RequestParam(required = false) String card){
+        return AjaxResult.success(staffService.one(id,phone,card));
+    }
+
 }

+ 5 - 0
src/main/java/com/usky/dxtop/mapper/StaffMapper.java

@@ -27,4 +27,9 @@ public interface StaffMapper extends BaseMapper<Staff> {
                      @Param("name") String name,
                      @Param("phone") String phone,
                      @Param("card") String card);
+
+
+    Staff one(@Param("id") String id,
+              @Param("phone") String phone,
+              @Param("card") String card);
 }

+ 4 - 1
src/main/java/com/usky/dxtop/model/MsgLog.java

@@ -81,5 +81,8 @@ public class MsgLog implements Serializable {
      */
     private Integer delFlag;
 
-
+    /**
+     * 返回值
+     */
+    private String consequence;
 }

+ 5 - 0
src/main/java/com/usky/dxtop/service/StaffService.java

@@ -19,4 +19,9 @@ public interface StaffService extends IService<Staff> {
 
     CommonPage<Staff> page(StaffRequest staffRequest);
 
+
+    String getBalance(String card);
+
+
+    Staff one(String id,String phone,String card);
 }

+ 8 - 8
src/main/java/com/usky/dxtop/service/config/rabbitmq/cartget/CartGetConsumeConfig.java

@@ -25,15 +25,15 @@ public class CartGetConsumeConfig {
     @Autowired
     private RabbitmqConfig rabbitmqConfig;
     public static final String NAME = "card_get_consume";
-    private final static String MODULE_NAME = "cardgetC";
+    public final static String MODULE_NAME = "cardgetC";
 
-    private final static String CONNECTION = MODULE_NAME+RabbitmqConfig.CONNECTION;
-    private final static String TEMPLATE = MODULE_NAME+RabbitmqConfig.TEMPLATE;
-    private final static String LISTENER = MODULE_NAME+RabbitmqConfig.LISTENER;
-    private final static String ADMIN = MODULE_NAME+RabbitmqConfig.ADMIN;
-    private final static String EXCHANGE = MODULE_NAME+RabbitmqConfig.EXCHANGE;
-    private final static String QUEUE = MODULE_NAME+RabbitmqConfig.QUEUE;
-    private final static String BINDING = MODULE_NAME+RabbitmqConfig.BINDING;
+    public final static String CONNECTION = MODULE_NAME+RabbitmqConfig.CONNECTION;
+    public final static String TEMPLATE = MODULE_NAME+RabbitmqConfig.TEMPLATE;
+    public final static String LISTENER = MODULE_NAME+RabbitmqConfig.LISTENER;
+    public final static String ADMIN = MODULE_NAME+RabbitmqConfig.ADMIN;
+    public final static String EXCHANGE = MODULE_NAME+RabbitmqConfig.EXCHANGE;
+    public final static String QUEUE = MODULE_NAME+RabbitmqConfig.QUEUE;
+    public final static String BINDING = MODULE_NAME+RabbitmqConfig.BINDING;
 
     @Bean(name = CONNECTION)
     public ConnectionFactory connectionFactory(){

+ 8 - 8
src/main/java/com/usky/dxtop/service/config/rabbitmq/cartget/CartGetProduceConfig.java

@@ -24,15 +24,15 @@ public class CartGetProduceConfig {
     @Autowired
     private RabbitmqConfig rabbitmqConfig;
     public static final String NAME = "card_get_produce";
-    private final static String MODULE_NAME = "cardgetP";
+    public final static String MODULE_NAME = "cardgetP";
 
-    private final static String CONNECTION = MODULE_NAME+ RabbitmqConfig.CONNECTION;
-    private final static String TEMPLATE = MODULE_NAME+RabbitmqConfig.TEMPLATE;
-    private final static String LISTENER = MODULE_NAME+RabbitmqConfig.LISTENER;
-    private final static String ADMIN = MODULE_NAME+RabbitmqConfig.ADMIN;
-    private final static String EXCHANGE = MODULE_NAME+RabbitmqConfig.EXCHANGE;
-    private final static String QUEUE = MODULE_NAME+RabbitmqConfig.QUEUE;
-    private final static String BINDING = MODULE_NAME+RabbitmqConfig.BINDING;
+    public final static String CONNECTION = MODULE_NAME+ RabbitmqConfig.CONNECTION;
+    public final static String TEMPLATE = MODULE_NAME+RabbitmqConfig.TEMPLATE;
+    public final static String LISTENER = MODULE_NAME+RabbitmqConfig.LISTENER;
+    public final static String ADMIN = MODULE_NAME+RabbitmqConfig.ADMIN;
+    public final static String EXCHANGE = MODULE_NAME+RabbitmqConfig.EXCHANGE;
+    public final static String QUEUE = MODULE_NAME+RabbitmqConfig.QUEUE;
+    public final static String BINDING = MODULE_NAME+RabbitmqConfig.BINDING;
 
     @Bean(name = CONNECTION)
     public ConnectionFactory connectionFactory(){

+ 45 - 1
src/main/java/com/usky/dxtop/service/impl/StaffServiceImpl.java

@@ -1,16 +1,29 @@
 package com.usky.dxtop.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.usky.dxtop.common.core.page.CommonPage;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.common.utils.StringUtils;
 import com.usky.dxtop.mapper.StaffMapper;
+import com.usky.dxtop.model.MsgLog;
 import com.usky.dxtop.model.Staff;
+import com.usky.dxtop.service.MsgLogService;
 import com.usky.dxtop.service.StaffService;
+import com.usky.dxtop.service.config.rabbitmq.cartget.CartGetConsumeConfig;
 import com.usky.dxtop.service.vo.StaffRequest;
+import org.springframework.amqp.rabbit.connection.CorrelationData;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -22,8 +35,13 @@ import org.springframework.stereotype.Service;
 @Service
 public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements StaffService {
 
+    @Autowired
+    @Qualifier(CartGetConsumeConfig.TEMPLATE)
+    private RabbitTemplate rabbitTemplate;
+
+    @Autowired
+    private MsgLogService msgLogService;
 
-    //TODO 需要世贸提供数据后从写mapper
     @Override
     public CommonPage<Staff> page(StaffRequest staffRequest) {
         IPage<Staff> page = new Page<>(staffRequest.getCurrent(), staffRequest.getSize());
@@ -34,4 +52,30 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
                 staffRequest.getCard());
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
     }
+
+    @Override
+    public String getBalance(String card) {
+        MsgLog msgLog = new MsgLog();
+        msgLog.setBusinessId(0L);
+        msgLog.setExchange(CartGetConsumeConfig.NAME);
+        msgLog.setRoutingKey(CartGetConsumeConfig.NAME);
+        msgLog.setRemark("获取卡余额");
+        msgLogService.save(msgLog);
+        Map<String,Object> map = new HashMap<>();
+        map.put("seq",msgLog.getId());
+        map.put("card",card);
+        msgLog.setMsg(JSON.toJSONString(map));
+        msgLogService.updateById(msgLog);
+        CorrelationData correlationData = new CorrelationData(msgLog.getId().toString());
+        rabbitTemplate.convertAndSend(msgLog.getExchange(), msgLog.getRoutingKey(), msgLog.getMsg(),correlationData);
+        return msgLog.getId().toString();
+    }
+
+    @Override
+    public Staff one(String id, String phone, String card) {
+        if (StringUtils.isBlank(id) && StringUtils.isBlank(phone) && StringUtils.isBlank(card)){
+            throw new CustomException("手机号,用户编号,卡号至少输入一个");
+        }
+        return baseMapper.one(id,phone,card);
+    }
 }

+ 48 - 0
src/main/java/com/usky/dxtop/service/listener/CartGetMqListener.java

@@ -0,0 +1,48 @@
+package com.usky.dxtop.service.listener;
+
+import com.alibaba.fastjson.JSONObject;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.model.MsgLog;
+import com.usky.dxtop.service.MsgLogService;
+import com.usky.dxtop.service.config.rabbitmq.cartget.CartGetProduceConfig;
+import com.usky.dxtop.service.emun.MsgLogStatus;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * 卡余额
+ * @author yq
+ * @date 2021/11/29 16:35
+ */
+@Slf4j
+@Component
+public class CartGetMqListener {
+
+    @Autowired
+    private MsgLogService msgLogService;
+    @Transactional(rollbackFor = Exception.class)
+    @RabbitListener(queues = CartGetProduceConfig.NAME, containerFactory = CartGetProduceConfig.LISTENER)
+    public void dealDeclareMessage(Message message) {
+        try {
+            //消息类型
+            String s = new String(message.getBody(), StandardCharsets.UTF_8);
+            JSONObject jsonObject = JSONObject.parseObject(s);
+            Long msgId = Long.parseLong(jsonObject.get("seq").toString());
+            MsgLog msgLog = msgLogService.getById(msgId);
+            if (msgLogService.isRepetition(msgLog)){
+                msgLog.setConsequence(s);
+                msgLog.setMsgFlag(MsgLogStatus.CONSUMER_SUCCESS.getCode());
+                msgLogService.updateById(msgLog);
+            }
+        } catch (Exception e) {
+            log.info("charge_trans_produce"+"异常信息:" + e.getMessage());
+            throw new CustomException(e.getMessage());
+        }
+    }
+}

+ 21 - 0
src/main/resources/mapper/StaffMapper.xml

@@ -28,5 +28,26 @@
         </where>
         order by s.id desc
     </select>
+    <select id="one" resultType="com.usky.dxtop.model.Staff">
+        select s.*,d.name as deptName,tr.identity,tr.proportion,tr.id as radioId
+        from staff as s
+        left join dept as d
+        on s.dept_id = d.id
+        left join staff_radio as sr
+        on s.s_id = sr.staff_id and sr.del_flag = 0
+        left join top_radio as tr
+        on sr.radio_id = tr.id
+        <where>
+            <if test="id !=null and id != ''">
+                and s.id  =#{id}
+            </if>
+            <if test="phone !=null and phone != ''">
+                and s.contacts = #{phone}
+            </if>
+            <if test="card !=null and card != ''">
+                and s.card_id = #{card}
+            </if>
+        </where>
+    </select>
 
 </mapper>