SysAgencyFeeApprovalServiceImpl.java 9.8 KB

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