Commit 5b086c29 by 墨竹

Merge branch 'feature/2022-0104' into developer

# Conflicts:
#	haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/ExternalClerkRelatedApiService.java
parents 773c1844 7bfdb59a
......@@ -96,6 +96,11 @@ public class WxEnterpriseDTO implements Serializable {
*/
private Date agreeExternalUseridTime;
/**
* 转换状态:0:未转换;1:转换成功;2:转换中
*/
private Integer externalFlag;
public String getMemberSecret() {
return memberSecret;
}
......@@ -424,4 +429,11 @@ public class WxEnterpriseDTO implements Serializable {
this.agreeExternalUseridTime = agreeExternalUseridTime;
}
public Integer getExternalFlag() {
return externalFlag;
}
public void setExternalFlag(Integer externalFlag) {
this.externalFlag = externalFlag;
}
}
......@@ -177,16 +177,6 @@ public interface ExternalClerkRelatedApiService {
/**
* 全量更新新的外部联系人id
*
* @return boolean
* @author mozhu
* @date 2021-12-13 15:37:53
*/
boolean updateNewExternalUserid();
/**
* 根据企业更新新的外部联系人id
*
* @param wxEnterpriseId wx企业标识
......@@ -203,4 +193,15 @@ public interface ExternalClerkRelatedApiService {
* @return
*/
public int countFriendCountByClerkId(String wxEnterpriseId, String enterpriseId, String wxUserId, String clerkId);
/**
* 更新新的外部userid mq
*
* routerName :"updateNewExUserIdMq"
* @param res res
* @author mozhu
* @date 2021-12-30 16:24:02
*/
void updateNewExternalUseridMq(String res);
}
......@@ -241,6 +241,12 @@
<artifactId>task-allocation-sdk</artifactId>
<version>${task-allocation-sdk}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-wechat-api</artifactId>
<version>${gic-wechat-api}</version>
</dependency>
</dependencies>
<build>
......
package com.gic.haoban.manage.web.auth;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
* Created 2018/7/26.
*
* @author hua
*/
public class AuthRequestUtil {
private static final Logger logger = LoggerFactory.getLogger(AuthRequestUtil.class);
public static final String REDIS_LOGIN_USER_TOKEN_PREFIX = "GIC:HAOBAN:HAOBAN_MOBILE_APP:LOGIN_USER:";
public static final String REDIS_FAKE_LOGIN_FLAG_PREFIX = "GIC:HAOBAN:HAOBAN_MOBILE_APP:FAKE_LOGIN_TOKEN:";
public static String LOGIN_SESSION_KEY = "HAOBAN:LOGINUSER";
public static Object getSessionUser() {
return getSession().getAttribute(LOGIN_SESSION_KEY);
}
public static void setSessionUser(Object obj) {
getSession().setAttribute(LOGIN_SESSION_KEY, obj);
}
public static void delSessionUser() {
getSession().removeAttribute(LOGIN_SESSION_KEY);
}
public static Object getAppLoginUser() {
String token = getRequest().getHeader("token");
logger.info("token1111111111=" + token);
if (StringUtils.isBlank(token)) {
return null;
}
Object cache = RedisUtil.getCache(token);
return cache;
}
private static void setLoginUserLastToken(String token, Object obj) {
try {
String userId = BeanUtils.getProperty(obj, "user.userId");
if (StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(token)) {
RedisUtil.setCache(REDIS_LOGIN_USER_TOKEN_PREFIX + userId, token, 31L, TimeUnit.DAYS);
}
} catch (Exception e) {
logger.error(e.getMessage());
}
}
/**
* 是否为用户最后一次登录token
*
* @param token
* @param userId
* @return
*/
public static boolean isLoginUserLastToken(String token, String userId) {
Object lastUserLoginToken = RedisUtil.getCache(REDIS_LOGIN_USER_TOKEN_PREFIX + userId);
// 如果用户最后一次登录token不符则返回false
return !(lastUserLoginToken instanceof CharSequence) || StringUtils.equals(token, (CharSequence) lastUserLoginToken);
}
private static void setFakeLoginFlag(String token) {
if (StringUtils.isNotBlank(token)) {
RedisUtil.setCache(REDIS_FAKE_LOGIN_FLAG_PREFIX + token, new Date(), 30L, TimeUnit.DAYS);
}
}
/**
* 是否为伪登录token
*
* @param token
* @return
*/
public static boolean isFakeLoginToken(String token) {
return StringUtils.isNotBlank(token) && RedisUtil.getCache(REDIS_FAKE_LOGIN_FLAG_PREFIX + token) != null;
}
public static void setAppLoginUser(String token, Object obj) {
RedisUtil.setCache(token, obj, 30L, TimeUnit.DAYS);
getResponse().setHeader("token", token);
setLoginUserLastToken(token, obj);
}
public static void setAppFakeLoginUser(String token, Object obj) {
RedisUtil.setCache(token, obj, 30L, TimeUnit.DAYS);
getResponse().setHeader("token", token);
setFakeLoginFlag(token);
}
public static void delToken() {
String token = getRequest().getHeader("token");
RedisUtil.delCache(token);
}
public static void setAppLoginUser(Object obj) {
String token = getRequest().getHeader("token");
RedisUtil.setCache(token, obj, 30L, TimeUnit.DAYS);
getResponse().setHeader("token", token);
setLoginUserLastToken(token, obj);
}
public static void setAppFakeLoginUser(Object obj) {
String token = getRequest().getHeader("token");
RedisUtil.setCache(token, obj, 30L, TimeUnit.DAYS);
getResponse().setHeader("token", token);
}
public static HttpSession getSession() {
HttpSession session = null;
try {
session = getRequest().getSession();
} catch (Exception e) {
}
return session;
}
public static HttpServletRequest getRequest() {
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
return attrs.getRequest();
}
public static HttpServletResponse getResponse() {
ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
return attrs.getResponse();
}
}
......@@ -7,6 +7,9 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.gic.haoban.app.customer.service.api.service.QywxTagSyncApiService;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.apache.commons.lang.StringUtils;
......@@ -58,6 +61,10 @@ public class EnterpriseController extends WebBaseController {
private EnterpriseService enterpriseService;
@Autowired
private QywxTagSyncApiService qywxTagSyncApiService;
@Autowired
private ExternalClerkRelatedApiService externalClerkRelatedApiService;
@Autowired
private QywxUserApiService qywxUserApiService;
private static final String QYWX_TAG_OPRN_KEY = "qywx-tag-open";
private static final String QYWX_TAG_OPRN_KEY_LOCK = "qywx-tag-open-lock";
......@@ -317,4 +324,48 @@ public class EnterpriseController extends WebBaseController {
String url = host + LOGIN_URL + "?wxEnterpriseId=" + wxEnterpriseId + "&random=" + random;
httpServletResponse.sendRedirect(url);
}
/**
* 更新新的外部联系人id
*
* @param wxEnterpriseId wx企业标识
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-13 15:46:25
*/
@RequestMapping("/updateNewExternalUserid")
public HaobanResponse updateNewExternalUserid(String wxEnterpriseId) {
boolean flag = externalClerkRelatedApiService.updateNewExternalUserid(wxEnterpriseId);
if (flag) {
return resultResponse(HaoBanErrCode.ERR_1);
} else {
return resultResponse(HaoBanErrCode.ERR_0);
}
}
/**
* 设置迁移完成
*
* @param corpid
* @param serviceCorpid
* @return
*/
@RequestMapping("/finishExternalUseridMigration")
public HaobanResponse finishExternalUseridMigration(String corpid, String serviceCorpid) {
boolean flag = qywxUserApiService.finishExternalUseridMigration(corpid, serviceCorpid);
if (flag) {
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getEnterpriseBycorpId(corpid);
if (wxEnterpriseDTO == null) {
return resultResponse(HaoBanErrCode.ERR_20001);
}
wxEnterpriseApiService.agreeExternalUseridFlag(wxEnterpriseDTO.getWxEnterpriseId(),1);
return resultResponse(HaoBanErrCode.ERR_1);
} else {
return resultResponse(HaoBanErrCode.ERR_0);
}
}
}
......@@ -109,11 +109,7 @@ public class TestController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1);
}
/**
* 创建定时器
*
* @return
*/
@RequestMapping("/sharing-import")
@ResponseBody
public HaobanResponse sharingImport(String key) {
......@@ -124,11 +120,7 @@ public class TestController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1);
}
/**
* 创建定时器
*
* @return
*/
@RequestMapping("/sharing-import-batch")
@ResponseBody
public HaobanResponse sharingImportBatch(String key) {
......
......@@ -22,33 +22,8 @@ public class TestTaskController extends WebBaseController {
@Autowired
private TaskQuartzCallbackApiService taskQuartzCallbackApiService;
@Autowired
private HandoverOperationApiService handoverOperationApiService;
// @Autowired
// private TestService testService;
//
// @RequestMapping("/testList")
// @ResponseBody
// public HaobanResponse testList(String id, BasePageInfo info) {
// HaoBanErrCode errCode = HaoBanErrCode.ERR_1;
// Page<TestDTO> testDTOPage = testService.queryPage(info);
// return resultResponse(errCode, testDTOPage);
// }
//
// @RequestMapping("/imcallback")
// @ResponseBody
// public JSONObject imcallback(@RequestBody JSONObject msg) {
// System.out.println(msg);
// System.out.println(msg.toJSONString());
// String rest = "{\n" +
// " \"ActionStatus\": \"OK\",\n" +
// " \"ErrorInfo\": \"\",\n" +
// " \"ErrorCode\": 0 // 0 为允许发言\n" +
// "}";
// return JSONObject.parseObject(rest);
// }
//
@RequestMapping("/groupSendCreateEnd")
@ResponseBody
......
......@@ -63,4 +63,8 @@
<dubbo:reference interface="com.gic.member.tag.api.service.MemberTagImportDealService"
id="memberTagImportDealService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService"
id="externalClerkRelatedApiService"/>
<dubbo:reference interface="com.gic.wechat.api.service.qywx.QywxUserApiService" id="qywxUserApiService"/>
</beans>
......@@ -12,14 +12,14 @@ import java.util.List;
public interface ExternalUseridLogMapper {
/**
* 插入
* 更新
*
* @param tabExternalUseridLog 外部用户id日志选项卡
* @return int
* @author mozhu
* @date 2021-12-23 13:55:22
* @date 2021-12-30 21:10:54
*/
int insert(TabExternalUseridLog tabExternalUseridLog);
int update(TabExternalUseridLog tabExternalUseridLog);
/**
* 插入批
......@@ -41,4 +41,24 @@ public interface ExternalUseridLogMapper {
*/
List<TabExternalUseridLog> selectByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 更新状态标志wx企业id
*
* @param statusFlag 状态标志
* @param wxEnterpriseId wx企业标识
* @return int
* @author mozhu
* @date 2021-12-30 21:15:46
*/
int updateStatusFlagByWxEnterpriseId(@Param("statusFlag") Integer statusFlag, @Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 更新旧的外部用户id(回退更新)
*
* @param wxEnterpriseId wx企业标识
* @return int
* @author mozhu
* @date 2021-12-30 21:17:52
*/
int updateOldExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId);
}
......@@ -46,4 +46,15 @@ public interface WxEnterpriseMapper {
* @date 2021-12-20 20:09:52
*/
TabHaobanWxEnterprise getEnterpriseByCorpName(@Param("corpName") String corpName);
/**
* 更新是否转化外部联系人
*
* @param externalFlag 外部标志
* @param wxEnterpriseId wx企业标识
* @return int
* @author mozhu
* @date 2021-12-30 20:40:59
*/
int updateExternalFlagById(@Param("externalFlag") Integer externalFlag, @Param("wxEnterpriseId") String wxEnterpriseId);
}
\ No newline at end of file
......@@ -38,6 +38,7 @@ public class TabExternalUseridLog implements Serializable {
* creator_name
*/
private String creatorName;
private Integer statusFlag;
/**
* create_time
......@@ -116,4 +117,12 @@ public class TabExternalUseridLog implements Serializable {
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
}
......@@ -82,6 +82,10 @@ public class TabHaobanWxEnterprise implements Serializable {
* 是否同意授权转换external_userid时间
*/
private Date agreeExternalUseridTime;
/**
* 转换状态:0:未转换;1:转换成功;2:转换中
*/
private Integer externalFlag;
public String getMemberSecret() {
return memberSecret;
......@@ -371,4 +375,11 @@ public class TabHaobanWxEnterprise implements Serializable {
this.agreeExternalUseridTime = agreeExternalUseridTime;
}
public Integer getExternalFlag() {
return externalFlag;
}
public void setExternalFlag(Integer externalFlag) {
this.externalFlag = externalFlag;
}
}
\ No newline at end of file
package com.gic.haoban.manage.service.service.out.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.EntityUtil;
......@@ -303,26 +304,6 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}));
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateNewExternalUserid() {
log.info("全量更新企业外部联系人id start");
try {
List<TabHaobanWxEnterprise> tabHaobanWxEnterprises = wxEnterriseMapper.listAll();
for (TabHaobanWxEnterprise wxEnterprise : tabHaobanWxEnterprises) {
String wxEnterpriseId = wxEnterprise.getWxEnterpriseId();
String corpid = wxEnterprise.getCorpid();
//更新新的外部联系人id
updateNewExUserId(wxEnterpriseId, corpid);
}
log.info("全量更新企业外部联系人id end");
return true;
} catch (Exception e) {
log.info("全量更新企业外部联系人id异常,{}", e.getMessage(), e);
return false;
}
}
@Override
@Transactional(rollbackFor = Exception.class)
......@@ -335,6 +316,19 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
try {
updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), tabHaobanWxEnterprise.getCorpid());
// TODO: 2021/12/30 暂时不打开,成熟了再打开
/* //serviceCorpid 默认为:达摩网络
boolean flag = qywxUserApiService.finishExternalUseridMigration(tabHaobanWxEnterprise.getCorpid(), config.getCorpid());
if (flag) {
//成功
wxEnterriseMapper.updateExternalFlagById(1,wxEnterpriseId);
} else {
//失败
wxEnterriseMapper.updateExternalFlagById(3,wxEnterpriseId);
externalUseridLogMapper.updateStatusFlagByWxEnterpriseId(0,wxEnterpriseId);
//回退老的
externalUseridLogMapper.updateOldExternalUserId(wxEnterpriseId);
}*/
log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId);
return true;
} catch (Exception e) {
......@@ -343,6 +337,42 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
}
@Override
public void updateNewExternalUseridMq(String res) {
log.info("更新新的外部联系人id mq,start");
JSONObject jsonObject = JSON.parseObject(res);
String corpid = jsonObject.getString("corpid");
String wxEnterpriseId = jsonObject.getString("wxEnterpriseId");
log.info("更新新的外部联系人id mq,corpid:{},wxEnterpriseId:{}",corpid,wxEnterpriseId);
String externalUserIdLists = jsonObject.getString("externalUserIdList");
List<String> externalUserIdList = JSON.parseArray(externalUserIdLists,String.class);
//查询企微接口,更新新的external_user_id
List<QywxNewExternalUseridDTO> newExternalUseridList = qywxUserApiService.getNewExternalUseridByList(corpid, config.getWxSuiteid(), externalUserIdList);
if (CollectionUtils.isEmpty(newExternalUseridList)) {
log.info("更新新的外部联系人id,查询企业微信接口报错");
return;
}
List<TabExternalUseridLog> tabExternalUseridLogList = new ArrayList<>();
for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUseridList) {
String new_external_userid = qywxNewExternalUseridDTO.getNew_external_userid();
String external_userid = qywxNewExternalUseridDTO.getExternal_userid();
//好友关系表
tabHaobanExternalClerkRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
//会员关系表
memberUnionidRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
TabExternalUseridLog tabExternalUseridLog = new TabExternalUseridLog();
tabExternalUseridLog.setId(UniqueIdUtils.uniqueLong());
tabExternalUseridLog.setOldExternalUserId(external_userid);
tabExternalUseridLog.setNewExternalUserId(new_external_userid);
tabExternalUseridLog.setWxEnterpriseId(wxEnterpriseId);
tabExternalUseridLog.setCreatorId("admin");
tabExternalUseridLog.setCreatorName("系统管理员");
tabExternalUseridLogList.add(tabExternalUseridLog);
}
externalUseridLogMapper.insertBatch(tabExternalUseridLogList);
log.info("更新新的外部联系人id mq,end");
}
/**
* 更新新的外部联系人id
*
......@@ -352,17 +382,16 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
* @date 2021-12-13 15:40:30
*/
private void updateNewExUserId(String wxEnterpriseId, String corpid) {
wxEnterriseMapper.updateExternalFlagById(2,wxEnterpriseId);
// 限流器
RRateLimiter rateLimiter = RedisUtil.getRedisClient().getRateLimiter("haoban:manage3:updateNewExUserId:limit");
// 每1秒产生5个令牌
rateLimiter.trySetRate(RateType.OVERALL, 5, 1, RateIntervalUnit.SECONDS);
int pageNum = 1;
// 开启消息发送
while (true) {
// 获取令牌
rateLimiter.acquire();
//企微转换最多支持1000个
PageInfo<TabHaobanExternalClerkRelated> tabHaobanWxEnterprisePageInfo = pageExternalByWxEnterpriseId(wxEnterpriseId, pageNum, 1000);
List<TabHaobanExternalClerkRelated> enterprisePageInfoList = tabHaobanWxEnterprisePageInfo.getList();
......@@ -371,30 +400,16 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
pageNum++;
List<String> externalUserIdList = enterprisePageInfoList.stream().map(TabHaobanExternalClerkRelated::getExternalUserId).collect(Collectors.toList());
//查询企微接口,更新新的external_user_id
List<QywxNewExternalUseridDTO> newExternalUseridList = qywxUserApiService.getNewExternalUseridByList(corpid, config.getWxSuiteid(), externalUserIdList);
if (CollectionUtils.isEmpty(newExternalUseridList)) {
log.info("更新新的外部联系人id,查询企业微信接口报错");
break;
}
List<TabExternalUseridLog> tabExternalUseridLogList = new ArrayList<>();
for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUseridList) {
String new_external_userid = qywxNewExternalUseridDTO.getNew_external_userid();
String external_userid = qywxNewExternalUseridDTO.getExternal_userid();
//好友关系表
tabHaobanExternalClerkRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
//会员关系表
memberUnionidRelatedMapper.updateExternalUserIdByOldExternalUserId(new_external_userid, external_userid, wxEnterpriseId);
TabExternalUseridLog tabExternalUseridLog = new TabExternalUseridLog();
tabExternalUseridLog.setId(UniqueIdUtils.uniqueLong());
tabExternalUseridLog.setOldExternalUserId(external_userid);
tabExternalUseridLog.setNewExternalUserId(new_external_userid);
tabExternalUseridLog.setWxEnterpriseId(wxEnterpriseId);
tabExternalUseridLog.setCreatorId("admin");
tabExternalUseridLog.setCreatorName("系统管理员");
tabExternalUseridLogList.add(tabExternalUseridLog);
JSONObject jsonObject = new JSONObject();
jsonObject.put("corpid",corpid);
jsonObject.put("wxEnterpriseId",wxEnterpriseId);
jsonObject.put("externalUserIdList",externalUserIdList);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendMessage("updateNewExUserIdMq", JSONObject.toJSONString(jsonObject));
} catch (Exception e) {
log.info("企微转换id发送消息队列异常:{}", e.getMessage(),e);
}
externalUseridLogMapper.insertBatch(tabExternalUseridLogList);
}
}
......
......@@ -305,6 +305,7 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService {
wxEnterpriseDTO.setWxEnterpriseId(wxEnterpriseId);
wxEnterpriseDTO.setAgreeExternalUseridFlag(openFlag);
wxEnterpriseDTO.setAgreeExternalUseridTime(new Date());
wxEnterpriseDTO.setExternalFlag(openFlag);
wxEnterpriseDTO.setUpdateTime(new Date());
wxEnterpriseService.update(wxEnterpriseDTO);
}
......
......@@ -6,6 +6,7 @@
<result column="old_external_user_id" property="oldExternalUserId"/>
<result column="new_external_user_id" property="newExternalUserId"/>
<result column="wx_enterprise_id" property="wxEnterpriseId"/>
<result column="status_flag" property="statusFlag"/>
<result column="creator_id" property="creatorId"/>
<result column="creator_name" property="creatorName"/>
<result column="create_time" property="createTime"/>
......@@ -16,91 +17,86 @@
old_external_user_id,
new_external_user_id,
wx_enterprise_id,
status_flag,
creator_id,
creator_name,
create_time,
update_time
</sql>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" keyProperty="id"
parameterType="com.gic.haoban.manage.service.entity.TabExternalUseridLog">
INSERT INTO tab_external_userid_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="null != id">
id,
</if>
<if test="null != oldExternalUserId and '' != oldExternalUserId">
old_external_user_id,
</if>
<if test="null != newExternalUserId and '' != newExternalUserId">
new_external_user_id,
</if>
<if test="null != wxEnterpriseId and '' != wxEnterpriseId">
wx_enterprise_id,
</if>
<if test="null != creatorId and '' != creatorId">
creator_id,
</if>
<if test="null != creatorName and '' != creatorName">
creator_name,
</if>
<if test="null != createTime">
create_time,
</if>
<if test="null != updateTime">
update_time
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="null != id">
#{id},
</if>
<if test="null != oldExternalUserId and '' != oldExternalUserId">
#{oldExternalUserId},
</if>
<if test="null != newExternalUserId and '' != newExternalUserId">
#{newExternalUserId},
</if>
<if test="null != wxEnterpriseId and '' != wxEnterpriseId">
#{wxEnterpriseId},
</if>
<if test="null != creatorId and '' != creatorId">
#{creatorId},
</if>
<if test="null != creatorName and '' != creatorName">
#{creatorName},
</if>
<if test="null != createTime">
#{createTime},
</if>
<if test="null != updateTime">
#{updateTime}
</if>
</trim>
</insert>
<insert id="insertBatch">
insert into tab_external_userid_log (id,
old_external_user_id,
new_external_user_id,
wx_enterprise_id,
status_flag,
creator_id,
creator_name,
create_time,
update_time)
values
<foreach collection="list" separator="," item="item">
(#{item.id}, #{item.oldExternalUserId},#{item.newExternalUserId}, #{item.wxEnterpriseId}, #{item.creatorId},
(#{item.id}, #{item.oldExternalUserId},#{item.newExternalUserId}, #{item.wxEnterpriseId}, 1, #{item.creatorId},
#{item.creatorName},now(),now())
</foreach>
</insert>
<update id="update" parameterType="com.gic.haoban.manage.service.entity.TabExternalUseridLog">
UPDATE tab_external_userid_log
<set>
<if test="null != oldExternalUserId and '' != oldExternalUserId">
old_external_user_id = #{oldExternalUserId},
</if>
<if test="null != newExternalUserId and '' != newExternalUserId">
new_external_user_id = #{newExternalUserId},
</if>
<if test="null != wxEnterpriseId and '' != wxEnterpriseId">
wx_enterprise_id = #{wxEnterpriseId},
</if>
<if test="null != statusFlag ">
status_flag = #{statusFlag},
</if>
<if test="null != creatorId and '' != creatorId">
creator_id = #{creatorId},
</if>
<if test="null != creatorName and '' != creatorName">
creator_name = #{creatorName},
</if>
<if test="null != createTime ">
create_time = #{createTime},
</if>
<if test="null != updateTime ">
update_time = #{updateTime}
</if>
</set>
WHERE id = #{id}
</update>
<select id="selectByWxEnterpriseId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_external_userid_log
where wx_enterprise_id = #{wxEnterpriseId}
where wx_enterprise_id = #{wxEnterpriseId} and status_flag = 1
</select>
<update id="updateStatusFlagByWxEnterpriseId">
update tab_external_userid_log
set status_flag = #{statusFlag},
update_time = now()
where wx_enterprise_id = #{wxEnterpriseId}
</update>
<update id="updateOldExternalUserId">
UPDATE tab_haoban_external_clerk_related a
JOIN tab_external_userid_log b ON a.wx_enterprise_id = b.wx_enterprise_id
AND a.external_user_id = b.new_external_user_id
SET a.external_user_id = b.old_external_user_id,a.update_time = now()
WHERE
a.wx_enterprise_id = #{wxEnterpriseId}
AND b.wx_enterprise_id = #{wxEnterpriseId}
AND a.status_flag = 1 and b.status_flag = 1;
</update>
</mapper>
\ No newline at end of file
......@@ -38,6 +38,7 @@
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="agree_external_userid_flag" property="agreeExternalUseridFlag" jdbcType="INTEGER"/>
<result column="agree_external_userid_time" property="agreeExternalUseridTime" jdbcType="TIMESTAMP"/>
<result column="external_flag" property="externalFlag" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -45,7 +46,7 @@
corp_user_max, corp_full_name, subject_type, verified_end_time, corp_wxqrcode, corp_scale,
corp_industry, corp_sub_industry, location, auth_info, agent, agentid, appid, name,
square_logo_url, round_logo_url, level, bind_flag, status_flag, create_time, update_time,contact_flag,wx_secret_key,wx_secret_key_last_time,member_secret_last_time,contact_secret_last_time
,member_secret,contact_secret,agree_external_userid_flag,agree_external_userid_time
,member_secret,contact_secret,agree_external_userid_flag,agree_external_userid_time,external_flag
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String">
select
......@@ -158,6 +159,9 @@
<if test="agreeExternalUseridTime != null">
agree_external_userid_time,
</if>
<if test="externalFlag != null">
external_flag,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="wxEnterpriseId != null">
......@@ -256,6 +260,9 @@
<if test="agreeExternalUseridTime != null">
#{agreeExternalUseridTime,jdbcType=TIMESTAMP},
</if>
<if test="externalFlag != null">
#{externalFlag,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise">
......@@ -366,6 +373,9 @@
<if test="agreeExternalUseridTime != null">
agree_external_userid_time = #{agreeExternalUseridTime,jdbcType=TIMESTAMP},
</if>
<if test="externalFlag != null">
external_flag = #{externalFlag,jdbcType=INTEGER},
</if>
</set>
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</update>
......@@ -457,4 +467,13 @@
order by create_time desc limit 1
</select>
<update id="updateExternalFlagById">
update tab_haoban_wx_enterprise
set external_flag = #{externalFlag},
update_time = now()
where wx_enterprise_id = #{wxEnterpriseId}
</update>
</mapper>
\ No newline at end of file
......@@ -5,10 +5,7 @@ import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.MaidianLogDTO;
import com.gic.haoban.manage.api.dto.QywxCorpInfoSimpleDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.QywxXcxSendMessageQo;
......@@ -237,6 +234,11 @@ public class TestController extends WebBaseController {
public HaobanResponse finishExternalUseridMigration(String corpid, String serviceCorpid) {
boolean flag = qywxUserApiService.finishExternalUseridMigration(corpid, serviceCorpid);
if (flag) {
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getEnterpriseBycorpId(corpid);
if (wxEnterpriseDTO == null) {
return resultResponse(HaoBanErrCode.ERR_10012);
}
wxEnterpriseApiService.agreeExternalUseridFlag(wxEnterpriseDTO.getWxEnterpriseId(),1);
return resultResponse(HaoBanErrCode.ERR_1);
} else {
return resultResponse(HaoBanErrCode.ERR_0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment