Browse Source

支持员工姓名登录

wucl 6 months ago
parent
commit
97173e8818

+ 2 - 0
biz-base/src/main/java/com/dayou/controller/PersonalController.java

@@ -1,6 +1,7 @@
 package com.dayou.controller;
 
 
+import com.dayou.annotation.DataPermission;
 import com.dayou.dto.PersonalAllotOrderDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.dto.WorkNodeCommit;
@@ -40,6 +41,7 @@ public class PersonalController extends BaseController {
     /**
     * 个贷业务订单列表
     */
+    @DataPermission(postChild=false,onlyMarketer=true)
     @GetMapping("")
     public RestResponse<Page<PersonalVO>> page(PersonalVO personal, Page page,String keyword){
         Page<PersonalVO> pages=personalService.selectPage(page,personal,keyword);

+ 6 - 0
dao/src/main/resources/mapper/PersonalMapper.xml

@@ -156,6 +156,12 @@
         <if test="personal!=null and personal.handlerName!=null and personal.handlerName!='' ">
             and u4.name like concat('%',#{personal.handlerName},'%')
         </if>
+        <if test="personal!=null and personal.userIds!=null and personal.userIds.size!=0">
+            and p.client_manager_id in
+            <foreach collection="personal.userIds" open="(" close=")" separator="," item="userId">
+                #{userId}
+            </foreach>
+        </if>
         order by wf.created DESC
     </select>
 

+ 3 - 2
dao/src/main/resources/mapper/WorkTaskRecordMapper.xml

@@ -298,7 +298,8 @@
         wfni.id,
         wfni.business_id,
         wfni.state,
-        wfni.created
+        wfni.created,
+        wfni.modified
         FROM
         work_flow_node_instance wfni
         LEFT JOIN work_node wn ON wn.id = wfni.node_id
@@ -375,7 +376,7 @@
         <if test="personal != null and personal.getNodeIsBookbindingStamp">
             AND (wfni.code = 'STATEMENT_BOOKBINDING_STAMP' OR wfni.code = 'REPORT_BOOKBINDING_STAMP' OR wfni.code = 'LETTER_BOOKBINDING_STAMP')
         </if>
-        order by wfni.created DESC
+        order by wfni.modified DESC
     </select>
 
     <select id="personalTaskDonePage" parameterType="com.dayou.vo.PersonalTaskDoneVO" resultType="com.dayou.vo.PersonalTaskDoneVO">

+ 6 - 7
domain/src/main/java/com/dayou/annotation/DataPermission.java

@@ -1,13 +1,6 @@
 package com.dayou.annotation;
 
-
-import com.google.common.collect.Sets;
-
 import java.lang.annotation.*;
-import java.util.Set;
-
-import static com.dayou.common.Constants.MANAGER_OFFICE;
-import static com.dayou.common.Constants.MARKET_DEPARTMENT;
 
 /**
  * 类说明:
@@ -50,4 +43,10 @@ public @interface DataPermission {
      * @return
      */
     boolean teamData() default false;
+
+    /**
+     * 只针对市场人员查看自己的订单
+     * @return
+     */
+    boolean onlyMarketer() default false;
 }

+ 4 - 0
domain/src/main/java/com/dayou/common/Constants.java

@@ -85,6 +85,10 @@ public interface Constants {
 
     String MARKET_DEPARTMENT = "市场部";
 
+    String MARKET_DEPARTMENT1 = "市场一部";
+
+    String MARKET_DEPARTMENT2 = "市场二部";
+
     String CUSTOMER_MANAGER = "客户经理";
 
     String SALESMAN = "客户经理-业务员";

+ 2 - 0
domain/src/main/java/com/dayou/vo/PersonalTodoVO.java

@@ -42,6 +42,8 @@ public class PersonalTodoVO {
 
     private Date created;
 
+    private Date modified;
+
     private String clientName;
 
     private String clientSubName;

+ 4 - 0
domain/src/main/java/com/dayou/vo/PersonalVO.java

@@ -7,6 +7,8 @@ import lombok.Data;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.util.Date;
+import java.util.List;
+import java.util.Set;
 
 /**
  * 类说明:
@@ -204,4 +206,6 @@ public class PersonalVO extends Personal {
      */
     private LocalDate xCreated;
 
+    private Set<Long> userIds;
+
 }

+ 12 - 2
service/src/main/java/com/dayou/aspect/DataPermissionAop.java

@@ -23,8 +23,7 @@ import java.lang.reflect.Field;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static com.dayou.common.Constants.MARKET_MANAGER;
-import static com.dayou.common.Constants.SUPERVISOR;
+import static com.dayou.common.Constants.*;
 
 /**
  * 类说明:
@@ -127,6 +126,17 @@ public class DataPermissionAop {
             userIds.setAccessible(Boolean.TRUE);
             userIds.set(arg,users);
         }
+        else if (dataPermission.onlyMarketer()){
+            if (departmentNames.contains(MARKET_DEPARTMENT)
+                    || departmentNames.contains(MARKET_DEPARTMENT1)
+                        || departmentNames.contains(MARKET_DEPARTMENT2) ){
+                Set<Long> users = new HashSet<>();
+                users.add(userId);
+                Field userIds = arg.getClass().getDeclaredField("userIds");
+                userIds.setAccessible(Boolean.TRUE);
+                userIds.set(arg,users);
+            }
+        }
         else {
             Set<Long> users = new HashSet<>();
             users.add(userId);

+ 14 - 0
service/src/main/java/com/dayou/service/impl/UserServiceImpl.java

@@ -237,8 +237,22 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return userBaseDetailDTO;
     }
     private User checkUserLogin(String account, String pwd) {
+
+        //先验证账号
         List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>()
                 .eq(User::getStaffNo,account).eq(BaseEntity::getDeleted,false));
+
+        if (CollectionUtils.isEmpty(users)) {
+            //如果账号未查询到,再用姓名尝试
+            users = userMapper.selectList(new LambdaQueryWrapper<User>()
+                    .eq(User::getName,account).eq(BaseEntity::getDeleted,false));
+
+            if (users.size() > 1) {
+                ErrorCode.throwBusinessException(CUSTOM_ERROR,"存在多个姓名相同的用户,请使用工号登录。");
+            }
+
+        }
+
         if (CollectionUtils.isEmpty(users)){
             ErrorCode.throwBusinessException(PWD_ERROR);
         }