From cbbecc58d3dd88bd541cc88f617d0d66d76d72ff Mon Sep 17 00:00:00 2001
From: username <1532322479@qq.com>
Date: Mon, 16 Sep 2024 11:45:55 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=92=E5=BA=8F=E5=8A=9F?=
 =?UTF-8?q?=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../DfProductArticleController.java           |  2 +-
 .../controller/DfProductInfoController.java   | 21 ++++++++++++++++++-
 .../controller/DfProductMomentController.java |  3 +++
 .../controller/DfProductPosterController.java |  6 +++---
 .../com/bs/df/domain/DfProductMoment.java     |  2 ++
 .../bs/common/core/domain/entity/SysUser.java |  3 +++
 .../service/impl/SysUserServiceImpl.java      |  5 +++++
 bs-ui/src/views/article/article/index.vue     |  3 +++
 bs-ui/src/views/poster/poster/index.vue       |  4 ++--
 bs-ui/src/views/product/info/index.vue        |  4 ++--
 10 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfProductArticleController.java b/bs-admin/src/main/java/com/bs/df/controller/DfProductArticleController.java
index b367672..9565ef5 100644
--- a/bs-admin/src/main/java/com/bs/df/controller/DfProductArticleController.java
+++ b/bs-admin/src/main/java/com/bs/df/controller/DfProductArticleController.java
@@ -81,7 +81,7 @@ public class DfProductArticleController extends BaseController {
             }
         }
         if (Validator.isEmpty(dfProductArticle.getOrderByColumn())) {
-            queryWrapper.orderByAsc(DfProductArticle::getSerialNumber);
+            queryWrapper.last("ORDER BY CASE WHEN serial_number IS NULL THEN 1 ELSE 0 END, serial_number ASC");
         }
         condition(queryWrapper,dfProductArticle);
         List<DfProductArticle> list = dfProductArticleService.list(queryWrapper);
diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java b/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java
index cb11515..63375a3 100644
--- a/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java
+++ b/bs-admin/src/main/java/com/bs/df/controller/DfProductInfoController.java
@@ -81,7 +81,7 @@ public class DfProductInfoController extends BaseController {
         }
         LambdaQueryWrapper<DfProductInfo> queryWrapper = new LambdaQueryWrapper();
         if (Validator.isEmpty(dfProductInfo.getOrderByColumn())) {
-            queryWrapper.orderByAsc(DfProductInfo::getSerialNumber);
+            queryWrapper.last("ORDER BY CASE WHEN serial_number IS NULL THEN 1 ELSE 0 END, serial_number ASC");
         }
         condition(queryWrapper,dfProductInfo);
         String brokerIds = dfProductInfo.getBrokerIds();
@@ -414,6 +414,25 @@ public class DfProductInfoController extends BaseController {
         for (DfProductInfo productInfo : list) {
             productInfo.setProductDetail(null);
         }
+        List<DfOrder> dfOrders = dfOrderService.list();
+        Map<Long, Integer> productOrderCounts = new HashMap<>();
+        // 计算申请人数
+        for (DfOrder order : dfOrders) {
+            if (!productOrderCounts.containsKey(order.getProductId())) {
+                productOrderCounts.put(order.getProductId(), 1);
+            } else {
+                productOrderCounts.put(order.getProductId(), productOrderCounts.get(order.getProductId()) + 1);
+            }
+        }
+        for (DfProductInfo productInfo : list) {
+            productInfo.setInterestRate(productInfo.getInterestRateBegin() + "%-" + productInfo.getInterestRateEnd() + "%");
+            Long productId = productInfo.getId();
+            if (productOrderCounts.containsKey(productId)) {
+                productInfo.setApplicantNum(Long.valueOf(productOrderCounts.get(productId)));
+            } else {
+                productInfo.setApplicantNum(0L);
+            }
+        }
         return success(list);
     }
 
diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfProductMomentController.java b/bs-admin/src/main/java/com/bs/df/controller/DfProductMomentController.java
index 96fcc47..043b437 100644
--- a/bs-admin/src/main/java/com/bs/df/controller/DfProductMomentController.java
+++ b/bs-admin/src/main/java/com/bs/df/controller/DfProductMomentController.java
@@ -70,6 +70,9 @@ public class DfProductMomentController extends BaseController {
             return null;
         }
         LambdaQueryWrapper<DfProductMoment> queryWrapper = new LambdaQueryWrapper();
