Просмотр исходного кода

1、被搁浅的2.0充值、代付版本,方便以后回滚

billisme 4 лет назад
Родитель
Сommit
9cd569ffe2
31 измененных файлов с 513 добавлено и 130 удалено
  1. 10 0
      src/main/java/org/springblade/modules/guosen/billRecord/dto/BillRecordDTO.java
  2. 40 16
      src/main/java/org/springblade/modules/guosen/billRecord/service/impl/BillRecordServiceImpl.java
  3. 2 2
      src/main/java/org/springblade/modules/guosen/bussiness/controller/BussinessBonusRecordsController.java
  4. 9 18
      src/main/java/org/springblade/modules/guosen/bussiness/controller/BussinessController.java
  5. 3 0
      src/main/java/org/springblade/modules/guosen/bussiness/entity/BussinessDebit.java
  6. 1 0
      src/main/java/org/springblade/modules/guosen/bussiness/mapper/BussinessDebitMapper.xml
  7. 3 0
      src/main/java/org/springblade/modules/guosen/bussiness/service/IBussinessDebitRequestService.java
  8. 2 0
      src/main/java/org/springblade/modules/guosen/bussiness/service/IBussinessService.java
  9. 107 6
      src/main/java/org/springblade/modules/guosen/bussiness/service/impl/BussinessDebitRequestServiceImpl.java
  10. 18 13
      src/main/java/org/springblade/modules/guosen/bussiness/service/impl/BussinessServiceImpl.java
  11. 0 1
      src/main/java/org/springblade/modules/guosen/bussiness/wrapper/BussinessWrapper.java
  12. 7 1
      src/main/java/org/springblade/modules/guosen/bussinessGoods/controller/BussinessGoodsController.java
  13. 36 1
      src/main/java/org/springblade/modules/guosen/bussinessInfo/controller/BussinessInfoController.java
  14. 16 0
      src/main/java/org/springblade/modules/guosen/bussinessInfo/vo/SimpleBussinessInfoVO.java
  15. 7 1
      src/main/java/org/springblade/modules/guosen/bussinessPurchaseRecord/controller/BussinessPurchaseRecordController.java
  16. 4 1
      src/main/java/org/springblade/modules/guosen/bussinessRegisterRequest/controller/BussinessRegisterRequestController.java
  17. 4 1
      src/main/java/org/springblade/modules/guosen/bussinessRegisterRequest/service/impl/BussinessRegisterRequestServiceImpl.java
  18. 6 1
      src/main/java/org/springblade/modules/guosen/bussinessTransferOrder/controller/BussinessTransferOrderController.java
  19. 1 0
      src/main/java/org/springblade/modules/guosen/bussinessTransferOrder/service/impl/BussinessTransferOrderServiceImpl.java
  20. 67 7
      src/main/java/org/springblade/modules/time/TimeTask.java
  21. 36 9
      src/main/java/org/springblade/yeePay/controller/BussinessPayController.java
  22. 2 3
      src/main/java/org/springblade/yeePay/entity/PayOrderDto.java
  23. 9 2
      src/main/java/org/springblade/yeePay/entity/RechargeDto.java
  24. 16 0
      src/main/java/org/springblade/yeePay/event/RechargeServiceFeePayNotifyEvent.java
  25. 5 4
      src/main/java/org/springblade/yeePay/listener/RechargeOrderNotifyListener.java
  26. 68 0
      src/main/java/org/springblade/yeePay/listener/RechargeServiceFeePayNotifyListener.java
  27. 5 4
      src/main/java/org/springblade/yeePay/listener/RechargeServiceFeeTransferNotifyListener.java
  28. 0 25
      src/main/java/org/springblade/yeePay/listener/TransferOrderNotifyListener.java
  29. 22 11
      src/main/java/org/springblade/yeePay/service/YeePayService.java
  30. 2 2
      src/main/resources/payConfig.properties
  31. 5 1
      src/test/java/org/springblade/test/BladeTest.java

+ 10 - 0
src/main/java/org/springblade/modules/guosen/billRecord/dto/BillRecordDTO.java

@@ -37,4 +37,14 @@ public class BillRecordDTO extends BillRecord {
 
 	private List<BussinessGoodsDTO> purchaseList;
 
+	/**
+	 * 银行编号
+	 */
+	private String bankCode;
+
+	/**
+	 * 支付成功跳转地址
+	 */
+	private String returnUrl;
+
 }

+ 40 - 16
src/main/java/org/springblade/modules/guosen/billRecord/service/impl/BillRecordServiceImpl.java

@@ -28,6 +28,7 @@ import org.springblade.common.utils.SerializableUtil;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.guosen.activity.entity.Activity;
 import org.springblade.modules.guosen.activity.service.IActivityService;
 import org.springblade.modules.guosen.agenter.entity.Agenter;
