| | |
| | | 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 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; |
| | |
| | | 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.math.RoundingMode; |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | /** |
| | | * @auther lyq |
| | |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class ComActUserWalletServiceImpl extends ServiceImpl<ComActUserWalletMapper, ComActUserWalletDO> implements ComActUserWalletService { |
| | | public class ComActUserWalletServiceImpl extends ServiceImpl<ComActUserWalletMapper, ComActUserWalletDO> |
| | | implements ComActUserWalletService { |
| | | |
| | | @Resource |
| | | private ComActEasyPhotoDAO comActEasyPhotoDAO; |
| | |
| | | |
| | | /** |
| | | * 查询用户钱包信息 |
| | | * @param walletDetailDTO 请求参数 |
| | | * |
| | | * @param walletDetailDTO |
| | | * 请求参数 |
| | | * @return 用户钱包信息 |
| | | */ |
| | | @Override |
| | | public R getWallet(ComActWalletDetailDTO walletDetailDTO){ |
| | | ComActWalletVO comActWalletVO = new ComActWalletVO(); |
| | | //查询用户钱包 |
| | | ComActUserWalletDO userWalletDO = this.baseMapper.selectOne(new QueryWrapper<ComActUserWalletDO>() |
| | | .lambda().eq(ComActUserWalletDO::getUserId,walletDetailDTO.getUserId()) |
| | | 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(); |
| | |
| | | if(resultMap != null && !resultMap.isEmpty()){ |
| | | comActWalletVO.setCommunityName(resultMap.get("name")); |
| | | if(StringUtils.isEmpty(resultMap.get("content"))){ |
| | | this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN,"收益说明",walletDetailDTO.getCommunityId(),5); |
| | | this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN, "收益说明", walletDetailDTO.getCommunityId(), |
| | | 5); |
| | | comActWalletVO.setAgreement(Constants.PROFIT_EXPLAIN); |
| | | }else{ |
| | | comActWalletVO.setAgreement(resultMap.get("content")); |
| | |
| | | |
| | | /** |
| | | * 查询用户绑定的社区收益排行榜 |
| | | * @param walletTradeDTO 请求参数 |
| | | * |
| | | * @param walletTradeDTO |
| | | * 请求参数 |
| | | * @return 社区收益排行榜 |
| | | */ |
| | | @Override |
| | | public R getWalletRanking(PageComActWalletTradeDTO walletTradeDTO){ |
| | | return R.ok(this.baseMapper.getWalletRanking(new Page(walletTradeDTO.getPageNum(),walletTradeDTO.getPageSize()),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){ |
| | |
| | | } |
| | | |
| | | //查询随手拍活动 |
| | | ComActEasyPhotoActivityDO photoActivityDO = comActEasyPhotoActivityMapper.selectById(easyPhotoDO.getActivityId()); |
| | | ComActEasyPhotoActivityDO photoActivityDO = |
| | | comActEasyPhotoActivityMapper.selectById(easyPhotoDO.getActivityId()); |
| | | if(photoActivityDO == null){ |
| | | log.error("给用户添加收益失败,原因:未查到活动记录,活动id:" + easyPhotoDO.getActivityId()); |
| | | return; |
| | |
| | | // Date nowDate = new Date(); |
| | | //查询用户钱包 |
| | | ComActUserWalletDO userWalletDO = comActUserWalletMapper.selectOne(new QueryWrapper<ComActUserWalletDO>() |
| | | .lambda().eq(ComActUserWalletDO::getUserId,easyPhotoDO.getSponsorId()).eq(ComActUserWalletDO::getCommunityId,easyPhotoDO.getCommunityId())); |
| | | .lambda().eq(ComActUserWalletDO::getUserId, easyPhotoDO.getSponsorId()) |
| | | .eq(ComActUserWalletDO::getCommunityId, easyPhotoDO.getCommunityId())); |
| | | if(userWalletDO == null){ |
| | | userWalletDO = new ComActUserWalletDO(); |
| | | userWalletDO.setIncomeAmount(BigDecimal.ZERO); |
| | |
| | | comActUserWalletMapper.updateById(userWalletDO); |
| | | |
| | | //新增钱包资金交易记录 |
| | | Long tradeId = comActUserWalletTradeService.addWalletTrade(easyPhotoDO.getSponsorId(),easyPhotoDO.getCommunityId() |
| | | ,easyPhotoDO.getId(),amount, ComActUserWalletTradeDO.type.fb,easyPhotoDO.getDetail() |
| | | ,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() |
| | | ComActEasyPhotoRewardDO easyPhotoRewardDO = |
| | | comActEasyPhotoRewardMapper.selectOne(new QueryWrapper<ComActEasyPhotoRewardDO>().lambda() |
| | | .eq(ComActEasyPhotoRewardDO::getCommunityId,easyPhotoDO.getCommunityId()) |
| | | .eq(ComActEasyPhotoRewardDO::getUserId,easyPhotoDO.getSponsorId()) |
| | | .eq(ComActEasyPhotoRewardDO::getIsRead,ComActEasyPhotoRewardDO.isRead.no)); |
| | |
| | | String openid = map.get("openid"); |
| | | WxXCXTempSend util = new WxXCXTempSend(); |
| | | try { |
| | | WxUtil.sendSubscribeJLDZ(openid,util.getAppAccessToken(),"随手拍有奖活动",amount.setScale(2, RoundingMode.HALF_UP),activityTypeName); |
| | | WxUtil.sendSubscribeJLDZ(openid, util.getAppAccessToken(), "随手拍有奖活动", |
| | | amount.setScale(2, RoundingMode.HALF_UP), activityTypeName); |
| | | }catch (Exception e){ |
| | | log.error("消息推送失败,失败原因:" + e.getMessage()); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 分页查询收益结算列表 |
| | | * @param pageWalletAdminDTO 请求参数 |
| | | * |
| | | * @param pageWalletAdminDTO |
| | | * 请求参数 |
| | | * @return 收益结算列表 |
| | | */ |
| | | @Override |
| | | public R pageUserWalletAdmin(PageComActWalletAdminDTO pageWalletAdminDTO){ |
| | | return R.ok(this.baseMapper.getUserWalletList(new Page(pageWalletAdminDTO.getPageNum(),pageWalletAdminDTO.getPageSize()),pageWalletAdminDTO)); |
| | | return R.ok(this.baseMapper.getUserWalletList( |
| | | new Page(pageWalletAdminDTO.getPageNum(), pageWalletAdminDTO.getPageSize()), pageWalletAdminDTO)); |
| | | } |
| | | |
| | | /** |
| | | * 用户结算收益 |
| | | * @param settlementAdminDTO 请求参数 |
| | | * |
| | | * @param settlementAdminDTO |
| | | * 请求参数 |
| | | * @return 结算结果 |
| | | */ |
| | | @Override |
| | |
| | | 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); |
| | | 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); |
| | | comActUserWalletChangeService.addWalletChange(userWalletDO.getUserId(), userWalletDO.getCommunityId(), |
| | | userWalletDO.getId(), oldIncomeAmount, userWalletDO.getIncomeAmount(), oldAvailableAmount, |
| | | userWalletDO.getAvailableAmount(), oldSettlementAmount, userWalletDO.getSettlementAmount(), |
| | | tradeServiceId); |
| | | |
| | | return R.ok(); |
| | | }catch (Exception e){ |