weichaochao hace 5 años
padre
commit
1626539121

+ 6
- 1
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java Ver fichero

@@ -112,7 +112,12 @@ public class TaUser implements Serializable {
112 112
     private String address;
113 113
     private String photo;
114 114
     private String description;
115
-    
115
+
116
+    /**
117
+     * 权重
118
+     */
119
+    private String weight;
120
+
116 121
     /**
117 122
      * 是否置业顾问
118 123
      */

+ 2
- 0
src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java Ver fichero

@@ -29,4 +29,6 @@ public interface TaUserMapper extends BaseMapper<TaUser> {
29 29
 	List<TaUser> getUserList(@Param("phone") String phone,@Param("loginName") String loginName,@Param("orgId") Integer orgId);
30 30
 
31 31
     IPage<TaUser> seleUserList(IPage pg,@Param("taUser") TaUser taUser,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
32
+
33
+    Integer validateWeight(@Param("buildingIds") List<String> buildingIds, @Param("buildingId") String buildingId, @Param("weight") String weight, @Param("userId")Integer userId);
32 34
 }

+ 33
- 1
src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java Ver fichero

@@ -378,7 +378,12 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
378 378
 		if (StringUtils.isEmpty(taUser.getLoginName())) {
379 379
 			taUser.setLoginName(taUser.getPhone());
380 380
 		}
381
-		
381
+
382
+		boolean weightCount = validateWeight(taUser, "add");
383
+		if(weightCount){
384
+			throw new Exception("同一项目下权重值不能重复");
385
+		}
386
+
382 387
 		List<TaUser> taUserList = taUserMapper.getUserList(taUser.getPhone(),taUser.getLoginName(),null);
383 388
 		if (null != taUserList && taUserList.size() > 0) {
384 389
 			throw new Exception("电话号码或登录名重复");
@@ -443,10 +448,18 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
443 448
 		if (StringUtils.isEmpty(taUser.getUserName())) {
444 449
 			throw new Exception("用户名称不能为空");
445 450
 		}
451
+		if (!StringUtils.isEmpty(taUser.getWeight()) && taUser.getWeight().length() > 11){
452
+			throw new Exception("权重最大为11位");
453
+		}
446 454
 		if(StringUtils.isEmpty(taUser.getLoginName()) && taUserBefore.getLoginName().equals(taUserBefore.getPhone())){
447 455
 			taUser.setLoginName(taUser.getPhone());
448 456
 		}
449 457
 
458
+		boolean weightCount = validateWeight(taUser, "update");
459
+		if(weightCount){
460
+			throw new Exception("同一项目下权重值不能重复");
461
+		}
462
+
450 463
 		QueryWrapper<TaUser> wrapper = new QueryWrapper<>();
451 464
 		wrapper.nested(q -> q.eq("phone", taUser.getPhone()).or().eq("login_Name", taUser.getLoginName()));
452 465
 		wrapper.eq("org_id",taUser.getOrgId());
@@ -625,4 +638,23 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
625 638
 
626 639
 		return this.update(updateWrapper);
627 640
 	}
641
+
642
+	public boolean validateWeight(TaUser taUser, String operateType){
643
+		Integer count;
644
+		if(taUser.getIsConsultant() != null && taUser.getIsConsultant()){
645
+			String buildingId = taUser.getBuildingId();
646
+			String weight = taUser.getWeight();
647
+			count = taUserMapper.validateWeight(null, buildingId, weight, operateType.equals("add") ? null : taUser.getUserId());
648
+		}else{
649
+			List<String> buildingIds = taUser.getBuildingIds();
650
+			String weight = taUser.getWeight();
651
+			count = taUserMapper.validateWeight(buildingIds, null, weight, operateType.equals("add") ? null : taUser.getUserId());
652
+		}
653
+
654
+		if (count > 0 ){
655
+			return true;
656
+		}
657
+		return false;
658
+	}
659
+
628 660
 }

+ 1
- 1
src/main/resources/mapper/TaPersonMapper.xml Ver fichero

@@ -50,7 +50,7 @@
50 50
         and t.org_id = #{orgId}
51 51
         and u.org_id = #{orgId}
52 52
         and u.status = 1
53
-        ORDER BY
53
+        ORDER BY u.weight desc,
54 54
             t.create_date DESC
55 55
     </select>
56 56
 

+ 23
- 0
src/main/resources/mapper/TaUserMapper.xml Ver fichero

@@ -87,5 +87,28 @@
87 87
                 </foreach>
88 88
             </if>
89 89
             GROUP BY user_id
90
+            order by t.weight desc, create_date desc
90 91
     </select>
92
+
93
+    <select id="validateWeight" resultType="integer">
94
+      select count(*) from ta_user t
95
+      LEFT JOIN ta_person_building a on t.user_id = a.user_id
96
+      where 1=1
97
+      <if test="weight != null and weight != ''">
98
+          and t.weight = #{weight}
99
+      </if>
100
+      <if test="buildingIds != null and buildingIds.size() > 0 ">
101
+          and a.building_id in
102
+          <foreach collection="buildingIds" item="item" index="index" open="(" close=")" separator=",">
103
+              #{item}
104
+          </foreach>
105
+      </if>
106
+      <if test="buildingId != null and buildingId != '' ">
107
+          and a.building_id = #{buildingId}
108
+      </if>
109
+      <if test="userId != null and userId != ''">
110
+          and t.user_id != #{userId}
111
+      </if>
112
+    </select>
113
+
91 114
 </mapper>