Parcourir la source

消息列表动态排序

yzc il y a 2 ans
Parent
commit
c38bfd1c06

+ 5 - 0
sckw-modules/sckw-message/src/main/java/com/sckw/message/model/dto/SelectMessagesDTO.java

@@ -50,4 +50,9 @@ public class SelectMessagesDTO {
      */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endCreateTime;
+
+    /**
+     * 消息列表排序类型 1状态升序,创建时间降序   2创建时间降序
+     */
+    private Integer sortType;
 }

+ 6 - 0
sckw-modules/sckw-message/src/main/java/com/sckw/message/model/vo/req/SelectMessagesReqVO.java

@@ -2,9 +2,11 @@ package com.sckw.message.model.vo.req;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.core.model.page.PageRequest;
+import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
+import org.hibernate.validator.constraints.Range;
 
 import java.util.Date;
 
@@ -40,5 +42,9 @@ public class SelectMessagesReqVO extends PageRequest {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endCreateTime;
 
+    @NotNull(message = "消息列表排序类型不能为空")
+    @Range(min = 1, max = 2, message = "非法消息列表排序类型")
+    private Integer sortType;
+
 
 }

+ 1 - 1
sckw-modules/sckw-message/src/main/java/com/sckw/message/service/MessageService.java

@@ -58,7 +58,7 @@ public class MessageService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void read(ReadMessagesReqVO reqVO) {
-        List<Long> ids = StringUtils.splitStrToList(reqVO.toString(), Long.class);
+        List<Long> ids = StringUtils.splitStrToList(reqVO.getIds(), Long.class);
         List<KwmMessageUser> msgList = kwmMessageUserService.getByMsgIds(ids);
         if (!Objects.equals(ids.size(), msgList.size())) {
             throw new BusinessException("无权限读取消息!");

+ 12 - 4
sckw-modules/sckw-message/src/main/resources/mapper/KwmMessageMapper.xml

@@ -4,7 +4,7 @@
 
   <select id="findPage" resultType="com.sckw.message.model.dto.MessageListDTO" >
     select
-      mu.id, mu.ent_id entId, mu.user_id userId, mu.status, mu.reamrk, mu.create_by createBy, mu.create_time createTime,
+      mu.id, mu.ent_id entId, mu.user_id userId, mu.status, mu.remark, mu.create_by createBy, mu.create_time createTime,
       mu.update_by updateBy, mu.update_time updateTime, m.id as msgId, m.category, m.type, m.title, m.content, m.url,
       m.params, m.client_type clientType, m.remark as msgRemark
     from kwm_message_user mu
@@ -25,12 +25,20 @@
           and m.category = #{item.category}
         </if>
         <if test="item.startCreateTime != null">
-            and m.create_time &gt;= #{item.startCreateTime,jdbcType=TIMESTAMP}
+            and mu.create_time &gt;= #{item.startCreateTime,jdbcType=TIMESTAMP}
         </if>
         <if test="item.endCreateTime != null">
-            and m.create_time &lt;= #{item.endCreateTime,jdbcType=TIMESTAMP}
+            and mu.create_time &lt;= #{item.endCreateTime,jdbcType=TIMESTAMP}
         </if>
     </where>
-    ORDER BY m.create_time desc
+    ORDER BY
+      <choose>
+          <when test="item.sortType != null and item.sortType == 1">
+              mu.status ASC, mu.create_time DESC
+          </when>
+          <otherwise>
+              mu.create_time DESC
+          </otherwise>
+      </choose>
   </select>
 </mapper>

+ 7 - 7
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -97,13 +97,16 @@ public class KwOrderService {
             String loadDetailAddress = Objects.isNull(e.getLoadDetailAddress()) ? "" : e.getLoadDetailAddress();
             String unloadDetailAddress = Objects.isNull(e.getUnloadDetailAddress()) ? "" : e.getUnloadDetailAddress();
             order.setStatusLabel(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
+                    .setTradingLabel(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
                     .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                    .setDeliveryTypeLabel(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
                     .setPickupTypeLabel(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
+                    .setSourceLabel(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()))
+                    .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()))
                     .setLoadDetailAddressInfo(loadCityName + loadDetailAddress)
                     .setUnloadDetailAddressInfo(unloadCityName + unloadDetailAddress)
-                    .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount()))
-                    .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
+                    .setWaitEntrustAmount(getWaitEntrustAmount(e.getAmount(), e.getEntrustAmount()));
             result.add(order);
         });
         return PageResult.build(page, pageSize, count, result);
@@ -137,7 +140,7 @@ public class KwOrderService {
         Long userId = LoginUserHolder.getUserId();
         Criteria criteria = new Criteria();
         String topEnt = Objects.equals(params.getOrderType(), 1) ? "procureTopEntId" : "supplyTopEntId";
-        criteria.and("delFlag").is(0);
+        criteria.and(topEnt).is(entId).and("delFlag").is(0);
         //日期范围
         if (Objects.nonNull(params.getStartCreateTime()) && Objects.nonNull(params.getEndCreateTime())) {
             criteria.and("createTime").gte(params.getStartCreateTime()).lte(params.getEndCreateTime());
@@ -190,14 +193,11 @@ public class KwOrderService {
             if (Objects.equals(params.getStatus(), 0)) {
                 //草稿状态只能创建订单的人能看
                 criteria.and("createBy").is(userId);
-            }else {
-                criteria.and(topEnt).is(entId);
             }
         } else {
             //非草稿状态且一级企业匹配or草稿状态且是当前人
             Criteria orOperator = new Criteria().orOperator(
-                    new Criteria().andOperator(Criteria.where("status").ne(0),
-                            Criteria.where(topEnt).is(entId)),
+                    Criteria.where("status").ne(0),
                     new Criteria().andOperator(Criteria.where("status").is(0),
                             Criteria.where("createBy").is(userId)));
             orOperators.add(orOperator);