linxk 2 долоо хоног өмнө
parent
commit
f1ea5fa637

+ 45 - 0
cif-api/src/main/java/com/txz/cif/dto/OrderParam.java

@@ -0,0 +1,45 @@
+/*
+*
+* OrderDTO.java
+* Copyright(C) 2017-2020 fendo公司
+* @date 2023-03-18
+*/
+package com.txz.cif.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class OrderParam implements Serializable {
+
+    /**
+     * 订单号
+     */
+    private String orderNo;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * c_order
+     */
+    private static final long serialVersionUID = 1L;
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+}

+ 2 - 1
cif-api/src/main/java/com/txz/cif/service/RedEnvelopeDubboService.java

@@ -2,6 +2,7 @@ package com.txz.cif.service;
 
 
 import com.txz.cif.dto.EarningsDTO;
+import com.txz.cif.dto.OrderParam;
 import com.txz.cif.dto.Result;
 import com.txz.cif.dto.UserDTO;
 
@@ -10,6 +11,6 @@ import java.util.List;
 public interface RedEnvelopeDubboService {
 
 
-    List<EarningsDTO> getEarningsByOrders(List<String> orders);
+    List<EarningsDTO> getEarningsByOrders(List<OrderParam> params);
 
 }

+ 1 - 1
cif-service/src/main/java/com/txz/cif/dao/RedEnvelopeMapper.java

@@ -16,5 +16,5 @@ public interface RedEnvelopeMapper extends Mapper<RedEnvelope> {
 
     List<UserTopBo> top(HashMap<String, Object> map);
 
-    EarningsDTO sumWithOrderNo(String orderNo);
+    List<EarningsDTO> sumWithOrderNo(String orderNo);
 }

+ 9 - 4
cif-service/src/main/java/com/txz/cif/dubbo/impl/RedEnvelopeDubboServiceImpl.java

@@ -7,6 +7,7 @@ import com.txz.cif.core.RedisUtil;
 import com.txz.cif.core.cache.CacheKey;
 import com.txz.cif.core.cache.CacheType;
 import com.txz.cif.dto.EarningsDTO;
+import com.txz.cif.dto.OrderParam;
 import com.txz.cif.dto.Result;
 import com.txz.cif.dto.UserDTO;
 import com.txz.cif.model.User;
@@ -36,11 +37,15 @@ public class RedEnvelopeDubboServiceImpl implements RedEnvelopeDubboService {
 
 
     @Override
-    public List<EarningsDTO> getEarningsByOrders(List<String> orders) {
+    public List<EarningsDTO> getEarningsByOrders(List<OrderParam> params) {
         List<EarningsDTO> ret = new ArrayList<>();
-        for (String orderNo : orders){
-            EarningsDTO dto  =  redEnvelopeService.sumWithOrderNo(orderNo);
-            ret.add(dto);
+        for (OrderParam param : params){
+            List<EarningsDTO> dtos  =  redEnvelopeService.sumWithOrderNo(param.getOrderNo());
+            for (EarningsDTO dto : dtos){
+                if (dto.getUserId().compareTo(param.getUserId()) == 0){
+                    ret.add(dto);
+                }
+            }
         }
         return ret;
     }

+ 1 - 1
cif-service/src/main/java/com/txz/cif/service/RedEnvelopeService.java

@@ -29,7 +29,7 @@ public interface RedEnvelopeService extends Service<RedEnvelope> {
 
     List<UserTopBo> top(Integer type, Integer page, Integer size);
 
-    EarningsDTO sumWithOrderNo(String orderNo);
+    List<EarningsDTO> sumWithOrderNo(String orderNo);
 
     void settle(RedEnvelope redEnvelope);
 }

+ 3 - 2
cif-service/src/main/java/com/txz/cif/service/impl/RedEnvelopeServiceImpl.java

@@ -119,7 +119,7 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
     }
     
     @Override
-    public EarningsDTO sumWithOrderNo(String orderNo) {
+    public List<EarningsDTO> sumWithOrderNo(String orderNo) {
         return cRedEnvelopeMapper.sumWithOrderNo(orderNo);
     }
     
@@ -172,7 +172,8 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
                 try {
                     //判断当前用户是否第一次下单
                     Condition c = new Condition(RedEnvelope.class);
-                    c.createCriteria().andEqualTo("userId",userId.getUserId());
+                    c.createCriteria().andEqualTo("userId",userId.getUserId())
+                            .andIn("bizType",CollUtil.newArrayList(BizTypeEnum.OPEN_GROUP_RED_ENVELOPE.getKey(),BizTypeEnum.JOIN_GROUP_RED_ENVELOPE.getKey()));
                     int count =  countByCondition(c);
                     if (count == 0){
                         com.txz.operating.result.Result<ConfigDTO> openRedEnvelopeRate = operatingConfigDubboServiceClient.getConfigByCode("invited_amount");

+ 1 - 1
cif-service/src/main/resources/mapper/RedEnvelopeMapper.xml

@@ -61,6 +61,6 @@
   <select id="sumWithOrderNo" resultType="com.txz.cif.dto.EarningsDTO">
     SELECT SUM(amount) AS earnings, user_id as userId,order_no as orderNo
     FROM c_red_envelope
-    WHERE order_no=#{orderNo}
+    WHERE order_no=#{orderNo} group by user_id
   </select>
 </mapper>