查询同步支付信息逻辑

master
wujingtao 3 years ago
parent 88d7498563
commit 9e1372dce3

@ -3,23 +3,17 @@ package com.hchbox.api;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.hchbox.constant.DefaultNumberConstants;
import com.hchbox.enums.ResponseCode;
import com.hchbox.exception.TaoMiCommException;
import com.hchbox.model.param.CommonResult;
import com.hchbox.module.entity.PayOrder;
import com.hchbox.module.entity.PayTwoOrder;
import com.hchbox.vo.UpdateAccountsVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@ -217,6 +211,11 @@ public class RequestCore {
return getTaoBaoSaleSizeApi(reqUrl);
}
/**
*
* @param payTwoOrder
* @return
*/
public Integer updateAccount(PayTwoOrder payTwoOrder) {
String reqUrl = url + API_PREFIX + "/account/updateAccount";
if (ObjectUtil.isEmpty(payTwoOrder)) {

@ -1,15 +1,11 @@
package com.hchbox.module.controller;
import com.hchbox.module.entity.PayTwoOrder;
import com.hchbox.module.entity.RechargeOrder;
import com.hchbox.model.param.CommonResult;
import com.hchbox.module.entity.SellerAccount;
import com.hchbox.module.entity.vo.AliPayPcVo;
import com.hchbox.module.service.AccountRechargeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -50,13 +46,13 @@ public class RechargeController {
@ApiOperation(value = "支付回调2")
@RequestMapping(value = "/pay-notify-two")
public CommonResult<String> frontRcvResponseTwo(HttpServletRequest request) {
public CommonResult<String> frontRcvResponseTwo(HttpServletRequest request) {
return accountRechargeService.pcTwoNotifyResponse(request);
}
@GetMapping("/orderSnList")
@ApiOperation("查询同步数据支付数据")
public CommonResult<Page<PayTwoOrder>> getOrderSnAll(@RequestParam(value = "nickName", required = false) String nickName, Pageable pageable) {
return accountRechargeService.getOrderSnAll(nickName, pageable);
public CommonResult<Object> getOrderSnAll(@RequestParam(value = "nickName") String nickName) {
return accountRechargeService.getOrderSnAll(nickName);
}
}

@ -33,7 +33,7 @@ public class SynchronizedAmountController {
@PostMapping("/sale/size")
@ApiOperation("历史订单查询接口")
public CommonResult<Object> synchronizedAmount(@RequestBody SubAccountsVo subAccountsVo) {
if (ObjectUtil.isEmpty(subAccountsVo) && subAccountsVo.getStartTime() == null && subAccountsVo.getEndTime() == null && subAccountsVo.getSessionKey() == null) {
if (ObjectUtil.isEmpty(subAccountsVo) || subAccountsVo.getStartTime() == null || subAccountsVo.getEndTime() == null || subAccountsVo.getSessionKey() == null) {
return new CommonResult<>().error("参数错误或为空");
}
return synchronizedAmountService.synchronizedAmount(subAccountsVo);

@ -1,11 +1,12 @@
package com.hchbox.module.dao;
import com.hchbox.module.entity.PayOrder;
import com.hchbox.module.entity.PayTwoOrder;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author
* @date : 2021/11/08
@ -15,8 +16,17 @@ public interface PayTwoOrderRepository extends JpaRepository<PayTwoOrder, Intege
/**
*
*
* @param orderNumber
* @return
*/
PayTwoOrder findByOrderNumber(String orderNumber);
/**
*
*
* @param nickName
* @return
*/
List<PayTwoOrder> findByNickName(String nickName);
}

@ -7,7 +7,7 @@ import lombok.Data;
@Data
public class PayTwoOrderVo {
@Query(type = Query.Type.INNER_LIKE, propName = "nickname")
@Query(type = Query.Type.INNER_LIKE, propName = "nick_name")
@ApiModelProperty("nickname")
private String nickname;
}

@ -3,10 +3,7 @@ package com.hchbox.module.service;
import com.hchbox.module.entity.PayTwoOrder;
import com.hchbox.module.entity.RechargeOrder;
import com.hchbox.model.param.CommonResult;
import com.hchbox.module.entity.SellerAccount;
import com.hchbox.module.entity.vo.AliPayPcVo;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import javax.servlet.http.HttpServletRequest;
@ -48,7 +45,6 @@ public interface AccountRechargeService {
CommonResult<String> pcTwoNotifyResponse(HttpServletRequest request);
/**
*
* @param payTwoOrder
* @return
*/
@ -56,8 +52,9 @@ public interface AccountRechargeService {
/**
*
*
* @param nickName
* @return
*/
CommonResult<Page<PayTwoOrder>> getOrderSnAll(String nickName, Pageable pageable);
CommonResult<Object> getOrderSnAll(String nickName);
}

@ -21,15 +21,10 @@ import com.hchbox.module.entity.RechargeOrder;
import com.hchbox.module.entity.SellerAccount;
import com.hchbox.exception.TaoMiCommException;
import com.hchbox.model.param.CommonResult;
import com.hchbox.module.entity.vo.PayTwoOrderVo;
import com.hchbox.module.service.AccountRechargeService;
import com.hchbox.util.GenerateIdUtils;
import com.hchbox.util.PageUtil;
import com.hchbox.util.QueryHelp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alipay.easysdk.factory.Factory;
@ -43,8 +38,8 @@ import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.time.LocalTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @author wjt
@ -213,8 +208,8 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
try {
// 雪花算法id
String orderNo = String.valueOf(IdUtil.getSnowflake(workerId, datacenterId).nextId());
Double num = payTwoOrder.getAmount() + payTwoOrder.getIdenticalAmount();
// Double num = 0.01;
// Double num = payTwoOrder.getAmount() + payTwoOrder.getIdenticalAmount();
Double num = 0.01;
// 生成返回对象
response = Factory.Payment.Page()
.pay(PayConstants.PAY_TITLE + orderNo, orderNo, num.toString(), aliPay.getNotifyUrlTwo());
@ -234,16 +229,9 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
}
@Override
public CommonResult<Page<PayTwoOrder>> getOrderSnAll(String nickName, Pageable pageable) {
PayTwoOrderVo payTwoOrderVo = new PayTwoOrderVo();
if (!Objects.equals(nickName, "") && nickName != null) {
payTwoOrderVo.setNickname(nickName);
}
Page<PayTwoOrder> payTwoOrders = payTwoOrderRepository.findAll(
((root, criteriaQuery, cb) ->
QueryHelp.getPredicate(root, payTwoOrderVo, cb)), pageable);
return new CommonResult<Page<PayTwoOrder>>().success(
PageUtil.toPage(payTwoOrders.getContent(), payTwoOrders.getTotalElements()));
public CommonResult<Object> getOrderSnAll(String nickName) {
List<PayTwoOrder> byNickName = payTwoOrderRepository.findByNickName(nickName);
return new CommonResult<>().success(byNickName);
}
@Override
@ -274,6 +262,8 @@ public class AccountRechargeServiceImpl implements AccountRechargeService {
requestCore.updateTwoPayOrder(order);
}
if (requestCore.updateAccount(order) == DefaultNumberConstants.ZERO_NUMBER) {
order.setOrderStatus(DefaultNumberConstants.TWO_NUMBER);
requestCore.updateTwoPayOrder(order);
log.error("++++++++++++++++同步主账号错误账号id{}", order.getMasterUserId());
}
}

@ -3,6 +3,7 @@ package com.hchbox.module.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import com.hchbox.api.RequestCore;
import com.hchbox.constant.DefaultNumberConstants;
import com.hchbox.model.param.CommonResult;
import com.hchbox.module.entity.PayTwoOrder;
import com.hchbox.module.service.SynchronizedAmountService;
@ -35,10 +36,11 @@ public class SynchronizedAmountServiceImpl implements SynchronizedAmountService
PayTwoOrder payTwoOrder = new PayTwoOrder();
//获取同步时间内的历史订单数
Integer taoBaoSaleSize = requestCore.getTaoBaoSaleSize(subAccountsVo.getStartTime(), subAccountsVo.getEndTime(), subAccountsVo.getSessionKey());
double historyAmount = 0.00;
int day = Math.toIntExact(DateUtil.betweenDay(DateUtil.parse(subAccountsVo.getStartTime()), DateUtil.parse(subAccountsVo.getEndTime()), true));
int average;
if (taoBaoSaleSize != null) {
if (taoBaoSaleSize != null && taoBaoSaleSize != DefaultNumberConstants.ZERO_NUMBER) {
//历史金额
historyAmount = NumberUtil.mul(taoBaoSaleSize, amount).doubleValue();
//平均每天多少单
@ -58,6 +60,8 @@ public class SynchronizedAmountServiceImpl implements SynchronizedAmountService
payTwoOrder.setMasterUserId(subAccountsVo.getParentId());
payTwoOrder.setHistoryNum(taoBaoSaleSize.longValue());
} else {
payTwoOrder.setIdenticalAmount(0.00);
payTwoOrder.setHistoryNum((long) DefaultNumberConstants.ZERO_NUMBER);
payTwoOrder.setAmount(budgetAmount);
payTwoOrder.setAnticipateNum(NumberUtil.div(budgetAmount, BigDecimal.valueOf(amount)).longValue());
}

@ -34,6 +34,7 @@ import java.sql.Timestamp;
/**
* is_del
*
* @author Zheng Jie
* @Date 2019102420:46:32
*/
@ -66,10 +67,12 @@ public class BaseEntity implements Serializable {
private Timestamp updateTime;
/* 分组校验 */
public @interface Create {}
public @interface Create {
}
/* 分组校验 */
public @interface Update {}
public @interface Update {
}
@Override
public String toString() {

Loading…
Cancel
Save