SysAgencyFeeApprovalServiceImpl.java 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.ydtech.modules.admin.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.ydtech.aop.exception.DescribeException;
  7. import com.ydtech.core.page.HttpResult;
  8. import com.ydtech.exception.SystemException;
  9. import com.ydtech.modules.admin.dao.SysAgencyFeeApprovalMapper;
  10. import com.ydtech.modules.admin.dao.SysAgencyFeeApprovalRecordMapper;
  11. import com.ydtech.modules.admin.model.SysAgencyFeeApproval;
  12. import com.ydtech.modules.admin.model.SysAgencyFeeApprovalRecord;
  13. import com.ydtech.modules.admin.model.SysUser;
  14. import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalAddDto;
  15. import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalDto;
  16. import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalEditDto;
  17. import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalPageDto;
  18. import com.ydtech.modules.admin.model.vo.AgencyExtractFee;
  19. import com.ydtech.modules.admin.service.SysAgencyFeeApprovalService;
  20. import com.ydtech.modules.admin.service.SysAgencyLeaderService;
  21. import com.ydtech.modules.admin.service.SysUserService;
  22. import com.ydtech.modules.base.controller.BaseController;
  23. import com.ydtech.modules.order.entity.BasePageResult;
  24. import com.ydtech.modules.order.entity.InsOrders;
  25. import com.ydtech.utils.StringUtils;
  26. import com.ydtech.utils.idgen.IdGenerate;
  27. import org.springframework.stereotype.Service;
  28. import org.springframework.transaction.annotation.Transactional;
  29. import javax.annotation.Resource;
  30. import java.math.BigDecimal;
  31. import java.util.Date;
  32. import java.util.List;
  33. /**
  34. * 机构保费抽成审批表(SysAgencyFeeApproval)表服务实现类
  35. *
  36. * @author makejava
  37. * @since 2024-07-25 11:33:55
  38. */
  39. @Service("sysAgencyFeeApprovalService")
  40. public class SysAgencyFeeApprovalServiceImpl extends ServiceImpl<SysAgencyFeeApprovalMapper, SysAgencyFeeApproval> implements SysAgencyFeeApprovalService {
  41. @Resource
  42. private SysAgencyFeeApprovalMapper sysAgencyFeeApprovalMapper;
  43. @Resource
  44. private SysAgencyFeeApprovalRecordMapper sysAgencyFeeApprovalRecordMapper;
  45. @Resource
  46. private SysAgencyLeaderService sysAgencyLeaderService;
  47. @Override
  48. @Transactional(rollbackFor = Exception.class)
  49. public HttpResult insert(SysAgencyFeeApprovalAddDto sysAgencyFeeApprovalAddDto) {
  50. BigDecimal actualFee = sysAgencyFeeApprovalAddDto.getActualFee();
  51. if (actualFee == null || actualFee.equals(new BigDecimal("0.00"))) {
  52. throw new SystemException("请输入提现金额");
  53. }
  54. //当前登录用户
  55. SysUser user = BaseController.getUser();
  56. //查询当前用户可提现金额
  57. AgencyExtractFee agencyExtractFee = sysAgencyLeaderService.queryExtractFee(user.getId());
  58. BigDecimal cashFee = agencyExtractFee.getCashFee();
  59. int compare = cashFee.compareTo(actualFee);
  60. if (compare < 0) {
  61. throw new SystemException("提现金额不能超过可提现金额");
  62. }
  63. SysAgencyFeeApproval sysAgencyFeeApproval = BeanUtil.copyProperties(sysAgencyFeeApprovalAddDto, SysAgencyFeeApproval.class);
  64. sysAgencyFeeApproval.setUserId(user.getId());
  65. sysAgencyFeeApproval.setUserName(user.getName());
  66. sysAgencyFeeApproval.setDeptId(user.getDeptId());
  67. sysAgencyFeeApproval.setDeptName(user.getDeptName());
  68. sysAgencyFeeApproval.setNumber(IdGenerate.nextId());
  69. //总保费
  70. sysAgencyFeeApproval.setSumpremium(agencyExtractFee.getSumpremium());
  71. //总保费抽成费用
  72. sysAgencyFeeApproval.setExtractFee(agencyExtractFee.getExtractFee());
  73. //已提现抽成费用
  74. sysAgencyFeeApproval.setHistoryFee(agencyExtractFee.getHistoryFee());
  75. //可提现抽成费用
  76. sysAgencyFeeApproval.setCashFee(actualFee);
  77. sysAgencyFeeApproval.setStartTime(agencyExtractFee.getStartTime());
  78. sysAgencyFeeApproval.setProportional(agencyExtractFee.getProportional());
  79. sysAgencyFeeApproval.setCreateBy(user.getName());
  80. sysAgencyFeeApproval.setCreateTime(new Date());
  81. //提交审核信息
  82. save(sysAgencyFeeApproval);
  83. //保存添加记录
  84. SysAgencyFeeApprovalRecord sysAgencyFeeApprovalRecord = BeanUtil.copyProperties(sysAgencyFeeApproval, SysAgencyFeeApprovalRecord.class);
  85. sysAgencyFeeApprovalRecord.setApprovalId(sysAgencyFeeApproval.getId());
  86. sysAgencyFeeApprovalRecord.setId(null);
  87. boolean i = sysAgencyFeeApprovalRecordMapper.insert(sysAgencyFeeApprovalRecord)>0;
  88. if (i) {
  89. return HttpResult.ok("提现申请提交成功");
  90. }
  91. return HttpResult.error("提现申请提交失败");
  92. }
  93. @Override
  94. @Transactional(rollbackFor = Exception.class)
  95. public HttpResult edit(SysAgencyFeeApprovalEditDto sysAgencyFeeApprovalEditDto) {
  96. SysAgencyFeeApproval sysAgencyFeeApproval = sysAgencyFeeApprovalMapper.selectById(sysAgencyFeeApprovalEditDto.getId());
  97. String status = sysAgencyFeeApproval.getStatus();
  98. if (status.equals("1") || status.equals("2")) {
  99. throw new DescribeException("已审批,不可重复操作");
  100. }
  101. sysAgencyFeeApproval.setAuditTime(new Date());
  102. sysAgencyFeeApproval.setRemark(sysAgencyFeeApprovalEditDto.getRemark());
  103. sysAgencyFeeApproval.setStatus(sysAgencyFeeApprovalEditDto.getStatus());
  104. sysAgencyFeeApproval.setAuditUser(BaseController.getUser().getName());
  105. //保存审批信息
  106. sysAgencyFeeApprovalMapper.updateById(sysAgencyFeeApproval);
  107. //保存审批记录
  108. SysAgencyFeeApprovalRecord sysAgencyFeeApprovalRecord = BeanUtil.copyProperties(sysAgencyFeeApproval, SysAgencyFeeApprovalRecord.class);
  109. sysAgencyFeeApprovalRecord.setApprovalId(sysAgencyFeeApproval.getId());
  110. sysAgencyFeeApprovalRecord.setId(null);
  111. sysAgencyFeeApprovalRecord.setCreateTime(new Date());
  112. sysAgencyFeeApprovalRecord.setCreateBy(BaseController.getUser().getName());
  113. boolean i = sysAgencyFeeApprovalRecordMapper.insert(sysAgencyFeeApprovalRecord)>0;
  114. if (i) {
  115. return HttpResult.ok("审核成功");
  116. }
  117. return HttpResult.error("审核失败");
  118. }
  119. @Override
  120. public BasePageResult<SysAgencyFeeApproval> queryPage(SysAgencyFeeApprovalPageDto sysAgencyFeeApprovalPageDto) {
  121. Page<SysAgencyFeeApproval> page = new Page<>(sysAgencyFeeApprovalPageDto.getPageNum(), sysAgencyFeeApprovalPageDto.getPageSize());
  122. LambdaQueryWrapper<SysAgencyFeeApproval> wrapper = new LambdaQueryWrapper<>();
  123. wrapper.eq(!StringUtils.isNullOrEmpty(sysAgencyFeeApprovalPageDto.getStatus()),SysAgencyFeeApproval::getStatus,sysAgencyFeeApprovalPageDto.getStatus());
  124. wrapper.eq(!StringUtils.isNullOrEmpty(sysAgencyFeeApprovalPageDto.getUserId()),SysAgencyFeeApproval::getUserId,sysAgencyFeeApprovalPageDto.getUserId());
  125. wrapper.orderByDesc(SysAgencyFeeApproval::getId);
  126. Page<SysAgencyFeeApproval> insOrdersPage = page(page, wrapper);
  127. return new BasePageResult<>(sysAgencyFeeApprovalPageDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
  128. insOrdersPage.getRecords());
  129. }
  130. @Override
  131. public List<SysAgencyFeeApprovalRecord> queryOperate(Integer id) {
  132. return sysAgencyFeeApprovalRecordMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApprovalRecord>()
  133. .eq(SysAgencyFeeApprovalRecord::getApprovalId, id));
  134. }
  135. @Override
  136. public boolean confirmAccounts(SysAgencyFeeApprovalEditDto sysAgencyFeeApprovalEditDto) {
  137. SysAgencyFeeApproval sysAgencyFeeApproval = sysAgencyFeeApprovalMapper.selectById(sysAgencyFeeApprovalEditDto.getId());
  138. if (sysAgencyFeeApproval.getStatus().equals("0") || sysAgencyFeeApproval.getStatus().equals("2")) {
  139. throw new DescribeException("未审批或审批未通,不可确认转账");
  140. }
  141. sysAgencyFeeApproval.setHistoryFee(sysAgencyFeeApproval.getCashFee());
  142. sysAgencyFeeApproval.setPicture(sysAgencyFeeApprovalEditDto.getPicture());
  143. sysAgencyFeeApprovalMapper.updateById(sysAgencyFeeApproval);
  144. //保存确认转账记录
  145. SysAgencyFeeApprovalRecord sysAgencyFeeApprovalRecord = BeanUtil.copyProperties(sysAgencyFeeApproval, SysAgencyFeeApprovalRecord.class);
  146. sysAgencyFeeApprovalRecord.setApprovalId(sysAgencyFeeApproval.getId());
  147. sysAgencyFeeApprovalRecord.setId(null);
  148. sysAgencyFeeApprovalRecord.setCreateTime(new Date());
  149. sysAgencyFeeApprovalRecord.setCreateBy(BaseController.getUser().getName());
  150. return sysAgencyFeeApprovalRecordMapper.insert(sysAgencyFeeApprovalRecord)>0;
  151. }
  152. @Override
  153. public List<SysAgencyFeeApproval> queryOperateInfo(SysAgencyFeeApprovalDto sysAgencyFeeApprovalDto) {
  154. List<SysAgencyFeeApproval> feeApprovalList = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
  155. .eq(SysAgencyFeeApproval::getUserId, BaseController.getUserId()).eq(SysAgencyFeeApproval::getStatus, 1)
  156. .ge(StringUtils.isNotEmpty(sysAgencyFeeApprovalDto.getBeginTime()), SysAgencyFeeApproval::getAuditTime,sysAgencyFeeApprovalDto.getBeginTime())
  157. .le(StringUtils.isNotEmpty(sysAgencyFeeApprovalDto.getEndTime()),SysAgencyFeeApproval::getAuditTime,sysAgencyFeeApprovalDto.getEndTime()));
  158. return feeApprovalList;
  159. }
  160. }