@@ -209,7 +210,8 @@ public class BillRecordServiceImpl extends BaseServiceImpl<BillRecordMapper, Bil
 
 	@Override
 	public R merchantRechargeOrder(Bussiness bussiness, BillRecordDTO billRecordDTO) {
-		String requestNo = "CZ" + UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
+
+		String requestNo = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
 		billRecordDTO.setOrderId(requestNo);
 		BigDecimal serviceRate = bussiness.getServiceRate();
 		BigDecimal price = billRecordDTO.getPrice();
@@ -220,31 +222,53 @@ public class BillRecordServiceImpl extends BaseServiceImpl<BillRecordMapper, Bil
 			boolean purchase = bussinessPurchaseRecordService.purchase(billRecordDTO.getPurchaseList(), bussiness, billRecordDTO.getOrderId(), billRecordDTO.getId());
 			if(purchase){
 				//向第三方申请充值汇款
-				RechargeDto rechargeDto = RechargeDto.builder()
-						.amount(price.doubleValue())
-						.merchantNo(bussiness.getMerchantNo())
-						.payType("BANK_TRANSFER")
-						.requestNo(requestNo).build();
+				RechargeDto rechargeDto = new RechargeDto();
+				rechargeDto.setAmount(price.doubleValue());
+				rechargeDto.setMerchantNo(bussiness.getMerchantNo());
+				rechargeDto.setPayType("B2B");
+				rechargeDto.setBankCode(billRecordDTO.getBankCode());
+				rechargeDto.setReturnUrl(billRecordDTO.getReturnUrl());
+				rechargeDto.setRequestNo(requestNo);
 				R result = yeePayService.merchantRechargeOrder(rechargeDto);
+				if(!result.isSuccess()){
+					billRecordDTO.setFailReason(result.getMsg());
+					this.updateById(billRecordDTO);
+					return result;
+				}
 				JSONObject data = JSONUtil.parseObj(result.getData());
 				String returnCode = data.getStr("returnCode");
 				String status = data.getStr("status");
 				billRecordDTO.setThirdPayLog(JSONUtil.toJsonStr(data));
-				if(returnCode.equals("UA00000")){
-					billRecordDTO.setThirdOrderNo(data.getStr("orderNo"));
-					billRecordDTO.setRemitComment(data.getStr("remitComment"));
+				if(StringUtil.isNotBlank(returnCode)){
+					if(returnCode.equals("UA00000")){
+						billRecordDTO.setThirdOrderNo(data.getStr("orderNo"));
+						if(status.equals("INIT")){
+							billRecordDTO.setPayStatus(SystemConstant.BillRecordPayStatus.HANDLING.getValue());
+						}else if(status.equals("FAIL")){
+							billRecordDTO.setPayStatus(SystemConstant.BillRecordPayStatus.FAIL.getValue());
+							billRecordDTO.setFailReason(data.getStr("returnMsg"));
+							this.updateById(billRecordDTO);
+							return R.fail("采购失败:" + data.getStr("returnMsg"));
+						}
+						return R.data(data.getStr("payUrl"));
+					}else{
+						billRecordDTO.setPayStatus(SystemConstant.BillRecordPayStatus.FAIL.getValue());
+						billRecordDTO.setFailReason(data.getStr("returnMsg"));
+						this.updateById(billRecordDTO);
+						return R.fail(data.getStr("returnMsg"));
+					}
+				}else{
 					if(status.equals("INIT")){
 						billRecordDTO.setPayStatus(SystemConstant.BillRecordPayStatus.HANDLING.getValue());
+						this.updateById(billRecordDTO);
+						return R.data(data.getStr("payUrl"));
 					}else if(status.equals("FAIL")){
 						billRecordDTO.setPayStatus(SystemConstant.BillRecordPayStatus.FAIL.getValue());
+						billRecordDTO.setFailReason(data.getStr("returnMsg"));
+						this.updateById(billRecordDTO);
+						return R.fail("采购失败:" + data.getStr("returnMsg"));
 					}
-					this.updateById(billRecordDTO);
-					return R.success("采购下单成功,请留意汇款备注码");
-				}else{
-					billRecordDTO.setPayStatus(SystemConstant.BillRecordPayStatus.FAIL.getValue());
-					billRecordDTO.setFailReason(data.getStr("returnMsg"));
-					this.updateById(billRecordDTO);
-					return R.fail(data.getStr("returnMsg"));
+					return R.data(data.getStr("payUrl"));
 				}
 			}else{
 				return R.fail("采购商品订单保存失败");

+ 2 - 2
src/main/java/org/springblade/modules/guosen/bussiness/controller/BussinessBonusRecordsController.java

@@ -203,7 +203,7 @@ public class BussinessBonusRecordsController extends BladeController {
 		if(record.getPrice().compareTo(new BigDecimal(1)) == -1){
 			return R.fail("可分润金额不足以抵扣手续费");
 		}
-		PayOrderDto transferDto = this.recordToTransfer(record);
+		PayOrderDto transferDto = this.recordToPayOrder(record);
 		R result = yeePayService.payToCard(transferDto);
 		cn.hutool.json.JSONObject data = JSONUtil.parseObj(result.getData());
 		String returnCode = data.getStr("returnCode");
@@ -252,7 +252,7 @@ public class BussinessBonusRecordsController extends BladeController {
 		return null;
 	}
 
-	private PayOrderDto recordToTransfer(BussinessBonusRecords bussinessBonusRecords) {
+	private PayOrderDto recordToPayOrder(BussinessBonusRecords bussinessBonusRecords) {
 		PayOrderDto transferDto = new PayOrderDto();
 		Double random = (Math.random() * 9 + 1)*10000;
 		transferDto.setRequestNo(bussinessBonusRecords.getId().toString()+":"+random.intValue());

+ 9 - 18
src/main/java/org/springblade/modules/guosen/bussiness/controller/BussinessController.java

@@ -16,9 +16,6 @@
  */
 package org.springblade.modules.guosen.bussiness.controller;
 
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.swagger.annotations.Api;
@@ -27,12 +24,10 @@ import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 
-import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
 import org.springblade.common.constant.SystemConstant;
 import org.springblade.common.utils.MoneyDesUtil;
-import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
@@ -42,11 +37,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.guosen.bussiness.vo.SimpleBussinessVO;
 import org.springblade.modules.guosen.bussiness.wrapper.BussinessWrapper;
-import org.springblade.modules.guosen.bussinessInfo.entity.BussinessInfo;
-import org.springblade.modules.guosen.bussinessInfo.service.IBussinessInfoService;
-import org.springblade.modules.system.service.IUserService;
 import org.springblade.yeePay.common.YeePayConst;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -56,16 +47,11 @@ import org.springblade.modules.guosen.bussiness.vo.BussinessVO;
 import org.springblade.modules.guosen.bussiness.service.IBussinessService;
 import org.springblade.core.boot.ctrl.BladeController;
 
-import java.io.IOException;
 import java.math.BigDecimal;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
-import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
-
 /**
  * 控制器
  *
@@ -79,7 +65,6 @@ import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
 public class BussinessController extends BladeController {
 
 	private final IBussinessService bussinessService;
-	private final IBussinessInfoService bussinessInfoService;
 	private final YeePayConst yeePayConst;
 
 
@@ -119,7 +104,11 @@ public class BussinessController extends BladeController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "分页", notes = "传入bussiness")
 	public R<IPage<BussinessVO>> page(BussinessVO bussiness, Query query) {
-		IPage<Bussiness> pages = bussinessService.selectBussinessPage(Condition.getPage(query), bussiness);
+		LambdaQueryWrapper<Bussiness> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.like(StringUtil.isNotBlank(bussiness.getName()), Bussiness::getName, bussiness.getName());
+		lambdaQueryWrapper.eq(bussiness.getEnable() != null, Bussiness::getEnable, bussiness.getEnable());
+		lambdaQueryWrapper.eq(bussiness.getRegisterStatus() != null, Bussiness::getRegisterStatus, bussiness.getRegisterStatus());
+		IPage<Bussiness> pages = bussinessService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(BussinessWrapper.build().pageVO(pages));
 	}
 
@@ -223,9 +212,11 @@ public class BussinessController extends BladeController {
 		if(StringUtil.isNotBlank(bussiness.getName())){
 			lambdaQueryWrapper.like(Bussiness::getName, bussiness.getName());
 		}
+		if(bussiness.getRegisterStatus() != null){
+			lambdaQueryWrapper.eq(Bussiness::getRegisterStatus, bussiness.getRegisterStatus());
+		}
 		List<Bussiness> list = bussinessService.list(lambdaQueryWrapper);
 		List<SimpleBussinessVO> voList = list.stream()
-				.filter(item -> item.getRegisterStatus() != null && item.getRegisterStatus().intValue() == SystemConstant.BussinessRegisterStatus.SUCCESS.getValue())
 				.map(item -> {
 					SimpleBussinessVO vo = new SimpleBussinessVO();
 					vo.setId(item.getId());
@@ -265,7 +256,7 @@ public class BussinessController extends BladeController {
 	@ApiOperation(value = "平台余额查询")
 	public R<BigDecimal> queryPlatformBalance() {
 		BladeUser user = AuthUtil.getUser();
-		if(user.getRoleName().equals("财务管理") || user.getRoleName().equals("超级管理员")){//运营查询平台商余额
+		if(user.getRoleName().equals("财务管理") || user.getRoleName().equals("administrator")){//运营查询平台商余额
 			return bussinessService.queryBalance(yeePayConst.getParentMerchantNo());
 		}else{
 			return R.fail("无权限查看");

+ 3 - 0
src/main/java/org/springblade/modules/guosen/bussiness/entity/BussinessDebit.java

@@ -110,6 +110,9 @@ public class BussinessDebit extends BaseEntity {
 	@ApiModelProperty("第三方付款订单号")
 	private String thirdOrderNo;
 
+	@ApiModelProperty("商户请求号")
+	private String requestNo;
+
 
 
 

+ 1 - 0
src/main/java/org/springblade/modules/guosen/bussiness/mapper/BussinessDebitMapper.xml

@@ -24,6 +24,7 @@
         <result column="current_remain" property="currentRemain"/>
         <result column="request_ip" property="requestIp"/>
         <result column="third_order_no" property="thirdOrderNo"/>
+        <result column="request_no" property="requestNo"/>
     </resultMap>
 
 

+ 3 - 0
src/main/java/org/springblade/modules/guosen/bussiness/service/IBussinessDebitRequestService.java

@@ -23,6 +23,7 @@ import org.springblade.modules.guosen.bussiness.excel.DebitRequestExcel;
 import org.springblade.modules.guosen.bussiness.vo.BussinessDebitRequestVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.yeePay.entity.PayOrderDto;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -50,4 +51,6 @@ public interface IBussinessDebitRequestService extends BaseService<BussinessDebi
 	 * @return
 	 */
     R importList(MultipartFile file, BladeUser bladeUser);
+
+	R payOrder(PayOrderDto payOrderDto, String requestIp);
 }

+ 2 - 0
src/main/java/org/springblade/modules/guosen/bussiness/service/IBussinessService.java

@@ -21,6 +21,7 @@ import org.springblade.modules.guosen.bussiness.entity.Bussiness;
 import org.springblade.modules.guosen.bussiness.vo.BussinessVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.yeePay.entity.PayOrderDto;
 
 import java.math.BigDecimal;
 
@@ -55,4 +56,5 @@ public interface IBussinessService extends BaseService<Bussiness> {
 
 	R<BigDecimal> queryBalance(String merchantNo);
 
+
 }

+ 107 - 6
src/main/java/org/springblade/modules/guosen/bussiness/service/impl/BussinessDebitRequestServiceImpl.java

@@ -40,6 +40,7 @@ import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.modules.guosen.debtDaliyStat.entity.BusinessDeptDaliyStat;
 import org.springblade.modules.guosen.debtDaliyStat.service.IBusinessDeptDaliyStatService;
 import org.springblade.modules.obs.service.ObsService;
+import org.springblade.modules.system.service.IParamService;
 import org.springblade.yeePay.entity.BatchTransferDto;
 import org.springblade.yeePay.entity.PayOrderDto;
 import org.springblade.yeePay.service.YeePayService;
@@ -52,9 +53,9 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 /**
  *  服务实现类
@@ -71,18 +72,16 @@ public class BussinessDebitRequestServiceImpl extends BaseServiceImpl<BussinessD
 	private IBussinessService bussinessService;
 	@Autowired
 	private ObsService obsService;
-
 	@Autowired
 	private IBussinessDebitService bussinessDebitService;
-
 	@Autowired
 	private YeePayService yeePayService;
-
 	@Value("${pay.noticeUrl}")
 	private String payNoticeUrl;
-
 	@Autowired
 	IBusinessDeptDaliyStatService businessDeptDaliyStatService;
+	@Autowired
+	private IParamService paramService;
 
 	@Override
 	public IPage<BussinessDebitRequestVO> selectBussinessDebitRequestPage(IPage<BussinessDebitRequestVO> page, BussinessDebitRequestVO bussinessDebitRequest) {
@@ -160,6 +159,7 @@ public class BussinessDebitRequestServiceImpl extends BaseServiceImpl<BussinessD
 					bussinessDebit.setReceiverBankCode(debitRequestExcel.getReceiverBankCode());
 					bussinessDebit.setRequestId(bussinessDebitRequest.getId());
 					bussinessDebit.setMethod(1); //xml导入方式
+					bussinessDebit.setRequestNo(UUID.randomUUID().toString().replaceAll("-","").toUpperCase());
 					if(bussinessDebitService.save(bussinessDebit)){
 
 					}else{
@@ -187,6 +187,107 @@ public class BussinessDebitRequestServiceImpl extends BaseServiceImpl<BussinessD
 		return R.status(false);
 	}
 
+	@Override
+	public R payOrder(PayOrderDto payOrderDto, String requestIp) {
+		String maintain = paramService.getValue("maintain");
+		if(StringUtil.isNotBlank(maintain)){
+			if(maintain.equals("0")){ //进入维护时间
+				return R.fail("系统维护时间为每天晚上22:00-凌晨07:00");
+			}
+		}
+		Bussiness bussiness = this.bussinessService.getById(payOrderDto.getBussinessId());
+		if(bussiness == null){
+			log.error("=================代付请求前校验,平台采购商不存在=================");
+			return R.fail("商户不存在");
+		}
+		if(bussiness.getRegisterStatus() == null || bussiness.getRegisterStatus().intValue() != SystemConstant.BussinessRegisterStatus.SUCCESS.getValue()){
+			log.error("=================代付请求前校验,商户未完成进件审核=================");
+			return R.fail("请先完成商户进件审核");
+		}
+		payOrderDto.setMerchantNo(bussiness.getMerchantNo());
+		//检查采购商余额
+		R<BigDecimal> remainR = this.bussinessService.queryBalance(bussiness.getMerchantNo());
+		BigDecimal remain = remainR.getData();
+		if(remain.compareTo(new BigDecimal(payOrderDto.getOrderAmount()).add(new BigDecimal(1))) == -1){
+			log.error("=================代付请求前校验,商户余额不足,请重新下单采购=================");
+			return R.fail("商户余额不足,请重新下单采购");
+		}
+		if(BigDecimal.valueOf(payOrderDto.getOrderAmount()).compareTo(bussiness.getMaxLimit()) == 1){ //大于的时候返回1,等于返回0,小于返回-1
+			log.error("=================代付请求前校验,提现金额不能超过商户每日限额=================");
+			return R.fail("提现金额不能超过商户每日限额" + payOrderDto.getOrderAmount());
+		}else{
+			//获取今日采购商已分润金额
+			BusinessDeptDaliyStat todayStat = businessDeptDaliyStatService.getTodayStat(bussiness.getId());
+			if(todayStat == null) {
+				businessDeptDaliyStatService.createTodayStat(bussiness.getId(), null);
+			}else{
+				//今日已分润金额
+				BigDecimal todayAmount = todayStat.getStatAmount();
+				if(todayAmount.add(new BigDecimal(payOrderDto.getOrderAmount())).compareTo(bussiness.getMaxLimit()) == 1){ //如果当日已分润金额+本次订单分润金额大于商户每日上限分润金额
+					log.error("=================代付请求前校验,今日提现金额已超过商户每日限额=================");
+					return R.fail("今日提现金额已超过商户每日限额");
+				}
+			}
+		}
+		//保存采购商单笔分佣请求对象
+		BussinessDebitRequest bussinessDebitRequest = new BussinessDebitRequest();
+		bussinessDebitRequest.setBussinessId(bussiness.getId());
+		bussinessDebitRequest.setOrderCount(1);//订单总笔数
+		bussinessDebitRequest.setStatus(0);//0为易宝未回调状态
+		BussinessDebit debit = null;
+		if(this.save(bussinessDebitRequest)){
+			debit = this.generateDebit(payOrderDto);
+			debit.setBussinessId(bussiness.getId());
+			debit.setRequestIp(requestIp);
+			debit.setRequestId(bussinessDebitRequest.getId());
+			String requestNo = UUID.randomUUID().toString().replaceAll("-","").toUpperCase();
+			debit.setRequestNo(requestNo);
+			payOrderDto.setRequestNo(requestNo);
+			if(!bussinessDebitService.save(debit)){
+				log.error("=================代付请求前校验,明细保存失败=================");
+				return R.fail("明细保存失败");
+			}
+		}else{
+			log.error("=================代付请求前校验,请求实例保存失败=================");
+			return R.fail("请求实例保存失败");
+		}
+		R result = this.yeePayService.payToCard(payOrderDto);
+		cn.hutool.json.JSONObject data = JSONUtil.parseObj(result.getData());
+		String returnCode = data.getStr("returnCode");
+		String returnMsg = data.getStr("returnMsg");
+		String orderNo = data.getStr("orderNo");
+		String msg = returnMsg;
+		if(StringUtil.isNotBlank(returnCode) && returnCode.equals("UA00000")) { //代付发起成功
+			log.info("========================单笔代付发起成功====================");
+			debit.setCurrentRemain(MoneyDesUtil.decrypt(remain.toString(), MoneyDesUtil.KEY_FOR_UC));
+			debit.setFailReason(returnMsg);
+			debit.setThirdPayLog(JSONUtil.toJsonStr(data));
+			debit.setThirdOrderNo(orderNo);
+			bussinessDebitService.saveOrUpdate(debit);
+			return R.data(data, msg);
+		}else{
+			debit.setStatus(SystemConstant.BussinessDebitStatus.FAIL.getValue());
+			debit.setFailReason(returnMsg);
+			debit.setThirdPayLog(JSONUtil.toJsonStr(data));
+			bussinessDebitService.saveOrUpdate(debit);
+			return R.data(400, data, msg);
+		}
+	}
+	private BussinessDebit generateDebit(PayOrderDto payOrderDto){
+		BussinessDebit bussinessDebit = new BussinessDebit();
+		bussinessDebit.setFee(BigDecimal.valueOf(1));
+		bussinessDebit.setPrice(BigDecimal.valueOf(payOrderDto.getOrderAmount()));
+		bussinessDebit.setType(SystemConstant.BussinessDebitType.COMMISSION.getValue());
+		bussinessDebit.setBankAccountType(payOrderDto.getBankAccountType());
+		bussinessDebit.setReceiverAccountName(payOrderDto.getReceiverAccountName());
+		bussinessDebit.setReceiverAccountNo(payOrderDto.getReceiverAccountNo());
+		bussinessDebit.setReceiverBankCode(payOrderDto.getReceiverBankCode());
+		bussinessDebit.setBussinessOrderId(payOrderDto.getBussinessOrderId());
+		bussinessDebit.setMethod(2);//表示api对接
+		return bussinessDebit;
+	}
+
+
 	private BatchTransferDto getBatchPayObject(List<BussinessDebit> bussinessDebits){
 
 		//批次号
@@ -230,7 +331,7 @@ public class BussinessDebitRequestServiceImpl extends BaseServiceImpl<BussinessD
 				payOrderDto.setReceiverAccountName(bussinessDebit.getReceiverAccountName());
 				payOrderDto.setReceiverBankCode(bussinessDebit.getReceiverBankCode());
 				payOrderDto.setBankAccountType(bussinessDebit.getBankAccountType());
-				payOrderDto.setRequestNo(bussinessDebit.getId().toString());
+				payOrderDto.setRequestNo(bussinessDebit.getRequestNo());
 				R result = this.yeePayService.payToCard(payOrderDto);
 				cn.hutool.json.JSONObject data = JSONUtil.parseObj(result.getData());
 				String returnCode = data.getStr("returnCode");

+ 18 - 13
src/main/java/org/springblade/modules/guosen/bussiness/service/impl/BussinessServiceImpl.java

@@ -27,24 +27,34 @@ import com.itextpdf.text.pdf.PdfReader;
 import com.itextpdf.text.pdf.PdfStamper;
 import com.itextpdf.text.pdf.PdfWriter;
 import io.reactivex.internal.operators.maybe.MaybeObserveOn;
+import lombok.extern.slf4j.Slf4j;
 import org.springblade.common.constant.SystemConstant;
 import org.springblade.common.utils.MoneyDesUtil;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DigestUtil;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.modules.guosen.billRecord.entity.BillRecord;
 import org.springblade.modules.guosen.bussiness.entity.Bussiness;
+import org.springblade.modules.guosen.bussiness.entity.BussinessDebit;
+import org.springblade.modules.guosen.bussiness.entity.BussinessDebitRequest;
+import org.springblade.modules.guosen.bussiness.service.IBussinessDebitRequestService;
+import org.springblade.modules.guosen.bussiness.service.IBussinessDebitService;
 import org.springblade.modules.guosen.bussiness.vo.BussinessVO;
 import org.springblade.modules.guosen.bussiness.mapper.BussinessMapper;
 import org.springblade.modules.guosen.bussiness.service.IBussinessService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.modules.guosen.bussinessInfo.entity.BussinessInfo;
 import org.springblade.modules.guosen.bussinessInfo.service.IBussinessInfoService;
+import org.springblade.modules.guosen.debtDaliyStat.entity.BusinessDeptDaliyStat;
+import org.springblade.modules.guosen.debtDaliyStat.service.IBusinessDeptDaliyStatService;
 import org.springblade.modules.obs.service.ObsService;
 import org.springblade.modules.system.entity.AuthClient;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IAuthClientService;
+import org.springblade.modules.system.service.IParamService;
 import org.springblade.modules.system.service.IUserService;
+import org.springblade.yeePay.entity.PayOrderDto;
 import org.springblade.yeePay.service.YeePayService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -65,22 +75,15 @@ import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
  * @since 2021-07-08
  */
 @Service
+@Slf4j
 public class BussinessServiceImpl extends BaseServiceImpl<BussinessMapper, Bussiness> implements IBussinessService {
 
-	private final IUserService userService;
-	private final ObsService obsService;
-	private final YeePayService yeePayService;
-	private final IBussinessInfoService bussinessInfoService;
-
-
-
 	@Autowired
-	public BussinessServiceImpl(IUserService userService,ObsService obsService, YeePayService yeePayService, IBussinessInfoService bussinessInfoService) {
-		this.userService = userService;
-		this.obsService = obsService;
-		this.yeePayService = yeePayService;
-		this.bussinessInfoService = bussinessInfoService;
-	}
+	private IUserService userService;
+	@Autowired
+	private ObsService obsService;
+	@Autowired
+	private YeePayService yeePayService;
 
 	@Override
 	public IPage<Bussiness> selectBussinessPage(IPage<Bussiness> page, BussinessVO bussiness) {
@@ -210,6 +213,7 @@ public class BussinessServiceImpl extends BaseServiceImpl<BussinessMapper, Bussi
 					balance = balance.add(new BigDecimal(yeeBalance));
 				}
 			}
+			log.info("=================查询商户<" + merchantNo + ">余额:" + balance.toString());
 			return R.data(balance);
 		}else{
 			return R.fail("余额查询失败");
@@ -218,6 +222,7 @@ public class BussinessServiceImpl extends BaseServiceImpl<BussinessMapper, Bussi
 
 	}
 
+
 	private  String generateSecret(){
 		String uuid = UUID.randomUUID().toString();
 		char[] cs = new char[32];

+ 0 - 1
src/main/java/org/springblade/modules/guosen/bussiness/wrapper/BussinessWrapper.java

@@ -20,7 +20,6 @@ public class BussinessWrapper extends BaseEntityWrapper<Bussiness, BussinessVO>
 	public BussinessVO entityVO(Bussiness bussiness) {
 		BussinessVO bussinessVO = Objects.requireNonNull(BeanUtil.copy(bussiness,BussinessVO.class));
 		bussinessVO.setUserPassword(null);
-		bussinessVO.setAccountId(null);
 		bussinessVO.setRemain(MoneyDesUtil.decrypt(bussiness.getRemain(), MoneyDesUtil.KEY_FOR_UC));
 		return bussinessVO;
 	}

+ 7 - 1
src/main/java/org/springblade/modules/guosen/bussinessGoods/controller/BussinessGoodsController.java

@@ -17,6 +17,7 @@
 package org.springblade.modules.guosen.bussinessGoods.controller;
 
 import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -31,6 +32,7 @@ import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.guosen.bussiness.entity.Bussiness;
 import org.springblade.modules.guosen.bussiness.service.IBussinessService;
 import org.springframework.web.bind.annotation.*;
@@ -81,7 +83,11 @@ public class BussinessGoodsController extends BladeController {
 		if(user.getRoleName().equals("商户")){
 			bussinessGoods.setBussinessId(bussiness.getId());
 		}
-		IPage<BussinessGoods> pages = bussinessGoodsService.page(Condition.getPage(query), Condition.getQueryWrapper(bussinessGoods));
+		LambdaQueryWrapper<BussinessGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.like(StringUtil.isNotBlank(bussinessGoods.getGoodsName()), BussinessGoods::getGoodsName, bussinessGoods.getGoodsName());
+		lambdaQueryWrapper.eq(bussinessGoods.getBussinessId() != null, BussinessGoods::getBussinessId, bussinessGoods.getBussinessId());
+		lambdaQueryWrapper.eq(bussinessGoods.getGoodsNo() != null, BussinessGoods::getGoodsNo, bussinessGoods.getGoodsNo());
+		IPage<BussinessGoods> pages = bussinessGoodsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(BussinessGoodsWrapper.build().pageVO(pages));
 	}
 

+ 36 - 1
src/main/java/org/springblade/modules/guosen/bussinessInfo/controller/BussinessInfoController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.guosen.bussinessInfo.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -36,7 +37,9 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.guosen.bussiness.entity.Bussiness;
 import org.springblade.modules.guosen.bussiness.service.IBussinessService;
+import org.springblade.modules.guosen.bussiness.vo.SimpleBussinessVO;
 import org.springblade.modules.guosen.bussinessContactInfo.service.IBussinessContactInfoService;
+import org.springblade.modules.guosen.bussinessInfo.vo.SimpleBussinessInfoVO;
 import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -49,6 +52,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  *  控制器
@@ -91,7 +95,11 @@ public class BussinessInfoController extends BladeController {
 			Assert.notNull(bussiness, "商户不存在");
 			bussinessInfo.setBussinessId(bussiness.getId());
 		}
-		IPage<BussinessInfo> pages = bussinessInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(bussinessInfo));
+		LambdaQueryWrapper<BussinessInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.like(StringUtil.isNotBlank(bussinessInfo.getSignName()), BussinessInfo::getSignName, bussinessInfo.getSignName());
+		lambdaQueryWrapper.eq(bussinessInfo.getBussinessId() != null, BussinessInfo::getBussinessId, bussinessInfo.getBussinessId());
+		lambdaQueryWrapper.eq(bussinessInfo.getRegisterStatus() != null, BussinessInfo::getRegisterStatus, bussinessInfo.getRegisterStatus());
+		IPage<BussinessInfo> pages = bussinessInfoService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(BussinessInfoWrapper.build().pageVO(pages));
 	}
 
@@ -211,5 +219,32 @@ public class BussinessInfoController extends BladeController {
 		return R.data(agreementSignUrl);
 	}
 
+	/**
+	 * 根据条件下拉获取采购商list
+	 * @param bussinessInfo
+	 * @return
+	 */
+	@GetMapping(value = "/listBussinessInfo")
+	@ApiOperationSupport(order = 9)
+	public R<List<SimpleBussinessInfoVO>> listBussinessInfo(BussinessInfo bussinessInfo){
+		LambdaQueryWrapper<BussinessInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		if(StringUtil.isNotBlank(bussinessInfo.getSignName())){
+			lambdaQueryWrapper.like(BussinessInfo::getSignName, bussinessInfo.getShortName());
+		}
+		if(bussinessInfo.getRegisterStatus() != null){
+			lambdaQueryWrapper.eq(BussinessInfo::getRegisterStatus, bussinessInfo.getRegisterStatus());
+		}
+		List<BussinessInfo> list = bussinessInfoService.list(lambdaQueryWrapper);
+		List<SimpleBussinessInfoVO> voList = list.stream()
+				.map(item -> {
+					SimpleBussinessInfoVO vo = new SimpleBussinessInfoVO();
+					vo.setId(item.getId());
+					vo.setSignName(item.getSignName());
+					vo.setMerchantNo(item.getMerchantNo());
+					return vo;
+				}).collect(Collectors.toList());
+		return R.data(voList);
+	}
+
 	
 }

+ 16 - 0
src/main/java/org/springblade/modules/guosen/bussinessInfo/vo/SimpleBussinessInfoVO.java

@@ -0,0 +1,16 @@
+package org.springblade.modules.guosen.bussinessInfo.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SimpleBussinessInfoVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String signName;
+
+    private Long id;
+
+    private String merchantNo;
+}

+ 7 - 1
src/main/java/org/springblade/modules/guosen/bussinessPurchaseRecord/controller/BussinessPurchaseRecordController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.guosen.bussinessPurchaseRecord.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -27,6 +28,7 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -68,7 +70,11 @@ public class BussinessPurchaseRecordController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入bussinessPurchaseRecord")
 	public R<IPage<BussinessPurchaseRecordVO>> list(BussinessPurchaseRecord bussinessPurchaseRecord, Query query) {
-		IPage<BussinessPurchaseRecord> pages = bussinessPurchaseRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(bussinessPurchaseRecord));
+		LambdaQueryWrapper<BussinessPurchaseRecord> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.like(StringUtil.isNotBlank(bussinessPurchaseRecord.getBussinessName()), BussinessPurchaseRecord::getBussinessName, bussinessPurchaseRecord.getBussinessName());
+		lambdaQueryWrapper.eq(StringUtil.isNoneBlank(bussinessPurchaseRecord.getGoodsNo()), BussinessPurchaseRecord::getGoodsNo, bussinessPurchaseRecord.getGoodsNo());
+		lambdaQueryWrapper.eq(StringUtil.isNoneBlank(bussinessPurchaseRecord.getOrderNo()), BussinessPurchaseRecord::getOrderNo, bussinessPurchaseRecord.getOrderNo());
+		IPage<BussinessPurchaseRecord> pages = bussinessPurchaseRecordService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(BussinessPurchaseRecordWrapper.build().pageVO(pages));
 	}
 

