Browse Source

离线包状态

lyhzzz 6 months ago
parent
commit
56de729f60

+ 1 - 2
src/main/java/com/fdkankan/ucenter/controller/SceneCooperationController.java

@@ -68,8 +68,7 @@ public class SceneCooperationController extends BaseController {
             param.setLang(getLang());
         }
         param.setTimeZone(getTimeZone());
-        sceneCooperationService.saveBatchCooperation(param,username);
-        return Result.success();
+        return Result.success(sceneCooperationService.saveBatchCooperation(param,username));
     }
 
 

+ 6 - 3
src/main/java/com/fdkankan/ucenter/entity/ProductCooperation.java

@@ -28,11 +28,14 @@ public class ProductCooperation implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @TableField("order_id")
-    private Integer orderId;
+    @TableField("order_sn")
+    private String orderSn;
+
+    @TableField("num")
+    private String num;
 
     @TableField("cooperation_user_id")
-    private Integer cooperationUserId;
+    private Long cooperationUserId;
 
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")

+ 7 - 0
src/main/java/com/fdkankan/ucenter/mq/consumer/OrderDownConsumer.java

@@ -9,6 +9,8 @@ import com.fdkankan.ucenter.pay.strategy.impl.EntityOrderImpl;
 import com.fdkankan.ucenter.pay.strategy.impl.IncrementOrderImpl;
 import com.fdkankan.ucenter.service.IIncrementAutoOrderService;
 import com.fdkankan.ucenter.service.IIncrementOrderService;
+import com.fdkankan.ucenter.service.IProductOrderService;
+import com.fdkankan.ucenter.service.IProductService;
 import com.rabbitmq.client.Channel;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringEscapeUtils;
@@ -40,6 +42,8 @@ public class OrderDownConsumer {
     EntityOrderImpl entityOrder;
     @Autowired
     IIncrementAutoOrderService autoOrderService;
+    @Autowired
+    IProductOrderService productOrderService;
 
 
     @RabbitListener(
@@ -79,6 +83,9 @@ public class OrderDownConsumer {
             if("partOrder".equals(order.getOrderType())){
                 entityOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType,null);
             }
+            if("cooperationOrder".equals(order.getOrderType())){
+                productOrderService.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOpenId(),payType);
+            }
         }catch (Exception e){
             log.error("order-payResult----消费失败",e);
         }finally {

+ 7 - 0
src/main/java/com/fdkankan/ucenter/service/IProductCooperationService.java

@@ -2,6 +2,10 @@ package com.fdkankan.ucenter.service;
 
 import com.fdkankan.ucenter.entity.ProductCooperation;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.entity.ProductOrder;
+import com.fdkankan.ucenter.entity.User;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IProductCooperationService extends IService<ProductCooperation> {
 
+    void add(ProductOrder productOrder, List<User> users,List<String> numList);
+
+    void paySuccess(String orderSn);
 }

+ 5 - 1
src/main/java/com/fdkankan/ucenter/service/IProductOrderService.java

@@ -4,6 +4,8 @@ import com.fdkankan.ucenter.entity.ProductOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.ucenter.entity.User;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -14,5 +16,7 @@ import com.fdkankan.ucenter.entity.User;
  */
 public interface IProductOrderService extends IService<ProductOrder> {
 
-    ProductOrder createOrder(Integer totalCount, String key, User user,Integer payType,Integer timeZone);
+    ProductOrder createOrder(Integer totalCount, String key, User user,Integer payType, Integer timeZone);
+
+    void handleOrder(String orderSn, String tradeNo, String openId, Integer payType);
 }

+ 4 - 1
src/main/java/com/fdkankan/ucenter/service/ISceneCooperationService.java

@@ -43,5 +43,8 @@ public interface ISceneCooperationService extends IService<SceneCooperation> {
 
     Object cooperationSceneList(SceneParam param, String username);
 
-    void saveBatchCooperation(SceneCooperationParam param, String username);
+    ProductOrder saveBatchCooperation(SceneCooperationParam param, String username);
+
+    void successAddCooperation(List<String> numList,List<User> users,String lang,User loginUser);
+
 }

+ 33 - 0
src/main/java/com/fdkankan/ucenter/service/impl/ProductCooperationServiceImpl.java

@@ -1,11 +1,17 @@
 package com.fdkankan.ucenter.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.ucenter.entity.ProductCooperation;
+import com.fdkankan.ucenter.entity.ProductOrder;
+import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.mapper.IProductCooperationMapper;
 import com.fdkankan.ucenter.service.IProductCooperationService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +23,31 @@ import org.springframework.stereotype.Service;
 @Service
 public class ProductCooperationServiceImpl extends ServiceImpl<IProductCooperationMapper, ProductCooperation> implements IProductCooperationService {
 
+    @Override
+    public void add(ProductOrder productOrder, List<User> users,List<String> numList) {
+        List<ProductCooperation> productCooperations = new ArrayList<>();
+        for (String num : numList) {
+            for (User user : users) {
+                ProductCooperation productCooperation = new ProductCooperation();
+                productCooperation.setOrderSn(productOrder.getOrderSn());
+                productCooperation.setCooperationUserId(user.getId());
+                productCooperation.setNum(num);
+                productCooperations.add(productCooperation);
+            }
+        }
+        if(!productCooperations.isEmpty()){
+            this.saveBatch(productCooperations);
+        }
+
+    }
+
+    @Override
+    public void paySuccess(String orderSn) {
+        LambdaQueryWrapper<ProductCooperation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ProductCooperation::getOrderSn,orderSn);
+        List<ProductCooperation> list = this.list(wrapper);
+
+
+
+    }
 }

