|
|
@@ -1,28 +1,49 @@
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.ekyong.www.pay.pay.qrcode.api.RhtQrcodePayApi;
|
|
|
+import com.ekyong.www.pay.pay.qrcode.bean.QrcodeQueryRequestBean;
|
|
|
+import com.ekyong.www.pay.pay.qrcode.bean.QrcodeQueryResponseBean;
|
|
|
import com.sqx.SqxApplication;
|
|
|
+import com.sqx.common.utils.Constant;
|
|
|
+import com.sqx.common.utils.DateUtils;
|
|
|
import com.sqx.common.utils.RedisUtils;
|
|
|
+import com.sqx.common.utils.Result;
|
|
|
+import com.sqx.modules.activity.entity.ActivityPartRecord;
|
|
|
import com.sqx.modules.activity.service.ActivityPartRecordService;
|
|
|
import com.sqx.modules.app.dao.UserMoneyDetailsDao;
|
|
|
import com.sqx.modules.app.entity.UserMoneyDetails;
|
|
|
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
|
|
import com.sqx.modules.app.service.UserMoneyService;
|
|
|
+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.errand.entity.TbIndent;
|
|
|
+import com.sqx.modules.errand.entity.TbIndentSmsSendLog;
|
|
|
+import com.sqx.modules.errand.service.TbIndentService;
|
|
|
+import com.sqx.modules.errand.service.TbIndentSmsSendLogService;
|
|
|
+import com.sqx.modules.goods.entity.GoodsShop;
|
|
|
import com.sqx.modules.goods.service.GoodsShopService;
|
|
|
import com.sqx.modules.order.dao.AppOrderDao;
|
|
|
import com.sqx.modules.order.entity.TbOrder;
|
|
|
import com.sqx.modules.order.service.AppOrderService;
|
|
|
+import com.sqx.modules.pay.config.WechatPayConfig;
|
|
|
import com.sqx.modules.pay.service.WxService;
|
|
|
import com.sqx.modules.shop.service.ShopMessageService;
|
|
|
import com.sqx.scheduler.order.OrderScheduler;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.junit.jupiter.api.Test;
|
|
|
+import org.junit.Test;
|
|
|
import org.junit.runner.RunWith;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
@@ -78,6 +99,12 @@ public class OrderTest {
|
|
|
@Autowired
|
|
|
private GoodsShopService goodsShopService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TbIndentSmsSendLogService smsSendLogService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private TbIndentService tbIndentService;
|
|
|
+
|
|
|
@Test
|
|
|
public void test() {
|
|
|
TbOrder tbOrder = appOrderService.selectOrderByNum("202603111524117723");
|
|
|
@@ -287,4 +314,209 @@ public class OrderTest {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public static void main(String[] args) throws Exception {
|
|
|
+ WechatPayConfig wechatMchConfig = WechatPayConfig.builder()
|
|
|
+ .appId("wx45ab46867002aa0b")
|
|
|
+ .mchId("866360132440001")
|
|
|
+ .mchKey("B9591F61B1944A93938DD3DFA9070763")
|
|
|
+ .h5Url("https://mxys.chuanghai-tech.com")
|
|
|
+ .build();
|
|
|
+
|
|
|
+ RhtQrcodePayApi qrcodePay = new RhtQrcodePayApi(wechatMchConfig.getMchId(), wechatMchConfig.getMchKey(), "https://api.ekbuyclub.com");
|
|
|
+
|
|
|
+ String orderNumberStr =
|
|
|
+ "118702260413005915377980"
|
|
|
+ ;
|
|
|
+ for (String orderNumber : orderNumberStr.split(",")) {
|
|
|
+ QrcodeQueryRequestBean qqrb = new QrcodeQueryRequestBean();
|
|
|
+ // qqrb.setTraceno(orderNumber);// 商户流水号
|
|
|
+ qqrb.setRefno(orderNumber);// 商户流水号
|
|
|
+ QrcodeQueryResponseBean response2 = qrcodePay.query(qqrb);
|
|
|
+ System.out.println("订单【" + orderNumber + "】查询响应2" + response2);
|
|
|
+ String respCode = response2.getRespCode();
|
|
|
+ if ("0".equals(respCode)) {
|
|
|
+ System.out.println("订单【" + orderNumber + "】未支付2");
|
|
|
+ } else if ("1".equals(respCode)) {
|
|
|
+ System.out.println("订单【" + orderNumber + "】已经支付2");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ @Test
|
|
|
+ public void test3() {
|
|
|
+// Integer orderId=2201878;
|
|
|
+// TbOrder tbOrder = appOrderDao.selectById(orderId);
|
|
|
+// String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
|
|
|
+// TbIndent indent = tbIndentService.getOne(new QueryWrapper<TbIndent>().eq("order_id", orderId));
|
|
|
+//
|
|
|
+// log.info("订单id【{}】,开始计算商户应得金额", orderId);
|
|
|
+//
|
|
|
+// GoodsShop goodsShop = shopMessageService.selectShopId(tbOrder.getShopId());
|
|
|
+
|
|
|
+ // 计算商户应得金额
|
|
|
+// BigDecimal shopRate = goodsShop.getShopRate();
|
|
|
+// 商家抽拥比例
|
|
|
+ BigDecimal shopRate = new BigDecimal(0.955);
|
|
|
+// BigDecimal sumMoney = tbOrder.getPayMoney();
|
|
|
+// 订单实付金额
|
|
|
+ BigDecimal sumMoney = new BigDecimal(44.6);
|
|
|
+// 当前无优惠券
|
|
|
+ BigDecimal couponMoney = BigDecimal.ZERO;
|
|
|
+ Long shopIds = -1L;
|
|
|
+// if (tbOrder.getCouponId() != null) {
|
|
|
+// TbCouponUser tbCouponUser = tbCouponUserDao.selectById(tbOrder.getCouponId());
|
|
|
+// sumMoney = tbOrder.getPayMoney().add(tbCouponUser.getMoney());
|
|
|
+// couponMoney = tbCouponUser.getMoney();
|
|
|
+// shopIds = tbCouponUser.getShopId();
|
|
|
+// }
|
|
|
+
|
|
|
+ BigDecimal errandMoney = BigDecimal.ZERO;
|
|
|
+
|
|
|
+// if (tbOrder.getOrderType() != 1) {
|
|
|
+ //判断是否达到商家满减 如果达到商家满减 跑腿费让商家承担
|
|
|
+// if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 0) {
|
|
|
+// errandMoney = tbOrder.getErrandMoney();
|
|
|
+ errandMoney = new BigDecimal(1.00);
|
|
|
+// sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
|
+ sumMoney = sumMoney.subtract(errandMoney);
|
|
|
+// } else {
|
|
|
+// sumMoney = sumMoney.subtract(tbOrder.getErrandMoney());
|
|
|
+// errandMoney = tbOrder.getErrandMoney();
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ // 再减去校内配送费
|
|
|
+// sumMoney = sumMoney.subtract(tbOrder.getInsideDeliveryFee());
|
|
|
+
|
|
|
+ // 店铺收入
|
|
|
+ BigDecimal shopMoney = sumMoney.multiply(shopRate);
|
|
|
+ shopMoney = shopMoney.setScale(2, BigDecimal.ROUND_DOWN);
|
|
|
+ BigDecimal pingRate = sumMoney.subtract(shopMoney);
|
|
|
+
|
|
|
+ // 商家配送短信服务费
|
|
|
+ BigDecimal smsSendMoney = BigDecimal.ZERO;
|
|
|
+// if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 1) {
|
|
|
+// // 查询短信发送结果
|
|
|
+// if (ObjectUtil.isNotNull(indent)) {
|
|
|
+// TbIndentSmsSendLog smsSendLog = smsSendLogService.getSendSuccessByOrderId(indent.getIndentId());
|
|
|
+// if (ObjectUtil.isNotNull(smsSendLog)) {
|
|
|
+// // 查询短信发送费用
|
|
|
+// CommonInfo commonInfo = commonInfoService.findOne(421);
|
|
|
+// smsSendMoney = new BigDecimal(commonInfo.getValue());
|
|
|
+//
|
|
|
+// // 店铺收入-短信费用
|
|
|
+// shopMoney = shopMoney.subtract(smsSendMoney);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ // 这里再判断 是否是商家优惠券 如果是商家优惠券 这笔钱商家承担
|
|
|
+ if (shopIds != -1 && shopIds != 0) {
|
|
|
+ shopMoney = shopMoney.subtract(couponMoney);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断订单是否参与活动,如果参与活动,则优惠金额由商家承担
|
|
|
+// ActivityPartRecord activityPartRecord = activityPartRecordService.getByOrderId(tbOrder.getOrderId());
|
|
|
+ BigDecimal activityDiscountAmount = BigDecimal.ZERO;
|
|
|
+// if (ObjectUtil.isNotNull(activityPartRecord)) {
|
|
|
+// activityDiscountAmount = activityPartRecord.getDiscountAmount();
|
|
|
+// 当前订单优惠金额
|
|
|
+ activityDiscountAmount = new BigDecimal(2.000000);
|
|
|
+// }
|
|
|
+
|
|
|
+// if (tbOrder.getAutoSendOrder() != null && tbOrder.getAutoSendOrder() == 1) {
|
|
|
+// //如果达到商家满减 则商家不加上配送费
|
|
|
+// if (!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())) {
|
|
|
+// shopMoney = shopMoney.add(tbOrder.getErrandMoney());
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// /*if("本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
|
|
|
+// shopMoney=shopMoney.subtract(tbOrder.getErrandMoney());
|
|
|
+// }*/
|
|
|
+// }
|
|
|
+
|
|
|
+ StringBuffer contentBuffer = new StringBuffer();
|
|
|
+ BigDecimal rider = new BigDecimal(0);
|
|
|
+// 当前是骑手配送,并且额外配送费是0
|
|
|
+// if (ObjectUtils.isNotEmpty(tbOrder.getOrderTypeExtra()) && tbOrder.getOrderTypeExtra() == 2) {
|
|
|
+ // 获取骑手额外配送费
|
|
|
+ // 配送费大于等于1.5就不需要骑手额外配送费
|
|
|
+// if (tbOrder.getErrandMoney().doubleValue()<1.5) {
|
|
|
+// CommonInfo commonInfo = commonInfoService.findOne(443);
|
|
|
+// if (ObjectUtils.isNotEmpty(commonInfo)) {
|
|
|
+// rider = rider.add(new BigDecimal(commonInfo.getValue()));
|
|
|
+// shopMoney = shopMoney.subtract(rider);
|
|
|
+// }
|
|
|
+//// }
|
|
|
+// log.info("订单id【{}】,骑手额外配送费【{}】", orderId, rider);
|
|
|
+// }
|
|
|
+
|
|
|
+// tbOrder.setShopIncomeMoney(shopMoney);
|
|
|
+ System.out.println("shop_income_money商家本单收入 = " + shopMoney);
|
|
|
+// log.info("订单id【{}】,商户应得金额计算完毕", orderId);
|
|
|
+// log.info("订单id【{}】,开始添加商户用户钱包收入记录", orderId);
|
|
|
+
|
|
|
+ // 添加商户用户钱包收入记录
|
|
|
+ UserMoneyDetails userMoneyDetails1 = new UserMoneyDetails();
|
|
|
+// userMoneyDetails1.setShopId(goodsShop.getShopId());
|
|
|
+ userMoneyDetails1.setShopId(438L);
|
|
|
+ userMoneyDetails1.setTitle("商户订单收入,订单号:" + "202604121145576836");
|
|
|
+ // 订单金额
|
|
|
+// BigDecimal orderAmount = tbOrder.getPayMoney().add(couponMoney).add(activityDiscountAmount);
|
|
|
+
|
|
|
+ BigDecimal orderAmount = new BigDecimal(44.60).add(couponMoney).add(activityDiscountAmount);
|
|
|
+
|
|
|
+ contentBuffer.append("订单金额:").append(orderAmount.setScale(2, BigDecimal.ROUND_DOWN));
|
|
|
+ if (!couponMoney.equals(BigDecimal.ZERO)) {
|
|
|
+ contentBuffer.append(",优惠券金额:").append(couponMoney.setScale(2, BigDecimal.ROUND_DOWN));
|
|
|
+ }
|
|
|
+ if (!activityDiscountAmount.equals(BigDecimal.ZERO)) {
|
|
|
+ contentBuffer.append(",活动优惠金额:").append(activityDiscountAmount.setScale(2, BigDecimal.ROUND_DOWN));
|
|
|
+ }
|
|
|
+
|
|
|
+// contentBuffer.append(",用户实付金额:").append(tbOrder.getPayMoney()).append(",其中");
|
|
|
+ contentBuffer.append(",用户实付金额:").append(new BigDecimal(44.60)).append(",其中");
|
|
|
+
|
|
|
+// if (tbOrder.getOrderType() != 1) {
|
|
|
+ if (2 != 1) {
|
|
|
+// contentBuffer.append("跑腿费:").append(errandMoney.setScale(2, BigDecimal.ROUND_DOWN)).append("(").append(tbOrder.getErrandMoneyIsShop()).append(")").append(",");
|
|
|
+ contentBuffer.append("跑腿费:").append(errandMoney.setScale(2, BigDecimal.ROUND_DOWN)).append("(").append("商家未开启配送费满减,跑腿费由用户承担").append(")").append(",");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+// contentBuffer.append("特殊地址跑腿费:").append(tbOrder.getInsideDeliveryFee().setScale(2, BigDecimal.ROUND_DOWN)).append(",");
|
|
|
+ contentBuffer.append("特殊地址跑腿费:").append(new BigDecimal(0.000000).setScale(2, BigDecimal.ROUND_DOWN)).append(",");
|
|
|
+ contentBuffer.append("平台服务费:").append(pingRate.setScale(2, BigDecimal.ROUND_DOWN)).append(",");
|
|
|
+ contentBuffer.append("短信服务费:").append(smsSendMoney.setScale(2, BigDecimal.ROUND_DOWN)).append(",");
|
|
|
+// if (ObjectUtils.isNotEmpty(tbOrder.getOrderTypeExtra()) && tbOrder.getOrderTypeExtra() == 2) {
|
|
|
+ contentBuffer.append("骑手额外配送费:").append(rider.setScale(2, BigDecimal.ROUND_DOWN)).append(",");
|
|
|
+// }
|
|
|
+
|
|
|
+ // 会员优惠
|
|
|
+// if (StrUtil.equals(tbOrder.getVipPromotion(), Constant.YES)) {
|
|
|
+ if (StrUtil.equals("0", Constant.YES)) {
|
|
|
+ CommonInfo commonInfo = commonInfoService.findOne(444);
|
|
|
+ contentBuffer.append("会员优惠金额:").append(commonInfo.getValue()).append("元,");
|
|
|
+ }
|
|
|
+
|
|
|
+ contentBuffer.append("到账金额:").append(shopMoney.setScale(2, BigDecimal.ROUND_DOWN));
|
|
|
+
|
|
|
+
|
|
|
+ if (shopIds == 0) {
|
|
|
+ contentBuffer.append("(本单为平台优惠券,平台补贴)");
|
|
|
+ } else if (shopIds != -1) {
|
|
|
+ contentBuffer.append("(本单为商家优惠券,商家补贴)");
|
|
|
+ }
|
|
|
+
|
|
|
+ userMoneyDetails1.setContent(contentBuffer.toString());
|
|
|
+
|
|
|
+ userMoneyDetails1.setType(1);
|
|
|
+ userMoneyDetails1.setClassify(3);
|
|
|
+ userMoneyDetails1.setMoney(shopMoney);
|
|
|
+// userMoneyDetails1.setCreateTime(format);
|
|
|
+ userMoneyDetails1.setState(2);
|
|
|
+ System.out.println("userMoneyDetails1 = " + userMoneyDetails1);
|
|
|
+// log.info("订单id【{}】,商户用户钱包收入记录新增成功", orderId);
|
|
|
+
|
|
|
+ //将用户支付的金额转入商户用户钱包
|
|
|
+ }
|
|
|
}
|