+ 4 - 1
src/main/java/org/springblade/modules/guosen/bussinessRegisterRequest/controller/BussinessRegisterRequestController.java

@@ -54,6 +54,7 @@ import org.springblade.modules.guosen.bussinessRegisterRequest.wrapper.Bussiness
 import org.springblade.modules.guosen.bussinessRegisterRequest.service.IBussinessRegisterRequestService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -159,11 +160,13 @@ public class BussinessRegisterRequestController extends BladeController {
 		Assert.notNull(dbContact, "商户联系人信息不存在,请先完善联系人信息");
 		List<DictBiz> rateList = dictBizService.getList("yee_product_rate");
 		String baseRate = paramService.getValue("yee_base_rate");
+		String saasRate = paramService.getValue("yee_saas_rate");
+		BigDecimal percentRate = new BigDecimal(baseRate).add(new BigDecimal(saasRate));
 		List<JSONObject> rateJsonArray = rateList.stream().map(item -> {
 			JSONObject rate = new JSONObject();
 			rate.put("productCode", item.getDictKey());
 			rate.put("rateType", "SINGLE_PERCENT");
-			rate.put("percentRate", baseRate);
+			rate.put("percentRate", percentRate.toString());
 			return rate;
 		}).collect(Collectors.toList());
 		String rateListStr = JSON.toJSONString(rateJsonArray);

+ 4 - 1
src/main/java/org/springblade/modules/guosen/bussinessRegisterRequest/service/impl/BussinessRegisterRequestServiceImpl.java

@@ -133,10 +133,13 @@ public class BussinessRegisterRequestServiceImpl extends BaseServiceImpl<Bussine
 				R result = yeePayService.merchantRegister(bussinessRegisterRequest);
 				JSONObject resultData = JSONUtil.parseObj(result.getData());
 				String returnCode = resultData.getStr("returnCode");
-				bussinessRegisterRequest.setApplicationStatus(this.getApplicationStatus(resultData.getStr("applicationStatus")));
 				bussinessRegisterRequest.setApplicationNo(resultData.getStr("applicationNo"));
 				bussinessRegisterRequest.setThirdLog(JSONUtil.toJsonStr(resultData));
+				Integer registerStatus = this.getApplicationStatus(resultData.getStr("applicationStatus"));
+				bussinessRegisterRequest.setApplicationStatus(registerStatus);
+				bussinessInfo.setRegisterStatus(registerStatus);
 				if(returnCode.equals("NIG00000")){
+					this.bussinessInfoService.updateById(bussinessInfo);
 					this.baseMapper.updateById(bussinessRegisterRequest);
 					return R.success("送审成功,请等待审核");
 				}else{

+ 6 - 1
src/main/java/org/springblade/modules/guosen/bussinessTransferOrder/controller/BussinessTransferOrderController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.guosen.bussinessTransferOrder.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -27,6 +28,7 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -68,7 +70,10 @@ public class BussinessTransferOrderController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入bussinessTransferOrder")
 	public R<IPage<BussinessTransferOrderVO>> list(BussinessTransferOrder bussinessTransferOrder, Query query) {
-		IPage<BussinessTransferOrder> pages = bussinessTransferOrderService.page(Condition.getPage(query), Condition.getQueryWrapper(bussinessTransferOrder));
+		LambdaQueryWrapper<BussinessTransferOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.like(StringUtil.isNotBlank(bussinessTransferOrder.getFinishTime()), BussinessTransferOrder::getFinishTime, bussinessTransferOrder.getFinishTime());
+		lambdaQueryWrapper.eq(StringUtil.isNoneBlank(bussinessTransferOrder.getTransferStatus()), BussinessTransferOrder::getTransferStatus, bussinessTransferOrder.getTransferStatus());
+		IPage<BussinessTransferOrder> pages = bussinessTransferOrderService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(BussinessTransferOrderWrapper.build().pageVO(pages));
 	}
 

+ 1 - 0
src/main/java/org/springblade/modules/guosen/bussinessTransferOrder/service/impl/BussinessTransferOrderServiceImpl.java

@@ -55,6 +55,7 @@ public class BussinessTransferOrderServiceImpl extends BaseServiceImpl<Bussiness
 		TransferOrderDto transferOrderDto = TransferOrderDto.builder()
 				.usage(StringUtil.isBlank(bussinessTransferOrder.getTransferUsage()) ? "采购" : bussinessTransferOrder.getTransferUsage())
 				.fromMerchantNo(bussinessTransferOrder.getFromMerchantNo())
+				.toMerchantNo(bussinessTransferOrder.getToMerchantNo())
 				.requestNo(bussinessTransferOrder.getRequestNo())
 				.orderAmount(bussinessTransferOrder.getOrderAmount())
 				.feeChargeSide(bussinessTransferOrder.getFeeChargeSide())

+ 67 - 7
src/main/java/org/springblade/modules/time/TimeTask.java

@@ -1,9 +1,9 @@
 package org.springblade.modules.time;
 
-
-//import com.alibaba.fastjson.JSONArray;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.common.constant.SystemConstant;
 import org.springblade.core.mp.support.Condition;
@@ -11,13 +11,17 @@ import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.guosen.billRecord.entity.BillRecord;
 import org.springblade.modules.guosen.billRecord.service.IBillRecordService;
+import org.springblade.modules.guosen.bussiness.entity.Bussiness;
 import org.springblade.modules.guosen.bussiness.entity.BussinessBonusAccount;
 import org.springblade.modules.guosen.bussiness.entity.BussinessBonusRecords;
 import org.springblade.modules.guosen.bussiness.entity.BussinessBonusStatic;
 import org.springblade.modules.guosen.bussiness.service.IBussinessBonusAccountService;
 import org.springblade.modules.guosen.bussiness.service.IBussinessBonusRecordsService;
 import org.springblade.modules.guosen.bussiness.service.IBussinessBonusStaticService;
+import org.springblade.modules.guosen.bussinessTransferOrder.entity.BussinessTransferOrder;
+import org.springblade.modules.guosen.bussinessTransferOrder.service.IBussinessTransferOrderService;
 import org.springblade.modules.system.service.IParamService;
+import org.springblade.yeePay.common.YeePayConst;
 import org.springframework.beans.factory.annotation.Autowired;
 		import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.scheduling.annotation.EnableScheduling;
@@ -29,29 +33,32 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Component
 @EnableScheduling
 @RestController
 @RequestMapping("sync")
-//@Profile({"prod"})
+@Slf4j
 public class TimeTask {
 
 	@Resource
 	private StringRedisTemplate stringRedisTemplate;
-
 	@Resource
 	private IBillRecordService billRecordService;
-
 	@Resource
 	private IBussinessBonusStaticService bussinessBonusStaticService;
 	@Autowired
-	private IBussinessBonusAccountService bussinessBonusAccoutService;
+	private IBussinessBonusAccountService bussinessBonusAccountService;
 	@Autowired
 	private IBussinessBonusRecordsService bussinessBonusRecordsService;
 	@Autowired
 	private IParamService paramService;
+	@Autowired
+	private IBussinessTransferOrderService bussinessTransferOrderService;
+	@Autowired
+	private YeePayConst yeePayConst;
 
 	@Scheduled(cron = "0 0 0 * * ?")
 	public  void clearRedis() {
@@ -59,6 +66,9 @@ public class TimeTask {
 		stringRedisTemplate.delete(keys);
 	}
 
+	/**
+	 * 凌晨0时5分
+	 */
 	@GetMapping("/testBonus")
 	@Scheduled(cron = "0 5 0 * * ?")
 	public void generateAdsBonus() {
@@ -114,7 +124,7 @@ public class TimeTask {
 		BussinessBonusStatic bonusStatic = bussinessBonusStaticService.getBaseMapper().selectOne(new QueryWrapper<>(new BussinessBonusStatic()).lambda()
 				.like(BussinessBonusStatic::getDate, df.format(yesterday)));
 
-		List<BussinessBonusAccount> accountList = bussinessBonusAccoutService.list();
+		List<BussinessBonusAccount> accountList = bussinessBonusAccountService.list();
 		for(BussinessBonusAccount account : accountList){
 			BussinessBonusRecords record = new BussinessBonusRecords();
 			record.setBonusAccountId(account.getId());
@@ -170,6 +180,9 @@ public class TimeTask {
 		}
 	}
 
+	/**
+	 * 晚上22点
+	 */
 	@Scheduled(cron = "0 0 22 * * ?")
 	public void closeSystem() {
 		LambdaQueryWrapper<org.springblade.modules.system.entity.Param> lambdaQueryWrapper = new LambdaQueryWrapper();
@@ -181,6 +194,9 @@ public class TimeTask {
 		}
 	}
 
+	/**
+	 * 早上7点
+	 */
 	@Scheduled(cron = "0 0 7 * * ?")
 	public void openSystem() {
 		LambdaQueryWrapper<org.springblade.modules.system.entity.Param> lambdaQueryWrapper = new LambdaQueryWrapper();
@@ -191,4 +207,48 @@ public class TimeTask {
 			paramService.saveOrUpdate(param);
 		}
 	}
+
+	/**
+	 * 早上5点
+	 */
+//	@Scheduled(cron = "0 0 5 * * ?")
+	public void transferFormPlatformToBusiness() {
+		String toMerchantNo = paramService.getValue("self_merchant_no");
+		//获取前一天的日期
+		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+		Calendar calendar = Calendar.getInstance();
+		calendar.add(Calendar.DATE, -1);
+
+		Date yesterday = calendar.getTime();
+		BussinessBonusStatic bonusStatic = bussinessBonusStaticService.getBaseMapper().selectOne(new QueryWrapper<>(new BussinessBonusStatic()).lambda()
+				.like(BussinessBonusStatic::getDate, df.format(yesterday)));
+
+		if(bonusStatic.getBonusAmt() != null && bonusStatic.getBonusAmt().compareTo(new BigDecimal(2)) == 1){
+			BussinessTransferOrder transferOrder = new BussinessTransferOrder();
+			transferOrder.setRequestNo(UUID.randomUUID().toString().replaceAll("-","").toUpperCase());
+			transferOrder.setOrderAmount(bonusStatic.getBonusAmt().toString());
+			transferOrder.setFromMerchantNo(yeePayConst.getParentMerchantNo());
+			transferOrder.setToMerchantNo(toMerchantNo);
+			transferOrder.setTransferUsage("采购");
+			transferOrder.setFeeChargeSide("OUTSIDE");
+			boolean save = bussinessTransferOrderService.save(transferOrder);
+			if(save){
+				//发起充值服务费转账。
+				bussinessTransferOrderService.transferOrder(transferOrder);
+			}else{
+				log.error("=======================分润转账业务订单保存失败========================");
+				log.error(JSONUtil.toJsonStr(transferOrder));
+			}
+		}
+	}
+
+	/**
+	 * 仅用于测试
+	 */
+//	@GetMapping("/testBonus111")
+//	public void testsss(){
+//		List<BussinessBonusAccount> bonusAccountList = bussinessBonusAccountService.list();
+//		BussinessBonusAccount account = bonusAccountList.stream().filter(item -> item.getReceiverAccountName().equals("广州士多啤梨传媒有限公司")).collect(Collectors.toList()).get(0);
+//		System.out.println(account);
+//	}
 }

+ 36 - 9
src/main/java/org/springblade/yeePay/controller/BussinessPayController.java

@@ -16,11 +16,14 @@ import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.utils.SpringUtil;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.guosen.bussiness.dto.BussinessDebitDTO;
 import org.springblade.modules.guosen.bussiness.entity.Bussiness;
+import org.springblade.modules.guosen.bussiness.entity.BussinessBonusAccount;
 import org.springblade.modules.guosen.bussiness.entity.BussinessDebit;
 import org.springblade.modules.guosen.bussiness.entity.BussinessDebitRequest;
+import org.springblade.modules.guosen.bussiness.service.IBussinessBonusAccountService;
 import org.springblade.modules.guosen.bussiness.service.IBussinessDebitRequestService;
 import org.springblade.modules.guosen.bussiness.service.IBussinessDebitService;
 import org.springblade.modules.guosen.bussiness.service.IBussinessService;
@@ -48,7 +51,9 @@ import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.net.URI;
 import java.text.DecimalFormat;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * Created By lidexi in 2021/7/8
@@ -115,10 +120,10 @@ public class BussinessPayController {
 	 *	代付:交易到银行卡(单笔出款)
 	 * @param payOrderDto 交易信息
 	 * */
-	@PostMapping("/toCard")
+//	@PostMapping("/toCard")
 	@ApiOperation("代付:转账到银行卡(单笔出款)")
 	@AccessLimit(second = 2, maxCount = 1)
-	public R transferToCard(@RequestBody @Valid PayOrderDto payOrderDto, @RequestParam("secret") String secret, HttpServletRequest request){
+	public R transferToCard_old(@RequestBody @Valid PayOrderDto payOrderDto, @RequestParam("secret") String secret, HttpServletRequest request){
 		String maintain = paramService.getValue("maintain");
 		if(StringUtil.isNotBlank(maintain)){
 			if(maintain.equals("0")){ //进入维护时间
@@ -192,8 +197,6 @@ public class BussinessPayController {
 		if(StringUtil.isNotBlank(returnCode) && returnCode.equals("UA00000")) { //代付发起成功
 			log.info("========================单笔代付发起成功====================");
 			debit.setCurrentRemain(MoneyDesUtil.decrypt(remain.toString(), MoneyDesUtil.KEY_FOR_UC));
-
-			bussinessService.updateFreeze(bussiness);
 			debit.setFailReason(returnMsg);
 			debit.setThirdPayLog(JsonUtil.toJson(data));
 			debit.setThirdOrderNo(orderNo);
@@ -208,6 +211,30 @@ public class BussinessPayController {
 		}
 	}
 
+	/**
+	 *  账户服务-付款下单
+	 *	代付:交易到银行卡(单笔出款)
+	 * @param payOrderDto 交易信息
+	 * */
+	@PostMapping("/toCard")
+	@ApiOperation("代付:转账到银行卡(单笔出款)")
+	@AccessLimit(second = 2, maxCount = 1)
+	public R transferToCard(@RequestBody @Valid PayOrderDto payOrderDto, @RequestParam("secret") String secret, HttpServletRequest request){
+		//获取当前登录用户
+		BladeUser user = AuthUtil.getUser();
+		if(user == null){
+			return R.fail("账号不存在");
+		}
+		Bussiness bussiness = bussinessService.getBaseMapper().selectOne(new QueryWrapper<>(new Bussiness()).lambda()
+				.eq(Bussiness::getAccountId, user.getUserId()).eq(Bussiness::getSecret,secret));
+		if(bussiness == null){
+			return R.fail("商户不存在");
+		}
+		payOrderDto.setBussinessId(bussiness.getId());
+		R result = bussinessDebitRequestService.payOrder(payOrderDto, IPUtils.getIP(request));
+		return result;
+	}
+
 	private BussinessDebit generateDebit(PayOrderDto payOrderDto){
 		BussinessDebit bussinessDebit = new BussinessDebit();
 		bussinessDebit.setFee(BigDecimal.valueOf(1));
@@ -227,11 +254,11 @@ public class BussinessPayController {
 //		String remain = "74FDD3B3995D136FDA7C81FE5C5C7534";
 //		String decrypt = MoneyDesUtil.decrypt(remain, MoneyDesUtil.KEY_FOR_UC);
 //		System.out.printf(decrypt);
-		BigDecimal small = new BigDecimal("20.30");
-		BigDecimal big = new BigDecimal("0.0022");
-		DecimalFormat format = new DecimalFormat("0.00#");
-		BigDecimal result = new BigDecimal(format.format(small.multiply(big)));
-		System.out.println(result);
+//		BigDecimal small = new BigDecimal("20.30");
+//		BigDecimal big = new BigDecimal("0.0022");
+//		DecimalFormat format = new DecimalFormat("0.00#");
+//		BigDecimal result = new BigDecimal(format.format(small.multiply(big)));
+//		System.out.println(result);
 	}
 
 }

+ 2 - 3
src/main/java/org/springblade/yeePay/entity/PayOrderDto.java

@@ -41,8 +41,7 @@ public class PayOrderDto {
 	@ApiModelProperty(value = "收款帐户的卡号",required = true)
 	String receiverAccountNo;
 
-	@NotBlank
-	@ApiModelProperty(value = "付款商户号",required = true)
+	@ApiModelProperty(value = "付款商户号")
 	String merchantNo;
 
 	@NotBlank
@@ -93,7 +92,7 @@ public class PayOrderDto {
 		"示例值:http://www.baidu.com")
 	String notifyUrl;
 
-	@ApiModelProperty(value = "请求订单号,自定义生成,唯一",required = true)
+	@ApiModelProperty(value = "请求订单号,自定义生成,唯一")
 	String requestNo;
 
 

+ 9 - 2
src/main/java/org/springblade/yeePay/entity/RechargeDto.java

@@ -5,8 +5,9 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
 
+import java.io.Serializable;
+
 @Data
-@Builder
 @ApiModel("充值-银行汇款下单入参")
 public class RechargeDto {
 
@@ -22,10 +23,16 @@ public class RechargeDto {
     @ApiModelProperty(value = "商户通知地址",required = true)
     public String notifyUrl;
 
-    @ApiModelProperty(value = "备注",required = true)
+    @ApiModelProperty(value = "备注",required = false)
     public String remark;
 
     @ApiModelProperty(value = "充值支付方式",required = true)
     public String payType;
 
+    @ApiModelProperty(value = "银行编码",required = true)
+    public String bankCode;
+
+    @ApiModelProperty(value = "支付成功跳转地址",required = true)
+    public String returnUrl;
+
 }

+ 16 - 0
src/main/java/org/springblade/yeePay/event/RechargeServiceFeePayNotifyEvent.java

@@ -0,0 +1,16 @@
+package org.springblade.yeePay.event;
+
+import lombok.Getter;
+import org.springblade.modules.guosen.billRecord.entity.BillRecord;
+import org.springframework.context.ApplicationEvent;
+
+@Getter
+public class RechargeServiceFeePayNotifyEvent extends ApplicationEvent {
+
+    private BillRecord billRecord;
+
+    public RechargeServiceFeePayNotifyEvent(BillRecord billRecord) {
+        super(billRecord);
+        this.billRecord = billRecord;
+    }
+}

+ 5 - 4
src/main/java/org/springblade/yeePay/listener/RechargeOrderNotifyListener.java

@@ -16,6 +16,7 @@ import org.springblade.modules.guosen.bussinessTransferOrder.service.IBussinessT
 import org.springblade.yeePay.entity.TransferOrderDto;
 import org.springblade.yeePay.event.GatewayEvent;
 import org.springblade.yeePay.event.RechargeOrderEvent;
+import org.springblade.yeePay.event.RechargeServiceFeePayNotifyEvent;
 import org.springblade.yeePay.event.RechargeServiceFeeTransferNotifyEvent;
 import org.springblade.yeePay.service.YeePayService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,7 +48,7 @@ public class RechargeOrderNotifyListener {
 	private ApplicationEventPublisher eventPublisher;
 
 	/**
-	 * 银行汇款充值回调业务逻辑处理(新版)
+	 * 银充值回调业务逻辑处理(新版)
 	 *
 	 * @param rechargeOrderEvent 回调事件
 	 */
@@ -82,9 +83,9 @@ public class RechargeOrderNotifyListener {
 						billRecordService.updateById(billRecord);
 						//提交事务
 						platformTransactionManager.commit(transaction);
-						//发送异步事件,发起转账,扣除充值的服务费。
-						RechargeServiceFeeTransferNotifyEvent rsftEvent = new RechargeServiceFeeTransferNotifyEvent(billRecord);
-						eventPublisher.publishEvent(rsftEvent);
+						//发送异步事件,发起代付(付款下单),扣除充值的服务费。
+						RechargeServiceFeePayNotifyEvent rsfpEvent = new RechargeServiceFeePayNotifyEvent(billRecord);
+						eventPublisher.publishEvent(rsfpEvent);
 					}catch (Exception e){
 						//回滚事务
 						platformTransactionManager.rollback(transaction);

+ 68 - 0
src/main/java/org/springblade/yeePay/listener/RechargeServiceFeePayNotifyListener.java

@@ -0,0 +1,68 @@
+package org.springblade.yeePay.listener;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.modules.guosen.billRecord.entity.BillRecord;
+import org.springblade.modules.guosen.bussiness.entity.Bussiness;
+import org.springblade.modules.guosen.bussiness.entity.BussinessBonusAccount;
+import org.springblade.modules.guosen.bussiness.service.IBussinessBonusAccountService;
+import org.springblade.modules.guosen.bussiness.service.IBussinessDebitRequestService;
+import org.springblade.modules.guosen.bussiness.service.IBussinessService;
+import org.springblade.modules.system.service.IParamService;
+import org.springblade.yeePay.entity.PayOrderDto;
+import org.springblade.yeePay.event.RechargeServiceFeePayNotifyEvent;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class RechargeServiceFeePayNotifyListener {
+
+    @Autowired
+    private IBussinessDebitRequestService bussinessDebitRequestService;
+    @Autowired
+    private IBussinessService bussinessService;
+    @Autowired
+    private IParamService paramService;
+    @Autowired
+    private IBussinessBonusAccountService bussinessBonusAccountService;
+
+    @EventListener
+    @Async
+    public void notify(RechargeServiceFeePayNotifyEvent rsfpEvent) {
+        BillRecord billRecord = rsfpEvent.getBillRecord();
+        if(billRecord != null){
+            Long bussinessId = billRecord.getUserId();
+            Bussiness bussiness = this.bussinessService.getById(bussinessId);
+            //服务费金额 = 充值原始金额 * (总服务费率-基础手续费率-SaaS费率)
+            BigDecimal rechargeAmount = billRecord.getPrice();
+            BigDecimal totalServiceRate = bussiness.getServiceRate();
+            BigDecimal baseRate = new BigDecimal(paramService.getValue("yee_base_rate")).multiply(new BigDecimal(10));//0.21 * 10 = 2.1
+            BigDecimal saasBaseRate = new BigDecimal(paramService.getValue("yee_saas_rate")).multiply(new BigDecimal(10));//0.1 * 10 = 1
+            BigDecimal payRate = (totalServiceRate.subtract(baseRate).subtract(saasBaseRate)).divide(new BigDecimal(1000));
+            BigDecimal payAmount = rechargeAmount.multiply(payRate).setScale(2, BigDecimal.ROUND_HALF_UP);
+            if(totalServiceRate.compareTo(baseRate) == -1){
+                log.error("=======================充值服务费转账业务校验失败:服务费率低于基础费率,请重新设置服务费率========================");
+                log.error("服务费率:" + totalServiceRate.toString());
+                return;
+            }
+            PayOrderDto payOrderDto = new PayOrderDto();
+            payOrderDto.setMerchantNo(bussiness.getMerchantNo());
+            payOrderDto.setReceiveType("REAL_TIME");
+            payOrderDto.setOrderAmount(payAmount.doubleValue());
+            payOrderDto.setFeeChargeSide("PAYER");
+            payOrderDto.setBussinessId(billRecord.getUserId());
+            List<BussinessBonusAccount> bonusAccountList = bussinessBonusAccountService.list();
+            BussinessBonusAccount account = bonusAccountList.stream().filter(item -> item.getReceiverAccountName().equals("广州士多啤梨传媒有限公司")).collect(Collectors.toList()).get(0);
+            payOrderDto.setReceiverAccountNo(account.getReceiverAccountNo());
+            payOrderDto.setReceiverAccountName(account.getReceiverAccountName());
+            payOrderDto.setReceiverBankCode(account.getReceiverBankCode());
+            this.bussinessDebitRequestService.payOrder(payOrderDto, "易宝回调");
+        }
+    }
+}

+ 5 - 4
src/main/java/org/springblade/yeePay/listener/RechargeServiceFeeTransferNotifyListener.java

@@ -2,15 +2,13 @@ package org.springblade.yeePay.listener;
 
 import cn.hutool.json.JSONUtil;
 import lombok.extern.slf4j.Slf4j;
-import org.springblade.core.tool.api.R;
 import org.springblade.modules.guosen.billRecord.entity.BillRecord;
 import org.springblade.modules.guosen.bussiness.entity.Bussiness;
 import org.springblade.modules.guosen.bussiness.service.IBussinessService;
 import org.springblade.modules.guosen.bussinessTransferOrder.entity.BussinessTransferOrder;
 import org.springblade.modules.guosen.bussinessTransferOrder.service.IBussinessTransferOrderService;
-import org.springblade.modules.system.service.IDictBizService;
 import org.springblade.modules.system.service.IParamService;
-import org.springblade.yeePay.entity.TransferOrderDto;
+import org.springblade.yeePay.common.YeePayConst;
 import org.springblade.yeePay.event.RechargeServiceFeeTransferNotifyEvent;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.event.EventListener;
@@ -30,6 +28,8 @@ public class RechargeServiceFeeTransferNotifyListener {
     private IParamService paramService;
     @Autowired
     private IBussinessTransferOrderService bussinessTransferOrderService;
+    @Autowired
+    private YeePayConst yeePayConst;
 
     @EventListener
     @Async
@@ -50,9 +50,10 @@ public class RechargeServiceFeeTransferNotifyListener {
                 return;
             }
             BussinessTransferOrder transferOrder = new BussinessTransferOrder();
-            transferOrder.setRequestNo("TF" + UUID.randomUUID().toString().replaceAll("-","").toUpperCase());
+            transferOrder.setRequestNo(UUID.randomUUID().toString().replaceAll("-","").toUpperCase());
             transferOrder.setOrderAmount(transferAmount.toString());
             transferOrder.setFromMerchantNo(bussiness.getMerchantNo());
+            transferOrder.setToMerchantNo(yeePayConst.getParentMerchantNo());
             transferOrder.setTransferUsage("采购");
             transferOrder.setFeeChargeSide("OUTSIDE");
             boolean save = bussinessTransferOrderService.save(transferOrder);

+ 0 - 25
src/main/java/org/springblade/yeePay/listener/TransferOrderNotifyListener.java

@@ -1,37 +1,12 @@
 package org.springblade.yeePay.listener;
 
-import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
-import org.springblade.common.constant.SystemConstant;
-import org.springblade.common.utils.MoneyDesUtil;
-import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.modules.guosen.bussiness.entity.Bussiness;
-import org.springblade.modules.guosen.bussiness.entity.BussinessDebit;
-import org.springblade.modules.guosen.bussiness.service.IBussinessDebitService;
-import org.springblade.modules.guosen.bussiness.service.IBussinessService;
 import org.springblade.modules.guosen.bussinessTransferOrder.entity.BussinessTransferOrder;
 import org.springblade.modules.guosen.bussinessTransferOrder.service.IBussinessTransferOrderService;
-import org.springblade.modules.guosen.debtDaliyStat.entity.BusinessDeptDaliyStat;
-import org.springblade.modules.guosen.debtDaliyStat.service.IBusinessDeptDaliyStatService;
-import org.springblade.yeePay.entity.NotifyDto;
-import org.springblade.yeePay.event.PayOrderNotifyEvent;
 import org.springblade.yeePay.event.TransferOrderEvent;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.ParameterizedTypeReference;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
-import org.springframework.transaction.PlatformTransactionManager;
-import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
-import org.springframework.web.client.RestTemplate;
-
-import java.math.BigDecimal;
-import java.net.URI;
 
 @Component
 @Slf4j

+ 22 - 11
src/main/java/org/springblade/yeePay/service/YeePayService.java

@@ -241,26 +241,38 @@ public class YeePayService {
 		bussinessRegisterRequest.setNotifyUrl(yeePayConst.getMerchantRegisterNotify());
 		request.addParameter("parentMerchantNo",yeePayConst.getParentMerchantNo());
 		addParamsFromObj(bussinessRegisterRequest,request,bussinessRegisterRequest.getClass());
-		R execute = execute(request);
-		log.info("======================== 商户进件申请同步结果数据 =======================");
-		log.info(JSONUtil.toJsonStr(execute));
-		return execute;
+		try {
+			R execute = execute(request);
+			log.info("======================== 商户进件申请同步结果数据 =======================");
+			log.info(JSONUtil.toJsonStr(execute));
+			return execute;
+		}catch (Exception e){
+			R.fail(e.getMessage());
+			return R.fail("系统异常");
+		}
 	}
 
 	/**
-	 * 	充值-银行汇款下单
+	 * 	充值-银下单
 	 *
 	 * @param rechargeDto
 	 * @return*/
 	public R merchantRechargeOrder(RechargeDto rechargeDto){
 		YopRequest request = new YopRequest(yeePayConst.getRechargeOrderUrl(), "POST");
-		request.addParameter("parentMerchantNo",yeePayConst.getParentMerchantNo());
 		rechargeDto.setNotifyUrl(yeePayConst.getRechargeOrderNotify());
+		request.addParameter("parentMerchantNo",yeePayConst.getParentMerchantNo());
 		addParamsFromObj(rechargeDto, request, rechargeDto.getClass());
-		R execute = execute(request);
-		log.info("=========================商户充值-银行汇款下单同步结果数据 =======================");
-		log.info(JSONUtil.toJsonStr(execute));
-		return execute;
+		try{
+			log.info("=========================商户充值-网银下单请求数据 =======================");
+			log.info(JSONUtil.toJsonStr(rechargeDto));
+			R execute = execute(request);
+			log.info("=========================商户充值-网银下单同步结果数据 =======================");
+			log.info(JSONUtil.toJsonStr(execute));
+			return execute;
+		}catch (Exception e){
+			R.fail(e.getMessage());
+			return R.fail("系统异常");
+		}
 	}
 
 
@@ -441,7 +453,6 @@ public class YeePayService {
 	public R transferOrder(TransferOrderDto transferOrderDto){
 		YopRequest request = new YopRequest(yeePayConst.getTransferOrderUrl(), "POST");
 		request.addParameter("parentMerchantNo", yeePayConst.getParentMerchantNo());
-		transferOrderDto.setToMerchantNo(yeePayConst.getParentMerchantNo());
 		transferOrderDto.setNotifyUrl(yeePayConst.getTransferOrderNotify());
 		addParamsFromObj(transferOrderDto, request, transferOrderDto.getClass());
 		R execute = execute(request);

+ 2 - 2
src/main/resources/payConfig.properties

@@ -13,7 +13,7 @@ pay.secret = MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMk5bBLo0tZ3JYVU77/
 #yee-pay.parentMerchantNo = 10086066206
 #yee-pay.merchantNo = 10086066206
 
-yee-pay.parentMerchantNo = 10086145103
+yee-pay.parentMerchantNo = 10086158190
 yee-pay.sm4Key = M0huZkdCZHhSU0h6YVF3aQ==
 yee-pay.weChatConfigAddUrl = /rest/v2.0/aggpay/wechat-config/add
 yee-pay.weChatConfigQueryUrl = /rest/v2.0/aggpay/wechat-config/query
@@ -31,7 +31,7 @@ yee-pay.privateKey = MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgUiUMy5mYPZ9
 
 yee-pay.qualUpload = /yos/v1.0/sys/merchant/qual/upload
 yee-pay.merchantRegisterUrl = /rest/v2.0/mer/register/saas/merchant
-yee-pay.rechargeOrderUrl = /rest/v1.0/account/recharge/order
+yee-pay.rechargeOrderUrl = /rest/v1.0/account/recharge/onlinebank/order
 yee-pay.transferOrderUrl = /rest/v1.0/account/transfer/b2b/order
 yee-pay.payOrderUrl = /rest/v1.0/account/pay/order
 yee-pay.merchantRegisterNotify = https://music.nanyue6688.com/ldt/api/yeePay/merchant/register/notify

+ 5 - 1
src/test/java/org/springblade/test/BladeTest.java

@@ -10,7 +10,9 @@ import org.springblade.core.test.BladeBootTest;
 import org.springblade.core.test.BladeSpringRunner;
 import org.springblade.modules.guosen.billRecord.entity.BillRecord;
 import org.springblade.modules.guosen.billRecord.service.IBillRecordService;
+import org.springblade.modules.guosen.bussiness.entity.BussinessBonusAccount;
 import org.springblade.modules.guosen.bussiness.entity.BussinessBonusStatic;
+import org.springblade.modules.guosen.bussiness.service.IBussinessBonusAccountService;
 import org.springblade.modules.guosen.bussiness.service.IBussinessBonusStaticService;
 import org.springblade.modules.guosen.userActivityStatistical.entity.UserActivityStatistical;
 import org.springblade.modules.guosen.userActivityStatistical.service.IUserActivityStatisticalService;
@@ -31,12 +33,14 @@ import java.util.stream.Collectors;
  * @author Chill
  */
 @RunWith(BladeSpringRunner.class)
-@BladeBootTest(appName = "blade-runner", profile = "dev")
+@BladeBootTest(appName = "blade-runner", profile = "test")
 @Component
 public class BladeTest {
 
 	@Autowired
 	private IBillRecordService billRecordService;
+	@Autowired
+	private IBussinessBonusAccountService bussinessBonusAccountService;
 
 	@Test
 	public void contextLoads() {