+ 22 - 1
src/main/java/com/fdkankan/ucenter/service/impl/ProductOrderServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.ucenter.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.ucenter.constant.OrderConstant;
 import com.fdkankan.ucenter.entity.Product;
@@ -9,6 +10,7 @@ import com.fdkankan.ucenter.httpClient.param.PayGoods;
 import com.fdkankan.ucenter.httpClient.service.PayService;
 import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
 import com.fdkankan.ucenter.mapper.IProductOrderMapper;
+import com.fdkankan.ucenter.service.IProductCooperationService;
 import com.fdkankan.ucenter.service.IProductOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.service.IProductService;
@@ -17,6 +19,8 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -34,8 +38,9 @@ public class ProductOrderServiceImpl extends ServiceImpl<IProductOrderMapper, Pr
     @Autowired
     PayService payService;
 
+
     @Override
-    public ProductOrder createOrder(Integer totalCount, String key, User user,Integer payType,Integer timeZone) {
+    public ProductOrder createOrder(Integer totalCount, String key, User user,Integer payType, Integer timeZone) {
         ProductOrder productOrder = new ProductOrder();
 
         Product product = productService.getByKey(key);
@@ -57,6 +62,22 @@ public class ProductOrderServiceImpl extends ServiceImpl<IProductOrderMapper, Pr
         }
         productOrder.setOrderSn(payOrderVo.getOrderSn());
         this.save(productOrder);
+
         return productOrder;
     }
+
+    @Autowired
+    IProductCooperationService productCooperationService;
+
+    @Override
+    public void handleOrder(String orderSn, String tradeNo, String openId, Integer payType) {
+        LambdaUpdateWrapper<ProductOrder> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(ProductOrder::getOrderSn,orderSn);
+        wrapper.set(ProductOrder::getTradeTime,new Date());
+        wrapper.set(ProductOrder::getNumber,tradeNo);
+        wrapper.set(ProductOrder::getPayStatus,1);
+        this.update(wrapper);
+
+        productCooperationService.paySuccess(orderSn);
+    }
 }

+ 27 - 16
src/main/java/com/fdkankan/ucenter/service/impl/SceneCooperationServiceImpl.java

@@ -62,6 +62,10 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
     RedisUtil redisUtil;
     @Autowired
     IMailTemplateService mailTemplateService;
+    @Autowired
+    IProductOrderService productOrderService;
+    @Autowired
+    IProductCooperationService productCooperationService;
 
     @Override
     public Long getCooperationSceneNum(Long userId, List<Integer> sceneSourceList) {
@@ -205,13 +209,15 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
     }
 
     @Override
