1.调整
This commit is contained in:
		
							parent
							
								
									b18cd3cceb
								
							
						
					
					
						commit
						ae5b9ea9e8
					
				|  | @ -109,6 +109,9 @@ public class SysUser extends BaseEntity | ||||||
|     /** 角色对象 */ |     /** 角色对象 */ | ||||||
|     private List<SysRole> roles; |     private List<SysRole> roles; | ||||||
| 
 | 
 | ||||||
|  |     /** 角色 */ | ||||||
|  |     private String roleNames; | ||||||
|  | 
 | ||||||
|     /** 角色组 */ |     /** 角色组 */ | ||||||
|     private Long[] roleIds; |     private Long[] roleIds; | ||||||
| 
 | 
 | ||||||
|  | @ -132,6 +135,14 @@ public class SysUser extends BaseEntity | ||||||
|     /** app用户名 */ |     /** app用户名 */ | ||||||
|     private String appUserName; |     private String appUserName; | ||||||
| 
 | 
 | ||||||
|  |     public String getRoleNames() { | ||||||
|  |         return roleNames; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setRoleNames(String roleNames) { | ||||||
|  |         this.roleNames = roleNames; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public String getAppUserName() { |     public String getAppUserName() { | ||||||
|         return appUserName; |         return appUserName; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -471,6 +471,7 @@ public class CallbackServiceImpl implements CallbackService { | ||||||
|         EtCapitalFlow capitalFlow = new EtCapitalFlow(); |         EtCapitalFlow capitalFlow = new EtCapitalFlow(); | ||||||
|         if(ownerType.equals(ServiceConstants.OWNER_TYPE_OPERATOR)){//运营商 |         if(ownerType.equals(ServiceConstants.OWNER_TYPE_OPERATOR)){//运营商 | ||||||
|             SysDept sysDept = wxPayService.getDeptObjByAreaId(order.getAreaId()); |             SysDept sysDept = wxPayService.getDeptObjByAreaId(order.getAreaId()); | ||||||
|  |             String separateAccount = sysDept.getSeparateAccount(); | ||||||
|             capitalFlow.setAreaId(order.getAreaId()); |             capitalFlow.setAreaId(order.getAreaId()); | ||||||
|             capitalFlow.setOrderNo(order.getOrderNo()); |             capitalFlow.setOrderNo(order.getOrderNo()); | ||||||
|             capitalFlow.setOutTradeNo(order.getOutTradeNo()); |             capitalFlow.setOutTradeNo(order.getOutTradeNo()); | ||||||
|  | @ -496,8 +497,12 @@ public class CallbackServiceImpl implements CallbackService { | ||||||
|                 capitalFlow.setPartnerDividend(BigDecimal.ZERO); |                 capitalFlow.setPartnerDividend(BigDecimal.ZERO); | ||||||
|                 capitalFlow.setPlatformServiceFee(BigDecimal.ZERO); |                 capitalFlow.setPlatformServiceFee(BigDecimal.ZERO); | ||||||
|                 capitalFlow.setOperatorDividend(separateAccountFee.negate()); |                 capitalFlow.setOperatorDividend(separateAccountFee.negate()); | ||||||
|                 capitalFlow.setOperatorBalance(sysDept.getBalance().subtract(separateAccountFee)); |                 if(StrUtil.isNotBlank(separateAccount) && separateAccount.equals("N")){ | ||||||
|                 deptService.changeDeptBalance(separateAccountFee.negate(),sysDept.getDeptId()); |                     capitalFlow.setOperatorBalance(sysDept.getBalance().subtract(separateAccountFee)); | ||||||
|  |                     deptService.changeDeptBalance(separateAccountFee.negate(),sysDept.getDeptId()); | ||||||
|  |                 }else{ | ||||||
|  |                     capitalFlow.setOperatorBalance(BigDecimal.ZERO); | ||||||
|  |                 } | ||||||
|                 logger.info("【微信支付回调--保存资金流水记录】 ==============支出=====================:"); |                 logger.info("【微信支付回调--保存资金流水记录】 ==============支出=====================:"); | ||||||
|             }else{ |             }else{ | ||||||
|                 logger.info("【微信支付回调--保存资金流水记录】 ==============业务类型=====================:"+busType); |                 logger.info("【微信支付回调--保存资金流水记录】 ==============业务类型=====================:"+busType); | ||||||
|  | @ -524,14 +529,22 @@ public class CallbackServiceImpl implements CallbackService { | ||||||
|                 if(type.equals(ServiceConstants.FLOW_TYPE_INCOME)){ |                 if(type.equals(ServiceConstants.FLOW_TYPE_INCOME)){ | ||||||
|                     capitalFlow.setPartnerDividend(partnerDividend); |                     capitalFlow.setPartnerDividend(partnerDividend); | ||||||
|                     capitalFlow.setOperatorDividend(operatorDividend); |                     capitalFlow.setOperatorDividend(operatorDividend); | ||||||
|                     capitalFlow.setOperatorBalance(sysDept.getBalance().add(operatorDividend)); |                     if(StrUtil.isNotBlank(separateAccount) && separateAccount.equals("N")){ | ||||||
|                     deptService.changeDeptBalance(operatorDividend,sysDept.getDeptId()); |                         capitalFlow.setOperatorBalance(sysDept.getBalance().add(operatorDividend)); | ||||||
|  |                         deptService.changeDeptBalance(operatorDividend,sysDept.getDeptId()); | ||||||
|  |                     }else{ | ||||||
|  |                         capitalFlow.setOperatorBalance(BigDecimal.ZERO); | ||||||
|  |                     } | ||||||
|                     logger.info("【微信支付回调--保存资金流水记录】 ==============收入=====================:"); |                     logger.info("【微信支付回调--保存资金流水记录】 ==============收入=====================:"); | ||||||
|                 }else{ |                 }else{ | ||||||
|                     capitalFlow.setPartnerDividend(partnerDividend.negate()); |                     capitalFlow.setPartnerDividend(partnerDividend.negate()); | ||||||
|                     capitalFlow.setOperatorDividend(operatorDividend.negate()); |                     capitalFlow.setOperatorDividend(operatorDividend.negate()); | ||||||
|                     capitalFlow.setOperatorBalance(sysDept.getBalance().subtract(operatorDividend)); |                     if(StrUtil.isNotBlank(separateAccount) && separateAccount.equals("N")){ | ||||||
|                     deptService.changeDeptBalance(operatorDividend.negate(),sysDept.getDeptId()); |                         capitalFlow.setOperatorBalance(sysDept.getBalance().subtract(operatorDividend)); | ||||||
|  |                         deptService.changeDeptBalance(operatorDividend.negate(),sysDept.getDeptId()); | ||||||
|  |                     }else{ | ||||||
|  |                         capitalFlow.setOperatorBalance(BigDecimal.ZERO); | ||||||
|  |                     } | ||||||
|                     logger.info("【微信支付回调--保存资金流水记录】 ==============支出=====================:"); |                     logger.info("【微信支付回调--保存资金流水记录】 ==============支出=====================:"); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -481,9 +481,13 @@ public class EtOrderServiceImpl implements IEtOrderService | ||||||
|         if(updateEtOrder == 0){ |         if(updateEtOrder == 0){ | ||||||
|           throw new ServiceException("还车审核失败,更新订单失败"); |           throw new ServiceException("还车审核失败,更新订单失败"); | ||||||
|         } |         } | ||||||
|  |         // 判断最后一个押金订单是否已退款,如果没有退款,则发起退款,如果有退款,则不退押金 | ||||||
|  |         // 判断是否已退款 | ||||||
|  |         Boolean refunded = isRefunded(etOrder.getUserId()); | ||||||
|  | 
 | ||||||
|         // 当前还有正在骑行中的订单,不退押金,只有用户没有正在骑行中的订单时才发起退款 |         // 当前还有正在骑行中的订单,不退押金,只有用户没有正在骑行中的订单时才发起退款 | ||||||
|         EtOrder currentOrder = etOrderService.getCurrentOrderByUserId(etOrder.getUserId()); |         EtOrder currentOrder = etOrderService.getCurrentOrderByUserId(etOrder.getUserId()); | ||||||
|         if(ObjectUtil.isNull(currentOrder)){ |         if(ObjectUtil.isNull(currentOrder) && !refunded){ | ||||||
|             log.info("【还车审核通过】当前用户没有正在骑行的订单,开始退押金"); |             log.info("【还车审核通过】当前用户没有正在骑行的订单,开始退押金"); | ||||||
|             /** 2.退押金*/ |             /** 2.退押金*/ | ||||||
|             EtOrder depositOrder = getDepositOrder(etOrder.getUserId()); |             EtOrder depositOrder = getDepositOrder(etOrder.getUserId()); | ||||||
|  | @ -510,11 +514,45 @@ public class EtOrderServiceImpl implements IEtOrderService | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }else{ |         }else{ | ||||||
|             log.info("【还车审核通过】当前用户还有正在骑行的订单------不退押金"); |             if(refunded){ | ||||||
|  |                 log.info("【还车审核通过】当前用户押金已退款!!------不退押金"); | ||||||
|  |             } | ||||||
|  |             if(ObjectUtil.isNull(currentOrder)){ | ||||||
|  |                 log.info("【还车审核通过】当前用户还有正在骑行的订单------不退押金"); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     /** 判断是否已退款*/ | ||||||
|  |     private Boolean isRefunded(Long userId) { | ||||||
|  |         EtOrder etOrder = new EtOrder(); | ||||||
|  |         etOrder.setUserId(userId); | ||||||
|  |         etOrder.setPaid(ServiceConstants.ORDER_PAY_STATUS_PAID); | ||||||
|  |         etOrder.setType(ServiceConstants.ORDER_TYPE_DEPOSIT); | ||||||
|  |         etOrder.setStatus(ServiceConstants.ORDER_STATUS_ORDER_END); | ||||||
|  |         List<EtOrder> etOrders = etOrderMapper.selectEtOrderList(etOrder); | ||||||
|  |         if (etOrders.size() > 0 || ObjectUtil.isNotNull(etOrders) ) { | ||||||
|  |             Optional<EtOrder> latestOrderOptional = etOrders.stream() | ||||||
|  |                     .max(Comparator.comparing(EtOrder::getPayTime)); | ||||||
|  |             if (latestOrderOptional.isPresent()) { | ||||||
|  |                 EtOrder lastOrder = latestOrderOptional.get(); | ||||||
|  |                 log.info("【还车审核通过】用户【{}】最后一次押金充值订单 : " + JSON.toJSONString(lastOrder),userId); | ||||||
|  |                 // 根据最新的订单号,查询是否有退款记录 | ||||||
|  |                 List<EtRefund> etRefunds = etRefundService.selectEtRefundByOrderNo(lastOrder.getOrderNo()); | ||||||
|  |                 if(etRefunds.size() == 1) { | ||||||
|  |                     EtRefund etRefund = etRefunds.get(0); | ||||||
|  |                     // 有退款记录,判断是否成功 | ||||||
|  |                     if(Constants.SUCCESS2.equals(etRefund.getRefundResult())){ | ||||||
|  |                         log.info("【还车审核通过】押金退款成功回调,退款单号:【{}】",etRefund.getRefundNo()); | ||||||
|  |                         return true; | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return false; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * 官方审核通过 |      * 官方审核通过 | ||||||
|      *  1.更新订单状态为订单结束 |      *  1.更新订单状态为订单结束 | ||||||
|  | @ -530,29 +568,35 @@ public class EtOrderServiceImpl implements IEtOrderService | ||||||
|         if(updateEtOrder == 0){ |         if(updateEtOrder == 0){ | ||||||
|             throw new ServiceException("还车审核失败,更新订单失败"); |             throw new ServiceException("还车审核失败,更新订单失败"); | ||||||
|         } |         } | ||||||
|         /** 2.退剩余押金 = 押金 - 扣除金额*/ |         Boolean refunded = isRefunded(etOrder.getUserId()); | ||||||
|         EtOrder depositOrder = getDepositOrder(etOrder.getUserId()); |         if(!refunded){ | ||||||
|         BigDecimal residualDeposit = depositOrder.getTotalFee().subtract(new BigDecimal(etOrder.getDeductionAmount())); |             /** 2.退剩余押金 = 押金 - 扣除金额*/ | ||||||
|         Refund refund = wxPayService.refund(depositOrder, "还车审核通过后退押金",residualDeposit,IdUtils.getOrderNo("ref")); |             EtOrder depositOrder = getDepositOrder(etOrder.getUserId()); | ||||||
|         /** 3.记录退款表  创建退款对象*/ |             BigDecimal residualDeposit = depositOrder.getTotalFee().subtract(new BigDecimal(etOrder.getDeductionAmount())); | ||||||
|         depositOrder.setReason("还车审核通过后退押金"); |             Refund refund = wxPayService.refund(depositOrder, "还车审核通过后退押金",residualDeposit,IdUtils.getOrderNo("ref")); | ||||||
|         EtRefund refund1= createRefund(depositOrder, residualDeposit, null, null, null, null, refund.getOutRefundNo(),ServiceConstants.REFUND_TYPE_DEPOSIT); |             /** 3.记录退款表  创建退款对象*/ | ||||||
|         int i = etRefundService.insertEtRefund(refund1); |             depositOrder.setReason("还车审核通过后退押金"); | ||||||
|         if(i == 0){ |             EtRefund refund1= createRefund(depositOrder, residualDeposit, null, null, null, null, refund.getOutRefundNo(),ServiceConstants.REFUND_TYPE_DEPOSIT); | ||||||
|             log.info("【还车审核通过】保存退款对象失败"); |             int i = etRefundService.insertEtRefund(refund1); | ||||||
|             throw new ServiceException("【还车审核通过】,保存退款对象失败"); |             if(i == 0){ | ||||||
|         } |                 log.info("【还车审核通过】保存退款对象失败"); | ||||||
|         /** 4.更新用户余额*/ |                 throw new ServiceException("【还车审核通过】,保存退款对象失败"); | ||||||
|         AsUser asUser = asUserService.selectUserById(depositOrder.getUserId()); |  | ||||||
|         if(asUser!=null){ |  | ||||||
|             // 更新用户并更新缓存 |  | ||||||
|             asUser.setBalance(BigDecimal.ZERO); |  | ||||||
|             if (asUserService.updateUserProfile(asUser) > 0) |  | ||||||
|             { |  | ||||||
|                 log.info("【还车审核通过】更新用户信息成功:"+ JSON.toJSON(asUser)); |  | ||||||
|             }else{ |  | ||||||
|                 throw new ServiceException("【还车审核通过】,更新用户信息失败"); |  | ||||||
|             } |             } | ||||||
|  |             /** 4.更新用户余额*/ | ||||||
|  |             AsUser asUser = asUserService.selectUserById(depositOrder.getUserId()); | ||||||
|  |             if(asUser!=null){ | ||||||
|  |                 // 更新用户并更新缓存 | ||||||
|  |                 asUser.setBalance(BigDecimal.ZERO); | ||||||
|  |                 if (asUserService.updateUserProfile(asUser) > 0) | ||||||
|  |                 { | ||||||
|  |                     log.info("【还车审核通过】更新用户信息成功:"+ JSON.toJSON(asUser)); | ||||||
|  |                 }else{ | ||||||
|  |                     throw new ServiceException("【还车审核通过】,更新用户信息失败"); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         }else{ | ||||||
|  |             log.info("【还车审核通过】当前用户押金已退款!!------不退押金"); | ||||||
|         } |         } | ||||||
|         return true; |         return true; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -111,13 +111,21 @@ public class SysUserServiceImpl implements ISysUserService | ||||||
|                     sysUser.setAreaName(area.getAreaName()); |                     sysUser.setAreaName(area.getAreaName()); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             Long appUserId = sysUser.getAppUserId(); |             AsUser asUser1 = new AsUser(); | ||||||
|             if(ObjectUtil.isNotNull(appUserId) && appUserId!=0){ |             asUser1.setSysUserId(sysUser.getUserId()); | ||||||
|                 AsUser asUser = asUserMapper.selectUserById(appUserId); |             List<AsUser> asUsers = asUserMapper.selectUserList(asUser1); | ||||||
|                 if(ObjectUtil.isNotNull(asUser)){ |             if(ObjectUtil.isNotNull(asUsers) && asUsers.size()>0){ | ||||||
|                     sysUser.setAppUserName(asUser.getUserName()); |                 String appUserName = asUsers.stream() | ||||||
|                 } |                         .map(AsUser::getRealName) | ||||||
|  |                         .collect(Collectors.joining(",")); | ||||||
|  |                 sysUser.setAppUserName(appUserName); | ||||||
|             } |             } | ||||||
|  |             List<SysRole> sysRoles = roleMapper.selectRolePermissionByUserId(sysUser.getUserId()); | ||||||
|  |             String roleNames = sysRoles.stream() | ||||||
|  |                     .map(SysRole::getRoleName) | ||||||
|  |                     .collect(Collectors.joining(",")); | ||||||
|  |             sysUser.setRoles(sysRoles); | ||||||
|  |             sysUser.setRoleNames(roleNames); | ||||||
|         } |         } | ||||||
|         return sysUsers; |         return sysUsers; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -52,6 +52,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||||||
| 		<if test="userId != null and userId != 0"> | 		<if test="userId != null and userId != 0"> | ||||||
| 			AND u.user_id = #{userId} | 			AND u.user_id = #{userId} | ||||||
| 		</if> | 		</if> | ||||||
|  | 		<if test="sysUserId != null and sysUserId != 0"> | ||||||
|  | 			AND u.sys_user_id = #{sysUserId} | ||||||
|  | 		</if> | ||||||
| 		<if test="userName != null and userName != ''"> | 		<if test="userName != null and userName != ''"> | ||||||
| 			AND u.user_name like concat('%', #{userName}, '%') | 			AND u.user_name like concat('%', #{userName}, '%') | ||||||
| 		</if> | 		</if> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user