Joburgess 5 年之前
父節點
當前提交
31d2ceed6a

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/SysUserDao.java

@@ -80,4 +80,13 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 * @return com.keao.edu.auth.api.entity.SysUser
 	 */
 	SysUser getWithOrgan(@Param("organId") Integer organId);
+
+	/**
+	 * @describe 获取手机号对应的用户
+	 * @author Joburgess
+	 * @date 2020.07.27
+	 * @param phones:
+	 * @return java.util.List<com.keao.edu.auth.api.entity.SysUser>
+	 */
+	List<SysUser> getWithPones(@Param("phones") List<String> phones);
 }

+ 11 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -170,12 +170,22 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         }
         Set<Integer> tenantIds = endExams.stream().map(e->Integer.valueOf(e.getTenantId())).collect(Collectors.toSet());
         List<TenantInfo> tenants = tenantInfoDao.getTenants(new ArrayList<>(tenantIds));
+        List<String> phones = tenants.stream().map(TenantInfo::getContactPhone).collect(Collectors.toList());
         Map<Integer, TenantInfo> idTenantMap = tenants.stream().collect(Collectors.toMap(TenantInfo::getId, e -> e));
+        List<SysUser> tenantUsers = sysUserDao.getWithPones(phones);
+        Map<String, SysUser> phoneUserMap = tenantUsers.stream().collect(Collectors.toMap(SysUser::getPhone, t -> t));
 
         for (ExaminationBasic endExam : endExams) {
             TenantInfo tenantInfo = idTenantMap.get(Integer.valueOf(endExam.getTenantId()));
+            if(Objects.isNull(tenantInfo)){
+                continue;
+            }
+            SysUser sysUser = phoneUserMap.get(tenantInfo.getContactPhone());
+            if(Objects.isNull(sysUser)){
+                continue;
+            }
             Map<Integer, String> userPhoneMap = new HashMap<>();
-            userPhoneMap.put(tenantInfo.getId(), tenantInfo.getContactPhone());
+            userPhoneMap.put(sysUser.getId(), sysUser.getPhone());
 
             sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_END_REMIND,
                     userPhoneMap, null, 0, null, YimeiSmsPlugin.PLUGIN_NAME,

+ 7 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -197,6 +197,13 @@
             o.id_=#{organId}
     </select>
 
+    <select id="getWithPones" resultMap="SysUser">
+        SELECT * FROM sys_user WHERE phone_ IN
+        <foreach collection="phones" item="phone" separator="," open="(" close=")">
+            #{phone}
+        </foreach>
+    </select>
+
     <insert id="batchAddEmployeeRole">
         INSERT INTO sys_user_role(user_id_,role_id_) VALUES (#{userId},#{roles})
     </insert>