Browse Source

优化订单优惠详情数据显示

skyline 1 year ago
parent
commit
915c277fbd

+ 2 - 0
entity/src/main/java/com/kym/entity/miniapp/vo/ChargeOrderVo.java

@@ -19,6 +19,8 @@ public class ChargeOrderVo {
 
     private String stationId;
 
+    private String stationName;
+
     /**
      * 充电订单号(EN+)
      */

+ 122 - 0
entity/src/main/java/com/kym/entity/miniapp/vo/UserOrderCouponVo.java

@@ -0,0 +1,122 @@
+package com.kym.entity.miniapp.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.kym.entity.BaseEntity;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 用户订单优惠券
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-04-29
+ */
+@Data
+@Accessors(chain = true)
+public class UserOrderCouponVo extends BaseEntity {
+
+
+    /**
+     * 优惠券id
+     */
+    private Long couponId;
+
+    /**
+     * 优惠券名称
+     */
+    private String couponName;
+
+    /**
+     * 主活动id
+     */
+    private Long activityId;
+
+    /**
+     * 主活动名称
+     */
+    private String activityName;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    private LocalDateTime startTime;
+
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    private LocalDateTime endTime;
+
+    /**
+     * 有效期(天)
+     */
+    private Integer validity;
+
+    /**
+     * 领取方式:Release-系统发放,Collect-主动领取
+     */
+    private String receiveType;
+
+    /**
+     * 券种:折扣券、满减券
+     */
+    private String couponType;
+
+    /**
+     * 折扣:100代表无折扣,75代表75折;折扣金额(分)
+     */
+    private Integer discount;
+
+    /**
+     * 使用门槛:最小服务费金额(分)
+     */
+    private Integer minServiceMoney;
+
+    /**
+     * 优惠允许叠加:0-不允许,1-允许
+     */
+    private Integer allowStacke;
+
+    /**
+     * 状态:0-无效,1-有效
+     */
+    private Integer status;
+
+    /**
+     * 使用状态:0-未使用,1-已使用
+     */
+    private Integer usageStatus;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 订单号
+     */
+    private String startChargeSeq;
+
+    /**
+     * 订单优惠金额(分)
+     */
+    private Integer orderDiscountAmount;
+}

+ 99 - 0
entity/src/main/java/com/kym/entity/miniapp/vo/UserOrderRechargeRightsVo.java

@@ -0,0 +1,99 @@
+package com.kym.entity.miniapp.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.kym.entity.BaseEntity;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 用户订单权益
+ * </p>
+ *
+ * @author skyline
+ * @since 2023-10-18
+ */
+@Data
+@Accessors(chain = true)
+public class UserOrderRechargeRightsVo extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 充值权益id
+     */
+    private Long rightsId;
+
+    /**
+     * 主活动id
+     */
+    private Long activityId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 开始时间
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime startTime;
+
+    /**
+     * 结束时间
+     */
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime endTime;
+
+    /**
+     * 权益余额(分)
+     */
+    private Integer rightsBalance;
+
+    /**
+     * 冻结余额(分)
+     */
+    private Integer frozenBalance;
+
+    /**
+     * 折扣:100代表无折扣,75代表75折
+     */
+    private Integer discount;
+
+    /**
+     * 优惠允许叠加:0-不允许,1-允许
+     */
+    private Integer allowStacke;
+
+    /**
+     * 总优惠金额(分)
+     */
+    private Integer discountAmount;
+
+    /**
+     * 使用次数
+     */
+    private Integer times;
+
+    /**
+     * 状态:0-无效,1-有效
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 订单号
+     */
+    private String startChargeSeq;
+
+    /**
+     * 订单优惠金额(分)
+     */
+    private Integer orderDiscountAmount;
+}

+ 2 - 1
service/src/main/java/com/kym/service/miniapp/UserCouponService.java

@@ -5,6 +5,7 @@ import com.kym.entity.admin.queryParams.CouponQueryParam;
 import com.kym.entity.common.PageBean;
 import com.kym.entity.miniapp.UserCoupon;
 import com.kym.entity.miniapp.vo.UserCouponVo;
+import com.kym.entity.miniapp.vo.UserOrderCouponVo;
 
 import java.util.List;
 import java.util.Map;
