Jelajahi Sumber

Merge branch '20220930' into master_saas

liujunchi 2 tahun lalu
induk
melakukan
3d03117251
20 mengubah file dengan 222 tambahan dan 16 penghapusan
  1. 2 2
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  2. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysCoupon.java
  3. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java
  4. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysCouponCodeQueryInfo.java
  5. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  6. 70 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  7. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponServiceImpl.java
  8. 6 0
      mec-biz/src/main/resources/config/mybatis/SysCouponCodeMapper.xml
  9. 4 0
      mec-client-api/src/main/java/com/ym/mec/web/WebFeignService.java
  10. 5 0
      mec-client-api/src/main/java/com/ym/mec/web/fallback/WebFeignServiceFallback.java
  11. 11 0
      mec-common/common-core/src/main/java/com/ym/mec/common/entity/MallCreateOrderModel.java
  12. 2 0
      mec-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/UserOrderPaymentMapper.java
  13. 6 0
      mec-mall/mall-mbg/src/main/resources/config/mybatis/UserOrderPaymentMapper.xml
  14. 1 1
      mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsPortalOrderController.java
  15. 12 0
      mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/domain/OrderParam.java
  16. 1 2
      mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java
  17. 9 0
      mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/UserOrderPaymentService.java
  18. 27 6
      mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java
  19. 5 0
      mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UserOrderPaymentServiceImpl.java
  20. 16 0
      mec-web/src/main/java/com/ym/mec/web/controller/APIController.java

+ 2 - 2
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -245,10 +245,10 @@
         <where>
             su.del_flag_ = 0
             <if test="createStartDate != null and createStartDate != ''">
-                and #{createStartDate} &lt;= e.create_time_
+                and #{createStartDate} &lt;= e.update_time_
             </if>
             <if test="createEndDate != null and createEndDate != ''">
-                and #{createEndDate} &gt; e.create_time_
+                and #{createEndDate} &gt; e.update_time_
             </if>
         </where>
     </select>

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysCoupon.java