+        if (Validator.isEmpty(dfProductMoment.getOrderByColumn())) {
+            queryWrapper.orderByDesc(DfProductMoment::getCreateTime);
+        }
         condition(queryWrapper,dfProductMoment);
         boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId());
         if (!admin) {
diff --git a/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java b/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java
index 32ebde8..d12d0ab 100644
--- a/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java
+++ b/bs-admin/src/main/java/com/bs/df/controller/DfProductPosterController.java
@@ -77,13 +77,13 @@ public class DfProductPosterController extends BaseController {
             return null;
         }
         MPJLambdaWrapper<DfProductPoster> queryWrapper = new MPJLambdaWrapper();
-        if (Validator.isEmpty(dfProductPoster.getOrderByColumn())) {
-            queryWrapper.orderByAsc(DfProductPoster::getSerialNumber);
-        }
         queryWrapper.selectAll(DfProductPoster.class)
                     .select(DfProductInfo::getProductName)
                     .disableSubLogicDel()
                     .leftJoin(DfProductInfo.class,DfProductInfo::getId,DfProductPoster::getProductId);
+        if (Validator.isEmpty(dfProductPoster.getOrderByColumn())) {
+            queryWrapper.last("ORDER BY CASE WHEN t.serial_number IS NULL THEN 1 ELSE 0 END, t.serial_number ASC");
+        }
         if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())) {
             if ("-99".equals(dfProductPoster.getStatus())) {
 
diff --git a/bs-admin/src/main/java/com/bs/df/domain/DfProductMoment.java b/bs-admin/src/main/java/com/bs/df/domain/DfProductMoment.java
index c7d9ced..055d994 100644
--- a/bs-admin/src/main/java/com/bs/df/domain/DfProductMoment.java
+++ b/bs-admin/src/main/java/com/bs/df/domain/DfProductMoment.java
@@ -74,5 +74,7 @@ public class DfProductMoment extends BaseEntity{
     @TableField(exist = false)
     private List<CmAttach> files;
 
+    @TableField(exist = false)
+    private String orderByColumn;
 
 }
diff --git a/bs-common/src/main/java/com/bs/common/core/domain/entity/SysUser.java b/bs-common/src/main/java/com/bs/common/core/domain/entity/SysUser.java
index b488fae..2ea5711 100644
--- a/bs-common/src/main/java/com/bs/common/core/domain/entity/SysUser.java
+++ b/bs-common/src/main/java/com/bs/common/core/domain/entity/SysUser.java
@@ -205,6 +205,9 @@ public class SysUser extends BaseEntity
     @TableField(exist = false)
     private String isBroker;
 
+    @TableField(exist = false)
+    private String hasBroker;
+
 
     /**
      * 微信小程序openId
diff --git a/bs-system/src/main/java/com/bs/system/service/impl/SysUserServiceImpl.java b/bs-system/src/main/java/com/bs/system/service/impl/SysUserServiceImpl.java
index 6e2cfbf..069f2c4 100644
--- a/bs-system/src/main/java/com/bs/system/service/impl/SysUserServiceImpl.java
+++ b/bs-system/src/main/java/com/bs/system/service/impl/SysUserServiceImpl.java
@@ -99,6 +99,11 @@ public class SysUserServiceImpl extends MPJBaseServiceImpl<SysUserMapper, SysUse
                 }
             });
         }
+        if ("1".equals(user.getHasBroker())) {
+            queryWrapper.isNotNull(SysUser::getDeptId);
+        } else if ("0".equals(user.getHasBroker())) {
+            queryWrapper.isNull(SysUser::getDeptId);
+        }
         queryWrapper.orderByAsc(SysUser::getCreateTime);
         return userMapper.selectList(queryWrapper);
     }
diff --git a/bs-ui/src/views/article/article/index.vue b/bs-ui/src/views/article/article/index.vue
index 4b6000f..f4e9177 100644
--- a/bs-ui/src/views/article/article/index.vue
+++ b/bs-ui/src/views/article/article/index.vue
@@ -349,6 +349,9 @@ export default {
         status: [
           {required: true, message: "状态", trigger: "change"}
         ],
+        // serialNumber: [
+        //   {required: true, message: "序号不能为空", trigger: "change"}
+        // ],
         // remark: [
         //   {required: true, message: "备注不能为空", trigger: "blur"}
         // ],
diff --git a/bs-ui/src/views/poster/poster/index.vue b/bs-ui/src/views/poster/poster/index.vue
index ba51536..5028c9f 100644
--- a/bs-ui/src/views/poster/poster/index.vue
+++ b/bs-ui/src/views/poster/poster/index.vue
@@ -336,8 +336,8 @@ export default {
         status: [
           {required: true, message: "状态不能为空", trigger: "change"}
         ],
-        // remark: [
-        //   {required: true, message: "备注不能为空", trigger: "blur"}
+        // serialNumber: [
+        //   {required: true, message: "序号不能为空", trigger: "change"}
         // ],
       }
     };
diff --git a/bs-ui/src/views/product/info/index.vue b/bs-ui/src/views/product/info/index.vue
index 3396b6b..401141b 100644
--- a/bs-ui/src/views/product/info/index.vue
+++ b/bs-ui/src/views/product/info/index.vue
@@ -551,8 +551,8 @@ export default {
         status: [
           {required: true, message: "状态不能为空", trigger: "change"}
         ],
-        // remark: [
-        //   {required: true, message: "备注不能为空", trigger: "blur"}
+        // serialNumber: [
+        //   {required: true, message: "序号不能为空", trigger: "change"}
         // ],
       }
     };