@@ -23,7 +24,7 @@ public interface UserCouponService extends IService<UserCoupon> {
 
     void collectCoupon(Long couponId);
 
-    UserCoupon getUserCoupon(String startChargeSeq);
+    UserOrderCouponVo getUserOrderCoupon(String startChargeSeq);
 
     List<UserCoupon> listStationAvailableCoupons(Map<String, ?> params);
 

+ 2 - 1
service/src/main/java/com/kym/service/miniapp/UserRechargeRightsService.java

@@ -2,6 +2,7 @@ package com.kym.service.miniapp;
 
 import com.github.yulichang.base.MPJBaseService;
 import com.kym.entity.miniapp.UserRechargeRights;
+import com.kym.entity.miniapp.vo.UserOrderRechargeRightsVo;
 
 import java.util.List;
 import java.util.Map;
@@ -16,7 +17,7 @@ import java.util.Map;
  */
 public interface UserRechargeRightsService extends MPJBaseService<UserRechargeRights> {
 
-    Object getUserRechargeRights(String startChargeSeq);
+    UserOrderRechargeRightsVo getUserOrderRechargeRights(String startChargeSeq);
 
     List<UserRechargeRights> listStationAvailableRights(Map<String, ?> params);
 

+ 3 - 2
service/src/main/java/com/kym/service/miniapp/impl/ChargeOrderServiceImpl.java

@@ -185,6 +185,7 @@ public class ChargeOrderServiceImpl extends MPJBaseServiceImpl<ChargeOrderMapper
         // 订单对应的优惠信息
         var orderVo = new ChargeOrderVo();
         BeanUtils.copyProperties(chargeOrder, orderVo);
+        orderVo.setStationName(KymCache.INSTANCE.getStationNameById(chargeOrder.getStationId()));
         // todo 修改成只显示优惠金额,具体优惠信息点击详情查看具体权益卡/优惠券
 //        if (chargeOrder.getDiscountAmount() > 0) {
 //            // 充值权益
@@ -202,8 +203,8 @@ public class ChargeOrderServiceImpl extends MPJBaseServiceImpl<ChargeOrderMapper
     @Override
     public Object orderDiscountDetail(String startChargeSeq, String discountType) {
         return switch (discountType) {
-            case Activity.DISCOUNT_TYPE_服务费折扣权益 -> userRechargeRightsService.getUserRechargeRights(startChargeSeq);
-            case Activity.DISCOUNT_TYPE_优惠券 -> userCouponService.getUserCoupon(startChargeSeq);
+            case Activity.DISCOUNT_TYPE_服务费折扣权益 -> userRechargeRightsService.getUserOrderRechargeRights(startChargeSeq);
+            case Activity.DISCOUNT_TYPE_优惠券 -> userCouponService.getUserOrderCoupon(startChargeSeq);
             default -> throw new BusinessException("未知的优惠类型");
         };
     }

+ 6 - 3
service/src/main/java/com/kym/service/miniapp/impl/UserCouponServiceImpl.java

@@ -17,6 +17,7 @@ import com.kym.entity.miniapp.OrderCoupon;
 import com.kym.entity.miniapp.User;
 import com.kym.entity.miniapp.UserCoupon;
 import com.kym.entity.miniapp.vo.UserCouponVo;
+import com.kym.entity.miniapp.vo.UserOrderCouponVo;
 import com.kym.mapper.miniapp.UserCouponMapper;
 import com.kym.service.admin.ActivityService;
 import com.kym.service.admin.CouponService;
@@ -165,15 +166,17 @@ public class UserCouponServiceImpl extends MPJBaseServiceImpl<UserCouponMapper,
      * @return
      */
     @Override
-    public UserCoupon getUserCoupon(String startChargeSeq) {
+    public UserOrderCouponVo getUserOrderCoupon(String startChargeSeq) {
         var userId = StpUtil.getLoginIdAsLong();
         MPJLambdaWrapper<UserCoupon> wrapper = JoinWrappers.lambda(UserCoupon.class)
-                .selectAll(UserCoupon.class)
+                .selectAsClass(UserCoupon.class, UserOrderCouponVo.class)
+                .selectAs(OrderCoupon::getStartChargeSeq, UserOrderCouponVo::getStartChargeSeq)
+                .selectAs(OrderCoupon::getDiscountAmount, UserOrderCouponVo::getOrderDiscountAmount)
                 .rightJoin(OrderCoupon.class, on -> on.eq(OrderCoupon::getCouponId, UserCoupon::getCouponId).eq(OrderCoupon::getUserId, UserCoupon::getUserId))
                 .eq(OrderCoupon::getStartChargeSeq, startChargeSeq)
                 .eq(OrderCoupon::getUserId, userId)
                 .eq(OrderCoupon::getStatus, OrderCoupon.STATUS_使用成功);
-        return this.getOne(wrapper);
+        return selectJoinOne(UserOrderCouponVo.class, wrapper);
     }
 
     @Override

+ 6 - 3
service/src/main/java/com/kym/service/miniapp/impl/UserRechargeRightsServiceImpl.java

@@ -6,6 +6,7 @@ import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.kym.entity.miniapp.OrderRechargeRights;
 import com.kym.entity.miniapp.UserRechargeRights;
+import com.kym.entity.miniapp.vo.UserOrderRechargeRightsVo;
 import com.kym.mapper.miniapp.UserRechargeRightsMapper;
 import com.kym.service.miniapp.UserRechargeRightsService;
 import org.springframework.stereotype.Service;
@@ -32,15 +33,17 @@ public class UserRechargeRightsServiceImpl extends MPJBaseServiceImpl<UserRechar
      * @return
      */
     @Override
-    public UserRechargeRights getUserRechargeRights(String startChargeSeq) {
+    public UserOrderRechargeRightsVo getUserOrderRechargeRights(String startChargeSeq) {
         var userId = StpUtil.getLoginIdAsLong();
         MPJLambdaWrapper<UserRechargeRights> wrapper = JoinWrappers.lambda(UserRechargeRights.class)
-                .selectAll(UserRechargeRights.class)
+                .selectAsClass(UserRechargeRights.class, UserOrderRechargeRightsVo.class)
+                .selectAs(OrderRechargeRights::getStartChargeSeq, UserOrderRechargeRightsVo::getStartChargeSeq)
+                .selectAs(OrderRechargeRights::getDiscountAmount, UserOrderRechargeRightsVo::getOrderDiscountAmount)
                 .rightJoin(OrderRechargeRights.class, on ->
                         on.eq(OrderRechargeRights::getRightsId, UserRechargeRights::getRightsId).eq(OrderRechargeRights::getUserId, UserRechargeRights::getUserId))
                 .eq(OrderRechargeRights::getStartChargeSeq, startChargeSeq)
                 .eq(UserRechargeRights::getUserId, userId);
-        return this.getOne(wrapper);
+        return  selectJoinOne(UserOrderRechargeRightsVo.class,wrapper);
     }
 
     @Override