瀏覽代碼

订单以及优惠卷部分优化

liude 1 年之前
父節點
當前提交
18f640db26

+ 4 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/CouponDTO.java

@@ -40,6 +40,10 @@ public class CouponDTO implements Serializable {
      * 优惠券名称
      */
     private String name;
+    /**
+     * 满减门槛
+     */
+    private Double consumeThreshold;
 
     /**
      * 优惠金额

+ 4 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/dto/UserCouponDTO.java

@@ -49,4 +49,8 @@ public class UserCouponDTO implements Serializable {
      * 优惠券
      */
 	private CouponDTO couponDTO;
+    /**
+     * 是否显示
+     */
+	private boolean display = true;
 }

+ 5 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/OrderPagingParam.java

@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
 import lombok.experimental.SuperBuilder;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 订单信息
@@ -27,4 +28,8 @@ public class OrderPagingParam implements Serializable {
      * 订单状态
      */
     private Integer status;
+    /**
+     * 订单状态集合
+     */
+    private List<Integer> statuses;
 }

+ 60 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/IHelpCategoryService.java

@@ -0,0 +1,60 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+import java.util.List;
+
+/**
+ * 帮助分类Service接口
+ * 
+ * @author liude
+ * @date 2023-11-08
+ */
+public interface IHelpCategoryService 
+{
+    /**
+     * 查询帮助分类
+     * 
+     * @param id 帮助分类主键
+     * @return 帮助分类
+     */
+//    public HelpCategory selectHelpCategoryById(Long id);
+
+    /**
+     * 查询帮助分类列表
+     * 
+     * @param helpCategory 帮助分类
+     * @return 帮助分类集合
+     */
+//    public List<HelpCategory> selectHelpCategoryList(HelpCategory helpCategory);
+
+    /**
+     * 新增帮助分类
+     * 
+     * @param helpCategory 帮助分类
+     * @return 结果
+     */
+//    public int insertHelpCategory(HelpCategory helpCategory);
+
+    /**
+     * 修改帮助分类
+     * 
+     * @param helpCategory 帮助分类
+     * @return 结果
+     */
+//    public int updateHelpCategory(HelpCategory helpCategory);
+
+    /**
+     * 批量删除帮助分类
+     * 
+     * @param ids 需要删除的帮助分类主键集合
+     * @return 结果
+     */
+    public int deleteHelpCategoryByIds(Long[] ids);
+
+    /**
+     * 删除帮助分类信息
+     * 
+     * @param id 帮助分类主键
+     * @return 结果
+     */
+    public int deleteHelpCategoryById(Long id);
+}

+ 61 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/IHelpService.java

@@ -0,0 +1,61 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+
+import java.util.List;
+
+/**
+ * 帮助Service接口
+ * 
+ * @author liude
+ * @date 2023-11-08
+ */
+public interface IHelpService 
+{
+    /**
+     * 查询帮助
+     * 
+     * @param id 帮助主键
+     * @return 帮助
+     */
+//    public Help selectHelpById(Long id);
+
+    /**
+     * 查询帮助列表
+     * 
+     * @param help 帮助
+     * @return 帮助集合
+     */
+//    public List<Help> selectHelpList(Help help);
+
+    /**
+     * 新增帮助
+     * 
+     * @param help 帮助
+     * @return 结果
+     */
+//    public int insertHelp(Help help);
+
+    /**
+     * 修改帮助
+     * 
+     * @param help 帮助
+     * @return 结果
+     */
+//    public int updateHelp(Help help);
+
+    /**
+     * 批量删除帮助
+     * 
+     * @param ids 需要删除的帮助主键集合
+     * @return 结果
+     */
+    public int deleteHelpByIds(Long[] ids);
+
+    /**
+     * 删除帮助信息
+     * 
+     * @param id 帮助主键
+     * @return 结果
+     */
+    public int deleteHelpById(Long id);
+}

+ 1 - 1
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/IOmsOrderService.java

@@ -84,7 +84,7 @@ public interface IOmsOrderService
      * 获取订单量及收入
      * @return
      */
-    Map<String,Object> getOrderQuantity();
+    Map<String,Object> getOrderQuantity(Long merchantId);
 
     /**
      * 商家端分页查询订单

+ 1 - 1
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/OmsOrderMapper.java

@@ -116,7 +116,7 @@ public interface OmsOrderMapper extends BaseMapper<OmsOrder>
      * 获取今日订单量及收入
      * @return
      */
-    Map<String,Object> getOrderQuantity();
+    Map<String,Object> getOrderQuantity(Long merchantId);
 
     BigDecimal queryAmountByLastMonth(@Param("merchantId")Long merchantId,
                                       @Param("startLocalTime")LocalDateTime startLocalTime, @Param("endLocalTime")LocalDateTime endLocalTime);

+ 5 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/Coupon.java

@@ -107,4 +107,9 @@ public class Coupon extends ModifyEntity<Long> {
      */
     @TableField(exist = false)
     private PromotionStatus promotionStatus;
+
+    /**
+     * 满减门槛
+     */
+    private Double consumeThreshold;
 }

+ 7 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/UserCouponService.java

@@ -6,6 +6,7 @@ import com.chelvc.cloud.vehicle.server.entity.UserCoupon;
 import com.chelvc.framework.common.model.Pagination;
 import com.chelvc.framework.common.model.Paging;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -52,4 +53,10 @@ public interface UserCouponService extends IService<UserCoupon> {
      * @param userId
      */
     void updateUserCouponUserd(UserCoupon userCoupon,Long couponId,Long userId);
+
+    /**
+     * 查询用户得优惠卷
+     * @return
+     */
+    List<UserCouponDTO> getUserCouponList(Long userId, BigDecimal amount);
 }

