Browse Source

1、增加新任命查询条件下拉框接口

rayson 6 months ago
parent
commit
80904a5200
12 changed files with 160 additions and 38 deletions
  1. 19 0
      citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/controller/admin/luck/vo/prize/LuckPrizeStatisticsRespVO.java
  2. 2 1
      citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/controller/app/luck/AppLuckPrizeController.java
  3. 2 5
      citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/service/luck/LuckPrizeService.java
  4. 27 16
      citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/service/luck/LuckPrizeServiceImpl.java
  5. 11 7
      citu-module-mall/citu-module-trade-biz/src/main/java/com/citu/module/trade/service/order/TradeOrderUpdateServiceImpl.java
  6. 0 9
      citu-module-mall/citu-module-trade-biz/src/main/java/com/citu/module/trade/service/order/handler/TradeAutomaticDeliveryOrderHandler.java
  7. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/common/data/NewAppointmentsController.java
  8. 32 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsConditionRespVO.java
  9. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsPageReqVO.java
  10. 22 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/appointment/NewAppointmentsMapper.java
  11. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsService.java
  12. 28 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsServiceImpl.java

+ 19 - 0
citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/controller/admin/luck/vo/prize/LuckPrizeStatisticsRespVO.java

@@ -0,0 +1,19 @@
+package com.citu.module.promotion.controller.admin.luck.vo.prize;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "管理后台 - 奖品统计 Response VO")
+@Data
+public class LuckPrizeStatisticsRespVO {
+
+    @Schema(description = "奖品信息", example = "30925")
+    private List<LuckPrizeDetailRespVO> list;
+
+    @Schema(description = "奖品总数量", example = "30925")
+    private Integer total;
+
+}

+ 2 - 1
citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/controller/app/luck/AppLuckPrizeController.java

@@ -3,6 +3,7 @@ package com.citu.module.promotion.controller.app.luck;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeDetailRespVO;
+import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeStatisticsRespVO;
 import com.citu.module.promotion.dal.dataobject.luck.LuckLotteryDO;
 import com.citu.module.promotion.service.luck.LuckLotteryService;
 import com.citu.module.promotion.service.luck.LuckPrizeService;
