From 6da09d93fdc3b365cae5c9e6154534904e10a90c Mon Sep 17 00:00:00 2001 From: axindata <1851789500@qq.com> Date: Mon, 17 Feb 2025 14:15:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E4=B8=93=E5=8C=BA=E7=9A=84?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../buy507/mall/mapper/OmsOrderMapper.java | 6 ++- .../com/buy507/mall/mapper/OmsOrderMapper.xml | 10 ++++ .../impl/OmsPortalOrderServiceImpl.java | 49 ++++++++++++++----- 3 files changed, 52 insertions(+), 13 deletions(-) diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java index ad93814..24e4801 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderMapper.java @@ -4,6 +4,8 @@ import com.buy507.mall.model.OmsOrder; import com.buy507.mall.model.OmsOrderExample; import java.util.List; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + public interface OmsOrderMapper { long countByExample(OmsOrderExample example); @@ -27,4 +29,6 @@ public interface OmsOrderMapper { int updateByPrimaryKeySelective(OmsOrder record); int updateByPrimaryKey(OmsOrder record); -} \ No newline at end of file + + + int selectPointsAreaStatus(@Param("orderSn") String orderSn);} \ No newline at end of file diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml index 3ed83ab..8b06498 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderMapper.xml @@ -874,4 +874,14 @@ settlement_time = #{settlementTime,jdbcType=TIMESTAMP} where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java index 14f2c91..f44d611 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java @@ -1775,23 +1775,45 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { //TODO try { //verifyResult = true;//AlipaySignature.rsaCheckV1(params, alipayPublicKey, charset, signType); mcoo - verifyResult = AlipaySignature.rsaCheckV1(params, alipayPublicKey, charset, signType); + verifyResult = AlipaySignature.rsaCheckV1(params, alipayPublicKey, charset, signType); if (verifyResult) { // 签名验证通过 //String tradeStatus = params.get("trade_status"); 支付宝改版后 没有trade_status String outTradeNo = params.get("out_trade_no"); //if ("TRADE_SUCCESS".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) { - // 处理支付成功的业务逻辑 - OmsOrderExample example = new OmsOrderExample(); - example.createCriteria().andOrderSnEqualTo(outTradeNo); - List list = orderMapper.selectByExample(example); - if(list != null && !list.isEmpty()) { - OmsOrder order = list.get(0); + // 处理支付成功的业务逻辑 + OmsOrderExample example = new OmsOrderExample(); + example.createCriteria().andOrderSnEqualTo(outTradeNo); + List list = orderMapper.selectByExample(example); + if (list != null && !list.isEmpty()) { + OmsOrder order = list.get(0); + + //获取积分专区状态 + int pointsAreaStatus = orderMapper.selectPointsAreaStatus(outTradeNo); + //如果是积分专区的商品则进行积分专区相对应的逻辑 + if (pointsAreaStatus == 1) { + //奖励积分是购买的价格的100% + BigDecimal rewardPoints = order.getPayAmount(); + // 获取用户信息 + UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId()); + // 增加用户积分 + if (member != null) { + + if (member.getIntegration() == null) { + member.setIntegration(rewardPoints.intValue()); + } else { + member.setIntegration(member.getIntegration() + rewardPoints.intValue()); + } + + // 更新用户积分 + memberMapper.updateByPrimaryKey(member); + + } //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 if (order != null && order.getStatus() == 0) { Date date = new Date(); //提货方式:0->自提;1->物流 - if(order.getDeliveryType() == 0) { + if (order.getDeliveryType() == 0) { order.setStatus(2); //已发货 } else { order.setStatus(1); //待发货 @@ -1801,6 +1823,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { order.setModifyTime(date); order.setPaymentTime(date); orderMapper.updateByPrimaryKey(order); + + /** * 会员分润,升级逻辑 */ @@ -1809,12 +1833,13 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { } } } - //} + } - } catch (AlipayApiException e) { - e.printStackTrace(); + } catch(AlipayApiException e){ + e.printStackTrace(); + } } - } + public List outOrderInfo() { //优化mcoo UmsMemberOrderQueueExample example = new UmsMemberOrderQueueExample(); -- 2.36.6