| | |
| | | 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; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | |
| | |
| | | private ComActUserWalletTradeService comActUserWalletTradeService; |
| | | @Resource |
| | | private ComActUserWalletChangeService comActUserWalletChangeService; |
| | | @Resource |
| | | private ComActEasyPhotoRewardMapper comActEasyPhotoRewardMapper; |
| | | @Resource |
| | | private ComActActSignDAO comActActSignDAO; |
| | | |
| | | /** |
| | | * 查询用户钱包信息 |
| | |
| | | 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; |
| | |
| | | * @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); |
| | |
| | | // 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(); |
| | | //查询用户钱包 |
| | |
| | | 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{ |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |