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);
|
}
|
|
|
}
|