From 73acd2a65a5dbab4573ef2a93a258c0da177bcd3 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期四, 17 十一月 2022 11:58:38 +0800
Subject: [PATCH] 普达物业公司权限处理
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java | 259 ++++++++++++++++++++++++++++++++-------------------
1 files changed, 163 insertions(+), 96 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 e4b9a51..4ccb547 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
@@ -1,6 +1,17 @@
package com.panzhihua.service_community.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Date;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_community.entity.SysTemplateConfig;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -12,23 +23,15 @@
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.ComActEasyPhotoRewardMapper;
-import com.panzhihua.service_community.dao.ComActUserWalletMapper;
+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;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.Map;
+import lombok.extern.slf4j.Slf4j;
/**
* @auther lyq
@@ -37,7 +40,8 @@
*/
@Slf4j
@Service
-public class ComActUserWalletServiceImpl extends ServiceImpl<ComActUserWalletMapper, ComActUserWalletDO> implements ComActUserWalletService {
+public class ComActUserWalletServiceImpl extends ServiceImpl<ComActUserWalletMapper, ComActUserWalletDO>
+ implements ComActUserWalletService {
@Resource
private ComActEasyPhotoDAO comActEasyPhotoDAO;
@@ -51,20 +55,28 @@
private ComActUserWalletChangeService comActUserWalletChangeService;
@Resource
private ComActEasyPhotoRewardMapper comActEasyPhotoRewardMapper;
+ @Resource
+ private ComActActSignDAO comActActSignDAO;
+ @Resource
+ private ComActDAO comActDAO;
+ @Resource
+ private SysTemplateConfigDao sysTemplateConfigDao;
/**
* 查询用户钱包信息
- * @param walletDetailDTO 请求参数
- * @return 用户钱包信息
+ *
+ * @param walletDetailDTO
+ * 请求参数
+ * @return 用户钱包信息
*/
@Override
- public R getWallet(ComActWalletDetailDTO walletDetailDTO){
+ public R getWallet(ComActWalletDetailDTO walletDetailDTO) {
ComActWalletVO comActWalletVO = new ComActWalletVO();
- //查询用户钱包
- ComActUserWalletDO userWalletDO = this.baseMapper.selectOne(new QueryWrapper<ComActUserWalletDO>()
- .lambda().eq(ComActUserWalletDO::getUserId,walletDetailDTO.getUserId())
- .eq(ComActUserWalletDO::getCommunityId,walletDetailDTO.getCommunityId()));
- if(userWalletDO == null){//若钱包不存在则新建钱包
+ // 查询用户钱包
+ ComActUserWalletDO userWalletDO = this.baseMapper.selectOne(new QueryWrapper<ComActUserWalletDO>().lambda()
+ .eq(ComActUserWalletDO::getUserId, walletDetailDTO.getUserId())
+ .eq(ComActUserWalletDO::getCommunityId, walletDetailDTO.getCommunityId()));
+ if (userWalletDO == null) {// 若钱包不存在则新建钱包
userWalletDO = new ComActUserWalletDO();
userWalletDO.setIncomeAmount(BigDecimal.ZERO);
userWalletDO.setAvailableAmount(BigDecimal.ZERO);
@@ -75,24 +87,27 @@
userWalletDO.setCreateAt(new Date());
this.baseMapper.insert(userWalletDO);
}
- BeanUtils.copyProperties(userWalletDO,comActWalletVO);
- Map<String,String> resultMap = this.baseMapper.getCommunityName(walletDetailDTO.getCommunityId());
- if(!resultMap.isEmpty()){
+ BeanUtils.copyProperties(userWalletDO, comActWalletVO);
+ 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());
+ if (StringUtils.isEmpty(resultMap.get("content"))) {
+ this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN, "收益说明", walletDetailDTO.getCommunityId(),
+ 5);
comActWalletVO.setAgreement(Constants.PROFIT_EXPLAIN);
- }else{
+ } else {
comActWalletVO.setAgreement(resultMap.get("content"));
}
-
+ } else {
+ this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN, "收益说明", walletDetailDTO.getCommunityId(), 5);
+ comActWalletVO.setAgreement(Constants.PROFIT_EXPLAIN);
}
Integer easyCount = 0;
- //查询用户发布随手拍数量
+ // 查询用户发布随手拍数量
easyCount = comActEasyPhotoDAO.selectCount(new QueryWrapper<ComActEasyPhotoDO>().lambda()
- .eq(ComActEasyPhotoDO::getSponsorId,walletDetailDTO.getUserId())
- .eq(ComActEasyPhotoDO::getCommunityId,walletDetailDTO.getCommunityId()));
+ .eq(ComActEasyPhotoDO::getSponsorId, walletDetailDTO.getUserId())
+ .eq(ComActEasyPhotoDO::getCommunityId, walletDetailDTO.getCommunityId()));
comActWalletVO.setEasyCount(easyCount);
return R.ok(comActWalletVO);
@@ -100,51 +115,68 @@
/**
* 查询用户绑定的社区收益排行榜
- * @param walletTradeDTO 请求参数
- * @return 社区收益排行榜
+ *
+ * @param walletTradeDTO
+ * 请求参数
+ * @return 社区收益排行榜
*/
@Override
- public R getWalletRanking(PageComActWalletTradeDTO walletTradeDTO){
- return R.ok(this.baseMapper.getWalletRanking(new Page(walletTradeDTO.getPageNum(),walletTradeDTO.getPageSize()),walletTradeDTO));
+ public R getWalletRanking(PageComActWalletTradeDTO walletTradeDTO) {
+ return R.ok(this.baseMapper
+ .getWalletRanking(new Page(walletTradeDTO.getPageNum(), walletTradeDTO.getPageSize()), walletTradeDTO));
}
/**
* 随手拍审核通过给用户添加收益
- * @param easyPhotoId 随手拍id
+ *
+ * @param easyPhotoId
+ * 随手拍id
*/
@Override
- public void examineAddMoney(Integer activityType,Long easyPhotoId,Long userId,BigDecimal amount){
+ public void examineAddMoney(Integer activityType, Long easyPhotoId, Long userId, BigDecimal amount) {
- //查询随手拍信息
+ // 查询随手拍信息
ComActEasyPhotoDO easyPhotoDO = comActEasyPhotoDAO.selectById(easyPhotoId);
- if(easyPhotoDO == null){
+ if (easyPhotoDO == null) {
log.error("给用户添加收益失败,原因:未查到随手拍记录,随手拍id:" + easyPhotoId);
return;
}
- if(easyPhotoDO.getActivityId() == null){//用户未参加活动,无需添加收益
+ if (easyPhotoDO.getActivityId() == null) {// 用户未参加活动,无需添加收益
log.error("给用户添加收益失败,原因:用户未参加活动,无需添加收益,随手拍id:" + easyPhotoId);
return;
}
- //查询随手拍活动
-// ComActEasyPhotoActivityDO photoActivityDO = comActEasyPhotoActivityMapper.selectById(easyPhotoDO.getActivityId());
-// if(photoActivityDO == null){
-// log.error("给用户添加收益失败,原因:未查到活动记录,活动id:" + easyPhotoDO.getActivityId());
-// return;
-// }
+ // 查询随手拍活动
+ ComActEasyPhotoActivityDO photoActivityDO =
+ comActEasyPhotoActivityMapper.selectById(easyPhotoDO.getActivityId());
+ if (photoActivityDO == null) {
+ log.error("给用户添加收益失败,原因:未查到活动记录,活动id:" + easyPhotoDO.getActivityId());
+ return;
+ }
-// if(photoActivityDO.getStatus() != ComActEasyPhotoActivityDO.status.jxz){
-// log.error("给用户添加收益失败,原因:活动未在进行中,活动id:" + easyPhotoDO.getActivityId());
-// return;
-// }
+ // if(photoActivityDO.getStatus() != ComActEasyPhotoActivityDO.status.jxz){
+ // log.error("给用户添加收益失败,原因:活动未在进行中,活动id:" + easyPhotoDO.getActivityId());
+ // 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();
- //查询用户钱包
+ // Date nowDate = new Date();
+ // 查询用户钱包
ComActUserWalletDO userWalletDO = comActUserWalletMapper.selectOne(new QueryWrapper<ComActUserWalletDO>()
- .lambda().eq(ComActUserWalletDO::getUserId,easyPhotoDO.getSponsorId()).eq(ComActUserWalletDO::getCommunityId,easyPhotoDO.getCommunityId()));
- if(userWalletDO == null){
+ .lambda().eq(ComActUserWalletDO::getUserId, easyPhotoDO.getSponsorId())
+ .eq(ComActUserWalletDO::getCommunityId, easyPhotoDO.getCommunityId()));
+ if (userWalletDO == null) {
userWalletDO = new ComActUserWalletDO();
userWalletDO.setIncomeAmount(BigDecimal.ZERO);
userWalletDO.setAvailableAmount(BigDecimal.ZERO);
@@ -156,36 +188,37 @@
this.baseMapper.insert(userWalletDO);
}
- if(amount.compareTo(BigDecimal.ZERO) == 0){
+ if (amount.compareTo(BigDecimal.ZERO) == 0) {
log.error("此次参加活动的随手拍收益为0,不记录本次交易");
return;
- }else{
- //记录钱包变动前金额
+ } else {
+ // 记录钱包变动前金额
BigDecimal oldIncomeAmount = userWalletDO.getIncomeAmount();
BigDecimal oldAvailableAmount = userWalletDO.getAvailableAmount();
BigDecimal oldSettlementAmount = userWalletDO.getSettlementAmount();
- //更新钱包金额
+ // 更新钱包金额
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(),amount, ComActUserWalletTradeDO.type.fb,"发布随手拍"
- ,userId,userWalletDO.getId(),ComActUserWalletTradeDO.changeType.add);
+ // 新增钱包资金交易记录
+ Long tradeId = comActUserWalletTradeService.addWalletTrade(easyPhotoDO.getSponsorId(),
+ easyPhotoDO.getCommunityId(), 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);
+ // 新增钱包资金变动记录
+ 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){
+ // 查询用户未读奖励金额
+ 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());
@@ -193,63 +226,97 @@
easyPhotoRewardDO.setCreateAt(new Date());
easyPhotoRewardDO.setAmount(amount);
comActEasyPhotoRewardMapper.insert(easyPhotoRewardDO);
- }else{
+ } else {
easyPhotoRewardDO.setAmount(easyPhotoRewardDO.getAmount().add(amount));
easyPhotoRewardDO.setUpdateAt(new Date());
comActEasyPhotoRewardMapper.updateById(easyPhotoRewardDO);
}
}
- //更新随手拍活动信息
+ // 更新随手拍活动信息
easyPhotoDO.setActivityType(activityType);
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");
+ ComActDO comActDO=comActDAO.selectById(easyPhotoDO.getCommunityId());
+ SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, comActDO.getAreaCode()).eq(SysTemplateConfig::getType,7));
+ WxXCXTempSend util = new WxXCXTempSend();
+ try {
+ WxUtil.sendSubscribeJLDZ(openid, util.getAccessToken(), "随手拍有奖活动",
+ amount.setScale(2, RoundingMode.HALF_UP), activityTypeName,sysTemplateConfig.getTemplateId());
+ } catch (Exception e) {
+ log.error("消息推送失败,失败原因:" + e.getMessage());
+ }
+ }
}
/**
* 分页查询收益结算列表
- * @param pageWalletAdminDTO 请求参数
- * @return 收益结算列表
+ *
+ * @param pageWalletAdminDTO
+ * 请求参数
+ * @return 收益结算列表
*/
@Override
- public R pageUserWalletAdmin(PageComActWalletAdminDTO pageWalletAdminDTO){
- return R.ok(this.baseMapper.getUserWalletList(new Page(pageWalletAdminDTO.getPageNum(),pageWalletAdminDTO.getPageSize()),pageWalletAdminDTO));
+ public R pageUserWalletAdmin(PageComActWalletAdminDTO pageWalletAdminDTO) {
+ return R.ok(this.baseMapper.getUserWalletList(
+ new Page(pageWalletAdminDTO.getPageNum(), pageWalletAdminDTO.getPageSize()), pageWalletAdminDTO));
}
/**
* 用户结算收益
- * @param settlementAdminDTO 请求参数
- * @return 结算结果
+ *
+ * @param settlementAdminDTO
+ * 请求参数
+ * @return 结算结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R userWalletSettlementAdmin(ComActWalletSettlementAdminDTO settlementAdminDTO){
- //查询用户钱包
+ public R userWalletSettlementAdmin(ComActWalletSettlementAdminDTO settlementAdminDTO) {
+ // 查询用户钱包
ComActUserWalletDO userWalletDO = this.baseMapper.selectById(settlementAdminDTO.getId());
- if(userWalletDO == null){
+ if (userWalletDO == null) {
return R.fail("未查询到用户钱包");
}
- if(userWalletDO.getAvailableAmount().compareTo(settlementAdminDTO.getSettlementAmount()) < 0){
+ if (userWalletDO.getAvailableAmount().compareTo(settlementAdminDTO.getSettlementAmount()) < 0) {
return R.fail("结算金额不能高于钱包可结算金额");
}
try {
BigDecimal oldIncomeAmount = userWalletDO.getIncomeAmount();
BigDecimal oldAvailableAmount = userWalletDO.getAvailableAmount();
BigDecimal oldSettlementAmount = userWalletDO.getSettlementAmount();
- userWalletDO.setAvailableAmount(userWalletDO.getAvailableAmount().subtract(settlementAdminDTO.getSettlementAmount()));
- userWalletDO.setSettlementAmount(userWalletDO.getSettlementAmount().add(settlementAdminDTO.getSettlementAmount()));
+ userWalletDO.setAvailableAmount(
+ userWalletDO.getAvailableAmount().subtract(settlementAdminDTO.getSettlementAmount()));
+ userWalletDO
+ .setSettlementAmount(userWalletDO.getSettlementAmount().add(settlementAdminDTO.getSettlementAmount()));
userWalletDO.setUpdateAt(new Date());
this.baseMapper.updateById(userWalletDO);
- //添加钱包交易记录
- Long tradeServiceId = comActUserWalletTradeService.addWalletTrade(userWalletDO.getUserId(),userWalletDO.getCommunityId()
- ,null,settlementAdminDTO.getSettlementAmount(),ComActUserWalletTradeDO.type.js
- ,settlementAdminDTO.getRemark(),settlementAdminDTO.getUserId(),userWalletDO.getId(),ComActUserWalletTradeDO.changeType.reduce);
- //添加钱包变动记录
- comActUserWalletChangeService.addWalletChange(userWalletDO.getUserId(),userWalletDO.getCommunityId(),userWalletDO.getId()
- ,oldIncomeAmount,userWalletDO.getIncomeAmount(),oldAvailableAmount,userWalletDO.getAvailableAmount()
- ,oldSettlementAmount,userWalletDO.getSettlementAmount(),tradeServiceId);
+ // 添加钱包交易记录
+ Long tradeServiceId = comActUserWalletTradeService.addWalletTrade(userWalletDO.getUserId(),
+ userWalletDO.getCommunityId(), null, settlementAdminDTO.getSettlementAmount(),
+ ComActUserWalletTradeDO.type.js, settlementAdminDTO.getRemark(), settlementAdminDTO.getUserId(),
+ userWalletDO.getId(), ComActUserWalletTradeDO.changeType.reduce);
+ // 添加钱包变动记录
+ comActUserWalletChangeService.addWalletChange(userWalletDO.getUserId(), userWalletDO.getCommunityId(),
+ userWalletDO.getId(), oldIncomeAmount, userWalletDO.getIncomeAmount(), oldAvailableAmount,
+ userWalletDO.getAvailableAmount(), oldSettlementAmount, userWalletDO.getSettlementAmount(),
+ tradeServiceId);
return R.ok();
- }catch (Exception e){
+ } catch (Exception e) {
log.error("给用户结算收益失败,原因:" + e.getMessage());
return R.fail("结算失败");
}
--
Gitblit v1.7.1