Quellcode durchsuchen

深时场景下单成功判断场景类型,加次数

lyhzzz vor 2 Jahren
Ursprung
Commit
d4eaf0b89f

+ 20 - 5
src/main/java/com/fdkankan/ucenter/pay/strategy/impl/DownloadOrderImpl.java

@@ -1,10 +1,15 @@
 package com.fdkankan.ucenter.pay.strategy.impl;
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fdkankan.ucenter.entity.DownloadOrder;
+import com.fdkankan.ucenter.entity.ScenePlus;
+import com.fdkankan.ucenter.entity.ScenePro;
 import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.pay.strategy.OrderStrategy;
 import com.fdkankan.ucenter.service.IDownloadOrderService;
+import com.fdkankan.ucenter.service.IScenePlusService;
+import com.fdkankan.ucenter.service.ISceneProService;
 import com.fdkankan.ucenter.service.IUserService;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.StringUtils;
@@ -18,6 +23,10 @@ public class DownloadOrderImpl implements OrderStrategy {
     private IDownloadOrderService downloadOrderService;
     @Autowired
     private IUserService userService;
+    @Autowired
+    private ISceneProService sceneProService;
+    @Autowired
+    private IScenePlusService scenePlusService;
 
     @Override
     public void handleOrder(String orderSn, String tradeNo, String openId, int paymentTypeName, Long spaceId) throws Exception {
@@ -33,13 +42,19 @@ public class DownloadOrderImpl implements OrderStrategy {
             throw new Exception("更新增值权益订单失败");
         }
         //更新用户下载次数
-        User userEntity = userService.getById(downloadOrder.getUserId());
-        if(StringUtils.isNotBlank(downloadOrder.getSceneNum()) && downloadOrder.getSceneNum().contains("SS")){
-            userEntity.setSsDownloadNumTotal(userEntity.getSsDownloadNumTotal() + downloadOrder.getCount());
+        LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(User::getId,downloadOrder.getUserId());
+        if(StringUtils.isNotBlank(downloadOrder.getSceneNum())){
+            Integer sceneSource = sceneProService.getSceneSourceByNum(downloadOrder.getSceneNum());
+            if(sceneSource != null && sceneSource == 4){    //深时场景
+                wrapper.setSql("ss_download_num_total = ss_download_num_total + " + downloadOrder.getCount());
+            }else {
+                wrapper.setSql("download_num_total = download_num_total + " + downloadOrder.getCount());
+            }
         }else {
-            userEntity.setDownloadNumTotal(userEntity.getDownloadNumTotal() + downloadOrder.getCount());
+            wrapper.setSql("download_num_total = download_num_total + " + downloadOrder.getCount());
         }
-        userService.updateById(userEntity);
+        userService.update(wrapper);
     }
 
     @Override

+ 2 - 1
src/main/java/com/fdkankan/ucenter/service/ISceneProService.java

@@ -92,4 +92,5 @@ public interface ISceneProService extends IService<ScenePro> {
 
      void updateOssStatus(String path,Integer payStatus) ;
 
-    }
+    Integer getSceneSourceByNum(String sceneNum);
+}

+ 16 - 0
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -1107,6 +1107,22 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
+    public Integer getSceneSourceByNum(String sceneNum) {
+        Integer sceneSource = null;
+        ScenePro scenePro = this.getByNum(sceneNum);
+        if(scenePro != null){
+            sceneSource = scenePro.getSceneSource();
+        }
+        if(scenePro == null){
+            ScenePlus scenePlus = scenePlusService.getByNum(sceneNum);
+            if(scenePlus != null){
+                sceneSource = scenePlus.getSceneSource();
+            }
+        }
+        return sceneSource;
+    }
+
+    @Override
     public void setQrCode(String buildType,String num) throws Exception {
         String basePath = NacosProperty.getMainUrl();
         if("V2".equals(buildType)){