package com.panzhihua.service_community.service.impl; import java.math.BigDecimal; import java.util.Date; import java.util.List; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO; import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.ComActUserWalletTradeRewardExcelVO; import com.panzhihua.service_community.dao.ComActUserWalletTradeMapper; import com.panzhihua.service_community.model.dos.ComActUserWalletTradeDO; import com.panzhihua.service_community.service.ComActUserWalletTradeService; import lombok.extern.slf4j.Slf4j; /** * @auther lyq * @create 2021-06-25 10:35:22 * @describe 用户钱包交易记录表服务实现类 */ @Slf4j @Service public class ComActUserWalletTradeServiceImpl extends ServiceImpl implements ComActUserWalletTradeService { /** * 查询用户收支记录列表 * * @param walletTradeDTO * 请求参数 * @return 收支记录 */ @Override public R getWalletTrade(PageComActWalletTradeDTO walletTradeDTO) { return R.ok(this.baseMapper.getUserWalletTradeList( new Page(walletTradeDTO.getPageNum(), walletTradeDTO.getPageSize()), walletTradeDTO)); } /** * 新增钱包交易记录 * * @param userId * 用户id * @param communityId * 社区id * @param serviceId * 交易业务id * @param amount * 交易金额 * @param type * 交易类型(1.发布随手拍 2.结算) * @param remark * 交易备注 * @param createBy * 操作人id * @param walletId * 钱包id * @param changeType * 变动类型(1.增加 2.减少) */ @Override public Long addWalletTrade(Long userId, Long communityId, Long serviceId, BigDecimal amount, Integer type, String remark, Long createBy, Long walletId, Integer changeType) { ComActUserWalletTradeDO walletTradeDO = new ComActUserWalletTradeDO(); walletTradeDO.setUserId(userId); walletTradeDO.setCommunityId(communityId); walletTradeDO.setServiceId(serviceId); walletTradeDO.setAmount(amount); walletTradeDO.setType(type); walletTradeDO.setRemark(remark); walletTradeDO.setCreateBy(createBy); walletTradeDO.setWalletId(walletId); walletTradeDO.setChangeType(changeType); walletTradeDO.setCreateAt(new Date()); this.baseMapper.insert(walletTradeDO); return walletTradeDO.getId(); } /** * 分页查询交易记录 * * @param pageTradeAdminDTO * 请求参数 * @return 交易记录列表 */ @Override public R pageUserWalletTradeAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) { return R.ok(this.baseMapper.getUserWalletTradeAdmin( new Page(pageTradeAdminDTO.getPageNum(), pageTradeAdminDTO.getPageSize()), pageTradeAdminDTO)); } /** * 查询用户交易记录总额 * * @param pageTradeAdminDTO * 请求参数 * @return 交易记录总额 */ @Override public R getTradeUserTotalWalletTradeAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) { BigDecimal total = this.baseMapper.getTradeUserTotalWalletTradeAdmin(pageTradeAdminDTO); if (total == null) { total = BigDecimal.ZERO; } return R.ok(total); } @Override public R getTradeUserTotalWalletTradeExportAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) { return R.ok(this.baseMapper.getTradeUserTotalWalletTradeExportAdmin(pageTradeAdminDTO)); } @Override public R getTradeUserTotalJLWalletTradeExportAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) { List tradeList = this.baseMapper.getTradeUserTotalJLWalletTradeExportAdmin(pageTradeAdminDTO); tradeList.forEach(trade -> { if (trade.getType().equals("1")) { trade.setType("发布随手拍"); } }); return R.ok(tradeList); } @Override public R getTradeUserStatisticsAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) { return R.ok(this.baseMapper.getTradeUserStatisticsAdmin(pageTradeAdminDTO)); } }