+ 9 - 5
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/OmsOrderServiceImpl.java

@@ -66,8 +66,6 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
         Long userId = SessionContextHolder.getId();
         List<OmsCartItemDTO> cartItemList = omsCartItemService.listPromotion(orderParam.getCartIds());
         result.setCartItemList(cartItemList);
-        List<UserCouponDTO> userCouponList = this.userCouponService.getUserCouponList(userId);
-        result.setCouponHistoryDetailList(userCouponList);
 //        //获取用户收货地址列表
 //        List<UmsMemberReceiveAddress> memberReceiveAddressList = memberReceiveAddressService.list();
 //        result.setMemberReceiveAddressList(memberReceiveAddressList);
@@ -82,6 +80,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
 //        //计算总金额、活动优惠、应付金额
         CalcAmountDTO calcAmount = calcCartAmount(cartItemList);
         result.setCalcAmount(calcAmount);
+        List<UserCouponDTO> userCouponList = this.userCouponService.getUserCouponList(userId,calcAmount.getTotalAmount());
+        result.setCouponHistoryDetailList(userCouponList);
         if (!StringUtils.isEmpty(orderParam.getMerchantId())){
             Merchant merchant = this.merchantService.getById(orderParam.getMerchantId());
             result.setMerchantDTO(MerchantCopier.INSTANCE.copying(merchant));
@@ -742,8 +742,12 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
     }
 
     @Override
-    public Map<String,Object> getOrderQuantity(){
-        return this.baseMapper.getOrderQuantity();
+    public Map<String,Object> getOrderQuantity(Long merchantId){
+        Map<String,Object> map = this.baseMapper.getOrderQuantity(merchantId);
+        if (map.get("orderCount").toString().equals("0")){
+            map.put("amount",0);
+        }
+        return map;
     }
     @Override
     public Pagination<OmsOrderDTO> getMerchantOrderPaging(OrderPagingParam param){
@@ -753,7 +757,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
             return null;
         }
         Page<OmsOrder> page = this.lambdaQuery()
-                .eq(StringUtils.nonEmpty(param.getStatus()),OmsOrder :: getStatus,param.getStatus())
+                .in(StringUtils.nonEmpty(param.getStatus()),OmsOrder :: getStatus,param.getStatuses())
                 .in(OmsOrder::getMerchantId,merchants)
                 .orderByDesc(OmsOrder :: getCreateTime)
                 .page(PagingUtils.convert(param.getPaging()));

+ 27 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/UserCouponServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chelvc.cloud.vehicle.api.constant.CouponClaimType;
+import com.chelvc.cloud.vehicle.api.constant.CouponType;
 import com.chelvc.cloud.vehicle.api.constant.PromotionStatus;
 import com.chelvc.cloud.vehicle.api.constant.UserCouponStatus;
 import com.chelvc.cloud.vehicle.api.dto.UserCouponDTO;
@@ -13,6 +14,7 @@ import com.chelvc.cloud.vehicle.api.param.UserCouponModifyParam;
 import com.chelvc.cloud.vehicle.api.param.UserCouponPagingParam;
 import com.chelvc.cloud.vehicle.api.param.UserCouponQueryParam;
 import com.chelvc.cloud.vehicle.api.util.PromotionUtils;
+import com.chelvc.cloud.vehicle.server.copier.CouponCopier;
 import com.chelvc.cloud.vehicle.server.copier.UserCouponCopier;
 import com.chelvc.cloud.vehicle.server.dao.UserCouponMapper;
 import com.chelvc.cloud.vehicle.server.entity.Coupon;
@@ -32,6 +34,7 @@ import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -227,4 +230,28 @@ public class UserCouponServiceImpl extends ServiceImpl<UserCouponMapper, UserCou
         lwq.eq(UserCoupon::getCouponId, couponId);
         this.baseMapper.update(userCoupon,lwq);
     }
+
+    @Override
+    public List<UserCouponDTO> getUserCouponList(Long userId, BigDecimal amount) {
+        LambdaQueryWrapper<UserCoupon> lwq = Wrappers.lambdaQuery();
+        lwq.eq(UserCoupon::getUserId, userId);
+        lwq.eq(UserCoupon::getFlag, 0);
+        List<UserCouponDTO> userCouponList = UserCouponCopier.INSTANCE.copying(baseMapper.selectList(lwq));
+        if (userCouponList != null && userCouponList.size()>0){
+            userCouponList.forEach(item ->{
+                item.setCouponDTO(CouponCopier.INSTANCE.copying(this.couponService.getById(item.getId())));
+                if (CouponType.REDUCE.equals(item.getCouponDTO().getType())){
+                    int comparison = amount.compareTo(new BigDecimal(item.getCouponDTO().getConsumeThreshold()));
+                    if (comparison == 0) {
+                        item.setDisplay(true);
+                    } else if (comparison < 0) {
+                        item.setDisplay(false);
+                    } else {
+                        item.setDisplay(true);
+                    }
+                }
+            });
+        }
+        return userCouponList;
+    }
 }

+ 3 - 1
vehicle-server/src/main/resources/mapper/OmsOrderMapper.xml

@@ -925,11 +925,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getOrderQuantity" resultType="java.util.Map">
         SELECT
             count( 0 ) orderCount,
-            sum( pay_amount ) amount
+            sum( nullif(pay_amount,0) ) amount,
+            (select score from merchant where id = #{merchantId}) score
         FROM
             oms_order
         WHERE
             STATUS = '3'
+            and merchant_id = #{merchantId}
           AND DATE_FORMAT( payment_time, 'yyyyMMdd' ) = DATE_FORMAT(
                 now(),
                 'yyyyMMdd')