-    public void saveCooperation(SceneCooperationParam param, String username) {
+    public void saveCooperation(SceneCooperationParam param, String loginUserName) {
         if(StringUtils.isEmpty(param.getUserName()) || StringUtils.isEmpty(param.getSceneNum())){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
         }
-        if(param.getUserName().equals( username)){
+        if(param.getUserName().equals( loginUserName)){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3024, LoginConstant.FAILURE_MSG_3024);
         }
+        User loginUser = userService.getByUserName(loginUserName);
+
         User user = userService.getByUserName(param.getUserName());
         if(user == null){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3021, LoginConstant.FAILURE_MSG_3021);
@@ -222,11 +228,11 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         List<ScenePlus> plusList = scenePlusService.getListByNums(numList);
         this.deleteCooperationList(proList,plusList);
 
-        saveCooperationCommon(param,Arrays.asList(user),proList,plusList);
+        saveCooperationCommon(loginUser,param.getLang(),Arrays.asList(user),proList,plusList);
     }
 
     @Override
-    public void saveBatchCooperation(SceneCooperationParam param, String loginUserName) {
+    public ProductOrder saveBatchCooperation(SceneCooperationParam param, String loginUserName) {
         if(param.getUserNameList() == null || param.getUserNameList().isEmpty() || StringUtils.isEmpty(param.getSceneNum())){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
         }
@@ -249,19 +255,24 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         ProductOrder productOrder = checkNeedPay(numList, users, loginUser, param.getPayType(), param.getTimeZone());
 
         if(productOrder == null){
-            List<ScenePro> proList = sceneProService.getListByNums(numList);
-            List<ScenePlus> plusList = scenePlusService.getListByNums(numList);
-            this.deleteCooperationList(proList,plusList);
-            saveCooperationCommon(param,users,proList,plusList);
+            successAddCooperation(numList,users,param.getLang(),loginUser);
+        }else {
+            productCooperationService.add(productOrder,users,numList);
         }
+        return productOrder;
 
+    }
 
 
-
+    @Override
+    public void  successAddCooperation(List<String> numList,List<User> users,String lang,User loginUser){
+        List<ScenePro> proList = sceneProService.getListByNums(numList);
+        List<ScenePlus> plusList = scenePlusService.getListByNums(numList);
+        this.deleteCooperationList(proList,plusList);
+        saveCooperationCommon(loginUser,lang,users,proList,plusList);
     }
 
-    @Autowired
-    IProductOrderService productOrderService;
+
 
     private ProductOrder checkNeedPay(List<String> numList, List<User> users,User loginUser,Integer payType,Integer timeZone) {
         Integer totalCount = 0;
@@ -282,15 +293,14 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         if(totalCount <=0){
             return null;
         }
-
-        return productOrderService.createOrder(totalCount,"cooperation",loginUser,payType,timeZone);
+        return productOrderService.createOrder(totalCount, "cooperation", loginUser, payType, timeZone);
 
     }
 
     @Autowired
     LaserService laserService;
 
-    private void saveCooperationCommon(SceneCooperationParam param,List<User> userList,List<ScenePro> proList, List<ScenePlus> plusList){
+    private void saveCooperationCommon(User LoginUser,String lang,List<User> userList,List<ScenePro> proList, List<ScenePlus> plusList){
 
         for (User user : userList) {
             if( !proList.isEmpty()){
@@ -301,7 +311,7 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
             }
 
             if("aws".equals(NacosProperty.uploadType)){
-                mailTemplateService.sendSceneCooperation(proList,plusList,user.getUserName(),param.getLang());
+                mailTemplateService.sendSceneCooperation(proList,plusList,user.getUserName(),lang);
             }
         }
 
@@ -310,7 +320,8 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         List<String> numList1 = collect1.stream().map(ScenePro::getNum).collect(Collectors.toList());
         List<String> numList2 = collect2.stream().map(ScenePlus::getNum).collect(Collectors.toList());
         numList1.addAll(numList2);
-        laserService.saveBatchCooperation(numList2,param.getUserName(),param.getUserNameList());
+        List<String> collect = userList.stream().map(User::getUserName).collect(Collectors.toList());
+        laserService.saveBatchCooperation(numList2,LoginUser.getUserName(),collect);
 
     }