Browse Source

Merge remote-tracking branch 'origin/feature/1113-vipCourse' into feature/1113-vipCourse

zouxuan 8 months ago
parent
commit
4f7e61e6fe

+ 14 - 6
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MemberPriceSettingsController.java

@@ -1,5 +1,7 @@
 package com.yonge.cooleshow.student.controller;
 
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.MemberPriceSettingsSearch;
 import com.yonge.cooleshow.biz.dal.entity.MemberPriceSettings;
 import com.yonge.cooleshow.biz.dal.entity.SysConfig;
@@ -14,6 +16,8 @@ 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.http.HttpStatus;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -33,6 +37,9 @@ public class MemberPriceSettingsController extends BaseController {
 	@Resource
 	private ActivityPlanService activityPlanService;
 
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
 	@GetMapping("/detail/{id}")
 	@ApiOperation(value = "详情", notes = "传入id")
 	public HttpResponseResult<MemberPriceSettingsVo> detail(@PathVariable("id") Long id) {
@@ -96,11 +103,12 @@ public class MemberPriceSettingsController extends BaseController {
 
 	@ApiOperation(value = "获取畅学卡")
 	@GetMapping("/getDiscount")
-	public HttpResponseResult<MemberPriceSettings> getDiscount() {
-		return succeed(memberPriceSettingsService.lambdaQuery()
-				.eq(MemberPriceSettings::getVipType, "DISCOUNT")
-				.eq(MemberPriceSettings::getStatus, true)
-				.orderByDesc(MemberPriceSettings::getCreateTime)
-				.last("limit 1").one());
+	public HttpResponseResult<MemberPriceSettingsWrapper.UserDiscount> getDiscount() {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		Long userId = null;
+		if (user != null ){
+			userId = user.getId();
+		}
+		return succeed(memberPriceSettingsService.getDiscount(userId));
 	}
 }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MemberPriceSettingsService.java

@@ -14,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.vo.MemberPriceVo;
 import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
+import com.yonge.cooleshow.biz.dal.wrapper.MemberPriceSettingsWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
@@ -110,4 +111,11 @@ public interface MemberPriceSettingsService extends IService<MemberPriceSettings
      *
      */
     void discountCreate(UserPaymentOrderWrapper.OrderGoodsInfo orderGoodsInfo);
+
+    /**
+     * 获取畅学卡信息
+     *
+     * @param userId 用户id
+     */
+    MemberPriceSettingsWrapper.UserDiscount getDiscount(Long userId);
 }

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

@@ -17,6 +17,7 @@ import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
+import com.yonge.cooleshow.biz.dal.wrapper.MemberPriceSettingsWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -318,6 +319,34 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
     }
 
 
+    /**
+     * 获取畅学卡信息
+     *
+     * @param userId 用户id
+     */
+    @Override
+    public MemberPriceSettingsWrapper.UserDiscount getDiscount(Long userId) {
+        MemberPriceSettings one = this.lambdaQuery()
+                .eq(MemberPriceSettings::getVipType, "DISCOUNT")
+                .eq(MemberPriceSettings::getStatus, true)
+                .orderByDesc(MemberPriceSettings::getCreateTime)
+                .last("limit 1").one();
+        if (one == null) {
+            return null;
+        }
+        MemberPriceSettingsWrapper.UserDiscount userDiscount = JSON.parseObject(JSON.toJSONString(one), MemberPriceSettingsWrapper.UserDiscount.class);
+        if (userId !=null) {
+            Student student = studentService.getById(userId);
+            if (student != null) {
+                userDiscount.setDiscountEndTime(student.getDiscountEndTime());
+                userDiscount.setDiscountStartTime(student.getDiscountStartTime());
+            }
+        }
+        return userDiscount;
+
+    }
+
+
     @Override
     @Transactional
     public void activityReward(Long userId, ClientEnum client, ActivityReward activityReward, Long activityId,String activityName) {

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java

@@ -856,7 +856,7 @@ DISCOUNT("畅学卡")
             BigDecimal actualPrice = entry.getValue();
             BigDecimal couponAmount = BigDecimal.valueOf(couponInfo.getDiscountPrice())
                     .multiply(userOrderDetail.getActualPrice()).divide(amount, 2, RoundingMode.HALF_DOWN);
-            remainAmount = amount.subtract(couponAmount);
+            remainAmount = BigDecimal.valueOf(couponInfo.getDiscountPrice()).subtract(couponAmount);
             userOrderDetail.setCouponAmount(couponAmount.add(userOrderDetail.getCouponAmount()));
 
             userOrderDetail.setDiscountJson(userOrderService.discountJson(EDiscountType.COUPON,

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

@@ -1,9 +1,19 @@
 package com.yonge.cooleshow.biz.dal.wrapper;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.enums.EVipType;
+import com.yonge.cooleshow.biz.dal.enums.PeriodEnum;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotNull;
+import javax.validation.constraints.PositiveOrZero;
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class MemberPriceSettingsWrapper {
 
@@ -17,4 +27,40 @@ public class MemberPriceSettingsWrapper {
 
     }
 
+    @Data
+    public static class UserDiscount {
+
+        private Long id;
+
+        @ApiModelProperty("周期 ")
+        private PeriodEnum period;
+
+        @ApiModelProperty("销售价 ")
+        private BigDecimal salePrice;
+
+        @ApiModelProperty("原价 ")
+        private BigDecimal originalPrice;
+
+
+        @ApiModelProperty("状态 1:启用 0:停用 ")
+        private Boolean status;
+
+        @ApiModelProperty("描述文案")
+        private String desc;
+
+        @ApiModelProperty("会员类型")
+        private EVipType vipType;
+
+        @ApiModelProperty("折扣")
+        private BigDecimal discountRate;
+
+        @ApiModelProperty("适用范围")
+        private String productType;
+
+        @ApiModelProperty("折扣开始时间")
+        private Date discountStartTime;
+
+        @ApiModelProperty("折扣结束时间")
+        private Date discountEndTime;
+    }
 }