From 2e64c232ab6b51b2cecf1ee96e1e9b709234f326 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期六, 21 八月 2021 16:35:14 +0800
Subject: [PATCH] 随手拍改版接口开发

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java |   99 ++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 72 insertions(+), 27 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java
index e75c4e0..2ad0c0f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java
@@ -12,13 +12,10 @@
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.wallet.ComActWalletVO;
 import com.panzhihua.common.utlis.StringUtils;
-import com.panzhihua.service_community.dao.ComActEasyPhotoActivityMapper;
-import com.panzhihua.service_community.dao.ComActEasyPhotoDAO;
-import com.panzhihua.service_community.dao.ComActUserWalletMapper;
-import com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityDO;
-import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO;
-import com.panzhihua.service_community.model.dos.ComActUserWalletDO;
-import com.panzhihua.service_community.model.dos.ComActUserWalletTradeDO;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
 import com.panzhihua.service_community.service.ComActUserWalletChangeService;
 import com.panzhihua.service_community.service.ComActUserWalletService;
 import com.panzhihua.service_community.service.ComActUserWalletTradeService;
@@ -29,6 +26,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.Map;
 
@@ -51,6 +49,10 @@
     private ComActUserWalletTradeService comActUserWalletTradeService;
     @Resource
     private ComActUserWalletChangeService comActUserWalletChangeService;
+    @Resource
+    private ComActEasyPhotoRewardMapper comActEasyPhotoRewardMapper;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
 
     /**
      * 查询用户钱包信息
@@ -76,16 +78,18 @@
             this.baseMapper.insert(userWalletDO);
         }
         BeanUtils.copyProperties(userWalletDO,comActWalletVO);
-        Map<String,String> resultMap = this.baseMapper.getCommunityName(walletDetailDTO.getCommunityId());
-        if(!resultMap.isEmpty()){
+        Map<String,String> resultMap = this.baseMapper.getCommunityName(walletDetailDTO.getCommunityId(),5);
+        if(resultMap != null && !resultMap.isEmpty()){
             comActWalletVO.setCommunityName(resultMap.get("name"));
             if(StringUtils.isEmpty(resultMap.get("content"))){
-                this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN,walletDetailDTO.getCommunityId());
+                this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN,"收益说明",walletDetailDTO.getCommunityId(),5);
                 comActWalletVO.setAgreement(Constants.PROFIT_EXPLAIN);
             }else{
                 comActWalletVO.setAgreement(resultMap.get("content"));
             }
-
+        }else{
+            this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN,"收益说明",walletDetailDTO.getCommunityId(),5);
+            comActWalletVO.setAgreement(Constants.PROFIT_EXPLAIN);
         }
 
         Integer easyCount = 0;
@@ -113,7 +117,7 @@
      * @param easyPhotoId   随手拍id
      */
     @Override
