mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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<ComActUserWalletTradeMapper, ComActUserWalletTradeDO>
    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<ComActUserWalletTradeRewardExcelVO> 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));
    }
 
}