刘俊驰 1 år sedan
förälder
incheckning
8a65f76228

+ 20 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MemberPriceSettingsController.java

@@ -6,11 +6,13 @@ import com.yonge.cooleshow.biz.dal.service.MemberPriceSettingsService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceSettingsVo;
 import com.yonge.cooleshow.biz.dal.vo.MemberPriceVo;
+import com.yonge.cooleshow.biz.dal.wrapper.MemberPriceSettingsWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -65,6 +67,24 @@ public class MemberPriceSettingsController extends BaseController {
         return succeed(true);
     }
 
+
+    /**
+     * 查询单条
+     */
+    @PostMapping("/checkChange")
+    @ApiOperation(value = "检查会员是否有效", notes = "传入id")
+    public HttpResponseResult<Boolean> checkChange(@RequestBody @Validated MemberPriceSettingsWrapper.MemberChange memberChange) {
+        MemberPriceSettingsVo detail = memberPriceSettingsService.detail(memberChange.getId());
+        if (detail == null) {
+            return succeed(false);
+        }else if (Boolean.FALSE.equals(detail.getStatus())) {
+            return succeed(false);
+        } else if (memberChange.getSalePrice() != null && memberChange.getSalePrice().compareTo(detail.getSalePrice()) !=0) {
+            return succeed(false);
+        }
+        return succeed(true);
+    }
+
 	@PostMapping("/vipPermissions")
 	@ApiOperation(value = "查询vip权限")
 	public HttpResponseResult<List<SysConfig>> vipPermissions() {

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java

@@ -84,6 +84,8 @@ public class OrderReq {
         private Long couponId;
         @ApiModelProperty(value = "业务内容")
         private Object bizContent;
+        @ApiModelProperty(value = "业务价格")
+        private BigDecimal bizPrice;
         @ApiModelProperty(value = "调用业务创建方法返回", hidden = true)
         private OrderCreateRes createRes;
         @ApiModelProperty(value = "订单金额", required = true)
@@ -94,6 +96,13 @@ public class OrderReq {
         // 透传订单类型
         private OrderTypeEnum orderType;
 
+        public BigDecimal getBizPrice() {
+            return bizPrice;
+        }
+
+        public void setBizPrice(BigDecimal bizPrice) {
+            this.bizPrice = bizPrice;
+        }
 
         public Integer getGoodsNum() {
             return goodsNum;

+ 8 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java

@@ -105,11 +105,12 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
             return HttpResponseResult.failed("产品信息已更新,请重新选择");
         }
 
+
         // 判断是否有待支付订单 如果有返回不可下单
         checkOrder(orderReqInfo.getOrderClient(), orderReqInfo.getOrderType().name(), orderReqInfo.getUserId());
 
 
-        checkVip(detail, orderReqInfo.getVipEndDays(), orderReqInfo.getUserId(), orderReqInfo.getOrderClient(), orderReqInfo.getGoodsNum());
+        checkVip(detail, orderReqInfo.getVipEndDays(), orderReqInfo.getUserId(), orderReqInfo.getOrderClient(), orderReqInfo.getGoodsNum(),orderReqInfo.getBizPrice());
 
         OrderCreateRes orderCreateRes = new OrderCreateRes();
         BigDecimal couponAmount = BigDecimal.ZERO;
@@ -142,7 +143,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         return HttpResponseResult.succeed(orderCreateRes);
     }
 
-    private void checkVip(MemberPriceSettingsVo detail, Integer vipDays, Long userId, ClientEnum client, Integer num) {
+    private void checkVip(MemberPriceSettingsVo detail, Integer vipDays, Long userId, ClientEnum client, Integer num, BigDecimal bizPrice) {
         // 判断会员剩余天数是否改变
         if (detail.getVipType() == EVipType.SVIP && vipDays != null && vipDays > 0) {
             VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(userId, client);
@@ -156,6 +157,10 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
                 throw new BizException(998, "您当前VIP天数更新,请刷新后尝试");
             }
         }
+        if (bizPrice !=null && detail.getSalePrice().compareTo(bizPrice) !=0) {
+            throw new BizException(998, "产品信息已更新,请重新选择");
+
+        }
     }
 
     private int getSvipDays(MemberPriceSettingsVo detail, Integer num, VipCardRecordWrapper.UserVip userVip) {
@@ -421,7 +426,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         checkOrder(orderGoodsInfo.getPaymentClient(), detail.getVipType().name(), orderGoodsInfo.getUserId());
 
         // 判断会员剩余天数是否改变
-        checkVip(detail, orderGoodsInfo.getVipEndDays(), orderGoodsInfo.getUserId(), orderGoodsInfo.getPaymentClient(), orderGoodsInfo.getGoodNum());
+        checkVip(detail, orderGoodsInfo.getVipEndDays(), orderGoodsInfo.getUserId(), orderGoodsInfo.getPaymentClient(), orderGoodsInfo.getGoodNum(), orderGoodsInfo.getBizPrice());
 
         BigDecimal couponAmount = BigDecimal.ZERO;
         ActivityPlanVo activityPlanVo = activityPlanService.detail(orderGoodsInfo.getActivityId());

+ 20 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/MemberPriceSettingsWrapper.java

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.biz.dal.wrapper;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+public class MemberPriceSettingsWrapper {
+
+    @Data
+    public static class MemberChange {
+
+        @NotNull(message = "id不能为空")
+        private Long id;
+
+        private BigDecimal salePrice;
+
+    }
+
+}

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/UserPaymentOrderWrapper.java

@@ -846,6 +846,9 @@ public class UserPaymentOrderWrapper {
         @ApiModelProperty("业务内容 ")
         private Object bizContent;
 
+        @ApiModelProperty(value = "业务价格")
+        private BigDecimal bizPrice;
+
         @ApiModelProperty(value = "vip剩余天数")
         private Integer vipEndDays;