-    public void examineAddMoney(Integer activityType,Long easyPhotoId,Long userId){
+    public void examineAddMoney(Integer activityType,Long easyPhotoId,Long userId,BigDecimal amount){
 
         //查询随手拍信息
         ComActEasyPhotoDO easyPhotoDO = comActEasyPhotoDAO.selectById(easyPhotoId);
@@ -139,6 +143,16 @@
 //            return;
 //        }
 
+        //计算收益
+        if(activityType.equals(ComActEasyPhotoDO.activityType.yz)){
+            amount = photoActivityDO.getGoodReward();
+        }else if(activityType.equals(ComActEasyPhotoDO.activityType.jl)){
+            amount = photoActivityDO.getExcellentReward();
+        }else if(activityType.equals(ComActEasyPhotoDO.activityType.pt)){
+            amount = photoActivityDO.getOrdinaryReward();
+        }else if(activityType.equals(ComActEasyPhotoDO.activityType.yb)){
+            amount = photoActivityDO.getCommonlyReward();
+        }
 
 //        Date nowDate = new Date();
         //查询用户钱包
@@ -156,17 +170,7 @@
             this.baseMapper.insert(userWalletDO);
         }
 
-        //计算收益
-        BigDecimal profitAmount = BigDecimal.ZERO;
-        if(activityType.equals(ComActEasyPhotoDO.activityType.yz)){
-            profitAmount = photoActivityDO.getGoodReward();
-        }else if(activityType.equals(ComActEasyPhotoDO.activityType.jl)){
-            profitAmount = photoActivityDO.getExcellentReward();
-        }else if(activityType.equals(ComActEasyPhotoDO.activityType.pt)){
-            profitAmount = photoActivityDO.getOrdinaryReward();
-        }
-
-        if(profitAmount.compareTo(BigDecimal.ZERO) == 0){
+        if(amount.compareTo(BigDecimal.ZERO) == 0){
             log.error("此次参加活动的随手拍收益为0,不记录本次交易");
             return;
         }else{
@@ -176,24 +180,65 @@
             BigDecimal oldSettlementAmount = userWalletDO.getSettlementAmount();
 
             //更新钱包金额
-            userWalletDO.setIncomeAmount(userWalletDO.getIncomeAmount().add(profitAmount));
-            userWalletDO.setAvailableAmount(userWalletDO.getAvailableAmount().add(profitAmount));
+            userWalletDO.setIncomeAmount(userWalletDO.getIncomeAmount().add(amount));
+            userWalletDO.setAvailableAmount(userWalletDO.getAvailableAmount().add(amount));
             comActUserWalletMapper.updateById(userWalletDO);
 
             //新增钱包资金交易记录
             Long tradeId = comActUserWalletTradeService.addWalletTrade(easyPhotoDO.getSponsorId(),easyPhotoDO.getCommunityId()
-                    ,easyPhotoDO.getId(),profitAmount, ComActUserWalletTradeDO.type.fb,"发布随手拍"
+                    ,easyPhotoDO.getId(),amount, ComActUserWalletTradeDO.type.fb,easyPhotoDO.getDetail()
                     ,userId,userWalletDO.getId(),ComActUserWalletTradeDO.changeType.add);
 
             //新增钱包资金变动记录
             comActUserWalletChangeService.addWalletChange(easyPhotoDO.getSponsorId(),easyPhotoDO.getCommunityId(),userWalletDO.getId()
                     ,oldIncomeAmount,userWalletDO.getIncomeAmount(),oldAvailableAmount,userWalletDO.getAvailableAmount()
                     ,oldSettlementAmount,userWalletDO.getSettlementAmount(),tradeId);
+
+            //查询用户未读奖励金额
+            ComActEasyPhotoRewardDO easyPhotoRewardDO = comActEasyPhotoRewardMapper.selectOne(new QueryWrapper<ComActEasyPhotoRewardDO>().lambda()
+                    .eq(ComActEasyPhotoRewardDO::getCommunityId,easyPhotoDO.getCommunityId())
+                    .eq(ComActEasyPhotoRewardDO::getUserId,easyPhotoDO.getSponsorId())
+                    .eq(ComActEasyPhotoRewardDO::getIsRead,ComActEasyPhotoRewardDO.isRead.no));
+            if(easyPhotoRewardDO == null){
+                easyPhotoRewardDO = new ComActEasyPhotoRewardDO();
+                easyPhotoRewardDO.setCommunityId(easyPhotoDO.getCommunityId());
+                easyPhotoRewardDO.setUserId(easyPhotoDO.getSponsorId());
+                easyPhotoRewardDO.setIsRead(ComActEasyPhotoRewardDO.isRead.no);
+                easyPhotoRewardDO.setCreateAt(new Date());
+                easyPhotoRewardDO.setAmount(amount);
+                comActEasyPhotoRewardMapper.insert(easyPhotoRewardDO);
+            }else{
+                easyPhotoRewardDO.setAmount(easyPhotoRewardDO.getAmount().add(amount));
+                easyPhotoRewardDO.setUpdateAt(new Date());
+                comActEasyPhotoRewardMapper.updateById(easyPhotoRewardDO);
+            }
         }
         //更新随手拍活动信息
         easyPhotoDO.setActivityType(activityType);
-        easyPhotoDO.setActivityAmount(profitAmount);
+        easyPhotoDO.setActivityAmount(amount);
         comActEasyPhotoDAO.updateById(easyPhotoDO);
+
+        String activityTypeName = "";
+        if(easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)){
+            activityTypeName = "优质";
+        }else if(easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)){
+            activityTypeName = "精良";
+        }else if(easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)){
+            activityTypeName = "普通";
+        }else if(easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)){
+            activityTypeName = "一般";
+        }
+        //发放奖励以后给用户推送消息
+        Map<String,String> map = comActActSignDAO.getUserOpenId(easyPhotoDO.getSponsorId());
+        if(map != null){
+            String openid = map.get("openid");
+            WxXCXTempSend util = new WxXCXTempSend();
+            try {
+                WxUtil.sendSubscribeJLDZ(openid,util.getAppAccessToken(),"随手拍有奖活动",amount.setScale(2, RoundingMode.HALF_UP),activityTypeName);
+            }catch (Exception e){
+                log.error("消息推送失败,失败原因:" + e.getMessage());
+            }
+        }
     }
 
     /**

--
Gitblit v1.7.1