@@ -91,6 +91,17 @@ public class SysCoupon extends BaseEntity implements Serializable{
 	@ApiModelProperty("领取优惠券条件JSON: {organId:分部id(逗号隔开)}")
 	private String useCondition;
 
+	@ApiModelProperty("使用系统 MALL:商城  MEC:管乐迷")
+	private String useSystem;
+
+	public String getUseSystem() {
+		return useSystem;
+	}
+
+	public void setUseSystem(String useSystem) {
+		this.useSystem = useSystem;
+	}
+
 	public String getUseCondition() {
 		return useCondition;
 	}

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java

@@ -37,7 +37,9 @@ public enum CouponDetailTypeEnum {
     //会员开通,团练宝   CLOUD_TEACHER  CLOUD_TEACHER_PLUS
     MEMBER("MEMBER", "云教练"),
     //全类都可以使用
-    FULLCOUPON("FULLCOUPON", "全类券");
+    FULLCOUPON("FULLCOUPON", "全类券"),
+    // 商城券
+    MALLCOUPON("MALLCOUPON", "商城券");
 
     private String code;
 

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysCouponCodeQueryInfo.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.page;
 
 import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * @Author Joburgess
@@ -23,6 +24,29 @@ public class SysCouponCodeQueryInfo extends QueryInfo {
      */
     private Integer issueType;
 
+    // 使用系统 MALL:商城  MEC:管乐迷
+    private String useSystem;
+
+    // 优惠券类型 详情-CouponDetailTypeEnum-枚举类 多个逗号隔开
+    @ApiModelProperty("优惠券类型:OTHER:其他,MUSICAL:乐器 MAINTENANCE 乐保 ACCESSORIES 辅件 TEACHING 教材 PRACTICE 网管课 SINGLE 声部课 MIX 合奏课 VIP:VIP MEMBER:会员开通 FULLCOUPON:全类 MALLCOUPON:商城券")
+    private String typeDetail;
+
+    public String getTypeDetail() {
+        return typeDetail;
+    }
+
+    public void setTypeDetail(String typeDetail) {
+        this.typeDetail = typeDetail;
+    }
+
+    public String getUseSystem() {
+        return useSystem;
+    }
+
+    public void setUseSystem(String useSystem) {
+        this.useSystem = useSystem;
+    }
+
     public Integer getOrganId() {
         return organId;
     }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -255,4 +255,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
 
     // 查询优惠券优惠券金额
     Map couponAmount(MallCreateOrderModel model);
+
+    // 订单收货状态更新
+    void receive(String orderNo, boolean autoReceive);
 }

+ 70 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -49,6 +49,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.DealStatusEnum.CLOSE;
+import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
 
 @Service
 public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, StudentPaymentOrder> implements StudentPaymentOrderService {
@@ -1113,12 +1114,45 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         studentPaymentOrder.setOrderNo(model.getOrderNo());
         studentPaymentOrder.setCreateTime(date);
         studentPaymentOrder.setUpdateTime(date);
-        studentPaymentOrder.setPaymentChannel("ADAPAY");
+        if (model.isUseBalance()) {
+            studentPaymentOrder.setPaymentChannel("BALANCE");
+        } else {
+            studentPaymentOrder.setPaymentChannel("ADAPAY");
+        }
         studentPaymentOrder.setOrganId(student.getOrganId());
         studentPaymentOrder.setRoutingOrganId(student.getOrganId());
         studentPaymentOrder.setTenantId(student.getTenantId());
         studentPaymentOrderService.insert(studentPaymentOrder);
 
+        // 余额支付
+        BigDecimal amount = studentPaymentOrder.getActualAmount();
+        BigDecimal balance = BigDecimal.ZERO;
+        if (model.isUseBalance() && amount.compareTo(BigDecimal.ZERO) > 0) {
+            SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(model.getUserId());
+            if (userCashAccount == null) {
+                throw new BizException("用户账户不存在");
+            }
+            if (userCashAccount.getBalance() != null && userCashAccount.getBalance().compareTo(BigDecimal.ZERO) > 0) {
+                balance = amount.compareTo(userCashAccount.getBalance()) >= 0 ? userCashAccount.getBalance() : amount;
+                amount = amount.subtract(balance);
+                studentPaymentOrder.setActualAmount(amount);
+                studentPaymentOrder.setBalancePaymentAmount(balance);
+                sysUserCashAccountService.updateBalance(model.getUserId(), balance.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "商品销售");
+            }
+        }
+        studentPaymentOrderService.update(studentPaymentOrder);
+        studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
+
+        if (amount.compareTo(BigDecimal.ZERO) == 0) {
+            studentPaymentRouteOrderService.addRouteOrder(model.getOrderNo(), student.getOrganId(), balance);
+            Map<String, String> notifyMap = new HashMap<>();
+            notifyMap.put("tradeState", "1");
+            notifyMap.put("merOrderNo", studentPaymentOrder.getOrderNo());
+            studentPaymentOrderService.updateOrder(notifyMap);
+            notifyMap.put("orderNo", model.getOrderNo());
+            return notifyMap;
+        }
+
         studentGoodsSell.setCouponMarketAmount(studentPaymentOrder.getCouponRemitFee());
         studentGoodsSell.setOrganId(student.getOrganId());
         studentGoodsSell.setTotalAmount(studentPaymentOrder.getActualAmount());
@@ -1228,13 +1262,27 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     public OrderCancelModel cancelOrder(StudentPaymentOrder order) {
         OrderCancelModel model = new OrderCancelModel();
         try {
+            HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(order.getTenantId());
+            if(hfMerchantConfig == null){
+                throw new BizException("机构[{}]汇付商户信息找不到", order.getTenantId());
+            }
+            Map<String, Object> payment = Payment.queryPayment(order.getTransNo(), hfMerchantConfig.getMerKey());
+            LOGGER.info("订单[{}]交易主动查询接口返回:{}", order.getTransNo(), payment);
+
+            model.setPayChannel((String) payment.get("pay_channel"));
+            String status = (String) payment.get("status");
+            if (status.equals("succeeded")) {
+                model.setStatus(true);
+                order.setStatus(SUCCESS);
+            } else if (status.equals("failed") ) {
+                model.setStatus(false);
+                order.setStatus(CLOSE);
+                order.setMemo("超时未支付关闭");
+            }
             TenantContextHolder.setTenantId(order.getTenantId());
-            order.setStatus(CLOSE);
-            order.setMemo("超时未支付关闭");
             callOrderCallBack(order);
             TenantContextHolder.clearTenantId();
             model.setSuccess(true);
-            model.setStatus(false);
         } catch (Exception e) {
             model.setSuccess(false);
             e.printStackTrace();
@@ -1269,4 +1317,22 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         payMap.put("mallStatus",1);
         return payMap;
     }
+
+    @Override
+    public void receive(String orderNo, boolean autoReceive) {
+
+        StudentPaymentOrder orderByOrderNo = studentPaymentOrderService.findOrderByOrderNo(orderNo);
+        if (orderByOrderNo == null) {
+            return;
+        }
+        // MANUAL_RECEIVE 手动确认,AUTO_RECEIVE 自动确认
+        StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+        studentPaymentOrder.setId(orderByOrderNo.getId());
+        if (autoReceive) {
+            studentPaymentOrder.setReceiveStatus("AUTO_RECEIVE");
+        } else {
+            studentPaymentOrder.setReceiveStatus("MANUAL_RECEIVE");
+        }
+        studentPaymentOrderDao.update(studentPaymentOrder);
+    }
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponServiceImpl.java

@@ -13,6 +13,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -141,6 +142,9 @@ public class SysCouponServiceImpl extends BaseServiceImpl<Integer, SysCoupon> im
         if (Objects.isNull(sysCoupon.getType())) {
             throw new BizException("请指定优惠券类型");
         }
+        if (StringUtils.isEmpty(sysCoupon.getUseSystem())) {
+            throw new BizException("请置顶使用系统");
+        }
 
         switch (sysCoupon.getType()) {
             case DISCOUNT:

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/SysCouponCodeMapper.xml

@@ -185,6 +185,12 @@
 			<if test="issueType !=null">
                 AND scc.type_ = #{issueType}
             </if>
+			<if test="useSystem != null and useSystem != ''">
+				and sc.use_system_ = #{useSystem}
+			</if>
+			<if test="typeDetail != null and typeDetail != ''">
+				and  find_in_set(sc.type_detail_ , #{typeDetail})
+			</if>
 		</where>
 	</sql>
 

+ 4 - 0
mec-client-api/src/main/java/com/ym/mec/web/WebFeignService.java

@@ -70,4 +70,8 @@ public interface WebFeignService {
 	// 商城订单优惠券金额
 	@PostMapping("/api/couponAmount")
 	HttpResponseResult<Map> couponAmount(@RequestBody MallCreateOrderModel model);
+
+	// 商城获取 退款数据  只能全额退款
+	@PostMapping("/api/receive")
+	HttpResponseResult receive(@RequestParam("orderNo") String orderNo,@RequestParam("autoReceive") boolean autoReceive);
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/web/fallback/WebFeignServiceFallback.java

@@ -97,4 +97,9 @@ public class WebFeignServiceFallback implements WebFeignService {
 	public HttpResponseResult<Map> couponAmount(MallCreateOrderModel model) {
 		return null;
 	}
+
+	@Override
+	public HttpResponseResult receive(String orderNo, boolean autoReceive) {
+		return null;
+	}
 }

+ 11 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/MallCreateOrderModel.java

@@ -27,6 +27,17 @@ public class MallCreateOrderModel {
 
     private String orderInfo;
 
+    // 使用余额
+    private boolean useBalance;
+
+    public boolean isUseBalance() {
+        return useBalance;
+    }
+
+    public void setUseBalance(boolean useBalance) {
+        this.useBalance = useBalance;
+    }
+
     public String getOrderInfo() {
         return orderInfo;
     }

+ 2 - 0
mec-mall/mall-mbg/src/main/java/com/yonge/cooleshow/mbg/mapper/UserOrderPaymentMapper.java

@@ -32,4 +32,6 @@ public interface UserOrderPaymentMapper {
      * @return
      */
     UserOrderPayment selectByAdapayNo(String paymentNo);
+
+    UserOrderPayment selectByOrderNoAndStatusSuccess(@Param("orderSn") String orderSn);
 }

+ 6 - 0
mec-mall/mall-mbg/src/main/resources/config/mybatis/UserOrderPaymentMapper.xml

@@ -279,4 +279,10 @@
         <include refid="Base_Column_List" />
         from user_order_payment where adapay_no_ = #{paymentNo} order by id_ desc  limit 1
     </select>
+
+    <select id="selectByOrderNoAndStatusSuccess" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from user_order_payment where order_no_ = #{orderSn} and status_ = 'succeeded' order by id_ desc  limit 1
+    </select>
 </mapper>

+ 1 - 1
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/OmsPortalOrderController.java

@@ -192,7 +192,7 @@ public class OmsPortalOrderController {
 
         DistributedLock.of(redissonClient)
                        .runIfLockCanGet(OrderCacheEnum.LOCK_ORDER_NO_MALL.getRedisKey(omsOrder.getOrderSn())
-                               , () -> portalOrderService.confirmReceiveOrder(orderId), 60L, TimeUnit.SECONDS);
+                               , () -> portalOrderService.confirmReceiveOrder(orderId,false), 60L, TimeUnit.SECONDS);
         return CommonResult.success(null);
     }
 

+ 12 - 0
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/domain/OrderParam.java

@@ -36,6 +36,18 @@ public class OrderParam {
     @ApiModelProperty("订单号 重复支付传订单号")
     private String orderNo;
 
+
+    @ApiModelProperty("使用余额")
+    private boolean useBalance;
+
+    public boolean isUseBalance() {
+        return useBalance;
+    }
+
+    public void setUseBalance(boolean useBalance) {
+        this.useBalance = useBalance;
+    }
+
     public Long getTeacherId() {
         return teacherId;
     }

+ 1 - 2
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/OmsPortalOrderService.java

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.portal.service;
 
-import com.ym.mec.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.mall.common.api.CommonPage;
 import com.yonge.cooleshow.mbg.model.OmsOrder;
 import com.yonge.cooleshow.portal.domain.ConfirmOrderResult;
@@ -57,7 +56,7 @@ public interface OmsPortalOrderService {
      * 确认收货
      */
     @Transactional
-    void confirmReceiveOrder(Long orderId);
+    void confirmReceiveOrder(Long orderId, boolean auto);
 
     /**
      * 分页获取用户订单

+ 9 - 0
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/UserOrderPaymentService.java

@@ -40,6 +40,15 @@ public interface UserOrderPaymentService {
      */
     UserOrderPayment getByOrderNoAndStatusPaying(String orderSn);
 
+
+    /**
+     * 查询支付成功的订单, 最多只有一个
+     *
+     * @param orderSn
+     * @return
+     */
+    UserOrderPayment getByOrderNoAndStatusSuccess(String orderSn);
+
     /**
      * 查询回调支付信息
      */

+ 27 - 6
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -149,6 +149,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
                 userOrderPayment.setStatus(TradeStatusEnum.pending.getCode());
                 userOrderPayment.setAdapayNo(orderSn);
                 userOrderPayment.setId(null);
+                userOrderPayment.setCreateTime(new Date());
                 userOrderPaymentService.saveOrUpdate(userOrderPayment);
 
                 return feignMecCreateOrder(order.getCouponId(), oldOrderNo, orderSn, null, detail.getMemberId().intValue(), detail.getTotalAmount(),
@@ -267,7 +268,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         lockProductStock(cartPromotionItemList);
 
         //根据商品合计、运费、活动优惠、优惠券、积分计算应付金额
-        String cartIds = orderParam.getCartIds().stream().map(String::valueOf).collect(Collectors.joining());
+        String cartIds = orderParam.getCartIds().stream().map(String::valueOf).collect(Collectors.joining(","));
         order.setCartIds(cartIds);
         order.setDiscountAmount(new BigDecimal(0));
         order.setTotalAmount(amount);
@@ -363,6 +364,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         userOrderPayment.setOrderNo(order.getOrderSn());
         userOrderPayment.setAdapayNo(order.getOrderSn());
         userOrderPayment.setStatus(TradeStatusEnum.pending.getCode());
+        userOrderPayment.setCreateTime(new Date());
 
         if (order.getPayAmount().compareTo(BigDecimal.ZERO) == 0) {
             paySuccess(order.getId(),order.getPayType());
@@ -378,6 +380,13 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         data = feignMecCreateOrder(orderParam.getCouponId(),orderParam.getOrderNo(), orderSn,
                                        orderParam.getTeacherId()==null?null:orderParam.getTeacherId().intValue(),
                                        currentMember.getId().intValue(), amount,JSON.toJSONString(detail));
+        if ("1".equals(MapUtil.getStr(data, "tradeState"))) {
+            paySuccess(order.getId(),order.getPayType());
+            order.setStatus(1);
+            result.put("orderType","success");
+            userOrderPayment.setStatus(TradeStatusEnum.succeeded.getCode());
+            userOrderPaymentService.save(userOrderPayment);
+        }
         result.put("pay",data);
 
         return result;
@@ -400,15 +409,13 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         MallCreateOrderModel model = new MallCreateOrderModel();
         model.setAmount(amount);
         model.setOrderNo(orderSn);
-        if (!userId.equals(teacherId)) {
-            model.setTeacherId(teacherId);
-        }
         model.setUserId(userId);
         model.setCouponIdList(StringUtil.toIntegerList(couponId));
         model.setOldOrderNo(oldOrderNo);
         model.setOrderInfo(orderDetail);
         HttpResponseResult<Map> mapHttpResponseResult = webFeignService.mallCreateOrder(model);
         if (!mapHttpResponseResult.getStatus()) {
+            LOG.error("管乐迷下单错误信息:{}",mapHttpResponseResult.getMsg());
             throw new BizException("管乐迷订单生成失败");
         }
         Map data = mapHttpResponseResult.getData();
@@ -569,7 +576,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     }
 
     @Override
-    public void confirmReceiveOrder(Long orderId) {
+    public void confirmReceiveOrder(Long orderId, boolean auto) {
         // UmsMember member = memberService.getCurrentMember();
         OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
         // if (!member.getId().equals(order.getMemberId())) {
@@ -585,6 +592,20 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         order.setReceiveTime(new Date());
         orderMapper.updateByPrimaryKey(order);
 
+
+        // 管乐迷状态同步更新为手动确认收货
+        mecReceive(order.getOrderSn(),auto);
+
+    }
+
+    // 管乐迷状态同步更新为手、自动确认收货
+    private void mecReceive(String orderSn, boolean auto) {
+        UserOrderPayment userOrderPayment = userOrderPaymentService.getByOrderNoAndStatusSuccess(orderSn);
+        HttpResponseResult receive = webFeignService.receive(userOrderPayment.getAdapayNo(), auto);
+        if (!receive.getStatus()) {
+            LOG.error("管乐迷状态同步更新为手、自动确认收货失败:{}",receive.getMsg());
+        }
+
     }
 
     @Override
@@ -709,7 +730,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
                            .runIfLockCanGet(OrderCacheEnum.LOCK_ORDER_NO_MALL.getRedisKey(omsOrder.getOrderSn())
                                    , () -> {
                                         try {
-                                            this.confirmReceiveOrder(omsOrder.getId());
+                                            this.confirmReceiveOrder(omsOrder.getId(), true);
 
                                         }catch (Exception e) {
                                             LOG.warn("订单收货,{}",e.fillInStackTrace());

+ 5 - 0
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UserOrderPaymentServiceImpl.java

@@ -50,6 +50,11 @@ public class UserOrderPaymentServiceImpl implements UserOrderPaymentService {
     }
 
     @Override
+    public UserOrderPayment getByOrderNoAndStatusSuccess(String orderSn) {
+        return userOrderPaymentMapper.selectByOrderNoAndStatusSuccess(orderSn);
+    }
+
+    @Override
     public UserOrderPayment getByAdapayNo(String paymentNo) {
         return userOrderPaymentMapper.selectByAdapayNo(paymentNo);
     }

+ 16 - 0
mec-web/src/main/java/com/ym/mec/web/controller/APIController.java

@@ -239,4 +239,20 @@ public class APIController extends BaseController {
 			return failed();
 		}
 	}
+
+
+
+	// 商城获取 收货状态
+	@PostMapping("/receive")
+	public HttpResponseResult receive(@RequestParam String orderNo,@RequestParam boolean autoReceive) {
+
+		try {
+			studentPaymentOrderService.receive(orderNo,autoReceive);
+
+			return succeed();
+		} catch (Exception e) {
+			e.printStackTrace();
+			return failed();
+		}
+	}
 }