TRX 1 rok temu
rodzic
commit
f940fd4d21

+ 1 - 1
PaymentClient/src/main/java/com/zhongshu/payment/client/service/OrderPayFeignService.java

@@ -17,7 +17,7 @@ import javax.validation.Valid;
 /**
  * @author
  */
-@FeignClient("paymentserver/manager/orderPay")
+@FeignClient("paymentserver-trx/manager/orderPay")
 public interface OrderPayFeignService {
 
     /**

+ 9 - 0
PaymentServer/src/main/java/com/zhongshu/payment/server/core/domain/wallet/RechargeRecord.java

@@ -74,6 +74,15 @@ public class RechargeRecord extends SuperEntity {
     @Schema(name = "amount", description = "订单金额,单位分")
     private BigDecimal total = BigDecimal.ZERO;
 
+    @Schema(description = "交易中可给用户开具发票的金额")
+    private Integer invoiceAmount;
+
+    @Schema(description = "优惠金额")
+    private Integer couponAmount;
+
+    @Schema(description = "实付金额")
+    private Integer buyerPayAmount;
+
     @Schema(name = "description", description = "商品描述(必填)")
     private String description;
 

+ 58 - 0
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/pay/impl/unionFrictionlessPay/UnionFrictionlessPayMainService.java

@@ -9,7 +9,10 @@ import com.github.microservice.models.type.PaymentType;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.stream.PaymentStreamType;
 import com.github.microservice.stream.model.OrderStateModel;
+import com.github.microservice.types.OrderState;
 import com.github.microservice.types.RefundStatus;
+import com.zhongshu.card.client.model.org.OrgUserDetailParam;
+import com.zhongshu.card.client.model.org.OrganizationUserModel;
 import com.zhongshu.card.client.model.org.UserCountModel;
 import com.zhongshu.card.client.service.feign.OrganizationFeignService;
 import com.zhongshu.card.client.service.feign.UserFeignService;
@@ -28,8 +31,10 @@ import com.github.microservice.types.unionFrictionlessPayType.UnionUserOpenType;
 import com.zhongshu.payment.client.payModel.unionFrictionlessPay.paymentModel.SignInParam;
 import com.zhongshu.payment.client.payModel.unionFrictionlessPay.paymentModel.UserRescissionParam;
 import com.zhongshu.payment.client.payModel.unionFrictionlessPay.paymentModel.UserSignQueryParam;
+import com.zhongshu.payment.client.types.TradeType;
 import com.zhongshu.payment.server.core.dao.RechargeRecordDao;
 import com.zhongshu.payment.server.core.dao.unionFrictionlessPay.UnionUserOpenInfoDao;
+import com.zhongshu.payment.server.core.dataConfig.TimeConfig;
 import com.zhongshu.payment.server.core.domain.unionFrictionlessPay.UnionUserOpenInfo;
 import com.zhongshu.payment.server.core.domain.wallet.RechargeRecord;
 import com.zhongshu.payment.server.core.service.org.CollectionIdService;
@@ -47,6 +52,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -240,6 +246,57 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
      */
     public ResultContent createAndPayOrder(CreateOrderParam param) {
         // 查询是否签约
+        String userId = param.getUserId();
+        String shopId = param.getShopId();
+        // 创建订单
+        String outTradeNo = param.getOutTradeNo();
+        BigDecimal total = param.getTotal();
+
+        RechargeRecord rechargeRecord = rechargeRecordDao.findByOutTradeNo(outTradeNo);
+        if (rechargeRecord == null) {
+            // 创建充值订单
+            rechargeRecord = new RechargeRecord();
+            // 所属项目oid
+            rechargeRecord.setOid(param.getProjectOid());
+            // 所属学校oid
+            rechargeRecord.setSchoolId(param.getSchoolId());
+            // 所属商户oid
+            rechargeRecord.setShopId(shopId);
+            // 用户userId
+            rechargeRecord.setUserId(userId);
+            // 消费方式
+            rechargeRecord.setPaymentType(param.getPaymentType());
+            // 消费
+            rechargeRecord.setTradeType(TradeType.Pay);
+            // 订单号(唯一)
+            rechargeRecord.setOutTradeNo(outTradeNo);
+            // 未支付状态 待付款
+            rechargeRecord.setRechargeState(OrderState.WAIT_PAYMENT);
+            rechargeRecord.setDescription(param.getDescription());
+            // 金额
+            rechargeRecord.setTotal(total);
+            // 是否提交到支付渠道
+            rechargeRecord.setCommit(true);
+
+            // 时间信息
+            long createTIme = System.currentTimeMillis();
+            rechargeRecord.setCreateTime(createTIme);
+            rechargeRecord.setTimes();
+            // 订单过期时间
+            rechargeRecord.setExpireTime(createTIme + TimeConfig.rechargeExpireTime);
+
+            // 查询用户在学校的信息
+            OrgUserDetailParam orgUserDetailParam = new OrgUserDetailParam();
+            orgUserDetailParam.setOid(param.getSchoolId());
+            orgUserDetailParam.setUserId(userId);
+            ResultContent<OrganizationUserModel> orgUserDetail = organizationFeignService.getOrgUserDetail(orgUserDetailParam);
+            if (orgUserDetail.isFailed()) {
+                return ResultContent.buildFail("获取用户信息失败");
+            }
+            rechargeRecord.setUserInfo(orgUserDetail.getContent());
+            rechargeRecord.setAttach(param.getAttach());
+            rechargeRecordDao.save(rechargeRecord);
+        }
 
         SenselessPayParam senselessPayParam = new SenselessPayParam();
         senselessPayParam.setRequestTimestamp(DateUtils.paresTime(System.currentTimeMillis(), DateUtils.FORMAT_LONG));
@@ -250,6 +307,7 @@ public class UnionFrictionlessPayMainService extends SuperPayService {
             return ResultContent.buildFail(requestAPI.getMsg());
         }
         SenselessPayResponse response = (SenselessPayResponse) requestAPI;
+        log.info("state: {}", response.isSuccess());
 
         return ResultContent.buildSuccess();
     }

+ 4 - 1
PaymentServer/src/main/java/com/zhongshu/payment/server/core/service/pay/impl/unionFrictionlessPay/UnionRequestService.java

@@ -24,6 +24,7 @@ import com.zhongshu.payment.server.core.utils.AesUtils;
 import com.zhongshu.payment.server.core.utils.CommonUtil;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StopWatch;
@@ -118,7 +119,6 @@ public class UnionRequestService extends SuperService {
                 }
                 log.info("response: {}", response);
                 responseModel = jsonHelper.toObject(response, tClass);
-                responseModel.setCode(code);
             } catch (Exception e) {
                 e.printStackTrace();
                 responseModel.setCode(code);
@@ -135,6 +135,9 @@ public class UnionRequestService extends SuperService {
                     ex.printStackTrace();
                 }
             }
+            if (StringUtils.isNotEmpty(responseModel.getErrCode())) {
+                code = 400;
+            }
             log.info("response: {} {}", responseModel.getErrCode(), code);
             responseModel.setCode(code);
             stopWatch.stop();