Mr.qian 3 nedēļas atpakaļ
vecāks
revīzija
46bf96b826

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

@@ -6,7 +6,6 @@ import com.txz.cif.model.RedEnvelope;
 import com.txz.cif.web.bo.UserTopBo;
 
 import java.math.BigDecimal;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
@@ -16,7 +15,7 @@ public interface RedEnvelopeMapper extends Mapper<RedEnvelope> {
 
     List<UserTopBo> top(HashMap<String, Object> map);
 
-    List<EarningsDTO> sumWithOrderNo(String orderNo);
+    List<EarningsDTO> sumWithOrderNo(String orderNo, Long userId);
 
     BigDecimal sumByStatus(HashMap map);
 }

+ 1 - 14
cif-service/src/main/java/com/txz/cif/dubbo/impl/RedEnvelopeDubboServiceImpl.java

@@ -1,28 +1,15 @@
 package com.txz.cif.dubbo.impl;
 
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.date.DateUtil;
 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;
 import com.txz.cif.service.RedEnvelopeDubboService;
 import com.txz.cif.service.RedEnvelopeService;
-import com.txz.cif.service.UserDubboService;
-import com.txz.cif.service.UserService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
-import org.apache.dubbo.config.annotation.Service;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 @Slf4j
@@ -40,7 +27,7 @@ public class RedEnvelopeDubboServiceImpl implements RedEnvelopeDubboService {
     public List<EarningsDTO> getEarningsByOrders(List<OrderParam> params) {
         List<EarningsDTO> ret = new ArrayList<>();
         for (OrderParam param : params){
-            List<EarningsDTO> dtos  =  redEnvelopeService.sumWithOrderNo(param.getOrderNo());
+            List<EarningsDTO> dtos  =  redEnvelopeService.sumWithOrderNo(param.getOrderNo(), param.getUserId());
             for (EarningsDTO dto : dtos){
                 if (dto.getUserId().compareTo(param.getUserId()) == 0){
                     ret.add(dto);

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

@@ -1,9 +1,9 @@
 package com.txz.cif.service;
+
+import com.txz.cif.core.Service;
 import com.txz.cif.dto.EarningsDTO;
 import com.txz.cif.dto.Result;
 import com.txz.cif.model.RedEnvelope;
-import com.txz.cif.core.Service;
-import com.txz.cif.param.SignRedEnvelopeParam;
 import com.txz.cif.web.bo.UserTopBo;
 import com.txz.cif.web.para.RedEnvelopeParam;
 
@@ -30,7 +30,7 @@ public interface RedEnvelopeService extends Service<RedEnvelope> {
 
     List<UserTopBo> top(Integer type, Integer page, Integer size);
 
-    List<EarningsDTO> sumWithOrderNo(String orderNo);
+    List<EarningsDTO> sumWithOrderNo(String orderNo, Long userId);
 
     void settle(RedEnvelope redEnvelope);
 

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

@@ -119,8 +119,8 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
     }
     
     @Override
-    public List<EarningsDTO> sumWithOrderNo(String orderNo) {
-        return cRedEnvelopeMapper.sumWithOrderNo(orderNo);
+    public List<EarningsDTO> sumWithOrderNo(String orderNo, Long userId) {
+        return cRedEnvelopeMapper.sumWithOrderNo(orderNo, userId);
     }
     
     @Override
@@ -128,12 +128,12 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
         flowService.settle(redEnvelope);
         update(RedEnvelope.builder().id(redEnvelope.getId()).status(2).build());
     }
-
+    
     @Override
     public BigDecimal sumByStatus(HashMap map) {
         return cRedEnvelopeMapper.sumByStatus(map);
     }
-
+    
     public static void main(String[] args) {
         System.out.println(DateUtil.now());
     }
@@ -175,12 +175,12 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
                 }
                 // 直推红包
                 try {
-                    //判断当前用户是否第一次下单
+                    // 判断当前用户是否第一次下单
                     Condition c = new Condition(RedEnvelope.class);
-                    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){
+                    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");
                         log.info("operatingConfigDubboServiceClient.getConfigByCode openRedEnvelopeRate:" + JSONObject.toJSONString(openRedEnvelopeRate));
                         String amountStr = openRedEnvelopeRate.getData().getValueInfo();
@@ -260,7 +260,7 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
             try {
                 noticeDubboServiceClient.addRewardNotice(getNoticeEunm(bizType), param.getUserIds().get(0).getOrderNo(), redEnvelope.getUserId());
             } catch (Exception e) {
-                log.error("发送消息异常",e);
+                log.error("发送消息异常", e);
             }
             return redEnvelope;
         } else {

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

@@ -63,7 +63,7 @@
     SELECT SUM(amount) AS earnings, user_id as userId,order_no as orderNo
     FROM c_red_envelope
     WHERE order_no=#{orderNo} 
-    AND user_id = #{userId} <!-- 添加分片键确保查询正确路由 -->
+    AND user_id = #{userId}
     group by user_id
   </select>