| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- package com.ydtech.modules.admin.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.admin.dao.SysAmountAuditingMapper;
- import com.ydtech.modules.admin.dao.SysUserAccountHistoryMapper;
- import com.ydtech.modules.admin.model.dto.MyCollectInAdvanceDto;
- import com.ydtech.modules.admin.model.dto.MyIncomeAndExpensesQueryDto;
- import com.ydtech.modules.admin.model.dto.SysAmountAuditingDto;
- import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
- import com.ydtech.modules.admin.model.po.SysAmountAuditingHistory;
- import com.ydtech.modules.admin.model.po.SysUserAccount;
- import com.ydtech.modules.admin.model.po.SysUserAccountHistory;
- import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
- import com.ydtech.modules.admin.model.vo.SysAmountRejectVo;
- import com.ydtech.modules.admin.service.SysAmountAuditingHistoryService;
- import com.ydtech.modules.admin.service.SysAmountAuditingService;
- import com.ydtech.modules.admin.service.SysUserAccountService;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.fnc.entity.InsPlyIncome;
- import com.ydtech.modules.order.entity.BasePageResult;
- import com.ydtech.utils.StringUtils;
- import com.ydtech.utils.sendCollectUtils.SendCollectUtils;
- import org.apache.commons.lang3.ObjectUtils;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- @Service
- public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingMapper, SysAmountAuditingEntity> implements SysAmountAuditingService {
- @Autowired
- private SysUserAccountService sysUserAccountService;
- @Autowired
- private SysAmountAuditingService sysAmountAuditingService;
- @Autowired
- private SysAmountAuditingHistoryService sysAmountAuditingHistoryService;
- @Autowired
- private SysUserAccountHistoryMapper sysUserAccountHistoryMapper;
- @Autowired
- private SendCollectUtils sendCollectUtils;
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/19 8:46
- * @Description: 审核提现
- */
- @Override
- @Transactional
- public void AmountReview(SysAmountAuditingVo sysAmountAuditingVo) {
- //审核
- if(sysAmountAuditingVo.getId()==null || "".equals(sysAmountAuditingVo.getId())){
- throw new SystemException("提现审核记录id不能为空");
- }
- //添加验证非空的判断
- if(sysAmountAuditingVo.getAccountId()==null || "".equals(sysAmountAuditingVo.getAccountId())){
- throw new SystemException("未绑定银行卡信息");
- }
- if(sysAmountAuditingVo.getAccountName()==null || "".equals(sysAmountAuditingVo.getAccountName())){
- throw new SystemException("内部账户名称不能为空");
- }
- if(sysAmountAuditingVo.getBankCardNum()==null || "".equals(sysAmountAuditingVo.getBankCardNum())){
- throw new SystemException("内部银行卡号不能为空");
- }
- if(sysAmountAuditingVo.getBankName()==null || "".equals(sysAmountAuditingVo.getBankName())){
- throw new SystemException("内部开户行名称不能为空");
- }
- if(sysAmountAuditingVo.getBankNum()==null || "".equals(sysAmountAuditingVo.getBankNum())){
- throw new SystemException("内部银行卡开户行号不能为空");
- }
- SysAmountAuditingEntity sysAmountAuditingEntity = sysAmountAuditingService.getById(sysAmountAuditingVo.getId());
- //提现审核金额
- BigDecimal amount = sysAmountAuditingVo.getAmount();
- //提现人
- String userId = sysAmountAuditingVo.getUserId();
- // SysUserAccount sysUserAccountEntity = new SysUserAccount();
- // 用户扣减金额
- if (StringUtils.isNotEmpty(userId)) {
- // sysUserAccountEntity.setUserId(userId);
- //提现人账户
- SysUserAccount sysUserAccount = sysUserAccountService.getById(userId);
- if (ObjectUtils.isNotEmpty(sysUserAccount)) {
- //注释掉原先按类型提现的逻辑 ,改为不区分类型 add by hxl 2024-06-18
- /**
- String amountStatus = sysAmountAuditingVo.getAmountStatus();
- if (StringUtils.isNotEmpty(amountStatus)) {
- if ("1".equals(amountStatus)) {
- sysUserAccount.setHandlingAmountAccount(amount);
- sysUserAccount.setHandlingAmountPayment(sysUserAccount.getHandlingAmountPayment().subtract(amount));
- // sysUserAccountEntity.setHandlingFee(afterAmount);
- } else if ("2".equals(amountStatus)) {
- sysUserAccount.setDocumentaryAmountAccount(amount);
- sysUserAccount.setDocumentaryAmountpayment(sysUserAccount.getDocumentaryAmountpayment().subtract(amount));
- // sysUserAccountEntity.setDocumentary(afterAmount);
- } else {
- sysUserAccount.setPromotionAmountAccount(amount);
- sysUserAccount.setPromotionAmountPayment(sysUserAccount.getPromotionAmountPayment().subtract(amount));
- // sysUserAccountEntity.setPromotion(afterAmount);
- }
- }
- **/
- //已到账金额 = 原先的到账金额+ 已到账的金额
- sysUserAccount.setSumAmountAccount((sysUserAccount.getSumAmountAccount()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountAccount()).add(amount));
- //支付中的金额 = 原先的支付金额 -去提现的金额
- sysUserAccount.setSumAmountPayment((sysUserAccount.getSumAmountPayment()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountPayment()).subtract(amount));
- sysUserAccountService.updateById(sysUserAccount);
- }
- sysAmountAuditingVo.setAuditingStatus("3");
- sysAmountAuditingVo.setAuditingUserId(BaseController.getUser().getId());
- sysAmountAuditingVo.setAuditingTime(new Date());
- BeanUtils.copyProperties(sysAmountAuditingVo, sysAmountAuditingEntity);
- sysAmountAuditingEntity.setCreateTime(null);
- baseMapper.updateById(sysAmountAuditingEntity);
- //推送提现记录
- // sendCollectUtils.sendCollect(sysAmountAuditingVo);
- //通过审核表id查询历史记录表
- LambdaQueryWrapper<SysUserAccountHistory> lqw = new LambdaQueryWrapper<>();
- lqw.eq(SysUserAccountHistory::getAuditiingId, sysAmountAuditingEntity.getId());
- lqw.eq(SysUserAccountHistory::getUserId, userId);
- //插入轨迹表审核成功数据
- SysUserAccountHistory sysUserAccountHistory = sysUserAccountHistoryMapper.selectOne(lqw);
- //插入轨迹表
- SysAmountAuditingHistory sysAmountAuditingHistory =new SysAmountAuditingHistory(null, sysAmountAuditingEntity.getId(), amount, userId,new Date(),"4", "1",sysUserAccountHistory.getId());
- sysAmountAuditingHistoryService.save(sysAmountAuditingHistory);
- }
- }
- @Override
- public SysAmountAuditingEntity getByUserId(String userId,String amountStatus) {
- return baseMapper.getByUserId(userId,amountStatus);
- }
- @Override
- public HttpResult<BasePageResult<SysAmountAuditingEntity>> queryByVo(SysAmountAuditingVo sysAmountAuditingVo) {
- try{
- HashMap<String, Object> params = new HashMap<>();
- PageInfo<List<InsPlyIncome>> pageHelper = null;
- PageHelper.startPage(sysAmountAuditingVo.getPageNum(),sysAmountAuditingVo.getPageSize());
- params.put("pageNum",sysAmountAuditingVo.getPageNum());
- params.put("pageSize",sysAmountAuditingVo.getPageSize());
- if(ObjectUtils.isNotEmpty(sysAmountAuditingVo.getStartTime())){
- params.put("startDate",sysAmountAuditingVo.getStartTime());
- }
- if(ObjectUtils.isNotEmpty(sysAmountAuditingVo.getEndTime())){
- params.put("endDate",sysAmountAuditingVo.getEndTime());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAuditingStatus())){
- params.put("auditingStatus",sysAmountAuditingVo.getAuditingStatus());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getUserId())){
- params.put("userId",sysAmountAuditingVo.getUserId());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getId())){
- params.put("id",sysAmountAuditingVo.getId());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAmountStatus())){
- // params.put("amountStatus",sysAmountAuditingVo.getAmountStatus());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getMobile())){
- params.put("mobile",sysAmountAuditingVo.getMobile());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getUserName())){
- params.put("userName",sysAmountAuditingVo.getUserName());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getLeaderId())){
- params.put("leaderId",sysAmountAuditingVo.getLeaderId());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getLeaderName())){
- params.put("leaderName",sysAmountAuditingVo.getLeaderName());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getStartAuditingTime())){
- params.put("startAuditingTime",sysAmountAuditingVo.getStartAuditingTime());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getEndAuditingTime())){
- params.put("endAuditingTime",sysAmountAuditingVo.getEndAuditingTime());
- }
- if(StringUtils.isNotBlank(sysAmountAuditingVo.getSource())){
- params.put("source",sysAmountAuditingVo.getSource());
- }
- List<SysAmountAuditingEntity> list = baseMapper.queryPageOrderNew(params);
- pageHelper=new PageInfo(list);
- BasePageResult<SysAmountAuditingEntity> pageResult=new BasePageResult<SysAmountAuditingEntity>(sysAmountAuditingVo.getPageNum(), sysAmountAuditingVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
- return HttpResult.ok(pageResult);
- }catch (Exception e){
- e.printStackTrace();
- return HttpResult.error("查询异常");
- }
- }
- @Override
- public BasePageResult<SysAmountAuditingEntity> queryAppPage(SysAmountAuditingVo sysAmountAuditingVo) {
- String id = BaseController.getUser().getId();
- sysAmountAuditingVo.setUserId(id);
- Page<SysAmountAuditingEntity> page = new Page<>(sysAmountAuditingVo.getPageNum(), sysAmountAuditingVo.getPageSize());
- QueryWrapper<SysAmountAuditingEntity> wrapper = new QueryWrapper<>();
- Page<SysAmountAuditingEntity> sysUserAccountHistoryPage = baseMapper.queryPageOrder(sysAmountAuditingVo, page);
- return new BasePageResult<>(sysAmountAuditingVo.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(),
- sysUserAccountHistoryPage.getRecords());
- }
- @Override
- public List<SysAmountAuditingEntity> getProgressIng(HashMap<String, Object> params) {
- return baseMapper.getProgressIng(params);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/19 16:35
- * @Description: 提现中、已提现数据查询
- */
- @Override
- public BasePageResult<MyCollectInAdvanceDto> queryAmountPage(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
- Page<MyCollectInAdvanceDto> page = new Page<>(myIncomeAndExpensesQueryDto.getPageNum(), myIncomeAndExpensesQueryDto.getPageSize());
- Page<MyCollectInAdvanceDto> recordPage = baseMapper.queryAmountPage(myIncomeAndExpensesQueryDto, page);
- return new BasePageResult<>(myIncomeAndExpensesQueryDto.getPageNum(), page.getSize(), recordPage.getTotal(), page.getPages(),
- recordPage.getRecords());
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/19 17:16
- * @Description: 查询总金额
- */
- @Override
- public BigDecimal findSumAmount(MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) {
- return baseMapper.findSumAmount(myIncomeAndExpensesQueryDto);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/19 19:23
- * @Description: 驳回 修改状态为 4 驳回状态 冲正金额
- */
- @Override
- public void rejectAmount(SysAmountRejectVo sysAmountRejectVo) {
- //审核
- if(sysAmountRejectVo.getId()==null || "".equals(sysAmountRejectVo.getId())){
- throw new SystemException("提现审核记录id不能为空");
- }
- if(sysAmountRejectVo.getRejectReason()==null || "".equals(sysAmountRejectVo.getRejectReason())){
- throw new SystemException("驳回原因不能为空");
- }
- SysAmountAuditingEntity sysAmountAuditingEntity = sysAmountAuditingService.getById(sysAmountRejectVo.getId());
- //提现审核金额
- BigDecimal amount = sysAmountAuditingEntity.getAmount();
- //提现人
- String userId = sysAmountAuditingEntity.getUserId();
- // 用户回退金额
- BigDecimal beforeAmount;
- BigDecimal afterAmount;
- if (StringUtils.isNotEmpty(userId)) {
- //提现人账户
- SysUserAccount sysUserAccount = sysUserAccountService.getById(userId);
- if (ObjectUtils.isNotEmpty(sysUserAccount)) {
- //提现前的金额
- beforeAmount = sysUserAccount.getSumAmount()==null?BigDecimal.ZERO:sysUserAccount.getSumAmount();
- //提现后的金额
- afterAmount = beforeAmount.add(amount);
- sysUserAccount.setSumAmount(afterAmount);
- //提现的总金额 = 原先的提现总金额 - 提现的金额
- sysUserAccount.setSumAmountWithdrawal((sysUserAccount.getSumAmountWithdrawal()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountWithdrawal().subtract(amount)));
- //支付中的金额 = 原先的支付金额 -去提现的金额
- sysUserAccount.setSumAmountPayment((sysUserAccount.getSumAmountPayment()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountPayment()).subtract(amount));
- //已到账金额 = 原先的到账金额- 已到账的金额
- // sysUserAccount.setSumAmountAccount((sysUserAccount.getSumAmountAccount()==null?BigDecimal.ZERO:sysUserAccount.getSumAmountAccount()).subtract(amount));
- sysUserAccountService.updateById(sysUserAccount);
- }
- sysAmountAuditingEntity.setAuditingStatus("4");
- sysAmountAuditingEntity.setRejectReason(sysAmountRejectVo.getRejectReason());
- sysAmountAuditingEntity.setRejectUserId(BaseController.getUser().getId());
- sysAmountAuditingEntity.setRejectTime(new Date());
- baseMapper.updateById(sysAmountAuditingEntity);
- //更新轨迹表
- //通过审核表id查询历史记录表
- LambdaQueryWrapper<SysUserAccountHistory> lqw = new LambdaQueryWrapper<>();
- lqw.eq(SysUserAccountHistory::getAuditiingId, sysAmountAuditingEntity.getId());
- lqw.eq(SysUserAccountHistory::getUserId, userId);
- //插入轨迹表审核成功数据
- SysUserAccountHistory sysUserAccountHistory = sysUserAccountHistoryMapper.selectOne(lqw);
- //插入轨迹表驳回数据
- SysAmountAuditingHistory sysAmountAuditingHistory =new SysAmountAuditingHistory(null, sysAmountAuditingEntity.getId(), amount, userId,new Date(),"3", "3",sysUserAccountHistory.getId());
- sysAmountAuditingHistoryService.save(sysAmountAuditingHistory);
- //将收入支出状态台改为收入 2插入历史表中历史表
- sysUserAccountHistory.setId(null);
- sysUserAccountHistory.setDocumentary(2);
- sysUserAccountHistory.setProperty(5);
- sysUserAccountHistory.setBusinessSegmentsType(2); //赋值退款
- sysUserAccountHistory.setCreateTime(new Date());
- sysUserAccountHistoryMapper.insert(sysUserAccountHistory);
- }
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/19 20:18
- * @Description: 通过用户id查询数据
- */
- @Override
- public BigDecimal findSumAmountByUserId(String userId) {
- return baseMapper.findSumAmountByUserId(userId);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/27 16:24
- * @Description: 查询已提现、未提现的总金额
- */
- @Override
- public BigDecimal querySumAmount(SysAmountAuditingVo sysAmountAuditingVo) {
- return baseMapper.querySumAmount(sysAmountAuditingVo);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/7/8 11:18
- * @Description: 补充内部银行卡信息
- */
- @Override
- public HttpResult addInvAccountBackCardMsg(SysAmountAuditingDto sysAmountAuditingDto) {
- try{
- //通过审核id查询对象赋值
- SysAmountAuditingEntity sysAmountAuditingEntity = sysAmountAuditingService.getById(sysAmountAuditingDto.getId());
- sysAmountAuditingEntity.setAccountName(sysAmountAuditingDto.getAccountName());
- sysAmountAuditingEntity.setAccountId(sysAmountAuditingDto.getAccountId());
- sysAmountAuditingEntity.setBankCardNum(sysAmountAuditingDto.getBankCardNum());
- sysAmountAuditingEntity.setBankName(sysAmountAuditingDto.getBankName());
- sysAmountAuditingEntity.setBankNum(sysAmountAuditingDto.getBankNum());
- baseMapper.updateById(sysAmountAuditingEntity);
- return HttpResult.ok("添加成功");
- }catch(Exception e){
- }
- return HttpResult.error("添加失败");
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/7/9 9:56
- * @Description: 导出已提现的费用表
- */
- @Override
- public List<SysAmountAuditingEntity> expeortData(SysAmountAuditingVo sysAmountAuditingVo) {
- HashMap<String, Object> params = new HashMap<>();
- if(ObjectUtils.isNotEmpty(sysAmountAuditingVo.getStartTime())){
- params.put("startDate",sysAmountAuditingVo.getStartTime());
- }
- if(ObjectUtils.isNotEmpty(sysAmountAuditingVo.getEndTime())){
- params.put("endDate",sysAmountAuditingVo.getEndTime());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAuditingStatus())){
- params.put("auditingStatus",sysAmountAuditingVo.getAuditingStatus());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getUserId())){
- params.put("userId",sysAmountAuditingVo.getUserId());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getId())){
- params.put("id",sysAmountAuditingVo.getId());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getMobile())){
- params.put("mobile",sysAmountAuditingVo.getMobile());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getUserName())){
- params.put("userName",sysAmountAuditingVo.getUserName());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getLeaderId())){
- params.put("leaderId",sysAmountAuditingVo.getLeaderId());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getLeaderName())){
- params.put("leaderName",sysAmountAuditingVo.getLeaderName());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getStartAuditingTime())){
- params.put("startAuditingTime",sysAmountAuditingVo.getStartAuditingTime());
- }
- if(StringUtils.isNotEmpty(sysAmountAuditingVo.getEndAuditingTime())){
- params.put("endAuditingTime",sysAmountAuditingVo.getEndAuditingTime());
- }
- List<SysAmountAuditingEntity> list = baseMapper.queryPageOrderNew(params);
- return list;
- }
- }
|