123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package com.caimei.modules.user.service;
- import com.caimei.modules.user.dao.CmUserBalanceWithdrawalsDao;
- import com.caimei.modules.user.entity.CmUserBalanceWithdrawals;
- import com.caimei.modules.user.dao.CmUserBalanceRecordDao;
- import com.caimei.modules.user.dao.CmUserDao;
- import com.caimei.modules.user.entity.CmUser;
- import com.caimei.modules.user.entity.CmUserBalanceRecord;
- import com.caimei.utils.MathUtil;
- import com.thinkgem.jeesite.common.persistence.Page;
- import com.thinkgem.jeesite.common.service.CrudService;
- import com.thinkgem.jeesite.common.utils.StringUtils;
- import com.thinkgem.jeesite.modules.sys.entity.User;
- import com.thinkgem.jeesite.modules.sys.utils.UserUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.Resource;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.List;
- /**
- * 会所余额提现Service
- *
- * @author lijun
- * @version 2019-11-12
- */
- @Service
- @Transactional(readOnly = true)
- public class CmUserBalanceWithdrawalsService extends CrudService<CmUserBalanceWithdrawalsDao, CmUserBalanceWithdrawals> {
- @Resource
- CmUserBalanceWithdrawalsDao cmUserBalanceWithdrawalsDao;
- @Resource
- private CmUserDao cmUserDao;
- @Resource
- private CmUserBalanceRecordDao cmUserBalanceRecordDao;
- public CmUserBalanceWithdrawals get(String id) {
- CmUserBalanceWithdrawals withdrawals = super.get(id);
- setUserName(withdrawals);
- return withdrawals;
- }
- private void setUserName(CmUserBalanceWithdrawals withdrawals) {
- if (withdrawals != null) {
- if (StringUtils.isNotBlank(withdrawals.getApplicant())) {
- User user = UserUtils.get(withdrawals.getApplicant());
- if (user != null) {
- withdrawals.setApplicantName(user.getName());
- }
- }
- if (StringUtils.isNotBlank(withdrawals.getReviewer())) {
- User user = UserUtils.get(withdrawals.getReviewer());
- if (user != null) {
- withdrawals.setReviewerName(user.getName());
- }
- }
- }
- }
- public List<CmUserBalanceWithdrawals> findList(CmUserBalanceWithdrawals cmUserBalanceWithdrawals) {
- return super.findList(cmUserBalanceWithdrawals);
- }
- public Page<CmUserBalanceWithdrawals> findPage(Page<CmUserBalanceWithdrawals> page, CmUserBalanceWithdrawals cmUserBalanceWithdrawals) {
- Page<CmUserBalanceWithdrawals> withdrawalsPage = super.findPage(page, cmUserBalanceWithdrawals);
- List<CmUserBalanceWithdrawals> withdrawalsList = withdrawalsPage.getList();
- if (withdrawalsList != null && withdrawalsList.size() > 0) {
- for (CmUserBalanceWithdrawals withdrawals : withdrawalsList) {
- setUserName(withdrawals);
- }
- }
- return withdrawalsPage;
- }
- @Transactional(readOnly = false)
- public void save(CmUserBalanceWithdrawals cmUserBalanceWithdrawals) {
- CmUser cmUser = cmUserDao.get(String.valueOf(cmUserBalanceWithdrawals.getUserID()));
- if (MathUtil.compare(cmUser.getAbleUserMoney(), cmUserBalanceWithdrawals.getWithdrawalsFee()) > -1) {
- //余额必须大于等于提现金额
- User user = UserUtils.getUser();
- Date date = new Date();
- cmUserBalanceWithdrawals.setAddDate(date);
- cmUserBalanceWithdrawals.setApplicant(user.getId());
- cmUserBalanceWithdrawals.setStatus("0");
- cmUserBalanceWithdrawals.setDelFlag("0");
- cmUserBalanceWithdrawalsDao.insert(cmUserBalanceWithdrawals);
- }
- }
- @Transactional(readOnly = false)
- public void delete(CmUserBalanceWithdrawals cmUserBalanceWithdrawals) {
- cmUserBalanceWithdrawalsDao.deleteById(Integer.valueOf(cmUserBalanceWithdrawals.getId()));
- }
- @Transactional(readOnly = false)
- public void deleteById(Integer id) {
- cmUserBalanceWithdrawalsDao.deleteById(id);
- }
- @Transactional(readOnly = false)
- public void withdrawalReviewData(CmUserBalanceWithdrawals cmUserBalanceWithdrawals) {
- User user = UserUtils.getUser();
- Date time = new Date();
- if (StringUtils.isNotBlank(cmUserBalanceWithdrawals.getReason())) {
- //审核不通过
- cmUserBalanceWithdrawals.setStatus("2");
- cmUserBalanceWithdrawals.setReviewer(user.getId());
- cmUserBalanceWithdrawals.setReviewTime(time);
- cmUserBalanceWithdrawalsDao.update(cmUserBalanceWithdrawals);
- } else {
- //审核通过
- cmUserBalanceWithdrawals.setStatus("1");
- cmUserBalanceWithdrawals.setReviewer(user.getId());
- cmUserBalanceWithdrawals.setReviewTime(time);
- cmUserBalanceWithdrawals.setPayTime(time);
- cmUserBalanceWithdrawalsDao.update(cmUserBalanceWithdrawals);
- //添加余额收支记录
- CmUserBalanceRecord cmUserBalanceRecord = new CmUserBalanceRecord();
- cmUserBalanceRecord.setUserId(cmUserBalanceWithdrawals.getUserID().intValue());
- cmUserBalanceRecord.setType("2");
- cmUserBalanceRecord.setBalanceType("5");
- cmUserBalanceRecord.setAddDate(time);
- //提现金额
- BigDecimal withdrawalsFee = cmUserBalanceWithdrawals.getWithdrawalsFee();
- cmUserBalanceRecord.setAmount(String.valueOf(withdrawalsFee));
- cmUserBalanceRecord.setWithdrawalsId(Integer.parseInt(cmUserBalanceWithdrawals.getId()));//提现信息ID
- cmUserBalanceRecord.setDelFlag("0");
- cmUserBalanceRecordDao.insertUserBalanceRecord(cmUserBalanceRecord);
- //更新用户余额总金额
- CmUser cmUser = cmUserDao.get(String.valueOf(cmUserBalanceWithdrawals.getUserID()));
- cmUser.setUserID(cmUserBalanceWithdrawals.getUserID().intValue());
- BigDecimal sub = MathUtil.sub(cmUser.getAbleUserMoney(), withdrawalsFee);
- cmUser.setAbleUserMoney(sub.doubleValue());
- cmUser.setUserMoney(sub.doubleValue());
- cmUserDao.updateMoney(cmUser);
- }
- }
- @Transactional(readOnly = false)
- public void withdrawalEditSave(CmUserBalanceWithdrawals cmUserBalanceWithdrawals) {
- cmUserBalanceWithdrawalsDao.update(cmUserBalanceWithdrawals);
- }
- @Transactional(readOnly = false)
- public void rollBackApply(CmUserBalanceWithdrawals cmUserBalanceWithdrawals) {
- //撤销提现记录
- cmUserBalanceRecordDao.updateByWithdrawalsId(cmUserBalanceWithdrawals.getId());
- //撤销用户余额金额
- CmUser cmUser = cmUserDao.get(String.valueOf(cmUserBalanceWithdrawals.getUserID()));
- BigDecimal userMoney = MathUtil.add(cmUser.getAbleUserMoney(), cmUserBalanceWithdrawals.getWithdrawalsFee());
- cmUser.setAbleUserMoney(userMoney.doubleValue());
- cmUser.setUserMoney(userMoney.doubleValue());
- cmUserDao.updateMoney(cmUser);
- //撤销提现记录
- cmUserBalanceWithdrawals.setStatus("0");
- cmUserBalanceWithdrawals.setReviewTime(null);
- cmUserBalanceWithdrawals.setReviewer(null);
- cmUserBalanceWithdrawals.setPayTime(null);
- cmUserBalanceWithdrawalsDao.update(cmUserBalanceWithdrawals);
- }
- }
|