enterprise_user相关mapper增加feishu_user_id并添加根据user_id批量获取feishu_user_id

This commit is contained in:
feng.li
2023-10-25 11:39:24 +08:00
parent b3c1fcdb98
commit fe3d706fbb
8 changed files with 76 additions and 4 deletions

View File

@@ -12,6 +12,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@@ -43,6 +44,14 @@ public class EnterpriseUserDAO {
return enterpriseUserMapper.getUserInfoByUserIds(userIdList); return enterpriseUserMapper.getUserInfoByUserIds(userIdList);
} }
public Map<String, String> getFeishuUserIdsByUserIds(List<String> userIdList){
if(CollectionUtils.isEmpty(userIdList)){
return new HashMap<>(0);
}
List<EnterpriseUserDO> feishuUserIdsByUserIds = enterpriseUserMapper.getFeishuUserIdsByUserIds(userIdList);
return feishuUserIdsByUserIds.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getFeishuUserId));
}
public void batchInsertOrUpdate(List<EnterpriseUserDO> insertOrUpdateList) { public void batchInsertOrUpdate(List<EnterpriseUserDO> insertOrUpdateList) {
if(CollectionUtils.isEmpty(insertOrUpdateList)){ if(CollectionUtils.isEmpty(insertOrUpdateList)){
return; return;

View File

@@ -1,9 +1,11 @@
package com.cool.store.mapper; package com.cool.store.mapper;
import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.EnterpriseUserDO;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author zhangchenbiao * @author zhangchenbiao
@@ -103,4 +105,11 @@ public interface EnterpriseUserMapper {
EnterpriseUserDO selectByInvestmentManager(@Param("investmentManager") String investmentManager); EnterpriseUserDO selectByInvestmentManager(@Param("investmentManager") String investmentManager);
/**
* 使用 userId 查询 feishuUserId
* @param userIdList userId 列表
* @return userId: feishuUserId
*/
List<EnterpriseUserDO> getFeishuUserIdsByUserIds(@Param("userIdList") List<String> userIdList);
} }

View File

@@ -22,6 +22,7 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="online_status" jdbcType="BIT" property="onlineStatus"/> <result column="online_status" jdbcType="BIT" property="onlineStatus"/>
<result column="feishu_user_id" jdbcType="VARCHAR" property="feishuUserId"/>
</resultMap> </resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.cool.store.entity.EnterpriseUserDO"> <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.cool.store.entity.EnterpriseUserDO">
<result column="user_region_ids" jdbcType="LONGVARCHAR" property="userRegionIds"/> <result column="user_region_ids" jdbcType="LONGVARCHAR" property="userRegionIds"/>
@@ -29,7 +30,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, user_id, name, remark, mobile, email, org_email, main_admin, is_admin, unionid, id, user_id, name, remark, mobile, email, org_email, main_admin, is_admin, unionid,
avatar, jobnumber, is_leader, leader_dept_ids, face_url, user_status, deleted, create_time, avatar, jobnumber, is_leader, leader_dept_ids, face_url, user_status, deleted, create_time,
update_time,online_status update_time,online_status, feishu_user_id
</sql> </sql>
<sql id="Blob_Column_List"> <sql id="Blob_Column_List">
user_region_ids user_region_ids
@@ -41,6 +42,9 @@
<if test="record.userId != null"> <if test="record.userId != null">
user_id, user_id,
</if> </if>
<if test="record.feishuUserId != null">
feishu_user_id,
</if>
<if test="record.name != null"> <if test="record.name != null">
name, name,
</if> </if>
@@ -100,6 +104,9 @@
<if test="record.userId != null"> <if test="record.userId != null">
#{record.userId}, #{record.userId},
</if> </if>
<if test="record.feishuUserId != null">
feishu_user_id,
</if>
<if test="record.name != null"> <if test="record.name != null">
#{record.name}, #{record.name},
</if> </if>
@@ -157,7 +164,7 @@
</trim> </trim>
ON DUPLICATE KEY UPDATE user_id = values(user_id), name = values(name), remark = values(remark), mobile = values(mobile), email = values(email), org_email = values(org_email) ON DUPLICATE KEY UPDATE user_id = values(user_id), name = values(name), remark = values(remark), mobile = values(mobile), email = values(email), org_email = values(org_email)
, main_admin = values(main_admin), is_admin = values(is_admin), unionid = values(unionid), avatar = values(avatar), jobnumber = values(jobnumber) , main_admin = values(main_admin), is_admin = values(is_admin), unionid = values(unionid), avatar = values(avatar), jobnumber = values(jobnumber)
, face_url = values(face_url), user_status = values(user_status), user_region_ids = values(user_region_ids), deleted = values(deleted) , face_url = values(face_url), user_status = values(user_status), user_region_ids = values(user_region_ids), deleted = values(deleted), feishu_user_id = values(feishu_user_id)
<if test="record.isLeader != null"> <if test="record.isLeader != null">
, is_leader = values(is_leader) , is_leader = values(is_leader)
</if> </if>
@@ -172,6 +179,9 @@
<if test="userId != null"> <if test="userId != null">
user_id = #{userId}, user_id = #{userId},
</if> </if>
<if test="feishuUserId != null">
feishu_user_id,
</if>
<if test="name != null"> <if test="name != null">
name = #{name}, name = #{name},
</if> </if>
@@ -330,4 +340,14 @@
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
FROM enterprise_user WHERE mobile like #{investmentManager} or `name` like #{investmentManager} LIMIT 1 FROM enterprise_user WHERE mobile like #{investmentManager} or `name` like #{investmentManager} LIMIT 1
</select> </select>
<select id="getFeishuUserIdsByUserIds" resultMap="BaseResultMap">
SELECT feishu_user_id , user_id
FROM enterprise_user
WHERE user_id IN (
<foreach collection="userIdList" item="userId" separator=",">
#{userId}
</foreach>
)
</select>
</mapper> </mapper>

View File

@@ -39,6 +39,9 @@ public class EnterpriseUserDTO implements Serializable {
@ApiModelProperty("钉钉用户id") @ApiModelProperty("钉钉用户id")
private String userId; private String userId;
@ApiModelProperty("飞书 user_id")
private String feishuUserId;
@ApiModelProperty("手机号码") @ApiModelProperty("手机号码")
private String mobile; private String mobile;
@@ -107,6 +110,7 @@ public class EnterpriseUserDTO implements Serializable {
for (EnterpriseUserDTO user : userList) { for (EnterpriseUserDTO user : userList) {
EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO(); EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO();
enterpriseUserDO.setUserId(user.getUserId()); enterpriseUserDO.setUserId(user.getUserId());
enterpriseUserDO.setFeishuUserId(user.getFeishuUserId());
enterpriseUserDO.setName(user.getName()); enterpriseUserDO.setName(user.getName());
enterpriseUserDO.setRemark(user.getRemark()); enterpriseUserDO.setRemark(user.getRemark());
if(StringUtils.isNotBlank(user.getMobile())){ if(StringUtils.isNotBlank(user.getMobile())){

View File

@@ -24,6 +24,9 @@ public class EnterpriseUserDO implements Serializable {
@ApiModelProperty("用户id") @ApiModelProperty("用户id")
private String userId; private String userId;
@ApiModelProperty("飞书 user_id")
private String feishuUserId;
@ApiModelProperty("") @ApiModelProperty("")
private String name; private String name;

View File

@@ -10,7 +10,6 @@ import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.request.event.CreateSingleEventRequest; import com.cool.store.request.event.CreateSingleEventRequest;
import com.cool.store.request.event.SendMsgRequest; import com.cool.store.request.event.SendMsgRequest;
import com.cool.store.response.event.CreateEventResponse; import com.cool.store.response.event.CreateEventResponse;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@@ -0,0 +1,28 @@
package com.cool.store.service;
import com.cool.store.dao.EnterpriseUserDAO;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import java.util.Arrays;
import java.util.Map;
/**
* @author Fun Li 2023/10/25 10:52
* @version 1.0
*/
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class EnterpriseUserInfoDAOTest extends AbstractJUnit4SpringContextTests {
@Autowired
EnterpriseUserDAO enterpriseUserDAO;
@Test
public void testGetFeishuUserId() {
Map<String, String> feishuUserIdsByUserIds = enterpriseUserDAO.getFeishuUserIdsByUserIds(Arrays.asList("ou_473e7063755c39b932028ec64914b500", "ou_72c0cf5fd9c50f05d7e1208449446a00"));
System.out.println(feishuUserIdsByUserIds);
}
}

View File

@@ -5,7 +5,7 @@ import com.cool.store.enums.FeiShuNoticeMsgEnum;
import com.cool.store.enums.SMSMsgEnum; import com.cool.store.enums.SMSMsgEnum;
import com.cool.store.exception.ApiException; import com.cool.store.exception.ApiException;
import com.cool.store.http.EventCenterHttpRequest; import com.cool.store.http.EventCenterHttpRequest;
import org.junit.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;