提交修改
This commit is contained in:
parent
95940263fd
commit
e78cce35f2
@ -149,4 +149,6 @@ public interface VvTradeOrderLineDao extends BaseMapper<VvTradeOrderLineEntity>
|
|||||||
|
|
||||||
|
|
||||||
List<VvTradeOrderLineEntity> selectVvTradeOrderLineByBuyerIdTrackNumber(Long buyerId, String trackNumber);
|
List<VvTradeOrderLineEntity> selectVvTradeOrderLineByBuyerIdTrackNumber(Long buyerId, String trackNumber);
|
||||||
|
|
||||||
|
List<VvTradeOrderLineEntity> selectByTradeOrderIdAndTransactionId(Long tradeOrderId, String transactionId);
|
||||||
}
|
}
|
||||||
@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
|
|||||||
/**
|
/**
|
||||||
*购物车
|
*购物车
|
||||||
* @author quyixiao
|
* @author quyixiao
|
||||||
* @since 2025-10-25
|
* @since 2025-11-06
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ -72,6 +72,8 @@ private static final long serialVersionUID = 1L;
|
|||||||
public final static String award_amount = CLASS_NAME + "award_amount"; // 奖励金额
|
public final static String award_amount = CLASS_NAME + "award_amount"; // 奖励金额
|
||||||
public final static String activity_id = CLASS_NAME + "activity_id"; // 活动id
|
public final static String activity_id = CLASS_NAME + "activity_id"; // 活动id
|
||||||
public final static String activity_award_count = CLASS_NAME + "activity_award_count"; // 这次活动的奖励次数
|
public final static String activity_award_count = CLASS_NAME + "activity_award_count"; // 这次活动的奖励次数
|
||||||
|
public final static String transaction_id = CLASS_NAME + "transaction_id"; // 支付事务id
|
||||||
|
public final static String pay_type = CLASS_NAME + "pay_type"; // 支付方式,weixin
|
||||||
//
|
//
|
||||||
@TableId(value = "id", type = IdType.AUTO)
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
private Long id;
|
private Long id;
|
||||||
@ -175,6 +177,10 @@ private static final long serialVersionUID = 1L;
|
|||||||
private Long activityId;
|
private Long activityId;
|
||||||
//这次活动的奖励次数
|
//这次活动的奖励次数
|
||||||
private Integer activityAwardCount;
|
private Integer activityAwardCount;
|
||||||
|
//支付事务id
|
||||||
|
private String transactionId;
|
||||||
|
//支付方式,weixin
|
||||||
|
private String payType;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
@ -940,6 +946,36 @@ private static final long serialVersionUID = 1L;
|
|||||||
this.activityAwardCount = activityAwardCount;
|
this.activityAwardCount = activityAwardCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付事务id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getTransactionId() {
|
||||||
|
return transactionId;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 支付事务id
|
||||||
|
* @param transactionId
|
||||||
|
*/
|
||||||
|
public void setTransactionId(String transactionId) {
|
||||||
|
this.transactionId = transactionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付方式,weixin
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String getPayType() {
|
||||||
|
return payType;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 支付方式,weixin
|
||||||
|
* @param payType
|
||||||
|
*/
|
||||||
|
public void setPayType(String payType) {
|
||||||
|
this.payType = payType;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "VvTradeOrderLineEntity{" +
|
return "VvTradeOrderLineEntity{" +
|
||||||
@ -994,6 +1030,8 @@ private static final long serialVersionUID = 1L;
|
|||||||
",awardAmount=" + awardAmount +
|
",awardAmount=" + awardAmount +
|
||||||
",activityId=" + activityId +
|
",activityId=" + activityId +
|
||||||
",activityAwardCount=" + activityAwardCount +
|
",activityAwardCount=" + activityAwardCount +
|
||||||
|
",transactionId=" + transactionId +
|
||||||
|
",payType=" + payType +
|
||||||
"}";
|
"}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@ public class MysqlMain_update {
|
|||||||
}
|
}
|
||||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||||
|
|
||||||
list.add(new TablesBean("vv_product"));
|
list.add(new TablesBean("vv_trade_order_line"));
|
||||||
|
|
||||||
|
|
||||||
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();
|
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();
|
||||||
|
|||||||
@ -61,8 +61,7 @@ public class JsapiPrepay {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public DirectAPIv3JsapiPrepayResponse prePay(String tradeOrderId,
|
public DirectAPIv3JsapiPrepayResponse prePay(Long tradeOrderId,
|
||||||
String skuInfo,
|
|
||||||
Long amount,
|
Long amount,
|
||||||
String openid
|
String openid
|
||||||
) {
|
) {
|
||||||
@ -70,8 +69,8 @@ public class JsapiPrepay {
|
|||||||
request.setAppid(appid);
|
request.setAppid(appid);
|
||||||
request.setMchid(mchid);
|
request.setMchid(mchid);
|
||||||
request.setNotifyUrl(notifyUrl);
|
request.setNotifyUrl(notifyUrl);
|
||||||
request.setDescription(skuInfo);
|
request.setDescription(System.currentTimeMillis() + "");
|
||||||
request.setOutTradeNo(tradeOrderId);
|
request.setOutTradeNo(tradeOrderId + "");
|
||||||
request.setTimeExpire(WXPayUtility.generateExpireTime()); // 2025-11-05T21:02:16+08:00
|
request.setTimeExpire(WXPayUtility.generateExpireTime()); // 2025-11-05T21:02:16+08:00
|
||||||
request.setAttach("自定义数据说明");
|
request.setAttach("自定义数据说明");
|
||||||
request.setGoodsTag("WXG");
|
request.setGoodsTag("WXG");
|
||||||
@ -87,7 +86,7 @@ public class JsapiPrepay {
|
|||||||
return doPay(request);
|
return doPay(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DirectAPIv3JsapiPrepayResponse doPay(DirectAPIv3JsapiPrepayRequest request) {
|
private DirectAPIv3JsapiPrepayResponse doPay(DirectAPIv3JsapiPrepayRequest request) {
|
||||||
String uri = PATH;
|
String uri = PATH;
|
||||||
String reqBody = WXPayUtility.toJson(request);
|
String reqBody = WXPayUtility.toJson(request);
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,8 @@ import com.heyu.api.data.utils.BigDecimalUtil;
|
|||||||
import com.heyu.api.data.utils.R;
|
import com.heyu.api.data.utils.R;
|
||||||
import com.heyu.api.data.utils.SanUtils;
|
import com.heyu.api.data.utils.SanUtils;
|
||||||
import com.heyu.api.data.utils.StringUtils;
|
import com.heyu.api.data.utils.StringUtils;
|
||||||
|
import com.heyu.api.jsapi.JsapiPrepay;
|
||||||
|
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayResponse;
|
||||||
import com.heyu.api.utils.ISelect;
|
import com.heyu.api.utils.ISelect;
|
||||||
import com.heyu.api.utils.PPageUtils;
|
import com.heyu.api.utils.PPageUtils;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -63,6 +65,9 @@ public class AppOrderController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private VvBuyerAddressDao vvBuyerAddressDao;
|
private VvBuyerAddressDao vvBuyerAddressDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JsapiPrepay jsapiPrepay;
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* https://api.1024api.com/api-interface/app/order/list
|
* https://api.1024api.com/api-interface/app/order/list
|
||||||
*
|
*
|
||||||
@ -267,7 +272,6 @@ public class AppOrderController {
|
|||||||
|
|
||||||
VvTradeOrderEntity vvTradeOrderEntity = new VvTradeOrderEntity();
|
VvTradeOrderEntity vvTradeOrderEntity = new VvTradeOrderEntity();
|
||||||
VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId());
|
VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId());
|
||||||
|
|
||||||
//创建时间
|
//创建时间
|
||||||
vvTradeOrderEntity.setCreateTime(new Date());
|
vvTradeOrderEntity.setCreateTime(new Date());
|
||||||
vvTradeOrderEntity.setModifyTime(new Date());
|
vvTradeOrderEntity.setModifyTime(new Date());
|
||||||
@ -276,7 +280,6 @@ public class AppOrderController {
|
|||||||
vvTradeOrderEntity.setBuyerName(vvBuyerEntity.getBuyerName());
|
vvTradeOrderEntity.setBuyerName(vvBuyerEntity.getBuyerName());
|
||||||
vvTradeOrderEntity.setBuyerWeixin(vvBuyerEntity.getBuyerWeixin());
|
vvTradeOrderEntity.setBuyerWeixin(vvBuyerEntity.getBuyerWeixin());
|
||||||
vvTradeOrderEntity.setGmtDownOrder(new Date());
|
vvTradeOrderEntity.setGmtDownOrder(new Date());
|
||||||
|
|
||||||
VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId());
|
VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId());
|
||||||
vvTradeOrderEntity.setContry(vvBuyerAddress.getContry());
|
vvTradeOrderEntity.setContry(vvBuyerAddress.getContry());
|
||||||
vvTradeOrderEntity.setProvince(vvBuyerAddress.getProvince());
|
vvTradeOrderEntity.setProvince(vvBuyerAddress.getProvince());
|
||||||
@ -287,13 +290,11 @@ public class AppOrderController {
|
|||||||
vvTradeOrderEntity.setBuyerId(vvOrderRequest.getBuyerId());
|
vvTradeOrderEntity.setBuyerId(vvOrderRequest.getBuyerId());
|
||||||
vvTradeOrderEntity.setCreateTimestamp(System.currentTimeMillis());
|
vvTradeOrderEntity.setCreateTimestamp(System.currentTimeMillis());
|
||||||
vvTradeOrderEntity.setModifyTimestamp(System.currentTimeMillis());
|
vvTradeOrderEntity.setModifyTimestamp(System.currentTimeMillis());
|
||||||
|
|
||||||
vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity);
|
vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity);
|
||||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||||
tradeOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId());
|
tradeOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId());
|
||||||
vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity);
|
vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
|
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
|
||||||
vvSkuDao.updateVvSkuStockSaleCountById(vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getSkuId());
|
vvSkuDao.updateVvSkuStockSaleCountById(vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getSkuId());
|
||||||
}
|
}
|
||||||
@ -301,12 +302,19 @@ public class AppOrderController {
|
|||||||
for (Map.Entry<Long, Integer> map : productNumMap.entrySet()) {
|
for (Map.Entry<Long, Integer> map : productNumMap.entrySet()) {
|
||||||
vvProductDao.updateShowSaleCountAndSaleCount(map.getValue(), map.getValue(), map.getKey());
|
vvProductDao.updateShowSaleCountAndSaleCount(map.getValue(), map.getValue(), map.getKey());
|
||||||
}
|
}
|
||||||
|
DirectAPIv3JsapiPrepayResponse jsapiPrepayResponse = jsapiPrepay.prePay(vvTradeOrderEntity.getId(),
|
||||||
|
BigDecimalUtil.multiply(vvTradeOrderEntity.getAllPrice(), new BigDecimal(100)).longValue(),
|
||||||
|
vvBuyerEntity.getOpenid()
|
||||||
|
);
|
||||||
|
if (jsapiPrepayResponse != null && jsapiPrepayResponse.getPrepayId() != null) {
|
||||||
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(vvTradeOrderEntity.getId());
|
||||||
|
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
||||||
|
vvTradeOrderLineEntity.setPayType("weixin");
|
||||||
|
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_pay.getStatus());
|
||||||
|
vvTradeOrderLineEntity.setTransactionId(jsapiPrepayResponse.getPrepayId());
|
||||||
|
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
return R.ok("订单创建成功");
|
return R.ok("订单创建成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,6 +328,8 @@ public class AppOrderController {
|
|||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* 订单 妥投 /app/order/delivered
|
* 订单 妥投 /app/order/delivered
|
||||||
*/
|
*/
|
||||||
@ -339,4 +349,8 @@ public class AppOrderController {
|
|||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,8 +3,13 @@ package com.heyu.api.controller.vv;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
||||||
import com.heyu.api.common.annotation.Describe;
|
import com.heyu.api.common.annotation.Describe;
|
||||||
|
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
|
||||||
|
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||||
|
import com.heyu.api.data.utils.NumberUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
@ -17,6 +22,8 @@ import javax.crypto.spec.SecretKeySpec;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.Key;
|
import java.security.Key;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@ -24,6 +31,10 @@ import java.util.Base64;
|
|||||||
public class AppWeiXinPayNotifyController {
|
public class AppWeiXinPayNotifyController {
|
||||||
|
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private VvTradeOrderLineDao vvTradeOrderLineDao;
|
||||||
|
|
||||||
|
|
||||||
// 微信支付APIv3密钥
|
// 微信支付APIv3密钥
|
||||||
@Value("${eb.config.weixin.pay.apiv3key}")
|
@Value("${eb.config.weixin.pay.apiv3key}")
|
||||||
private String apiv3key;
|
private String apiv3key;
|
||||||
@ -80,9 +91,16 @@ public class AppWeiXinPayNotifyController {
|
|||||||
return new String(decryptedData, StandardCharsets.UTF_8);
|
return new String(decryptedData, StandardCharsets.UTF_8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void updateOrderStatus(String outTradeNo, String transactionId) {
|
private void updateOrderStatus(String outTradeNo, String transactionId) {
|
||||||
// 这里是更新商户订单状态的逻辑,例如标记订单已支付
|
// 这里是更新商户订单状态的逻辑,例如标记订单已支付
|
||||||
System.out.println("订单 " + outTradeNo + " 已支付,交易号:" + transactionId);
|
log.info("订单 " + outTradeNo + " 已支付,交易号:" + transactionId + "开始更新子订单信息");
|
||||||
|
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectByTradeOrderIdAndTransactionId(NumberUtil.objToLong(outTradeNo), transactionId);
|
||||||
|
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||||
|
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus());
|
||||||
|
vvTradeOrderLineEntity.setGmtPay(new Date());
|
||||||
|
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user