|
|
@@ -2,14 +2,11 @@ package com.sqx.modules.pay.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.github.wxpay.sdk.WXPay;
|
|
|
import com.github.wxpay.sdk.WXPayConstants;
|
|
|
import com.github.wxpay.sdk.WXPayUtil;
|
|
|
-import com.sqx.common.utils.DistanceUtil;
|
|
|
import com.sqx.common.utils.Result;
|
|
|
import com.sqx.modules.address.dao.AddressDao;
|
|
|
-import com.sqx.modules.address.entity.Address;
|
|
|
import com.sqx.modules.app.dao.UserDao;
|
|
|
import com.sqx.modules.app.dao.UserMoneyDetailsDao;
|
|
|
import com.sqx.modules.app.entity.UserEntity;
|
|
|
@@ -21,26 +18,21 @@ import com.sqx.modules.app.service.UserService;
|
|
|
import com.sqx.modules.common.entity.CommonInfo;
|
|
|
import com.sqx.modules.common.service.CommonInfoService;
|
|
|
import com.sqx.modules.coupon.dao.TbCouponUserDao;
|
|
|
-import com.sqx.modules.coupon.entity.TbCouponUser;
|
|
|
import com.sqx.modules.coupon.service.TbCouponUserService;
|
|
|
import com.sqx.modules.datacentre.service.DataCentreService;
|
|
|
import com.sqx.modules.errand.entity.TbIndent;
|
|
|
import com.sqx.modules.errand.service.TbIndentService;
|
|
|
-import com.sqx.modules.errand.util.LonLatUtil;
|
|
|
import com.sqx.modules.goods.dao.GoodsShopDao;
|
|
|
import com.sqx.modules.goods.dao.GoodsShopRelevancyDao;
|
|
|
import com.sqx.modules.goods.dao.GoodsSkuDao;
|
|
|
-import com.sqx.modules.goods.entity.Goods;
|
|
|
import com.sqx.modules.goods.entity.GoodsShop;
|
|
|
-import com.sqx.modules.goods.entity.GoodsShopRelevancy;
|
|
|
import com.sqx.modules.goods.service.GoodsService;
|
|
|
import com.sqx.modules.message.dao.MessageInfoDao;
|
|
|
-import com.sqx.modules.message.entity.MessageInfo;
|
|
|
import com.sqx.modules.order.dao.AppOrderDao;
|
|
|
import com.sqx.modules.order.dao.OrderGoodsDao;
|
|
|
-import com.sqx.modules.order.entity.OrderGoods;
|
|
|
import com.sqx.modules.order.entity.TbOrder;
|
|
|
import com.sqx.modules.order.service.AppOrderService;
|
|
|
+import com.sqx.modules.pay.PayOrderDTO;
|
|
|
import com.sqx.modules.pay.config.WXConfig;
|
|
|
import com.sqx.modules.pay.controller.app.AliPayController;
|
|
|
import com.sqx.modules.pay.dao.PayDetailsDao;
|
|
|
@@ -49,12 +41,8 @@ import com.sqx.modules.pay.service.WxService;
|
|
|
import com.sqx.modules.shop.service.ShopMessageService;
|
|
|
import com.sqx.modules.utils.AmountCalUtils;
|
|
|
import com.sqx.modules.utils.MD5Util;
|
|
|
-import com.sqx.modules.utils.SenInfoCheckUtil;
|
|
|
import com.sqx.modules.utils.WXConfigUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.gavaghan.geodesy.Ellipsoid;
|
|
|
-import org.gavaghan.geodesy.GlobalCoordinates;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -62,7 +50,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.*;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
import java.util.concurrent.locks.ReentrantReadWriteLock;
|
|
|
|
|
|
/**
|
|
|
@@ -132,10 +122,10 @@ public class WxServiceImpl implements WxService {
|
|
|
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
@Override
|
|
|
- public Result balanceOrder(Long userId, Long parentId, Integer orderType, Long addressId, Long activityId) {
|
|
|
+ public Result balanceOrder(Long userId, PayOrderDTO payOrderDTO) {
|
|
|
reentrantReadWriteLock.writeLock().lock();
|
|
|
try{
|
|
|
- return balanceOrders(userId, parentId, orderType, addressId, activityId);
|
|
|
+ return balanceOrders(userId, payOrderDTO);
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
log.error("下单异常:"+e.getMessage(),e);
|
|
|
@@ -147,17 +137,11 @@ public class WxServiceImpl implements WxService {
|
|
|
|
|
|
/**
|
|
|
* 钱包支付订单
|
|
|
- * @param userId
|
|
|
- * @param parentId
|
|
|
- * @param orderType
|
|
|
- * @param addressId
|
|
|
- * @param activityId 活动id
|
|
|
- * @return
|
|
|
*/
|
|
|
@Transactional
|
|
|
- public Result balanceOrders(Long userId, Long parentId, Integer orderType, Long addressId, Long activityId){
|
|
|
+ public Result balanceOrders(Long userId, PayOrderDTO payOrderDTO){
|
|
|
// 获取订单信息
|
|
|
- TbOrder tbOrder = appOrderService.prepareOrder(userId, parentId, orderType, addressId, activityId);
|
|
|
+ TbOrder tbOrder = appOrderService.prepareOrder(userId, payOrderDTO);
|
|
|
|
|
|
// 扣除用户余额
|
|
|
BigDecimal payMoney = tbOrder.getPayMoney();
|
|
|
@@ -256,17 +240,14 @@ public class WxServiceImpl implements WxService {
|
|
|
/**
|
|
|
* 微信/支付宝支付订单
|
|
|
* @param userId 用户id
|
|
|
- * @param parentId 父订单id
|
|
|
- * @param type 支付方式
|
|
|
- * @param addressId 用户地址id
|
|
|
- * @param orderType 订单类型 1到店、2外卖
|
|
|
- * @param activityId 活动id
|
|
|
+ * @param payOrderDTO 支付订单
|
|
|
*/
|
|
|
@Override
|
|
|
- public Result payOrder(Long userId, Long parentId, Integer type, Long addressId, Integer orderType, Long activityId) throws Exception {
|
|
|
- TbOrder tbOrder = appOrderService.prepareOrder(userId, parentId, orderType, addressId, activityId);
|
|
|
+ public Result payOrder(Long userId, PayOrderDTO payOrderDTO) throws Exception {
|
|
|
+ TbOrder tbOrder = appOrderService.prepareOrder(userId, payOrderDTO);
|
|
|
|
|
|
// 设置支付方式 1表示微信支付、4或5表示支付宝支付
|
|
|
+ Integer type = payOrderDTO.getType();
|
|
|
tbOrder.setPayType(1);
|
|
|
if(type== 4 || type== 5){
|
|
|
tbOrder.setPayType(3);
|