admin
2022-04-01 14c0cd0ea9eb372cd5db511c788b2daa3cc7069b
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
package com.yeshi.makemoney.app.service.impl.money;
 
import java.lang.Exception;
import javax.annotation.Resource;
 
import com.ks.lib.common.exception.ParamsException;
import com.yeshi.makemoney.app.exception.money.UserMoneyRecordException;
import org.springframework.stereotype.Service;
 
import java.util.Date;
 
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.bean.BeanUtil;
 
import java.util.List;
 
import com.yeshi.makemoney.app.dao.money.UserMoneyRecordMapper;
import com.yeshi.makemoney.app.entity.money.UserMoneyRecord;
import com.yeshi.makemoney.app.service.inter.money.UserMoneyRecordService;
import com.yeshi.makemoney.app.service.query.money.UserMoneyRecordQuery;
import com.yeshi.makemoney.app.dao.money.UserMoneyRecordMapper.DaoQuery;
 
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
 
@Service
public class UserMoneyRecordServiceImpl implements UserMoneyRecordService {
 
    @Resource
    private UserMoneyRecordMapper userMoneyRecordMapper;
 
    @Override
    public List<UserMoneyRecord> list(UserMoneyRecordQuery userMoneyRecordQuery, int page, int pageSize) {
        DaoQuery daoQuery = new DaoQuery();
        try {
            BeanUtil.copyProperties(userMoneyRecordQuery, daoQuery);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        daoQuery.start = (page - 1) * pageSize;
        daoQuery.count = pageSize;
        return userMoneyRecordMapper.list(daoQuery);
    }
 
    @Override
    public long count(UserMoneyRecordQuery userMoneyRecordQuery) {
        DaoQuery daoQuery = new DaoQuery();
        try {
            BeanUtil.copyProperties(userMoneyRecordQuery, daoQuery);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return userMoneyRecordMapper.count(daoQuery);
    }
 
    @Override
    public UserMoneyRecord get(Long id) {
        return userMoneyRecordMapper.selectByPrimaryKey(id);
    }
 
 
    private void validateRecord(UserMoneyRecord record) throws ParamsException {
        if (record == null) {
            throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "记录不能为空");
        }
        if (record.getUser() == null || record.getUser().getId() == null) {
            throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "记录用户不能为空");
        }
 
        if (record.getMoney() == null) {
            throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "金额不能为空");
        }
 
        if (record.getType() == null) {
            throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "记录类型不能为空");
        }
 
        if (record.getSerialNo() == null) {
            throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "记录序列号不能为空");
        }
 
        if (record.getAdd() == null) {
            throw new ParamsException(ParamsException.CODE_PARAMS_NOT_ENOUGH, "增减类型不能为空");
        }
 
        if (record.getShow() == null) {
            record.setShow(true);
        }
 
        if (record.getCreateTime() == null) {
            record.setCreateTime(new Date());
        }
    }
 
 
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void add(UserMoneyRecord userMoneyRecord) throws ParamsException {
        validateRecord(userMoneyRecord);
        //保存
        userMoneyRecordMapper.insertSelective(userMoneyRecord);
    }
 
    @Override
    public void update(UserMoneyRecord userMoneyRecord) {
        if (userMoneyRecord.getUpdateTime() == null) {
            userMoneyRecord.setUpdateTime(new Date());
        }
        //保存
        userMoneyRecordMapper.updateByPrimaryKey(userMoneyRecord);
    }
 
    @Override
    public void delete(List<Long> idList) {
        for (Long id : idList) {
            userMoneyRecordMapper.deleteByPrimaryKey(id);
        }
    }
 
    @Override
    public UserMoneyRecord selectBySerialNo(String serialNo) {
        DaoQuery daoQuery = new DaoQuery();
        daoQuery.serialNo = serialNo;
        daoQuery.count = 1;
        List<UserMoneyRecord> recordList = userMoneyRecordMapper.list(daoQuery);
        if (recordList == null || recordList.size() == 0) {
            return null;
        }
        return recordList.get(0);
    }
 
 
}