From dfba7801e208b41223890ae63d86428afda66a91 Mon Sep 17 00:00:00 2001 From: zhanghb <740323835@qq.com> Date: Tue, 18 Feb 2025 13:42:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B1=95=E5=9F=BA=E9=87=91=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=AE=9E=E7=8E=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../buy507/mall/mapper/OmsOrderMapper.java | 4 +- .../mall/mapper/UmsDevelopmentFundMapper.java | 26 +- .../com/buy507/mall/mapper/OmsOrderMapper.xml | 62 +- .../impl/OmsPortalOrderServiceImpl.java | 2789 +++++++++-------- 4 files changed, 1468 insertions(+), 1413 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 24e4801..f2cbdad 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 @@ -3,6 +3,8 @@ package com.buy507.mall.mapper; import com.buy507.mall.model.OmsOrder; import com.buy507.mall.model.OmsOrderExample; import java.util.List; + +import com.buy507.mall.model.PmsProduct; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -31,4 +33,4 @@ public interface OmsOrderMapper { int updateByPrimaryKey(OmsOrder record); - int selectPointsAreaStatus(@Param("orderSn") String orderSn);} \ No newline at end of file + PmsProduct selectPointsAreaStatus(@Param("orderSn") String orderSn);} \ No newline at end of file diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/UmsDevelopmentFundMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/UmsDevelopmentFundMapper.java index 8521bd1..adc6f04 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/UmsDevelopmentFundMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/UmsDevelopmentFundMapper.java @@ -3,6 +3,7 @@ package com.buy507.mall.mapper; import com.buy507.mall.model.UmsDevelopmentFund; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; import java.math.BigDecimal; @@ -18,29 +19,30 @@ public interface UmsDevelopmentFundMapper { * 查询现金总和 * @return */ - @Select("SELECT SUM(cash_total) FROM ums_development_fund") + @Select("SELECT cash_total FROM ums_development_fund") BigDecimal getTotalCash(); /** * 查询积分总和 * @return */ - @Select("SELECT SUM(points_total) FROM ums_development_fund") + @Select("SELECT points_total FROM ums_development_fund") Integer getTotalPoints(); - /** - * 发展基金现金流水 - * @param payAmount - */ - @Insert("INSERT INTO ums_development_fund (cash_total, updated_at) VALUES (#{payAmount}, NOW())") - void insertCash(BigDecimal payAmount); /** - * 发展基金积分流水 - * @param rewardPoints + * 更新积分 + * @param fundPoints */ - @Insert("INSERT INTO ums_development_fund (points_total, updated_at) VALUES (#{rewardPoints}, NOW())") - void insertPoints(BigDecimal rewardPoints); + @Update("update ums_development_fund set points_total = points_total + #{fundPoints}") + void updatePoints(int fundPoints); + + /** + * 更新现金 + * @param fundCash + */ + @Update("update ums_development_fund set cash_total = cash_total + #{fundCash}") + void updateCash(BigDecimal fundCash); } 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 8b06498..5122113 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 @@ -50,8 +50,7 @@ - - + @@ -875,13 +874,56 @@ where id = #{id,jdbcType=BIGINT} - + SELECT p.id, + p.brand_id, + p.product_category_id, + p.feight_template_id, + p.product_attribute_category_id, + p.name, + p.pic, + p.product_sn, + p.delete_status, + p.publish_status, + p.new_status, + p.recommand_status, + p.verify_status, + p.sort, + p.sale, + p.price, + p.promotion_price, + p.gift_growth, + p.gift_point, + p.use_point_limit, + p.sub_title, + p.description, + p.original_price, + p.stock, + p.low_stock, + p.unit, + p.weight, + p.preview_status, + p.service_ids, + p.keywords, + p.note, + p.album_pics, + p.detail_title, + p.detail_desc, + p.detail_html, + p.detail_mobile_html, + p.promotion_start_time, + p.promotion_end_time, + p.promotion_per_limit, + p.promotion_type, + p.brand_name, + p.product_category_name, + p.distribution_flag, + p.vip_status, + p.points_area_status, + p.points_exchange_status + FROM pms_product p + JOIN oms_order_item oi ON p.product_sn = oi.product_sn + JOIN oms_order o ON oi.order_sn = o.order_sn + WHERE o.order_sn = #{orderSn} \ 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 da4867b..7b99908 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 @@ -42,6 +42,7 @@ import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.ExecutorService; + import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.AlipayApiException; @@ -51,461 +52,459 @@ import com.alipay.api.AlipayApiException; @Service @Slf4j public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { - - private static Logger LOGGER = LoggerFactory.getLogger(OmsPortalOrderServiceImpl.class); - + + private static Logger LOGGER = LoggerFactory.getLogger(OmsPortalOrderServiceImpl.class); + @Autowired private UmsMemberService memberService; - + @Autowired private OmsOrderMapper orderMapper; - + @Autowired private RedisService redisService; - + @Value("${redis.key.prefix.orderId}") private String REDIS_KEY_PREFIX_ORDER_ID; - + @Autowired private PortalOrderDao portalOrderDao; - + @Autowired private OmsOrderSettingMapper orderSettingMapper; - + @Autowired private OmsOrderItemMapper orderItemMapper; - + @Autowired private CancelOrderSender cancelOrderSender; - + @Autowired private PmsProductMapper productMapper; - + @Autowired private PmsSkuStockMapper skuStockMapper; - + @Autowired private UmsMemberReceiveAddressMapper memberReceiveAddressMapper; - + @Autowired private OmsCartItemMapper cartItemMapper; - + @Autowired private DmsSellerBankAccountMapper sellerBankAccountMapper; - + @Autowired private DmsOfflinePaymentRecordMapper offlinePaymentRecordMapper; - + @Autowired private OmsExpressCompanyMapper expressCompanyMapper; - + @Autowired - private PortalCommonService commonService; - + private PortalCommonService commonService; + @Autowired private UmsMemberMapper memberMapper; - + @Autowired private OmsOrderOperateHistoryMapper orderOperateHistoryMapper; - + @Autowired private RestTemplate restTemplate; - + @Autowired private ExecutorService executorService; - + @Autowired private DistributeSender distributeSender; - + @Autowired private DmsMemberTradeRecordMapper memberTradeRecordMapper; - + @Autowired private RedisLock redisLock; - @Autowired - private AlipayService alipayService; + @Autowired + private AlipayService alipayService; - @Autowired - private MemberCommissionService memberCommissionService; + @Autowired + private MemberCommissionService memberCommissionService; - @Autowired - private MemberSplitProfitService memberSplitProfitService; + @Autowired + private MemberSplitProfitService memberSplitProfitService; - @Autowired - private UmsMemberOrderQueueMapper umsMemberOrderQueueMapper; + @Autowired + private UmsMemberOrderQueueMapper umsMemberOrderQueueMapper; - @Autowired - private SmsHomeNewProductMapper homeNewProductMapper; + @Autowired + private SmsHomeNewProductMapper homeNewProductMapper; - @Autowired - private UmsDevelopmentFundMapper umsDevelopmentFundMapper; + @Autowired + private UmsDevelopmentFundMapper umsDevelopmentFundMapper; - @Value("${kuaidi100.url}") private String KUAIDI100_URL; - + @Value("${kuaidi100.customer}") private String KUAIDI100_CUSTOMER; - + @Value("${kuaidi100.key}") private String KUAIDI100_KEY; - + @Value("${wechat.pay.payCallBackUrl}") - private String WECHAT_PAY_PAY_CALLBACK_URL; - - @Value("${wechat.pay.key}") - private String WECHAT_PAY_KEY; - - @Value("${wechat.appId}") - private String WECHAT_APPID; - - @Value("${wechat.pay.mchId}") - private String WECHAT_PAY_MCHID; + private String WECHAT_PAY_PAY_CALLBACK_URL; + + @Value("${wechat.pay.key}") + private String WECHAT_PAY_KEY; + + @Value("${wechat.appId}") + private String WECHAT_APPID; + + @Value("${wechat.pay.mchId}") + private String WECHAT_PAY_MCHID; @Override - public List getMemberOrderList(Integer orderStatus, Integer pageSize, Integer pageNum) { - UmsMember loginMember = memberService.getCurrentMember(); - PageHelper.startPage(pageNum, pageSize); - OmsOrderExample orderExample = new OmsOrderExample(); - OmsOrderExample.Criteria criteria = orderExample.createCriteria(); - criteria.andMemberIdEqualTo(loginMember.getId()); - //删除状态:0->未删除;1->已删除 - criteria.andDeleteStatusEqualTo(0); - - - //查询订单状态条件:0->待付款; 1->待发货; 2->待收货; 3->已完成; 4->已关闭; 6->全部; 7->待评价 - //待付款 - if(orderStatus == 0) { - criteria.andStatusEqualTo(0); - } - - //待发货 - if(orderStatus == 1) { - criteria.andStatusEqualTo(1); - } - - //待收货 - if(orderStatus == 2) { - criteria.andStatusEqualTo(2); - } - - //已完成 - if(orderStatus == 3) { - criteria.andStatusEqualTo(orderStatus); - } - - //已关闭 - if(orderStatus == 4) { - criteria.andStatusEqualTo(orderStatus); - } - - //待评价 - if(orderStatus == 7) { - criteria.andStatusEqualTo(3); //已完成 - //确认收货状态:0->未确认;1->已确认 - criteria.andConfirmStatusEqualTo(1); //已确认 - criteria.andCommentTimeIsNull(); //评价时间为空 - } - - orderExample.setOrderByClause("create_time desc"); - - List orderList = orderMapper.selectByExample(orderExample); - OrderResult orderResult = null; - List orderResultList = new ArrayList<>(); - OmsOrderItemExample orderItemExample = null; - - List orderItemList = null; - List orderItemResultList = null; - OrderItemResult orderItemResult = null; - for(OmsOrder order : orderList) { - orderResult = new OrderResult(); - orderResult.setOrderId(order.getId()); - orderResult.setOrderSn(order.getOrderSn()); - orderResult.setCreateTime(order.getCreateTime()); - orderResult.setPayAmount(order.getPayAmount()); - orderResult.setOrderStatus(order.getStatus()); - orderResult.setDeliveryType(order.getDeliveryType()); - if(order.getStatus() == 0) { - orderResult.setOrderStatusName("待付款"); - if(order.getPayType() != null && order.getPayType() == 3) { - orderResult.setOrderStatusName("已付款待审核"); - } - } - if(order.getStatus() == 1) { - orderResult.setOrderStatusName("待发货"); - } - if(order.getStatus() == 2) { - // 提货方式:0->自提;1->物流 - if(order.getDeliveryType() == 0) { - orderResult.setOrderStatusName("待提货"); - } else { - orderResult.setOrderStatusName("待收货"); - } - } - if(order.getStatus() == 3) { - orderResult.setOrderStatusName("交易完成"); - if(order.getCommentTime() == null) { - orderResult.setCommentStatus(0); //未评价 - } else { - orderResult.setCommentStatus(1); //已评价 - } - } - if(order.getStatus() == 4) { - orderResult.setOrderStatusName("交易关闭"); - orderResult.setOrderStatus(4); - } - - //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 - if(order.getPayType() != null) { - orderResult.setPayType(order.getPayType()); - if(order.getPayType() == 0) { - orderResult.setPayTypeName("未支付"); - } else if(order.getPayType() == 1) { - orderResult.setPayTypeName("支付宝支付"); - } else if(order.getPayType() == 2) { - orderResult.setPayTypeName("微信支付"); - } else if(order.getPayType() == 3) { - orderResult.setPayTypeName("线下支付"); - } else { - orderResult.setPayTypeName("积分支付"); - } - } else { - orderResult.setPayType(0); - orderResult.setPayTypeName("未支付"); - } - - orderItemExample = new OmsOrderItemExample(); - orderItemExample.createCriteria().andOrderIdEqualTo(order.getId()); - orderItemList = orderItemMapper.selectByExample(orderItemExample); - orderResult.setProductsNum(orderItemList.size()); - - orderItemResultList = new ArrayList<>(); - for(OmsOrderItem orderItem : orderItemList) { - orderItemResult = new OrderItemResult(); - orderItemResult.setOrderId(order.getId()); - orderItemResult.setOrderSn(order.getOrderSn()); - orderItemResult.setProductBrand(orderItem.getProductBrand()); - orderItemResult.setProductId(orderItem.getProductId()); - orderItemResult.setProductName(orderItem.getProductName()); - orderItemResult.setProductPic(orderItem.getProductPic()); - orderItemResult.setProductPrice(orderItem.getProductPrice()); - orderItemResult.setProductQuantity(orderItem.getProductQuantity()); - orderItemResult.setSp1(orderItem.getSp1()); - orderItemResult.setSp2(orderItem.getSp2()); - orderItemResult.setSp3(orderItem.getSp3()); - orderItemResultList.add(orderItemResult); - } - - orderResult.setOrderItem(orderItemResultList); - orderResultList.add(orderResult); - } - - return orderResultList; - - } - - @Override - public OrderResult getMemberOrderDetailInfo(Long orderId) { - UmsMember loginMember = memberService.getCurrentMember(); - - OrderResult orderResult = new OrderResult(); - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - //删除状态:0->未删除;1->已删除 - if(order != null && order.getMemberId().equals(loginMember.getId()) && order.getDeleteStatus() == 0) { - orderResult.setOrderId(order.getId()); - orderResult.setOrderSn(order.getOrderSn()); - orderResult.setCreateTime(order.getCreateTime()); - orderResult.setPayAmount(order.getPayAmount()); - orderResult.setOrderStatus(order.getStatus()); - orderResult.setDeliveryType(order.getDeliveryType()); - if(order.getStatus() == 0) { - orderResult.setOrderStatusName("待付款"); - if(order.getPayType() != null && order.getPayType() == 3) { - orderResult.setOrderStatusName("已付款待审核"); - } - } - if(order.getStatus() == 1) { - orderResult.setOrderStatusName("待发货"); - } - if(order.getStatus() == 2) { - // 提货方式:0->自提;1->物流 - if(order.getDeliveryType() == 0) { - orderResult.setOrderStatusName("待提货"); - } else { - orderResult.setOrderStatusName("待收货"); - } - } - if(order.getStatus() == 3) { - orderResult.setOrderStatusName("交易完成"); - if(order.getCommentTime() == null) { - orderResult.setCommentStatus(0); //未评价 - } else { - orderResult.setCommentStatus(1); //已评价 - } - } - if(order.getStatus() == 4) { - orderResult.setOrderStatusName("交易关闭"); - orderResult.setOrderStatus(4); - } - - orderResult.setFreightAmount(order.getFreightAmount()); - orderResult.setNote(order.getNote()); - orderResult.setDeliveryCompany(order.getDeliveryCompany()); - orderResult.setDeliverySn(order.getDeliverySn()); - orderResult.setPaymentTime(order.getPaymentTime()); - //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 - if(order.getPayType() != null) { - orderResult.setPayType(order.getPayType()); - if(order.getPayType() == 0) { - orderResult.setPayTypeName("未支付"); - } else if(order.getPayType() == 1) { - orderResult.setPayTypeName("支付宝支付"); - } else if(order.getPayType() == 2) { - orderResult.setPayTypeName("微信支付"); - } else if(order.getPayType() == 3) { //mcoo todo - orderResult.setPayTypeName("线下支付"); - DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId); - DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId()); - OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult(); - BeanUtils.copyProperties(paymentRecord, recordResult); - BeanUtils.copyProperties(bankAccount, recordResult); - - if(recordResult.getConfirmStatus() == 1) { - recordResult.setConfirmStatusName("已审核"); - } else { - recordResult.setConfirmStatusName("未审核"); - } - orderResult.setPaymentRecord(recordResult); - } else { - orderResult.setPayTypeName("积分支付"); - } - } else { - orderResult.setPayType(0); - orderResult.setPayTypeName("未支付"); - } - - orderResult.setDeliveryTime(order.getDeliveryTime()); - orderResult.setReceiveTime(order.getReceiveTime()); - orderResult.setCommentTime(order.getCommentTime()); - - //0->不开发票;1->电子发票;2->纸质发票 - if(order.getBillType() != null) { - orderResult.setBillType(order.getBillType()); - if(order.getBillType() == 1) { - orderResult.setBillTypeName("电子发票"); - } else if(order.getBillType() == 2) { - orderResult.setBillTypeName("纸质发票"); - } else { - orderResult.setBillTypeName("不开发票"); - } - } else { - orderResult.setBillType(0); - orderResult.setBillTypeName("不开发票"); - } - - orderResult.setBillHeader(order.getBillHeader()); - orderResult.setBillContent(order.getBillContent()); - orderResult.setReceiverName(order.getReceiverName()); - orderResult.setReceiverPhone(order.getReceiverPhone()); - orderResult.setReceiverProvince(order.getReceiverProvince()); - orderResult.setReceiverCity(order.getReceiverCity()); - orderResult.setReceiverRegion(order.getReceiverRegion()); - orderResult.setReceiverDetailAddress(order.getReceiverDetailAddress()); - - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(orderId); - List orderItemList = orderItemMapper.selectByExample(example); - - OrderItemResult orderItemResult = null; - orderResult.setProductsNum(orderItemList.size()); - List orderItemResultList = new ArrayList<>(); - for(OmsOrderItem orderItem : orderItemList) { - orderItemResult = new OrderItemResult(); - orderItemResult.setOrderId(order.getId()); - orderItemResult.setOrderSn(order.getOrderSn()); - orderItemResult.setProductBrand(orderItem.getProductBrand()); - orderItemResult.setProductId(orderItem.getProductId()); - orderItemResult.setProductName(orderItem.getProductName()); - orderItemResult.setProductPic(orderItem.getProductPic()); - orderItemResult.setProductPrice(orderItem.getProductPrice()); - orderItemResult.setProductQuantity(orderItem.getProductQuantity()); - orderItemResult.setSp1(orderItem.getSp1()); - orderItemResult.setSp2(orderItem.getSp2()); - orderItemResult.setSp3(orderItem.getSp3()); - orderItemResultList.add(orderItemResult); - } - - orderResult.setOrderItem(orderItemResultList); - - UmsMember member = memberMapper.selectByPrimaryKey(loginMember.getId()); - orderResult.setShareUrl("http://49.233.215.129:688/#/pages/public/register?inviteCode="+member.getInvitationCode()); + public List getMemberOrderList(Integer orderStatus, Integer pageSize, Integer pageNum) { + UmsMember loginMember = memberService.getCurrentMember(); + PageHelper.startPage(pageNum, pageSize); + OmsOrderExample orderExample = new OmsOrderExample(); + OmsOrderExample.Criteria criteria = orderExample.createCriteria(); + criteria.andMemberIdEqualTo(loginMember.getId()); + //删除状态:0->未删除;1->已删除 + criteria.andDeleteStatusEqualTo(0); + //查询订单状态条件:0->待付款; 1->待发货; 2->待收货; 3->已完成; 4->已关闭; 6->全部; 7->待评价 + //待付款 + if (orderStatus == 0) { + criteria.andStatusEqualTo(0); + } - UmsMemberOrderQueueExample example1 = new UmsMemberOrderQueueExample(); - example1.createCriteria().andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT).andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY); - long allQueue = umsMemberOrderQueueMapper.countByExample(example1); - orderResult.setQueueNum(allQueue); + //待发货 + if (orderStatus == 1) { + criteria.andStatusEqualTo(1); + } - UmsMemberOrderQueueExample example2 = new UmsMemberOrderQueueExample(); - example2.createCriteria().andOrderIdEqualTo(orderId); - List list = umsMemberOrderQueueMapper.selectByExample(example2); - Integer queueStatus = 0; - if(!list.isEmpty()){ - queueStatus = list.get(0).getQueueType(); - } - orderResult.setQueueStatus(queueStatus); + //待收货 + if (orderStatus == 2) { + criteria.andStatusEqualTo(2); + } + + //已完成 + if (orderStatus == 3) { + criteria.andStatusEqualTo(orderStatus); + } + + //已关闭 + if (orderStatus == 4) { + criteria.andStatusEqualTo(orderStatus); + } + + //待评价 + if (orderStatus == 7) { + criteria.andStatusEqualTo(3); //已完成 + //确认收货状态:0->未确认;1->已确认 + criteria.andConfirmStatusEqualTo(1); //已确认 + criteria.andCommentTimeIsNull(); //评价时间为空 + } + + orderExample.setOrderByClause("create_time desc"); + + List orderList = orderMapper.selectByExample(orderExample); + OrderResult orderResult = null; + List orderResultList = new ArrayList<>(); + OmsOrderItemExample orderItemExample = null; + + List orderItemList = null; + List orderItemResultList = null; + OrderItemResult orderItemResult = null; + for (OmsOrder order : orderList) { + orderResult = new OrderResult(); + orderResult.setOrderId(order.getId()); + orderResult.setOrderSn(order.getOrderSn()); + orderResult.setCreateTime(order.getCreateTime()); + orderResult.setPayAmount(order.getPayAmount()); + orderResult.setOrderStatus(order.getStatus()); + orderResult.setDeliveryType(order.getDeliveryType()); + if (order.getStatus() == 0) { + orderResult.setOrderStatusName("待付款"); + if (order.getPayType() != null && order.getPayType() == 3) { + orderResult.setOrderStatusName("已付款待审核"); + } + } + if (order.getStatus() == 1) { + orderResult.setOrderStatusName("待发货"); + } + if (order.getStatus() == 2) { + // 提货方式:0->自提;1->物流 + if (order.getDeliveryType() == 0) { + orderResult.setOrderStatusName("待提货"); + } else { + orderResult.setOrderStatusName("待收货"); + } + } + if (order.getStatus() == 3) { + orderResult.setOrderStatusName("交易完成"); + if (order.getCommentTime() == null) { + orderResult.setCommentStatus(0); //未评价 + } else { + orderResult.setCommentStatus(1); //已评价 + } + } + if (order.getStatus() == 4) { + orderResult.setOrderStatusName("交易关闭"); + orderResult.setOrderStatus(4); + } + + //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 + if (order.getPayType() != null) { + orderResult.setPayType(order.getPayType()); + if (order.getPayType() == 0) { + orderResult.setPayTypeName("未支付"); + } else if (order.getPayType() == 1) { + orderResult.setPayTypeName("支付宝支付"); + } else if (order.getPayType() == 2) { + orderResult.setPayTypeName("微信支付"); + } else if (order.getPayType() == 3) { + orderResult.setPayTypeName("线下支付"); + } else { + orderResult.setPayTypeName("积分支付"); + } + } else { + orderResult.setPayType(0); + orderResult.setPayTypeName("未支付"); + } + + orderItemExample = new OmsOrderItemExample(); + orderItemExample.createCriteria().andOrderIdEqualTo(order.getId()); + orderItemList = orderItemMapper.selectByExample(orderItemExample); + orderResult.setProductsNum(orderItemList.size()); + + orderItemResultList = new ArrayList<>(); + for (OmsOrderItem orderItem : orderItemList) { + orderItemResult = new OrderItemResult(); + orderItemResult.setOrderId(order.getId()); + orderItemResult.setOrderSn(order.getOrderSn()); + orderItemResult.setProductBrand(orderItem.getProductBrand()); + orderItemResult.setProductId(orderItem.getProductId()); + orderItemResult.setProductName(orderItem.getProductName()); + orderItemResult.setProductPic(orderItem.getProductPic()); + orderItemResult.setProductPrice(orderItem.getProductPrice()); + orderItemResult.setProductQuantity(orderItem.getProductQuantity()); + orderItemResult.setSp1(orderItem.getSp1()); + orderItemResult.setSp2(orderItem.getSp2()); + orderItemResult.setSp3(orderItem.getSp3()); + orderItemResultList.add(orderItemResult); + } + + orderResult.setOrderItem(orderItemResultList); + orderResultList.add(orderResult); + } + + return orderResultList; + + } + + @Override + public OrderResult getMemberOrderDetailInfo(Long orderId) { + UmsMember loginMember = memberService.getCurrentMember(); + + OrderResult orderResult = new OrderResult(); + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + //删除状态:0->未删除;1->已删除 + if (order != null && order.getMemberId().equals(loginMember.getId()) && order.getDeleteStatus() == 0) { + orderResult.setOrderId(order.getId()); + orderResult.setOrderSn(order.getOrderSn()); + orderResult.setCreateTime(order.getCreateTime()); + orderResult.setPayAmount(order.getPayAmount()); + orderResult.setOrderStatus(order.getStatus()); + orderResult.setDeliveryType(order.getDeliveryType()); + if (order.getStatus() == 0) { + orderResult.setOrderStatusName("待付款"); + if (order.getPayType() != null && order.getPayType() == 3) { + orderResult.setOrderStatusName("已付款待审核"); + } + } + if (order.getStatus() == 1) { + orderResult.setOrderStatusName("待发货"); + } + if (order.getStatus() == 2) { + // 提货方式:0->自提;1->物流 + if (order.getDeliveryType() == 0) { + orderResult.setOrderStatusName("待提货"); + } else { + orderResult.setOrderStatusName("待收货"); + } + } + if (order.getStatus() == 3) { + orderResult.setOrderStatusName("交易完成"); + if (order.getCommentTime() == null) { + orderResult.setCommentStatus(0); //未评价 + } else { + orderResult.setCommentStatus(1); //已评价 + } + } + if (order.getStatus() == 4) { + orderResult.setOrderStatusName("交易关闭"); + orderResult.setOrderStatus(4); + } + + orderResult.setFreightAmount(order.getFreightAmount()); + orderResult.setNote(order.getNote()); + orderResult.setDeliveryCompany(order.getDeliveryCompany()); + orderResult.setDeliverySn(order.getDeliverySn()); + orderResult.setPaymentTime(order.getPaymentTime()); + //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 + if (order.getPayType() != null) { + orderResult.setPayType(order.getPayType()); + if (order.getPayType() == 0) { + orderResult.setPayTypeName("未支付"); + } else if (order.getPayType() == 1) { + orderResult.setPayTypeName("支付宝支付"); + } else if (order.getPayType() == 2) { + orderResult.setPayTypeName("微信支付"); + } else if (order.getPayType() == 3) { //mcoo todo + orderResult.setPayTypeName("线下支付"); + DmsOfflinePaymentRecord paymentRecord = offlinePaymentRecordMapper.selectOneByOrderId(orderId); + DmsSellerBankAccount bankAccount = sellerBankAccountMapper.selectOneById(paymentRecord.getSellerBankAccountId()); + OfflinePaymentRecordResult recordResult = new OfflinePaymentRecordResult(); + BeanUtils.copyProperties(paymentRecord, recordResult); + BeanUtils.copyProperties(bankAccount, recordResult); + + if (recordResult.getConfirmStatus() == 1) { + recordResult.setConfirmStatusName("已审核"); + } else { + recordResult.setConfirmStatusName("未审核"); + } + orderResult.setPaymentRecord(recordResult); + } else { + orderResult.setPayTypeName("积分支付"); + } + } else { + orderResult.setPayType(0); + orderResult.setPayTypeName("未支付"); + } + + orderResult.setDeliveryTime(order.getDeliveryTime()); + orderResult.setReceiveTime(order.getReceiveTime()); + orderResult.setCommentTime(order.getCommentTime()); + + //0->不开发票;1->电子发票;2->纸质发票 + if (order.getBillType() != null) { + orderResult.setBillType(order.getBillType()); + if (order.getBillType() == 1) { + orderResult.setBillTypeName("电子发票"); + } else if (order.getBillType() == 2) { + orderResult.setBillTypeName("纸质发票"); + } else { + orderResult.setBillTypeName("不开发票"); + } + } else { + orderResult.setBillType(0); + orderResult.setBillTypeName("不开发票"); + } + + orderResult.setBillHeader(order.getBillHeader()); + orderResult.setBillContent(order.getBillContent()); + orderResult.setReceiverName(order.getReceiverName()); + orderResult.setReceiverPhone(order.getReceiverPhone()); + orderResult.setReceiverProvince(order.getReceiverProvince()); + orderResult.setReceiverCity(order.getReceiverCity()); + orderResult.setReceiverRegion(order.getReceiverRegion()); + orderResult.setReceiverDetailAddress(order.getReceiverDetailAddress()); + + OmsOrderItemExample example = new OmsOrderItemExample(); + example.createCriteria().andOrderIdEqualTo(orderId); + List orderItemList = orderItemMapper.selectByExample(example); + + OrderItemResult orderItemResult = null; + orderResult.setProductsNum(orderItemList.size()); + List orderItemResultList = new ArrayList<>(); + for (OmsOrderItem orderItem : orderItemList) { + orderItemResult = new OrderItemResult(); + orderItemResult.setOrderId(order.getId()); + orderItemResult.setOrderSn(order.getOrderSn()); + orderItemResult.setProductBrand(orderItem.getProductBrand()); + orderItemResult.setProductId(orderItem.getProductId()); + orderItemResult.setProductName(orderItem.getProductName()); + orderItemResult.setProductPic(orderItem.getProductPic()); + orderItemResult.setProductPrice(orderItem.getProductPrice()); + orderItemResult.setProductQuantity(orderItem.getProductQuantity()); + orderItemResult.setSp1(orderItem.getSp1()); + orderItemResult.setSp2(orderItem.getSp2()); + orderItemResult.setSp3(orderItem.getSp3()); + orderItemResultList.add(orderItemResult); + } + + orderResult.setOrderItem(orderItemResultList); + + UmsMember member = memberMapper.selectByPrimaryKey(loginMember.getId()); + orderResult.setShareUrl("http://49.233.215.129:688/#/pages/public/register?inviteCode=" + member.getInvitationCode()); - UmsMemberOrderQueueExample example3 = new UmsMemberOrderQueueExample(); - example3.createCriteria().andAccelerateOrderIdEqualTo(orderId); - Long num = umsMemberOrderQueueMapper.countByExample(example3); - Integer count = num.intValue(); - orderResult.setInvitedCount(5-count); - } + UmsMemberOrderQueueExample example1 = new UmsMemberOrderQueueExample(); + example1.createCriteria().andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT).andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY); + long allQueue = umsMemberOrderQueueMapper.countByExample(example1); + orderResult.setQueueNum(allQueue); - - return orderResult; - } + UmsMemberOrderQueueExample example2 = new UmsMemberOrderQueueExample(); + example2.createCriteria().andOrderIdEqualTo(orderId); + List list = umsMemberOrderQueueMapper.selectByExample(example2); + Integer queueStatus = 0; + if (!list.isEmpty()) { + queueStatus = list.get(0).getQueueType(); + } + orderResult.setQueueStatus(queueStatus); - @Transactional + + UmsMemberOrderQueueExample example3 = new UmsMemberOrderQueueExample(); + example3.createCriteria().andAccelerateOrderIdEqualTo(orderId); + Long num = umsMemberOrderQueueMapper.countByExample(example3); + Integer count = num.intValue(); + orderResult.setInvitedCount(5 - count); + } + + + return orderResult; + } + + @Transactional @Override public CommonResult createCartOrder(CartOrderParam orderParam) { - + List orderItemList = new ArrayList<>(); //获取购物车信息 UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); OmsCartItemExample example = new OmsCartItemExample(); example.createCriteria().andMemberIdEqualTo(member.getId()); - + List cartItemList = cartItemMapper.selectByExample(example); - - if(orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1) ) { - return CommonResult.validateFailed("提货方式不能为空"); - } - - if(orderParam.getMemberReceiveAddressId() == null) { - return CommonResult.validateFailed("会员收货地址不能为空"); - } - - UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); - if(address == null) { - return CommonResult.validateFailed("未查询到会员收货地址"); + + if (orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1)) { + return CommonResult.validateFailed("提货方式不能为空"); } - - if(cartItemList.isEmpty()) { - return CommonResult.failed("请先选择商品"); + + if (orderParam.getMemberReceiveAddressId() == null) { + return CommonResult.validateFailed("会员收货地址不能为空"); } - + + UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); + if (address == null) { + return CommonResult.validateFailed("未查询到会员收货地址"); + } + + if (cartItemList.isEmpty()) { + return CommonResult.failed("请先选择商品"); + } + BigDecimal zero = new BigDecimal(0); - if(orderParam.getIntegration() == null) { - orderParam.setIntegration(zero); + if (orderParam.getIntegration() == null) { + orderParam.setIntegration(zero); } - + PmsSkuStock skuStock = null; PmsProduct product = null; /* for (OmsCartItem cartItem : cartItemList) { @@ -521,46 +520,46 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { return CommonResult.failed("库存不足,无法下单1"); } }*/ - + //先判断积分是否大于0,大于0表示使用了积分支付 //flag 等于1表示使用积分支付 判断用户积分是否充足 //flag = -1,表示integration小于0;flag = 0,表示integration等于0;flag = 1,表示integration大于0; int integerationFlag = orderParam.getIntegration().compareTo(new BigDecimal(0)); - integerationFlag = 0; //mcoo - if(integerationFlag == 1) { - int flag = member.getBalance().compareTo(orderParam.getIntegration()); - //flag = -1,表示balance小于integration;flag = 0,表示balance等于integration;flag = 1,表示balance大于integration; + integerationFlag = 0; //mcoo + if (integerationFlag == 1) { + int flag = member.getBalance().compareTo(orderParam.getIntegration()); + //flag = -1,表示balance小于integration;flag = 0,表示balance等于integration;flag = 1,表示balance大于integration; /*if(flag == -1) { return CommonResult.validateFailed("森态积分不足,无法抵扣"); }*/ - } - - for (OmsCartItem cartItem : cartItemList) { - - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(String.valueOf(cartItem.getProductId()), String.valueOf(time))) { - //查询库存信息 - skuStock = skuStockMapper.selectByPrimaryKey(cartItem.getProductSkuId()); - //判断购物车中商品是否都有库存 (真实库存 = 库存 - 锁定库存) - if ((skuStock.getStock() - skuStock.getLockStock()) < cartItem.getQuantity()) { - redisLock.unlock(String.valueOf(cartItem.getProductId()), String.valueOf(time)); - throw new RuntimeException("库存不足,无法下单"); - } - - //更新库存 - skuStock.setLockStock(skuStock.getLockStock() + cartItem.getQuantity()); - skuStockMapper.updateByPrimaryKey(skuStock); - - redisLock.unlock(String.valueOf(cartItem.getProductId()), String.valueOf(time)); - break; - } - } } - + + for (OmsCartItem cartItem : cartItemList) { + + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(String.valueOf(cartItem.getProductId()), String.valueOf(time))) { + //查询库存信息 + skuStock = skuStockMapper.selectByPrimaryKey(cartItem.getProductSkuId()); + //判断购物车中商品是否都有库存 (真实库存 = 库存 - 锁定库存) + if ((skuStock.getStock() - skuStock.getLockStock()) < cartItem.getQuantity()) { + redisLock.unlock(String.valueOf(cartItem.getProductId()), String.valueOf(time)); + throw new RuntimeException("库存不足,无法下单"); + } + + //更新库存 + skuStock.setLockStock(skuStock.getLockStock() + cartItem.getQuantity()); + skuStockMapper.updateByPrimaryKey(skuStock); + + redisLock.unlock(String.valueOf(cartItem.getProductId()), String.valueOf(time)); + break; + } + } + } + BigDecimal totalAmount = new BigDecimal(0); for (OmsCartItem cartItem : cartItemList) { - + //生成下单商品信息 OmsOrderItem orderItem = new OmsOrderItem(); orderItem.setProductId(cartItem.getProductId()); @@ -584,55 +583,55 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { orderItem.setCouponAmount(zero); orderItem.setIntegrationAmount(zero); orderItem.setRealAmount(zero); - + orderItemList.add(orderItem); - + //单个商品的总价 = 商品单价 * 商品数量 totalAmount = totalAmount.add(cartItem.getPrice().multiply(new BigDecimal(cartItem.getQuantity()))); } - + //生成订单信息 OmsOrder order = new OmsOrder(); order.setTotalAmount(totalAmount); // 订单总金额 - if(integerationFlag == 1) { - int flag = orderParam.getIntegration().compareTo(totalAmount); - BigDecimal integeration = new BigDecimal(0); - //flag = -1,表示integration小于totalAmount;flag = 0,表示integration等于totalAmount;flag = 1,表示integration大于totalAmount; - //如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。 - //如果传入的积分等于或者大于实际支付金额,表示全额抵扣 - if(flag == -1) { - order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额 - order.setIntegrationAmount(orderParam.getIntegration()); - integeration = orderParam.getIntegration(); - } else { - order.setPayAmount(zero); - order.setIntegrationAmount(totalAmount); - integeration = totalAmount; - } - - //冻结用户余额 - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { - member = memberMapper.selectByPrimaryKey(member.getId()); - //flag = -1,表示balance小于integeration;flag = 0,表示balance等于integeration;flag = 1,表示balance大于integeration; - flag = member.getBalance().compareTo(integeration); + if (integerationFlag == 1) { + int flag = orderParam.getIntegration().compareTo(totalAmount); + BigDecimal integeration = new BigDecimal(0); + //flag = -1,表示integration小于totalAmount;flag = 0,表示integration等于totalAmount;flag = 1,表示integration大于totalAmount; + //如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。 + //如果传入的积分等于或者大于实际支付金额,表示全额抵扣 + if (flag == -1) { + order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额 + order.setIntegrationAmount(orderParam.getIntegration()); + integeration = orderParam.getIntegration(); + } else { + order.setPayAmount(zero); + order.setIntegrationAmount(totalAmount); + integeration = totalAmount; + } + + //冻结用户余额 + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { + member = memberMapper.selectByPrimaryKey(member.getId()); + //flag = -1,表示balance小于integeration;flag = 0,表示balance等于integeration;flag = 1,表示balance大于integeration; + flag = member.getBalance().compareTo(integeration); /*if(flag == -1) { mcoo throw new RuntimeException("森态积分不足,无法抵扣"); }*/ - member.setBalance(member.getBalance().subtract(integeration)); //修改余额值 - member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值 - memberMapper.updateByPrimaryKey(member); - redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); - break; - } - } - - } else { - order.setPayAmount(totalAmount); //实际支付金额 - order.setIntegrationAmount(zero); - } - + member.setBalance(member.getBalance().subtract(integeration)); //修改余额值 + member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值 + memberMapper.updateByPrimaryKey(member); + redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); + break; + } + } + + } else { + order.setPayAmount(totalAmount); //实际支付金额 + order.setIntegrationAmount(zero); + } + Date date = new Date(); order.setMemberId(member.getId()); order.setCreateTime(date); @@ -645,19 +644,19 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { order.setPayType(0); //支付方式:0->未支付;1->支付宝;2->微信 order.setSourceType(1); //订单来源:0->PC订单;1->app订单 order.setDeliveryType(orderParam.getDeliveryType()); //提货方式:0->自提;1->物流 - + //生成订单号 order.setOrderSn(generateOrderSn(order)); //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 order.setStatus(0); //订单类型:0->正常订单;1->秒杀订单 order.setOrderType(0); - + OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); order.setAutoConfirmDay(orderSetting.getConfirmOvertime()); order.setIntegration(0); order.setGrowth(0); - + //收货人信息:姓名、电话、邮编、地址 order.setReceiverName(address.getName()); order.setReceiverPhone(address.getPhoneNumber()); @@ -667,7 +666,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { order.setReceiverRegion(address.getRegion()); order.setReceiverDetailAddress(address.getDetailAddress()); order.setNote(orderParam.getNote() == null ? null : orderParam.getNote()); - + //确认收货状态:0->未确认;1->已确认 order.setConfirmStatus(0); //删除状态:0->未删除;1->已删除 @@ -675,255 +674,256 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { order.setUseIntegration(0); order.setPromotionInfo("无优惠"); order.setSettlementStatus(0); //分销结算状态(0->未结算;1->已结算;2->不结算) - + orderMapper.insert(order); - + for (OmsOrderItem orderItem : orderItemList) { orderItem.setOrderId(order.getId()); orderItem.setOrderSn(order.getOrderSn()); orderItemMapper.insert(orderItem); } - + //删除购物车中的下单商品 for (OmsCartItem cartItem : cartItemList) { - cartItemMapper.deleteByPrimaryKey(cartItem.getId()); + cartItemMapper.deleteByPrimaryKey(cartItem.getId()); } - + //超时未支付,自动取消订单 //分钟转换成毫秒 long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000; cancelOrderSender.sendMessage(order.getId(), delayTimes); - + Map result = new HashMap<>(); result.put("orderId", order.getId()); result.put("totalAmount", order.getPayAmount()); return CommonResult.success(result, "下单成功"); } - + /** * 直接购买,根据提交信息生成订单 */ - @Transactional - @Override - /** - * 创建订单 - */ - public CommonResult createOrder(OrderParam orderParam) { - //orderParam.setSkuId(98L); - if(orderParam.getSkuId() == null) { - return CommonResult.validateFailed("商品SKU不能为空"); - } - - if(orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1) ) { - return CommonResult.validateFailed("提货方式不能为空"); - } - - if(orderParam.getMemberReceiveAddressId() == null) { - return CommonResult.validateFailed("会员收货地址不能为空"); - } - - UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); - if(address == null) { - return CommonResult.validateFailed("未查询到会员收货地址"); + @Transactional + @Override + /** + * 创建订单 + */ + public CommonResult createOrder(OrderParam orderParam) { + //orderParam.setSkuId(98L); + if (orderParam.getSkuId() == null) { + return CommonResult.validateFailed("商品SKU不能为空"); } - if(orderParam.getQuantity() == null) { - return CommonResult.validateFailed("商品数量不能为空"); - } - if(orderParam.getQuantity() <= 0) { - return CommonResult.validateFailed("商品数量错误"); - } - PmsSkuStock skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); - if(skuStock == null) { - return CommonResult.validateFailed("未查询到商品信息"); - } - //判断商品是否都有库存 (库存 - 锁定库存 = 真实库存) + if (orderParam.getDeliveryType() == null || (orderParam.getDeliveryType() != 0 && orderParam.getDeliveryType() != 1)) { + return CommonResult.validateFailed("提货方式不能为空"); + } + + if (orderParam.getMemberReceiveAddressId() == null) { + return CommonResult.validateFailed("会员收货地址不能为空"); + } + + UmsMemberReceiveAddress address = memberReceiveAddressMapper.selectOneById(orderParam.getMemberReceiveAddressId()); + if (address == null) { + return CommonResult.validateFailed("未查询到会员收货地址"); + } + if (orderParam.getQuantity() == null) { + return CommonResult.validateFailed("商品数量不能为空"); + } + if (orderParam.getQuantity() <= 0) { + return CommonResult.validateFailed("商品数量错误"); + } + PmsSkuStock skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); + if (skuStock == null) { + return CommonResult.validateFailed("未查询到商品信息"); + } + + //判断商品是否都有库存 (库存 - 锁定库存 = 真实库存) if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { return CommonResult.validateFailed("库存不足,无法下单"); } - //根据商品id查询商品信息 - PmsProduct product = productMapper.selectByPrimaryKey(skuStock.getProductId()); - Map result = new HashMap<>(); - if(product != null) { + //根据商品id查询商品信息 + PmsProduct product = productMapper.selectByPrimaryKey(skuStock.getProductId()); + Map result = new HashMap<>(); + if (product != null) { - UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); + UmsMember member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); - BigDecimal discount = commonService.getDiscount(member.getId()); - BigDecimal price = new BigDecimal(skuStock.getPrice().doubleValue()); - if(discount != null) { - price = skuStock.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); - } + BigDecimal discount = commonService.getDiscount(member.getId()); + BigDecimal price = new BigDecimal(skuStock.getPrice().doubleValue()); + if (discount != null) { + price = skuStock.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP); + } - BigDecimal totalAmount = new BigDecimal(0); - BigDecimal zero = new BigDecimal(0); - totalAmount = price.multiply(new BigDecimal(orderParam.getQuantity())); + BigDecimal totalAmount = new BigDecimal(0); + BigDecimal zero = new BigDecimal(0); + totalAmount = price.multiply(new BigDecimal(orderParam.getQuantity())); - if(orderParam.getIntegration() == null) { - orderParam.setIntegration(zero); - } + if (orderParam.getIntegration() == null) { + orderParam.setIntegration(zero); + } - //先判断积分是否大于0,大于0表示使用了积分支付 - //flag 等于1表示使用积分支付 判断用户积分是否充足 - //flag = -1,表示integration小于0;flag = 0,表示integration等于0;flag = 1,表示integration大于0; - //int integerationFlag = orderParam.getIntegration().compareTo(new BigDecimal(0)); //mcoo - int integerationFlag = 0; - if(integerationFlag == 1) { - int flag = member.getBalance().compareTo(orderParam.getIntegration()); - //flag = -1,表示balance小于integration;flag = 0,表示balance等于integration;flag = 1,表示balance大于integration; + //先判断积分是否大于0,大于0表示使用了积分支付 + //flag 等于1表示使用积分支付 判断用户积分是否充足 + //flag = -1,表示integration小于0;flag = 0,表示integration等于0;flag = 1,表示integration大于0; + //int integerationFlag = orderParam.getIntegration().compareTo(new BigDecimal(0)); //mcoo + int integerationFlag = 0; + if (integerationFlag == 1) { + int flag = member.getBalance().compareTo(orderParam.getIntegration()); + //flag = -1,表示balance小于integration;flag = 0,表示balance等于integration;flag = 1,表示balance大于integration; /*if(flag == -1) { return CommonResult.validateFailed("森态积分不足,无法抵扣"); }*/ - } + } - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(String.valueOf(skuStock.getProductId()), String.valueOf(time))) { + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(String.valueOf(skuStock.getProductId()), String.valueOf(time))) { - //重新查询获取最新的数据 - skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); + //重新查询获取最新的数据 + skuStock = skuStockMapper.selectByPrimaryKey(orderParam.getSkuId()); - //判断购物车中商品是否都有库存 (库存 - 锁定库存 = 真实库存) - if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { - return CommonResult.validateFailed("库存不足,无法下单"); - } + //判断购物车中商品是否都有库存 (库存 - 锁定库存 = 真实库存) + if ((skuStock.getStock() - skuStock.getLockStock()) < orderParam.getQuantity()) { + return CommonResult.validateFailed("库存不足,无法下单"); + } - skuStock.setLockStock(skuStock.getLockStock() + orderParam.getQuantity()); - skuStockMapper.updateByPrimaryKey(skuStock); - redisLock.unlock(String.valueOf(skuStock.getProductId()), String.valueOf(time)); - break; - } - } + skuStock.setLockStock(skuStock.getLockStock() + orderParam.getQuantity()); + skuStockMapper.updateByPrimaryKey(skuStock); + redisLock.unlock(String.valueOf(skuStock.getProductId()), String.valueOf(time)); + break; + } + } - //生成订单信息 - OmsOrder order = new OmsOrder(); - order.setTotalAmount(totalAmount); // 订单总金额 - if(integerationFlag == 1) { - int flag = orderParam.getIntegration().compareTo(totalAmount); - BigDecimal integeration = new BigDecimal(0); - //flag = -1,表示integration小于totalAmount;flag = 0,表示integration等于totalAmount;flag = 1,表示integration大于totalAmount; - //如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。 - //如果传入的积分等于或者大于实际支付金额,表示全额抵扣 - if(flag == -1) { - order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额 - order.setIntegrationAmount(orderParam.getIntegration()); - integeration = orderParam.getIntegration(); - } else { - order.setPayAmount(zero); - order.setIntegrationAmount(totalAmount); - integeration = totalAmount; - } + //生成订单信息 + OmsOrder order = new OmsOrder(); + order.setTotalAmount(totalAmount); // 订单总金额 + if (integerationFlag == 1) { + int flag = orderParam.getIntegration().compareTo(totalAmount); + BigDecimal integeration = new BigDecimal(0); + //flag = -1,表示integration小于totalAmount;flag = 0,表示integration等于totalAmount;flag = 1,表示integration大于totalAmount; + //如果传入的积分小于实际支付金额,用实际支付金额减去抵扣积分。 + //如果传入的积分等于或者大于实际支付金额,表示全额抵扣 + if (flag == -1) { + order.setPayAmount(totalAmount.subtract(orderParam.getIntegration())); //实际支付金额 + order.setIntegrationAmount(orderParam.getIntegration()); + integeration = orderParam.getIntegration(); + } else { + order.setPayAmount(zero); + order.setIntegrationAmount(totalAmount); + integeration = totalAmount; + } - //冻结用户余额 - member = memberMapper.selectByPrimaryKey(member.getId()); - //flag = -1,表示balance小于integeration;flag = 0,表示balance等于integeration;flag = 1,表示balance大于integeration; - flag = member.getBalance().compareTo(integeration); + //冻结用户余额 + member = memberMapper.selectByPrimaryKey(member.getId()); + //flag = -1,表示balance小于integeration;flag = 0,表示balance等于integeration;flag = 1,表示balance大于integeration; + flag = member.getBalance().compareTo(integeration); /*if(flag == -1) { throw new RuntimeException("森态积分不足,无法抵扣"); }*/ - member.setBalance(member.getBalance().subtract(integeration)); //修改余额值 - member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值 - memberMapper.updateByPrimaryKey(member); + member.setBalance(member.getBalance().subtract(integeration)); //修改余额值 + member.setFreeze(member.getFreeze().add(integeration)); //修改冻结值 + memberMapper.updateByPrimaryKey(member); - } else { - order.setPayAmount(totalAmount); //实际支付金额 - order.setIntegrationAmount(zero); - } + } else { + order.setPayAmount(totalAmount); //实际支付金额 + order.setIntegrationAmount(zero); + } - Date date = new Date(); - order.setMemberId(member.getId()); - order.setCreateTime(date); - order.setModifyTime(date); - order.setMemberUsername(member.getUsername()); - order.setFreightAmount(zero); //运费 - order.setPromotionAmount(zero); //促销优化金额(促销价、满减、阶梯价) - order.setCouponAmount(zero); - order.setDiscountAmount(zero); - order.setPayType(0); //支付方式:0->未支付;1->支付宝;2->微信 - order.setSourceType(1); //订单来源:0->PC订单;1->app订单 - order.setDeliveryType(1); //提货方式:0->自提;1->物流 默认为1 mcoo + Date date = new Date(); + order.setMemberId(member.getId()); + order.setCreateTime(date); + order.setModifyTime(date); + order.setMemberUsername(member.getUsername()); + order.setFreightAmount(zero); //运费 + order.setPromotionAmount(zero); //促销优化金额(促销价、满减、阶梯价) + order.setCouponAmount(zero); + order.setDiscountAmount(zero); + order.setPayType(0); //支付方式:0->未支付;1->支付宝;2->微信 + order.setSourceType(1); //订单来源:0->PC订单;1->app订单 + order.setDeliveryType(1); //提货方式:0->自提;1->物流 默认为1 mcoo - //生成订单号 - order.setOrderSn(generateOrderSn(order)); - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(0); - //订单类型:0->正常订单;1->秒杀订单 2->5连订单 - order.setOrderType(0); + //生成订单号 + order.setOrderSn(generateOrderSn(order)); + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + order.setStatus(0); + //订单类型:0->正常订单;1->秒杀订单 2->5连订单 + order.setOrderType(0); - OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); - order.setAutoConfirmDay(orderSetting.getConfirmOvertime()); - order.setIntegration(0); - order.setGrowth(0); + OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); + order.setAutoConfirmDay(orderSetting.getConfirmOvertime()); + order.setIntegration(0); + order.setGrowth(0); - //收货人信息:姓名、电话、邮编、地址 - order.setReceiverName(address.getName()); - order.setReceiverPhone(address.getPhoneNumber()); - order.setReceiverPostCode(address.getPostCode()); - order.setReceiverProvince(address.getProvince()); - order.setReceiverCity(address.getCity()); - order.setReceiverRegion(address.getRegion()); - order.setReceiverDetailAddress(address.getDetailAddress()); + //收货人信息:姓名、电话、邮编、地址 + order.setReceiverName(address.getName()); + order.setReceiverPhone(address.getPhoneNumber()); + order.setReceiverPostCode(address.getPostCode()); + order.setReceiverProvince(address.getProvince()); + order.setReceiverCity(address.getCity()); + order.setReceiverRegion(address.getRegion()); + order.setReceiverDetailAddress(address.getDetailAddress()); - order.setNote(orderParam.getNote() == null ? null : orderParam.getNote()); + order.setNote(orderParam.getNote() == null ? null : orderParam.getNote()); - //确认收货状态:0->未确认;1->已确认 - order.setConfirmStatus(0); - //删除状态:0->未删除;1->已删除 - order.setDeleteStatus(0); - order.setUseIntegration(0); - order.setPromotionInfo("无优惠"); - order.setSettlementStatus(0); //分销结算状态(0->未结算;1->已结算;2->不结算) + //确认收货状态:0->未确认;1->已确认 + order.setConfirmStatus(0); + //删除状态:0->未删除;1->已删除 + order.setDeleteStatus(0); + order.setUseIntegration(0); + order.setPromotionInfo("无优惠"); + order.setSettlementStatus(0); //分销结算状态(0->未结算;1->已结算;2->不结算) - orderMapper.insert(order); + orderMapper.insert(order); - //生成订单商品信息 - OmsOrderItem orderItem = new OmsOrderItem(); - orderItem.setOrderId(order.getId()); - orderItem.setOrderSn(order.getOrderSn()); - orderItem.setProductId(product.getId()); - orderItem.setProductPic(skuStock.getPic()); - orderItem.setProductName(product.getName()); - //orderItem.setProductAttr(cartPromotionItem.getProductAttr()); - orderItem.setProductBrand(product.getBrandName()); - orderItem.setProductSn(product.getProductSn()); - orderItem.setProductPrice(price); - orderItem.setProductQuantity(orderParam.getQuantity()); - orderItem.setProductSkuId(skuStock.getId()); - orderItem.setProductSkuCode(skuStock.getSkuCode()); - orderItem.setProductCategoryId(product.getProductCategoryId()); - orderItem.setSp1(skuStock.getSp1()); - orderItem.setSp2(skuStock.getSp2()); - orderItem.setSp3(skuStock.getSp3()); - orderItem.setPromotionName("无优惠"); - orderItem.setPromotionAmount(new BigDecimal(0)); - orderItem.setGiftIntegration(0); - orderItem.setGiftGrowth(0); - orderItem.setCouponAmount(new BigDecimal(0)); - orderItem.setIntegrationAmount(new BigDecimal(0)); - orderItem.setRealAmount(new BigDecimal(0)); + //生成订单商品信息 + OmsOrderItem orderItem = new OmsOrderItem(); + orderItem.setOrderId(order.getId()); + orderItem.setOrderSn(order.getOrderSn()); + orderItem.setProductId(product.getId()); + orderItem.setProductPic(skuStock.getPic()); + orderItem.setProductName(product.getName()); + //orderItem.setProductAttr(cartPromotionItem.getProductAttr()); + orderItem.setProductBrand(product.getBrandName()); + orderItem.setProductSn(product.getProductSn()); + orderItem.setProductPrice(price); + orderItem.setProductQuantity(orderParam.getQuantity()); + orderItem.setProductSkuId(skuStock.getId()); + orderItem.setProductSkuCode(skuStock.getSkuCode()); + orderItem.setProductCategoryId(product.getProductCategoryId()); + orderItem.setSp1(skuStock.getSp1()); + orderItem.setSp2(skuStock.getSp2()); + orderItem.setSp3(skuStock.getSp3()); + orderItem.setPromotionName("无优惠"); + orderItem.setPromotionAmount(new BigDecimal(0)); + orderItem.setGiftIntegration(0); + orderItem.setGiftGrowth(0); + orderItem.setCouponAmount(new BigDecimal(0)); + orderItem.setIntegrationAmount(new BigDecimal(0)); + orderItem.setRealAmount(new BigDecimal(0)); - orderItemMapper.insert(orderItem); + orderItemMapper.insert(orderItem); - //超时未支付,自动取消订单 - //分钟转换成毫秒 - long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000; - cancelOrderSender.sendMessage(order.getId(), delayTimes); + //超时未支付,自动取消订单 + //分钟转换成毫秒 + long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000; + cancelOrderSender.sendMessage(order.getId(), delayTimes); - result.put("orderId", order.getId()); - result.put("totalAmount", order.getPayAmount()); - } + result.put("orderId", order.getId()); + result.put("totalAmount", order.getPayAmount()); + } return CommonResult.success(result, "下单成功"); - } + } - /** - * 订单超时取消 - * @return - */ - @Transactional + /** + * 订单超时取消 + * + * @return + */ + @Transactional @Override public CommonResult cancelTimeOutOrder() { OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L); @@ -945,99 +945,100 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { return CommonResult.success(null); } - /** - * 删除订单 - * @param orderId - * @return - */ - @Transactional + /** + * 删除订单 + * + * @param orderId + * @return + */ + @Transactional @Override public CommonResult cancelOrder(Long orderId) { - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - - boolean cancelFlag = false; - UmsMember member = null; - if(memberService.getCurrentMember() != null) { - member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); - if(member != null) { - if(!order.getMemberId().equals(member.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } - } - } else { - member = memberMapper.selectByPrimaryKey(order.getMemberId()); - cancelFlag = true; - } - - //未支付 and 未删除 - if(order.getStatus() == 0 && order.getDeleteStatus() == 0) { - Date date = new Date(); - //修改订单状态为取消 - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(4); - order.setModifyTime(date); - orderMapper.updateByPrimaryKey(order); - - //如果使用余额支付,取消订单需要退还余额 - BigDecimal zero = new BigDecimal(0); - int flag = order.getIntegrationAmount().compareTo(zero); - //flag = -1,表示IntegrationAmount小于zero;flag = 0,表示IntegrationAmount等于zero;flag = 1,表示IntegrationAmount大于zero; - if(flag == 1) { - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { - member = memberMapper.selectByPrimaryKey(member.getId()); - member.setBalance(member.getBalance().add(order.getIntegrationAmount())); //修改余额值 - member.setFreeze(member.getFreeze().subtract(order.getIntegrationAmount())); //修改冻结值 - memberMapper.updateByPrimaryKey(member); - redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); - break; - } - } - } - - //写入订单历史操作日志 - OmsOrderOperateHistory history = new OmsOrderOperateHistory(); + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } + + boolean cancelFlag = false; + UmsMember member = null; + if (memberService.getCurrentMember() != null) { + member = memberMapper.selectByPrimaryKey(memberService.getCurrentMember().getId()); + if (member != null) { + if (!order.getMemberId().equals(member.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } + } + } else { + member = memberMapper.selectByPrimaryKey(order.getMemberId()); + cancelFlag = true; + } + + //未支付 and 未删除 + if (order.getStatus() == 0 && order.getDeleteStatus() == 0) { + Date date = new Date(); + //修改订单状态为取消 + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + order.setStatus(4); + order.setModifyTime(date); + orderMapper.updateByPrimaryKey(order); + + //如果使用余额支付,取消订单需要退还余额 + BigDecimal zero = new BigDecimal(0); + int flag = order.getIntegrationAmount().compareTo(zero); + //flag = -1,表示IntegrationAmount小于zero;flag = 0,表示IntegrationAmount等于zero;flag = 1,表示IntegrationAmount大于zero; + if (flag == 1) { + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { + member = memberMapper.selectByPrimaryKey(member.getId()); + member.setBalance(member.getBalance().add(order.getIntegrationAmount())); //修改余额值 + member.setFreeze(member.getFreeze().subtract(order.getIntegrationAmount())); //修改冻结值 + memberMapper.updateByPrimaryKey(member); + redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); + break; + } + } + } + + //写入订单历史操作日志 + OmsOrderOperateHistory history = new OmsOrderOperateHistory(); history.setOrderId(orderId); history.setCreateTime(date); - if(cancelFlag) { - history.setOperateMan("自动程序"); + if (cancelFlag) { + history.setOperateMan("自动程序"); } else { - history.setOperateMan("会员"); + history.setOperateMan("会员"); } - + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 history.setOrderStatus(4); history.setNote("取消订单"); orderOperateHistoryMapper.insert(history); - - executorService.execute(new Runnable() { - @Override - public void run() { - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(orderId); - List orderItemList = orderItemMapper.selectByExample(example); - PmsSkuStock skuStock = null; - for(OmsOrderItem orderItem : orderItemList) { - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(String.valueOf(orderItem.getProductId()), String.valueOf(time))) { - skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); - skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); - skuStockMapper.updateByPrimaryKey(skuStock); - redisLock.unlock(String.valueOf(orderItem.getProductId()), String.valueOf(time)); - break; - } - } - } - } - }); - - } - return CommonResult.success(null); + + executorService.execute(new Runnable() { + @Override + public void run() { + OmsOrderItemExample example = new OmsOrderItemExample(); + example.createCriteria().andOrderIdEqualTo(orderId); + List orderItemList = orderItemMapper.selectByExample(example); + PmsSkuStock skuStock = null; + for (OmsOrderItem orderItem : orderItemList) { + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(String.valueOf(orderItem.getProductId()), String.valueOf(time))) { + skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); + skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); + skuStockMapper.updateByPrimaryKey(skuStock); + redisLock.unlock(String.valueOf(orderItem.getProductId()), String.valueOf(time)); + break; + } + } + } + } + }); + + } + return CommonResult.success(null); } /** @@ -1060,439 +1061,439 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { return sb.toString(); } - @Override - public SellerBankAccountResult getSellerBankAccount() { - SellerBankAccountResult accountResult = new SellerBankAccountResult(); - BeanUtils.copyProperties(sellerBankAccountMapper.selectOneById(1), accountResult); - return accountResult; - } + @Override + public SellerBankAccountResult getSellerBankAccount() { + SellerBankAccountResult accountResult = new SellerBankAccountResult(); + BeanUtils.copyProperties(sellerBankAccountMapper.selectOneById(1), accountResult); + return accountResult; + } - @Transactional - @Override - public CommonResult payment(OfflinePaymentParam paymentParam) { - - if(paymentParam.getOrderId() == null) { - return CommonResult.validateFailed("订单编号不能为空"); - } - - if(StringUtils.isEmpty(paymentParam.getPaymentAccountName())) { - return CommonResult.validateFailed("支付银行账户名不能为空"); - } - if(StringUtils.isEmpty(paymentParam.getPaymentBankName())) { - return CommonResult.validateFailed("支付银行名称不能为空"); - } - if(StringUtils.isEmpty(paymentParam.getPaymentBankCardNum())) { - return CommonResult.validateFailed("支付银行卡号不能为空"); - } - - OmsOrder order = orderMapper.selectByPrimaryKey(paymentParam.getOrderId()); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } - - // 支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 - // 支付方式为0才允许支付 - if(order.getPayType() != 0) { - return CommonResult.validateFailed("订单已支付"); - } - Date date = new Date(); - DmsOfflinePaymentRecord paymentRecord = new DmsOfflinePaymentRecord(); - paymentRecord.setSellerBankAccountId(1); - paymentRecord.setMemberId(order.getMemberId()); - paymentRecord.setOrderId(order.getId()); - paymentRecord.setOrderSn(order.getOrderSn()); - paymentRecord.setPayAmount(order.getPayAmount()); - paymentRecord.setPaymentAccountName(paymentParam.getPaymentAccountName()); - paymentRecord.setPaymentBankName(paymentParam.getPaymentBankName()); - paymentRecord.setPaymentBankCardNum(paymentParam.getPaymentBankCardNum()); - //确认状态:0->未确认;1->已确认 - paymentRecord.setConfirmStatus(0); - paymentRecord.setConfirmTime(null); - paymentRecord.setCreateTime(date); - - order.setPayType(3); //线下支付 - order.setModifyTime(date); - offlinePaymentRecordMapper.insert(paymentRecord); - orderMapper.updateByPrimaryKey(order); + @Transactional + @Override + public CommonResult payment(OfflinePaymentParam paymentParam) { - /** - * 会员分润,升级逻辑 - */ - memberSplitProfitService.updateOderAndMemberInfo(order); - return CommonResult.success(null); - } + if (paymentParam.getOrderId() == null) { + return CommonResult.validateFailed("订单编号不能为空"); + } - @Transactional - @Override - public CommonResult deleteOrder(Long orderId) { - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } - - if(order.getStatus() == 3 || order.getStatus() == 4 || order.getStatus() == 5) { - //删除状态:0->未删除;1->已删除 - order.setDeleteStatus(1); - order.setModifyTime(new Date()); - orderMapper.updateByPrimaryKey(order); - } - - return CommonResult.success(null); - } + if (StringUtils.isEmpty(paymentParam.getPaymentAccountName())) { + return CommonResult.validateFailed("支付银行账户名不能为空"); + } + if (StringUtils.isEmpty(paymentParam.getPaymentBankName())) { + return CommonResult.validateFailed("支付银行名称不能为空"); + } + if (StringUtils.isEmpty(paymentParam.getPaymentBankCardNum())) { + return CommonResult.validateFailed("支付银行卡号不能为空"); + } - @Override - public CommonResult refundOrder(Long orderId) { - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } + OmsOrder order = orderMapper.selectByPrimaryKey(paymentParam.getOrderId()); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } - DateTime nextPaymentTime = DateUtil.offsetDay(order.getPaymentTime(), 1); - //支付时间是否超过24小时 - if(nextPaymentTime.isAfter(DateTime.now())){ - return CommonResult.validateFailed("订单信息已超过24小时"); - } - //退货状态满足 1->待发货; - if(order.getStatus() == 1) { - //删除状态:0->未删除;1->已删除 - order.setDeleteStatus(1); - order.setModifyTime(new Date()); - orderMapper.updateByPrimaryKey(order); - } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } - return CommonResult.success(null); - } + // 支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 + // 支付方式为0才允许支付 + if (order.getPayType() != 0) { + return CommonResult.validateFailed("订单已支付"); + } + Date date = new Date(); + DmsOfflinePaymentRecord paymentRecord = new DmsOfflinePaymentRecord(); + paymentRecord.setSellerBankAccountId(1); + paymentRecord.setMemberId(order.getMemberId()); + paymentRecord.setOrderId(order.getId()); + paymentRecord.setOrderSn(order.getOrderSn()); + paymentRecord.setPayAmount(order.getPayAmount()); + paymentRecord.setPaymentAccountName(paymentParam.getPaymentAccountName()); + paymentRecord.setPaymentBankName(paymentParam.getPaymentBankName()); + paymentRecord.setPaymentBankCardNum(paymentParam.getPaymentBankCardNum()); + //确认状态:0->未确认;1->已确认 + paymentRecord.setConfirmStatus(0); + paymentRecord.setConfirmTime(null); + paymentRecord.setCreateTime(date); + + order.setPayType(3); //线下支付 + order.setModifyTime(date); + offlinePaymentRecordMapper.insert(paymentRecord); + orderMapper.updateByPrimaryKey(order); + + /** + * 会员分润,升级逻辑 + */ + memberSplitProfitService.updateOderAndMemberInfo(order); + return CommonResult.success(null); + } + + @Transactional + @Override + public CommonResult deleteOrder(Long orderId) { + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } + + if (order.getStatus() == 3 || order.getStatus() == 4 || order.getStatus() == 5) { + //删除状态:0->未删除;1->已删除 + order.setDeleteStatus(1); + order.setModifyTime(new Date()); + orderMapper.updateByPrimaryKey(order); + } + + return CommonResult.success(null); + } + + @Override + public CommonResult refundOrder(Long orderId) { + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } + + DateTime nextPaymentTime = DateUtil.offsetDay(order.getPaymentTime(), 1); + //支付时间是否超过24小时 + if (nextPaymentTime.isAfter(DateTime.now())) { + return CommonResult.validateFailed("订单信息已超过24小时"); + } + //退货状态满足 1->待发货; + if (order.getStatus() == 1) { + //删除状态:0->未删除;1->已删除 + order.setDeleteStatus(1); + order.setModifyTime(new Date()); + orderMapper.updateByPrimaryKey(order); + } + + return CommonResult.success(null); + } - @Transactional - @Override - public CommonResult getLogistics(Long orderId) { - LogisticsResult result = new LogisticsResult(); - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } + @Transactional + @Override + public CommonResult getLogistics(Long orderId) { + LogisticsResult result = new LogisticsResult(); + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } - if(!StringUtils.isEmpty(order.getDeliverySn())) { - OmsExpressCompany company = expressCompanyMapper.selectOneByName(order.getDeliveryCompany()); - if(company != null) { - Map param = new HashMap<>(); - param.put("com", company.getCode()); - param.put("num", order.getDeliverySn()); - - String paramJson = new Gson().toJson(param); - - String sign = MD5Util.MD5Encode(paramJson + KUAIDI100_KEY + KUAIDI100_CUSTOMER, "utf-8").toUpperCase(); - HashMap params = new HashMap<>(); - params.put("param", paramJson); - params.put("sign", sign); - params.put("customer", KUAIDI100_CUSTOMER); - - String url = KUAIDI100_URL + "?param=" + paramJson + "&sign=" + sign + "&customer=" + KUAIDI100_CUSTOMER; - log.info(url); - URI uri = UriComponentsBuilder.fromHttpUrl(url).build().encode(Charset.forName("UTF-8")).toUri(); - ResponseEntity response = restTemplate.getForEntity(uri, String.class); - Map object = new Gson().fromJson(response.getBody(), HashMap.class); - if("ok".equals(String.valueOf(object.get("message")))) { - //快递单当前状态,包括0在途,1揽收,2疑难,3签收,4退签,5派件,6退回等7个状态 - String state = String.valueOf(object.get("state")); - result.setData(object.get("data")); - result.setState(state); - if("0".equals(state)) { - result.setStateName("在途"); - } else if("1".equals(state)) { - result.setStateName("揽收"); - } else if("2".equals(state)) { - result.setStateName("疑难"); - } else if("3".equals(state)) { - result.setStateName("签收"); - } else if("4".equals(state)) { - result.setStateName("退签"); - } else if("5".equals(state)) { - result.setStateName("派件"); - } else { - result.setStateName("退回"); - } - return CommonResult.success(result); - } else { - return CommonResult.failed(String.valueOf(object.get("message"))); - } - } - } - return CommonResult.failed("请耐心等待商家发货"); - } + if (!StringUtils.isEmpty(order.getDeliverySn())) { + OmsExpressCompany company = expressCompanyMapper.selectOneByName(order.getDeliveryCompany()); + if (company != null) { + Map param = new HashMap<>(); + param.put("com", company.getCode()); + param.put("num", order.getDeliverySn()); - @Transactional - @Override - public CommonResult confirmReceiving(Long orderId) { - - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } - - //提货方式:0->自提;1->物流 - if(order.getDeliveryType() == 1) { - //确认收货状态:0->未确认;1->已确认 - order.setConfirmStatus(1); //已确认 - - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(3); //已完成 - Date date = new Date(); - order.setReceiveTime(date); - order.setModifyTime(date); - orderMapper.updateByPrimaryKey(order); - - //写入订单历史操作日志 - OmsOrderOperateHistory history = new OmsOrderOperateHistory(); + String paramJson = new Gson().toJson(param); + + String sign = MD5Util.MD5Encode(paramJson + KUAIDI100_KEY + KUAIDI100_CUSTOMER, "utf-8").toUpperCase(); + HashMap params = new HashMap<>(); + params.put("param", paramJson); + params.put("sign", sign); + params.put("customer", KUAIDI100_CUSTOMER); + + String url = KUAIDI100_URL + "?param=" + paramJson + "&sign=" + sign + "&customer=" + KUAIDI100_CUSTOMER; + log.info(url); + URI uri = UriComponentsBuilder.fromHttpUrl(url).build().encode(Charset.forName("UTF-8")).toUri(); + ResponseEntity response = restTemplate.getForEntity(uri, String.class); + Map object = new Gson().fromJson(response.getBody(), HashMap.class); + if ("ok".equals(String.valueOf(object.get("message")))) { + //快递单当前状态,包括0在途,1揽收,2疑难,3签收,4退签,5派件,6退回等7个状态 + String state = String.valueOf(object.get("state")); + result.setData(object.get("data")); + result.setState(state); + if ("0".equals(state)) { + result.setStateName("在途"); + } else if ("1".equals(state)) { + result.setStateName("揽收"); + } else if ("2".equals(state)) { + result.setStateName("疑难"); + } else if ("3".equals(state)) { + result.setStateName("签收"); + } else if ("4".equals(state)) { + result.setStateName("退签"); + } else if ("5".equals(state)) { + result.setStateName("派件"); + } else { + result.setStateName("退回"); + } + return CommonResult.success(result); + } else { + return CommonResult.failed(String.valueOf(object.get("message"))); + } + } + } + return CommonResult.failed("请耐心等待商家发货"); + } + + @Transactional + @Override + public CommonResult confirmReceiving(Long orderId) { + + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } + + //提货方式:0->自提;1->物流 + if (order.getDeliveryType() == 1) { + //确认收货状态:0->未确认;1->已确认 + order.setConfirmStatus(1); //已确认 + + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + order.setStatus(3); //已完成 + Date date = new Date(); + order.setReceiveTime(date); + order.setModifyTime(date); + orderMapper.updateByPrimaryKey(order); + + //写入订单历史操作日志 + OmsOrderOperateHistory history = new OmsOrderOperateHistory(); history.setOrderId(orderId); history.setCreateTime(date); history.setOperateMan("会员"); - + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 history.setOrderStatus(3); history.setNote("完成确认收货"); orderOperateHistoryMapper.insert(history); - } - - return CommonResult.success(null, "确认收货成功"); - } + } + + return CommonResult.success(null, "确认收货成功"); + } + + @Override + public CommonResult balancePayment(Long orderId) { + + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } + + // 支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 + // 支付方式为0才允许支付 + if (order.getPayType() != 0) { + return CommonResult.validateFailed("订单已支付"); + } + + UmsMember member = memberMapper.selectByPrimaryKey(currentMember.getId()); + + //如果实际支付金额等于0表示积分支付 + //如果不是使用积分支付,返回错误信息 + BigDecimal zero = new BigDecimal(0); + int flag = order.getPayAmount().compareTo(zero); + //flag = -1,表示PayAmount小于zero;flag = 0,表示PayAmount等于zero;flag = 1,表示PayAmount大于zero; + if (flag == 0) { + + //写入会员交易记录表 + DmsMemberTradeRecord tradeRecord = new DmsMemberTradeRecord(); + tradeRecord.setMemberId(member.getId()); + tradeRecord.setItemType(ItemType.IntegralShopping); //积分购物 + tradeRecord.setNote("积分抵扣"); + tradeRecord.setTitle("积分抵扣"); + tradeRecord.setValue(order.getIntegrationAmount()); + tradeRecord.setType(1); //收支类型:0->收入;1->支出 + tradeRecord.setCreateTime(new Date()); + memberTradeRecordMapper.insert(tradeRecord); + + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { + member = memberMapper.selectByPrimaryKey(member.getId()); + member.setFreeze(member.getFreeze().add(order.getIntegrationAmount())); //修改冻结金额,增加冻结资金 + memberMapper.updateByPrimaryKey(member); + redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); + break; + } + } + + } else { + return CommonResult.validateFailed("无效订单"); + } + + Date date = new Date(); + + //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 + order.setPayType(4); + + //提货方式:0->自提;1->物流 + if (order.getDeliveryType() == 0) { + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + order.setStatus(2); + } else { + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + order.setStatus(1); + } + + order.setModifyTime(date); + order.setPaymentTime(date); + orderMapper.updateByPrimaryKey(order); + + //修改商品库存信息需要加锁,影响前台响应,所以用线程来处理 + executorService.execute(new Runnable() { + + @Override + public void run() { + //库存变动 + //查询订单商品项 + OmsOrderItemExample example = new OmsOrderItemExample(); + example.createCriteria().andOrderIdEqualTo(order.getId()); + List orderItemList = orderItemMapper.selectByExample(example); + PmsSkuStock skuStock = null; + PmsProduct product = null; + for (OmsOrderItem orderItem : orderItemList) { + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(orderItem.getProductId().toString(), String.valueOf(time))) { + skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); + if (skuStock != null) { + skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); + skuStock.setStock(skuStock.getStock() - orderItem.getProductQuantity()); + skuStock.setSale((skuStock.getSale() == null ? 0 : skuStock.getSale()) + orderItem.getProductQuantity()); + skuStockMapper.updateByPrimaryKey(skuStock); + } + + product = productMapper.selectByPrimaryKey(orderItem.getProductId()); + if (product != null) { + product.setStock(product.getStock() - orderItem.getProductQuantity()); + product.setSale((product.getSale() == null ? 0 : product.getSale()) + orderItem.getProductQuantity()); + productMapper.updateByPrimaryKey(product); + } + redisLock.unlock(orderItem.getProductId().toString(), String.valueOf(time)); + break; + } + } + } + } + }); - @Override - public CommonResult balancePayment(Long orderId) { - - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } - - // 支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 - // 支付方式为0才允许支付 - if(order.getPayType() != 0) { - return CommonResult.validateFailed("订单已支付"); - } - - UmsMember member = memberMapper.selectByPrimaryKey(currentMember.getId()); - - //如果实际支付金额等于0表示积分支付 - //如果不是使用积分支付,返回错误信息 - BigDecimal zero = new BigDecimal(0); - int flag = order.getPayAmount().compareTo(zero); - //flag = -1,表示PayAmount小于zero;flag = 0,表示PayAmount等于zero;flag = 1,表示PayAmount大于zero; - if(flag == 0) { - - //写入会员交易记录表 - DmsMemberTradeRecord tradeRecord = new DmsMemberTradeRecord(); - tradeRecord.setMemberId(member.getId()); - tradeRecord.setItemType(ItemType.IntegralShopping); //积分购物 - tradeRecord.setNote("积分抵扣"); - tradeRecord.setTitle("积分抵扣"); - tradeRecord.setValue(order.getIntegrationAmount()); - tradeRecord.setType(1); //收支类型:0->收入;1->支出 - tradeRecord.setCreateTime(new Date()); - memberTradeRecordMapper.insert(tradeRecord); - - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { - member = memberMapper.selectByPrimaryKey(member.getId()); - member.setFreeze(member.getFreeze().add(order.getIntegrationAmount())); //修改冻结金额,增加冻结资金 - memberMapper.updateByPrimaryKey(member); - redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); - break; - } - } - - } else { - return CommonResult.validateFailed("无效订单"); - } - - Date date = new Date(); - - //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 - order.setPayType(4); - - //提货方式:0->自提;1->物流 - if(order.getDeliveryType() == 0) { - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(2); - } else { - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(1); - } - - order.setModifyTime(date); - order.setPaymentTime(date); - orderMapper.updateByPrimaryKey(order); - - //修改商品库存信息需要加锁,影响前台响应,所以用线程来处理 - executorService.execute(new Runnable() { - - @Override - public void run() { - //库存变动 - //查询订单商品项 - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(order.getId()); - List orderItemList = orderItemMapper.selectByExample(example); - PmsSkuStock skuStock = null; - PmsProduct product = null; - for(OmsOrderItem orderItem : orderItemList) { - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(orderItem.getProductId().toString(), String.valueOf(time))) { - skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); - if(skuStock != null) { - skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); - skuStock.setStock(skuStock.getStock() - orderItem.getProductQuantity()); - skuStock.setSale((skuStock.getSale() == null ? 0 : skuStock.getSale()) + orderItem.getProductQuantity()); - skuStockMapper.updateByPrimaryKey(skuStock); - } - - product = productMapper.selectByPrimaryKey(orderItem.getProductId()); - if(product != null) { - product.setStock(product.getStock() - orderItem.getProductQuantity()); - product.setSale((product.getSale() == null ? 0 : product.getSale()) + orderItem.getProductQuantity()); - productMapper.updateByPrimaryKey(product); - } - redisLock.unlock(orderItem.getProductId().toString(), String.valueOf(time)); - break; - } - } - } - } - }); - boolean distributionFlag = true; - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(order.getId()); - List orderItemList = orderItemMapper.selectByExample(example); - PmsProduct product = null; - for(OmsOrderItem orderItem : orderItemList) { - product = productMapper.selectByPrimaryKey(orderItem.getProductId()); - if(product.getDistributionFlag().equals(0)) { //分销标志(0->不参与;1->参与) - distributionFlag = false; - } - } - - //分销处理 - if(distributionFlag) { - distributeSender.sendMessage(order.getId()); - } + OmsOrderItemExample example = new OmsOrderItemExample(); + example.createCriteria().andOrderIdEqualTo(order.getId()); + List orderItemList = orderItemMapper.selectByExample(example); + PmsProduct product = null; + for (OmsOrderItem orderItem : orderItemList) { + product = productMapper.selectByPrimaryKey(orderItem.getProductId()); + if (product.getDistributionFlag().equals(0)) { //分销标志(0->不参与;1->参与) + distributionFlag = false; + } + } - return CommonResult.success(null, "支付成功"); - } + //分销处理 + if (distributionFlag) { + distributeSender.sendMessage(order.getId()); + } - /** + return CommonResult.success(null, "支付成功"); + } + + /** * 微信预支付 + * * @param orderId * @return */ - @Override - public CommonResult> wxPrePay(Long orderId) { - - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null || order.getDeleteStatus().equals(1)) { - return CommonResult.validateFailed("未查询到订单信息"); - } - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } - - Map resultMap = new HashMap<>(); - // 支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 - // 支付方式为0才允许支付 - if(order.getPayType() == 0) { - - //如果实际支付金额大于0,调用微信预支付接口 - BigDecimal zero = new BigDecimal(0); - int flag = order.getPayAmount().compareTo(zero); - //flag = -1,表示PayAmount小于zero;flag = 0,表示PayAmount等于zero;flag = 1,表示PayAmount大于zero; - if(flag == 1) { - - try { - WxPayTradeDto tradeDto = new WxPayTradeDto(); - tradeDto.setBody("森态空气"); - tradeDto.setOutTradeNo(order.getOrderSn()); - Double totalFree = order.getPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() * 100; - tradeDto.setTotalFee(String.valueOf(totalFree.intValue())); - tradeDto.setOpenId(currentMember.getUsername()); - resultMap = wxPay(tradeDto, WECHAT_PAY_PAY_CALLBACK_URL); - resultMap.put("orderId", String.valueOf(order.getId())); - - return CommonResult.success(resultMap); - } catch (Exception e) { - e.printStackTrace(); - } - - } - - - } else { - return CommonResult.validateFailed("订单状态无效"); - } - return CommonResult.failed("调用微信支付失败"); - - } + @Override + public CommonResult> wxPrePay(Long orderId) { + + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null || order.getDeleteStatus().equals(1)) { + return CommonResult.validateFailed("未查询到订单信息"); + } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } + + Map resultMap = new HashMap<>(); + // 支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 + // 支付方式为0才允许支付 + if (order.getPayType() == 0) { + + //如果实际支付金额大于0,调用微信预支付接口 + BigDecimal zero = new BigDecimal(0); + int flag = order.getPayAmount().compareTo(zero); + //flag = -1,表示PayAmount小于zero;flag = 0,表示PayAmount等于zero;flag = 1,表示PayAmount大于zero; + if (flag == 1) { + + try { + WxPayTradeDto tradeDto = new WxPayTradeDto(); + tradeDto.setBody("森态空气"); + tradeDto.setOutTradeNo(order.getOrderSn()); + Double totalFree = order.getPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() * 100; + tradeDto.setTotalFee(String.valueOf(totalFree.intValue())); + tradeDto.setOpenId(currentMember.getUsername()); + resultMap = wxPay(tradeDto, WECHAT_PAY_PAY_CALLBACK_URL); + resultMap.put("orderId", String.valueOf(order.getId())); + + return CommonResult.success(resultMap); + } catch (Exception e) { + e.printStackTrace(); + } + + } + } else { + return CommonResult.validateFailed("订单状态无效"); + } + return CommonResult.failed("调用微信支付失败"); - @Override - public String toAlipayWeb(Long orderId) throws AlipayApiException { - - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - // 支付方式为1才允许支付 - if(order == null){ - CommonResult.validateFailed("111"); - } - - //if(order != null && order.getPayType() == 1) { - if (order != null){ - //如果实际支付金额大于0,调用支付接口 - //flag = -1,表示PayAmount小于zero;flag = 0,表示PayAmount等于zero;flag = 1,表示PayAmount大于zero; - //if (order.getPayAmount().compareTo(BigDecimal.ZERO) == 1) { - AlipayPayTradeDto tradeDto = new AlipayPayTradeDto(); - tradeDto.setSubject("SN"+order.getOrderSn()); - tradeDto.setOutTradeNo(order.getOrderSn()); - Double totalFree = order.getPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - tradeDto.setTotalFee(String.valueOf(totalFree.intValue())); - - return alipayService.createPayment(tradeDto); - - //} - } - return null; - } + } - private Map wxPay(WxPayTradeDto tradeDto, String notifyUrl) throws Exception { + @Override + public String toAlipayWeb(Long orderId) throws AlipayApiException { + + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + // 支付方式为1才允许支付 + if (order == null) { + CommonResult.validateFailed("111"); + } + + //if(order != null && order.getPayType() == 1) { + if (order != null) { + //如果实际支付金额大于0,调用支付接口 + //flag = -1,表示PayAmount小于zero;flag = 0,表示PayAmount等于zero;flag = 1,表示PayAmount大于zero; + //if (order.getPayAmount().compareTo(BigDecimal.ZERO) == 1) { + AlipayPayTradeDto tradeDto = new AlipayPayTradeDto(); + tradeDto.setSubject("SN" + order.getOrderSn()); + tradeDto.setOutTradeNo(order.getOrderSn()); + Double totalFree = order.getPayAmount().setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + tradeDto.setTotalFee(String.valueOf(totalFree.intValue())); + + return alipayService.createPayment(tradeDto); + + //} + } + return null; + } + + + private Map wxPay(WxPayTradeDto tradeDto, String notifyUrl) throws Exception { MyConfig config = new MyConfig(WECHAT_APPID, WECHAT_PAY_MCHID, WECHAT_PAY_KEY); WXPay wxpay = new WXPay(config); Map data = new HashMap<>(); @@ -1539,330 +1540,338 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { } - /** - * 微信支付成功回调方法 - * @param request - * @param response - */ - @Override - public void wxPayCallback(HttpServletRequest request, HttpServletResponse response) throws Exception { - - LOGGER.info("================================================开始处理微信小程序发送的支付成功异步通知"); - - InputStream inputStream = request.getInputStream(); + /** + * 微信支付成功回调方法 + * + * @param request + * @param response + */ + @Override + public void wxPayCallback(HttpServletRequest request, HttpServletResponse response) throws Exception { + + LOGGER.info("================================================开始处理微信小程序发送的支付成功异步通知"); + + InputStream inputStream = request.getInputStream(); //获取请求输入流 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; - while ((len = inputStream.read(buffer)) != -1){ + while ((len = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, len); } outputStream.close(); inputStream.close(); - + Map map = WXPayUtil.xmlToMap(new String(outputStream.toByteArray())); LOGGER.info("【小程序支付回调】 回调数据: \n" + map); String resXml = ""; String returnCode = (String) map.get("return_code"); if ("SUCCESS".equalsIgnoreCase(returnCode)) { String resultCode = (String) map.get("result_code"); - if("SUCCESS".equals(resultCode)){ - - //验证签名 - boolean signatureFlag = WXPayUtil.isSignatureValid(map, WECHAT_PAY_KEY); - if(signatureFlag) { - String orderSn = map.get("out_trade_no"); - OmsOrderExample example = new OmsOrderExample(); - example.createCriteria().andOrderSnEqualTo(orderSn); - List list = orderMapper.selectByExample(example); - if(list != null && list.size() > 0) { - OmsOrder order = list.get(0); - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - if(order != null && order.getStatus() == 0) { + if ("SUCCESS".equals(resultCode)) { - Date date = new Date(); - //提货方式:0->自提;1->物流 - if(order.getDeliveryType() == 0) { - order.setStatus(2); //已发货 - } else { - order.setStatus(1); //待发货 - } - //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付 - order.setPayType(2); //微信 - order.setModifyTime(date); - order.setPaymentTime(date); - orderMapper.updateByPrimaryKey(order); + //验证签名 + boolean signatureFlag = WXPayUtil.isSignatureValid(map, WECHAT_PAY_KEY); + if (signatureFlag) { + String orderSn = map.get("out_trade_no"); + OmsOrderExample example = new OmsOrderExample(); + example.createCriteria().andOrderSnEqualTo(orderSn); + List list = orderMapper.selectByExample(example); + if (list != null && list.size() > 0) { + OmsOrder order = list.get(0); + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + if (order != null && order.getStatus() == 0) { - BigDecimal zero = new BigDecimal(0); - int flag = order.getIntegrationAmount().compareTo(zero); - UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId()); + Date date = new Date(); + //提货方式:0->自提;1->物流 + if (order.getDeliveryType() == 0) { + order.setStatus(2); //已发货 + } else { + order.setStatus(1); //待发货 + } + //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付 + order.setPayType(2); //微信 + order.setModifyTime(date); + order.setPaymentTime(date); + orderMapper.updateByPrimaryKey(order); - //flag = -1,表示IntegrationAmount小于zero;flag = 0,表示IntegrationAmount等于zero;flag = 1,表示IntegrationAmount大于zero; - if(flag == 1) { + BigDecimal zero = new BigDecimal(0); + int flag = order.getIntegrationAmount().compareTo(zero); + UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId()); - //写入会员交易记录表 - DmsMemberTradeRecord tradeRecord = new DmsMemberTradeRecord(); - tradeRecord.setMemberId(member.getId()); - tradeRecord.setItemType(ItemType.IntegralShopping); //积分购物 - tradeRecord.setNote("积分抵扣"); - tradeRecord.setTitle("积分抵扣"); - tradeRecord.setValue(order.getIntegrationAmount()); - tradeRecord.setType(1); //收支类型:0->收入;1->支出 - tradeRecord.setCreateTime(date); - memberTradeRecordMapper.insert(tradeRecord); + //flag = -1,表示IntegrationAmount小于zero;flag = 0,表示IntegrationAmount等于zero;flag = 1,表示IntegrationAmount大于zero; + if (flag == 1) { - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { - member = memberMapper.selectByPrimaryKey(member.getId()); - member.setFreeze(member.getFreeze().subtract(order.getIntegrationAmount())); //修改冻结值 - memberMapper.updateByPrimaryKey(member); - redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); - break; - } - } + //写入会员交易记录表 + DmsMemberTradeRecord tradeRecord = new DmsMemberTradeRecord(); + tradeRecord.setMemberId(member.getId()); + tradeRecord.setItemType(ItemType.IntegralShopping); //积分购物 + tradeRecord.setNote("积分抵扣"); + tradeRecord.setTitle("积分抵扣"); + tradeRecord.setValue(order.getIntegrationAmount()); + tradeRecord.setType(1); //收支类型:0->收入;1->支出 + tradeRecord.setCreateTime(date); + memberTradeRecordMapper.insert(tradeRecord); - } + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { + member = memberMapper.selectByPrimaryKey(member.getId()); + member.setFreeze(member.getFreeze().subtract(order.getIntegrationAmount())); //修改冻结值 + memberMapper.updateByPrimaryKey(member); + redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); + break; + } + } - //修改商品库存信息需要加锁,影响前台响应,所以用线程来处理 - executorService.execute(new Runnable() { - - @Override - public void run() { - //库存变动 - //查询订单商品项 - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(order.getId()); - - List orderItemList = orderItemMapper.selectByExample(example); - PmsSkuStock skuStock = null; - PmsProduct product = null; - for(OmsOrderItem orderItem : orderItemList) { - while(true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if(redisLock.lock(orderItem.getProductId().toString(), String.valueOf(time))) { - skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); - if(skuStock != null) { - skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); - skuStock.setStock(skuStock.getStock() - orderItem.getProductQuantity()); - skuStock.setSale((skuStock.getSale() == null ? 0 : skuStock.getSale()) + orderItem.getProductQuantity()); - skuStockMapper.updateByPrimaryKey(skuStock); - } - - product = productMapper.selectByPrimaryKey(orderItem.getProductId()); - if(product != null) { - product.setStock(product.getStock() - orderItem.getProductQuantity()); - product.setSale((product.getSale() == null ? 0 : product.getSale()) + orderItem.getProductQuantity()); - productMapper.updateByPrimaryKey(product); - } - redisLock.unlock(orderItem.getProductId().toString(), String.valueOf(time)); - break; - } - } - } - } - }); - - boolean distributionFlag = true; - OmsOrderItemExample orderItemExample = new OmsOrderItemExample(); - orderItemExample.createCriteria().andOrderIdEqualTo(order.getId()); - List orderItemList = orderItemMapper.selectByExample(orderItemExample); - PmsProduct product = null; - for(OmsOrderItem orderItem : orderItemList) { - product = productMapper.selectByPrimaryKey(orderItem.getProductId()); - if(product.getDistributionFlag().equals(0)) { //分销标志(0->不参与;1->参与) - distributionFlag = false; - } - } - - //分销处理 - if(distributionFlag) { - distributeSender.sendMessage(order.getId()); - } - - } - } - //支付成功 + } + + //修改商品库存信息需要加锁,影响前台响应,所以用线程来处理 + executorService.execute(new Runnable() { + + @Override + public void run() { + //库存变动 + //查询订单商品项 + OmsOrderItemExample example = new OmsOrderItemExample(); + example.createCriteria().andOrderIdEqualTo(order.getId()); + + List orderItemList = orderItemMapper.selectByExample(example); + PmsSkuStock skuStock = null; + PmsProduct product = null; + for (OmsOrderItem orderItem : orderItemList) { + while (true) { + long time = System.currentTimeMillis() + RedisLock.TIMEOUT; + if (redisLock.lock(orderItem.getProductId().toString(), String.valueOf(time))) { + skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); + if (skuStock != null) { + skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); + skuStock.setStock(skuStock.getStock() - orderItem.getProductQuantity()); + skuStock.setSale((skuStock.getSale() == null ? 0 : skuStock.getSale()) + orderItem.getProductQuantity()); + skuStockMapper.updateByPrimaryKey(skuStock); + } + + product = productMapper.selectByPrimaryKey(orderItem.getProductId()); + if (product != null) { + product.setStock(product.getStock() - orderItem.getProductQuantity()); + product.setSale((product.getSale() == null ? 0 : product.getSale()) + orderItem.getProductQuantity()); + productMapper.updateByPrimaryKey(product); + } + redisLock.unlock(orderItem.getProductId().toString(), String.valueOf(time)); + break; + } + } + } + } + }); + + boolean distributionFlag = true; + OmsOrderItemExample orderItemExample = new OmsOrderItemExample(); + orderItemExample.createCriteria().andOrderIdEqualTo(order.getId()); + List orderItemList = orderItemMapper.selectByExample(orderItemExample); + PmsProduct product = null; + for (OmsOrderItem orderItem : orderItemList) { + product = productMapper.selectByPrimaryKey(orderItem.getProductId()); + if (product.getDistributionFlag().equals(0)) { //分销标志(0->不参与;1->参与) + distributionFlag = false; + } + } + + //分销处理 + if (distributionFlag) { + distributeSender.sendMessage(order.getId()); + } + + } + } + //支付成功 resXml = ""; - } else { - LOGGER.info("签名验证失败"); - } - - }else{ + } else { + LOGGER.info("签名验证失败"); + } + + } else { resXml = ""; - LOGGER.info("支付失败:"+resXml); + LOGGER.info("支付失败:" + resXml); } - }else{ + } else { resXml = ""; LOGGER.info("【订单支付失败】"); } - - LOGGER.info("【小程序支付回调响应】 响应内容:\n"+resXml); + + LOGGER.info("【小程序支付回调响应】 响应内容:\n" + resXml); response.getWriter().print(resXml); - - } + + } - /** - * 加速订单 - * @param orderId - * @return - */ - @Override - public CommonResult accelerateOrder(Long orderId) { - OmsOrder order = orderMapper.selectByPrimaryKey(orderId); - if(order == null) { - return CommonResult.validateFailed("未查询到订单信息"); - } - UmsMember currentMember = memberService.getCurrentMember(); - if(!order.getMemberId().equals(currentMember.getId())) { - return CommonResult.validateFailed("未查询到订单信息"); - } - //只能加速 1->待发货;2->已发货 //mcoo - if(order.getStatus() == 1 || order.getStatus() == 2 || order.getStatus() == 3) { - executorService.submit(()->{ - //修改队列类型为 加速订单 + /** + * 加速订单 + * + * @param orderId + * @return + */ + @Override + public CommonResult accelerateOrder(Long orderId) { + OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + if (order == null) { + return CommonResult.validateFailed("未查询到订单信息"); + } + UmsMember currentMember = memberService.getCurrentMember(); + if (!order.getMemberId().equals(currentMember.getId())) { + return CommonResult.validateFailed("未查询到订单信息"); + } + //只能加速 1->待发货;2->已发货 //mcoo + if (order.getStatus() == 1 || order.getStatus() == 2 || order.getStatus() == 3) { + executorService.submit(() -> { + //修改队列类型为 加速订单 /*UmsMemberOrderQueueExample queueExample = new UmsMemberOrderQueueExample(); queueExample.createCriteria().andOrderIdEqualTo(order.getId());*/ - UmsMemberOrderQueueExample queueExample = new UmsMemberOrderQueueExample(); - queueExample.createCriteria().andOrderIdEqualTo(order.getId()) - .andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY) - .andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT); + UmsMemberOrderQueueExample queueExample = new UmsMemberOrderQueueExample(); + queueExample.createCriteria().andOrderIdEqualTo(order.getId()) + .andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY) + .andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT); - List queueList = umsMemberOrderQueueMapper.selectByExample(queueExample); - if(!queueList.isEmpty()){ - UmsMemberOrderQueue moq = queueList.get(0); - moq.setQueueType(UmsMemberOrderQueue.QUEUE_TYPE_FAST); - umsMemberOrderQueueMapper.updateByPrimaryKeySelective(moq); - } - }); - } - return CommonResult.success(null); - } + List queueList = umsMemberOrderQueueMapper.selectByExample(queueExample); + if (!queueList.isEmpty()) { + UmsMemberOrderQueue moq = queueList.get(0); + moq.setQueueType(UmsMemberOrderQueue.QUEUE_TYPE_FAST); + umsMemberOrderQueueMapper.updateByPrimaryKeySelective(moq); + } + }); + } + return CommonResult.success(null); + } - @Override - public CommonResult orderQueueInfo() { - //加速订单 - UmsMemberOrderQueueExample queueExample = new UmsMemberOrderQueueExample(); - queueExample.createCriteria() - .andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY) - .andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT);//mcoo - List queueList = umsMemberOrderQueueMapper.selectByExample(queueExample); - return CommonResult.success(queueList.size()); - } + @Override + public CommonResult orderQueueInfo() { + //加速订单 + UmsMemberOrderQueueExample queueExample = new UmsMemberOrderQueueExample(); + queueExample.createCriteria() + .andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY) + .andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_WAIT);//mcoo + List queueList = umsMemberOrderQueueMapper.selectByExample(queueExample); + return CommonResult.success(queueList.size()); + } - @Override - public CommonResult accelerateOrderInfo(Long orderId) { - return null; - } + @Override + public CommonResult accelerateOrderInfo(Long orderId) { + return null; + } - @Value("${alipay.alipayPublicKey}") - private String alipayPublicKey; + @Value("${alipay.alipayPublicKey}") + private String alipayPublicKey; - @Value("${alipay.charset}") - private String charset; + @Value("${alipay.charset}") + private String charset; - @Value("${alipay.signType}") - private String signType; + @Value("${alipay.signType}") + private String signType; - /** - * 支付宝支付回调 - * @param params - */ - @Override - public void alipayCallback(Map params) { - LOGGER.info("============开始处理支付宝的支付异步通知 接收到参数 {}", JSONUtil.toJsonStr(params)); - // 验证签名 - boolean verifyResult; - //TODO - try { - //verifyResult = true;//AlipaySignature.rsaCheckV1(params, alipayPublicKey, charset, signType); mcoo - 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); + /** + * 支付宝支付回调 + * + * @param params + */ + @Override + public void alipayCallback(Map params) { + LOGGER.info("============开始处理支付宝的支付异步通知 接收到参数 {}", JSONUtil.toJsonStr(params)); + // 验证签名 + boolean verifyResult; + //TODO + try { + //verifyResult = true;//AlipaySignature.rsaCheckV1(params, alipayPublicKey, charset, signType); mcoo + 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); - //获取订单实付金额 - BigDecimal payAmount = order.getPayAmount(); - //增加基金现金流水 - umsDevelopmentFundMapper.insertCash(payAmount); - //获取积分专区状态 - int pointsAreaStatus = orderMapper.selectPointsAreaStatus(outTradeNo); - //如果是积分专区的商品则进行积分专区相对应的逻辑 - if (pointsAreaStatus == 1) { - //奖励积分是购买的价格的100% - BigDecimal rewardPoints = order.getPayAmount(); - // 获取用户信息 - UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId()); - // 增加用户积分 - if (member != null) { + //获取订单实付金额 + BigDecimal payAmount = order.getPayAmount(); + //获取商品信息 + PmsProduct pmsProduct = orderMapper.selectPointsAreaStatus(outTradeNo); + //如果是会员专区的商品则进行会员专区相对应的逻辑 + if (pmsProduct.getVipStatus() == 1) { + //增加基金现金 + BigDecimal fundCash = payAmount.multiply(new BigDecimal("0.05")); + umsDevelopmentFundMapper.updateCash(fundCash); + } + //如果是积分专区的商品则进行积分专区相对应的逻辑 + if (pmsProduct.getPointsAreaStatus() == 1) { + //奖励积分是购买的价格的100% + int rewardPoints = order.getPayAmount().intValue(); + // 获取用户信息 + UmsMember member = memberMapper.selectByPrimaryKey(order.getMemberId()); + // 增加用户积分 + if (member != null) { - if (member.getIntegration() == null) { - member.setIntegration(rewardPoints.intValue()); - } else { - member.setIntegration(member.getIntegration() + rewardPoints.intValue()); - } + if (member.getIntegration() == null) { + member.setIntegration(rewardPoints); + } else { + member.setIntegration(member.getIntegration() + rewardPoints); + } - // 更新用户积分 - memberMapper.updateByPrimaryKey(member); - //增加基金积分流水 - umsDevelopmentFundMapper.insertPoints(rewardPoints); - } - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - if (order != null && order.getStatus() == 0) { - Date date = new Date(); - //提货方式:0->自提;1->物流 - if (order.getDeliveryType() == 0) { - order.setStatus(2); //已发货 - } else { - order.setStatus(1); //待发货 - } - //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付 - order.setPayType(1); - order.setModifyTime(date); - order.setPaymentTime(date); - orderMapper.updateByPrimaryKey(order); + // 更新用户积分 + memberMapper.updateByPrimaryKey(member); + //增加基金积分 + int fundPoints = (int)(rewardPoints * 0.05); + umsDevelopmentFundMapper.updatePoints(fundPoints); + } + } + //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + if (order != null && order.getStatus() == 0) { + Date date = new Date(); + //提货方式:0->自提;1->物流 + if (order.getDeliveryType() == 0) { + order.setStatus(2); //已发货 + } else { + order.setStatus(1); //待发货 + } + //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付 + order.setPayType(1); + order.setModifyTime(date); + order.setPaymentTime(date); + orderMapper.updateByPrimaryKey(order); - /** - * 会员分润,升级逻辑 - */ - memberSplitProfitService.updateOderAndMemberInfo(order); + /** + * 会员分润,升级逻辑 + */ + memberSplitProfitService.updateOderAndMemberInfo(order); - } - } - } - } + } + } + } - } catch(AlipayApiException e){ - e.printStackTrace(); - } - } + } catch (AlipayApiException e) { + e.printStackTrace(); + } + } - public List outOrderInfo() { //优化mcoo - UmsMemberOrderQueueExample example = new UmsMemberOrderQueueExample(); - example.createCriteria().andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_QUIT) - .andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY); - List outList = umsMemberOrderQueueMapper.selectByExample(example); - return outList; - } + public List outOrderInfo() { //优化mcoo + UmsMemberOrderQueueExample example = new UmsMemberOrderQueueExample(); + example.createCriteria().andQuitQueueMarkEqualTo(UmsMemberOrderQueue.QUEUE_STATUS_QUIT) + .andQueueTypeEqualTo(UmsMemberOrderQueue.QUEUE_TYPE_ORDINARY); + List outList = umsMemberOrderQueueMapper.selectByExample(example); + return outList; + } - public List inviteList(Long orderId) { //优化mcoo - UmsMemberOrderQueueExample example = new UmsMemberOrderQueueExample(); - example.createCriteria().andAccelerateOrderIdEqualTo(orderId); - List outList1 = umsMemberOrderQueueMapper.selectByExample(example); - return outList1; - } + public List inviteList(Long orderId) { //优化mcoo + UmsMemberOrderQueueExample example = new UmsMemberOrderQueueExample(); + example.createCriteria().andAccelerateOrderIdEqualTo(orderId); + List outList1 = umsMemberOrderQueueMapper.selectByExample(example); + return outList1; + } }