@@ -35,7 +36,7 @@ public class AppLuckPrizeController {
 
     @GetMapping("/get/extend/area")
     @Operation(summary = "根据商品id活动对应的奖品区域信息")
-    public CommonResult<Map<String, List<LuckPrizeDetailRespVO>>>
+    public CommonResult<Map<String, LuckPrizeStatisticsRespVO>>
     getLuckPrizeExtendAreaMap(@RequestParam("spuId") Long spuId,
                               @RequestParam(value = "type", required = false) String type,
                               @RequestParam(value = "parentAreaId", required = false) Long parentAreaId) {

+ 2 - 5
citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/service/luck/LuckPrizeService.java

@@ -2,10 +2,7 @@ package com.citu.module.promotion.service.luck;
 
 
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeDetailRespVO;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeImportExcelVO;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizePageReqVO;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeSaveReqVO;
+import com.citu.module.promotion.controller.admin.luck.vo.prize.*;
 import com.citu.module.promotion.dal.dataobject.luck.LuckPrizeDO;
 
 import javax.validation.Valid;
@@ -118,7 +115,7 @@ public interface LuckPrizeService {
      * @param areaId 区域id
      * @return 奖品扩展区域
      */
-    Map<String, List<LuckPrizeDetailRespVO>> getLuckPrizeExtendAreaMap(Long lotteryId, String type, Long areaId);
+    Map<String, LuckPrizeStatisticsRespVO> getLuckPrizeExtendAreaMap(Long lotteryId, String type, Long areaId);
 
 
     /**

+ 27 - 16
citu-module-mall/citu-module-promotion-biz/src/main/java/com/citu/module/promotion/service/luck/LuckPrizeServiceImpl.java

@@ -9,10 +9,7 @@ import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.module.menduner.system.api.area.MendunerAreaApi;
 import com.citu.module.product.api.spu.ProductSpuApi;
 import com.citu.module.product.api.spu.dto.ProductSpuRespDTO;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeDetailRespVO;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeImportExcelVO;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizePageReqVO;
-import com.citu.module.promotion.controller.admin.luck.vo.prize.LuckPrizeSaveReqVO;
+import com.citu.module.promotion.controller.admin.luck.vo.prize.*;
 import com.citu.module.promotion.convert.luck.LuckPrizeConvert;
 import com.citu.module.promotion.dal.dataobject.luck.LuckLotteryDO;
 import com.citu.module.promotion.dal.dataobject.luck.LuckPrizeDO;
@@ -28,6 +25,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -330,50 +328,63 @@ public class LuckPrizeServiceImpl implements LuckPrizeService {
     }
 
     @Override
-    public Map<String, List<LuckPrizeDetailRespVO>> getLuckPrizeExtendAreaMap(Long lotteryId, String type, Long parentAreaId) {
+    public Map<String, LuckPrizeStatisticsRespVO> getLuckPrizeExtendAreaMap(Long lotteryId, String type, Long parentAreaId) {
         List<LuckPrizeDetailRespVO> list = getByLotteryId(lotteryId);
-        Map<String, List<LuckPrizeDetailRespVO>> map = new LinkedHashMap<>();
+        Map<String, LuckPrizeStatisticsRespVO> map = new LinkedHashMap<>();
 
         if (null == type || "province".equals(type)) {
-            map.putAll(list.stream()
+            map.putAll(packPrize(list.stream()
                     .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
                     .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getProvinceName() != null)
-                    .collect(Collectors.groupingBy(k -> k.getExtend().getProvinceName())));
+                    .collect(Collectors.groupingBy(k -> k.getExtend().getProvinceName()))));
         }
 
         if ("city".equals(type)) {
             if (null == parentAreaId) {
-                map.putAll(list.stream()
+                map.putAll(packPrize(list.stream()
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getCityName() != null)
-                        .collect(Collectors.groupingBy(k -> k.getExtend().getCityName())));
+                        .collect(Collectors.groupingBy(k -> k.getExtend().getCityName()))));
             } else {
-                map.putAll(list.stream()
+                map.putAll(packPrize(list.stream()
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
                         .filter(luckPrizeDetailRespVO -> parentAreaId.equals(luckPrizeDetailRespVO.getExtend().getProvinceId()))
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getCityName() != null)
-                        .collect(Collectors.groupingBy(k -> k.getExtend().getCityName())));
+                        .collect(Collectors.groupingBy(k -> k.getExtend().getCityName()))));
             }
         }
 
         if ("district".equals(type)) {
             if (null == parentAreaId) {
-                map.putAll(list.stream()
+                map.putAll(packPrize(list.stream()
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getDistrictName() != null)
-                        .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName())));
+                        .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName()))));
             } else {
-                map.putAll(list.stream()
+                map.putAll(packPrize(list.stream()
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend() != null)
                         .filter(luckPrizeDetailRespVO -> parentAreaId.equals(luckPrizeDetailRespVO.getExtend().getCityId()))
                         .filter(luckPrizeDetailRespVO -> luckPrizeDetailRespVO.getExtend().getDistrictName() != null)
-                        .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName())));
+                        .collect(Collectors.groupingBy(k -> k.getExtend().getDistrictName()))));
             }
         }
 
         return map;
 
+    }
+
+
+    public Map<String, LuckPrizeStatisticsRespVO> packPrize(Map<String, List<LuckPrizeDetailRespVO>> map) {
+        Map<String, LuckPrizeStatisticsRespVO> newMap = new HashMap<>(map.size());
+        for (Map.Entry<String, List<LuckPrizeDetailRespVO>> entry : map.entrySet()) {
+            LuckPrizeStatisticsRespVO statisticsRespVO = new LuckPrizeStatisticsRespVO();
+            statisticsRespVO.setList(entry.getValue());
+            // 统计奖品总数量
+            statisticsRespVO.setTotal(entry.getValue().stream().mapToInt(LuckPrizeDetailRespVO::getTotal).sum());
+            newMap.put(entry.getKey(), statisticsRespVO);
+        }
 
+        return newMap;
     }
 
     @Override

+ 11 - 7
citu-module-mall/citu-module-trade-biz/src/main/java/com/citu/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -412,15 +412,19 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 
         // 2. 更新订单为已发货
         TradeOrderDO updateOrderObj = new TradeOrderDO();
-        // 2.1 快递发货
-        DeliveryExpressDO express = null;
 
-        // 2.2 无需发货
+
+        // 2.1 无需发货
         updateOrderObj.setLogisticsId(0L).setLogisticsNo("");
 
         // 执行更新
-        updateOrderObj.setStatus(TradeOrderStatusEnum.DELIVERED.getStatus())
-                .setDeliveryTime(LocalDateTime.now());
+        updateOrderObj
+                // 设置已发货
+                .setStatus(TradeOrderStatusEnum.DELIVERED.getStatus())
+                .setDeliveryTime(LocalDateTime.now())
+                // 设置已完成
+                .setStatus(TradeOrderStatusEnum.COMPLETED.getStatus())
+                .setReceiveTime(LocalDateTime.now());
         int updateCount = tradeOrderMapper.updateByIdAndStatus(order.getId(), order.getStatus(), updateOrderObj);
         if (updateCount == 0) {
             throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
@@ -428,8 +432,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 
         // 3. 记录订单日志
         TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(),
-                MapUtil.<String, Object>builder().put("deliveryName", express != null ? express.getName() : "")
-                        .put("logisticsNo", express != null ? deliveryReqVO.getLogisticsNo() : "").build());
+                MapUtil.<String, Object>builder().put("deliveryName", "")
+                        .put("logisticsNo",  "").build());
 
         // 4.1 发送站内信
         tradeMessageService.sendMessageWhenDeliveryOrder(new TradeOrderMessageWhenDeliveryOrderReqBO()

+ 0 - 9
citu-module-mall/citu-module-trade-biz/src/main/java/com/citu/module/trade/service/order/handler/TradeAutomaticDeliveryOrderHandler.java

@@ -47,24 +47,15 @@ public class TradeAutomaticDeliveryOrderHandler implements TradeOrderHandler {
     @Resource
     private MailSendApi mailSendApi;
 
-    private boolean validateOrderAutomaticDelivery(TradeOrderDO order, List<TradeOrderItemDO> orderItems) {
-        return true;
-    }
 
     @Override
     public void beforeOrderCreate(TradeOrderDO order, List<TradeOrderItemDO> orderItems) {
         // 效验
-        if (!validateOrderAutomaticDelivery(order, orderItems)) {
-            return;
-        }
     }
 
     @Override
     public void afterPayOrder(TradeOrderDO order, List<TradeOrderItemDO> orderItems) {
         // 支付成功后
-//        if (!validateOrderAutomaticDelivery(order, orderItems)) {
-//            return;
-//        }
 
         // 发货操作
         orderUpdateService.automaticDeliveryOrder(new TradeOrderDeliveryReqVO().setId(order.getId()));

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/common/data/NewAppointmentsController.java

@@ -6,6 +6,7 @@ import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
+import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsConditionRespVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsPageReqVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsRespVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsSimpleRespVO;
@@ -47,6 +48,12 @@ public class NewAppointmentsController {
         return success(BeanUtils.toBean(newAppointments, NewAppointmentsRespVO.class));
     }
 
+    @GetMapping("/get/condition")
+    @Operation(summary = "获得下拉框查询条件")
+    public CommonResult<NewAppointmentsConditionRespVO> getCondition() {
+        return success(newAppointmentsService.getCondition());
+    }
+
     @GetMapping("/page")
     @Operation(summary = "获得新任命分页")
     public CommonResult<PageResult<NewAppointmentsSimpleRespVO>> page(@Valid NewAppointmentsPageReqVO pageReqVO) {

+ 32 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsConditionRespVO.java

@@ -0,0 +1,32 @@
+package com.citu.module.menduner.system.controller.base.appointment;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "管理后台 - 新任命查询条件 Response VO")
+@Data
+public class NewAppointmentsConditionRespVO {
+
+    @Schema(description = "宣布日期", requiredMode = Schema.RequiredMode.REQUIRED)
+    private List<String> announceTime;
+
+    @Schema(description = "性别", requiredMode = Schema.RequiredMode.REQUIRED)
+    private List<String> gender;
+
+    @Schema(description = "职位", requiredMode = Schema.RequiredMode.REQUIRED)
+    private List<String> position;
+
+    @Schema(description = "就职酒店", requiredMode = Schema.RequiredMode.REQUIRED)
+    private List<String> inaugurationHotel;
+
+    @Schema(description = "酒店品牌", requiredMode = Schema.RequiredMode.REQUIRED)
+    private List<String> hotelBrand;
+
+    @Schema(description = "工作区域", requiredMode = Schema.RequiredMode.REQUIRED)
+    private List<String> workTerritory;
+
+    @Schema(description = "工作经历", requiredMode = Schema.RequiredMode.REQUIRED)
+    private List<String> workHistory;
+}

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/appointment/NewAppointmentsPageReqVO.java

@@ -24,6 +24,9 @@ public class NewAppointmentsPageReqVO extends PageParam {
     @Schema(description = "英文姓名")
     private String nameEnglish;
 
+    @Schema(description = "性别")
+    private String gender;
+
     @Schema(description = "职位")
     private String position;
 

+ 22 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/appointment/NewAppointmentsMapper.java

@@ -1,13 +1,18 @@
 package com.citu.module.menduner.system.dal.mysql.appointment;
 
 
+import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.appointment.NewAppointmentsDO;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * 新任命 Mapper
  *
@@ -20,6 +25,7 @@ public interface NewAppointmentsMapper extends BaseMapperX<NewAppointmentsDO> {
         return selectPage(reqVO, new LambdaQueryWrapperX<NewAppointmentsDO>()
                 .likeIfPresent(NewAppointmentsDO::getNameChinese, reqVO.getNameChinese())
                 .likeIfPresent(NewAppointmentsDO::getNameEnglish, reqVO.getNameEnglish())
+                .likeIfPresent(NewAppointmentsDO::getGender, reqVO.getGender())
                 .likeIfPresent(NewAppointmentsDO::getPosition, reqVO.getPosition())
                 .likeIfPresent(NewAppointmentsDO::getInaugurationHotel, reqVO.getInaugurationHotel())
                 .likeIfPresent(NewAppointmentsDO::getHotelBrand, reqVO.getHotelBrand())
@@ -29,4 +35,20 @@ public interface NewAppointmentsMapper extends BaseMapperX<NewAppointmentsDO> {
                 .orderByDesc(NewAppointmentsDO::getId));
     }
 
+
+    /**
+     * 根据指定字段分组查询
+     *
+     * @param field 分组字段(例如:NewAppointmentsDO::getAnnounceTime)
+     * @return 分组后的字段值列表
+     */
+    default List<String> groupByField(SFunction<NewAppointmentsDO, ?> field) {
+        if (field == null) {
+            return Collections.emptyList();
+        }
+        MPJLambdaWrapper<NewAppointmentsDO> wrapper = new MPJLambdaWrapper<>();
+        wrapper.select(field); // 动态选择分组字段
+        return selectJoinList(String.class, wrapper);
+    }
+
 }

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsService.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.service.appointment;
 
 
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsConditionRespVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsPageReqVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.appointment.NewAppointmentsDO;
@@ -53,4 +54,10 @@ public interface NewAppointmentsService {
      */
     PageResult<NewAppointmentsDO> getNewAppointmentsPage(NewAppointmentsPageReqVO pageReqVO);
 
+    /**
+     * 获得新任命查询条件
+     *
+     * @return 新任命条件
+     */
+    NewAppointmentsConditionRespVO getCondition();
 }

+ 28 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/appointment/NewAppointmentsServiceImpl.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.service.appointment;
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsConditionRespVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsPageReqVO;
 import com.citu.module.menduner.system.controller.base.appointment.NewAppointmentsSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.appointment.NewAppointmentsDO;
@@ -68,4 +69,31 @@ public class NewAppointmentsServiceImpl implements NewAppointmentsService {
         return newAppointmentsMapper.selectPage(pageReqVO);
     }
 
+    @Override
+    public NewAppointmentsConditionRespVO getCondition() {
+        NewAppointmentsConditionRespVO condition = new NewAppointmentsConditionRespVO();
+
+        // 设置 announceTime 分组结果
+        condition.setAnnounceTime(newAppointmentsMapper.groupByField(NewAppointmentsDO::getAnnounceTime));
+
+        // 设置 gender 分组结果
+        condition.setGender(newAppointmentsMapper.groupByField(NewAppointmentsDO::getGender));
+
+        // 设置 position 分组结果
+        condition.setPosition(newAppointmentsMapper.groupByField(NewAppointmentsDO::getPosition));
+
+        // 设置 inaugurationHotel 分组结果
+        condition.setInaugurationHotel(newAppointmentsMapper.groupByField(NewAppointmentsDO::getInaugurationHotel));
+
+        // 设置 hotelBrand 分组结果
+        condition.setHotelBrand(newAppointmentsMapper.groupByField(NewAppointmentsDO::getHotelBrand));
+
+        // 设置 workTerritory 分组结果
+        condition.setWorkTerritory(newAppointmentsMapper.groupByField(NewAppointmentsDO::getWorkTerritory));
+
+        // 设置 workHistory 分组结果
+        condition.setWorkHistory(newAppointmentsMapper.groupByField(NewAppointmentsDO::getWorkHistory));
+
+        return condition;
+    }
 }