|
@@ -18,6 +18,7 @@ import com.cyksj.model.kf.CorpKfUserInfo;
|
|
|
import com.cyksj.model.request.corp.CorpCommonReq;
|
|
import com.cyksj.model.request.corp.CorpCommonReq;
|
|
|
import com.cyksj.model.request.corp.CorpXmlMessage;
|
|
import com.cyksj.model.request.corp.CorpXmlMessage;
|
|
|
import com.cyksj.model.views.YHLXUserDetailView;
|
|
import com.cyksj.model.views.YHLXUserDetailView;
|
|
|
|
|
+import com.cyksj.redis.RedisService;
|
|
|
import com.cyksj.service.corp.CorpUserService;
|
|
import com.cyksj.service.corp.CorpUserService;
|
|
|
import com.cyksj.service.corp.WxCorpOps;
|
|
import com.cyksj.service.corp.WxCorpOps;
|
|
|
import com.cyksj.service.corp.msg.CorpEventActionService;
|
|
import com.cyksj.service.corp.msg.CorpEventActionService;
|
|
@@ -77,6 +78,8 @@ public class CorpUserServiceImpl implements CorpUserService {
|
|
|
|
|
|
|
|
private final PhoneCodeMapper phoneCodeMapper;
|
|
private final PhoneCodeMapper phoneCodeMapper;
|
|
|
|
|
|
|
|
|
|
+ private final RedisService redisService;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public YHLXUserDetailView getUserDetailView(String externalUserid, String corpId) throws Exception {
|
|
public YHLXUserDetailView getUserDetailView(String externalUserid, String corpId) throws Exception {
|
|
|
CorpUser corpUser = getExternalUserId(corpId, externalUserid);
|
|
CorpUser corpUser = getExternalUserId(corpId, externalUserid);
|
|
@@ -149,6 +152,11 @@ public class CorpUserServiceImpl implements CorpUserService {
|
|
|
if (StrUtil.isEmpty(orderNo)) {
|
|
if (StrUtil.isEmpty(orderNo)) {
|
|
|
throw BusinessRuntimeException.getInstance("用户订单号不为空");
|
|
throw BusinessRuntimeException.getInstance("用户订单号不为空");
|
|
|
}
|
|
}
|
|
|
|
|
+ String bindLockValue = StrUtil.blankToDefault(orderNo, externalUserid);
|
|
|
|
|
+ String bindLockKey = RedisService.key.USER_BIND_ACCOUNT_INFO_KEY.getName() + bindLockValue;
|
|
|
|
|
+ if (!redisService.setNx(bindLockKey, bindLockValue, RedisService.key.USER_BIND_ACCOUNT_INFO_KEY.getTimeout())) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("account binding, please retry later");
|
|
|
|
|
+ }
|
|
|
CorpUser corpUser = getExternalUserId(corpId, externalUserid);
|
|
CorpUser corpUser = getExternalUserId(corpId, externalUserid);
|
|
|
if (corpUser == null) {
|
|
if (corpUser == null) {
|
|
|
throw BusinessRuntimeException.getInstance("添加用户不存在");
|
|
throw BusinessRuntimeException.getInstance("添加用户不存在");
|
|
@@ -174,6 +182,17 @@ public class CorpUserServiceImpl implements CorpUserService {
|
|
|
throw BusinessRuntimeException.getInstance("该订单号对应的用户已绑定微信");
|
|
throw BusinessRuntimeException.getInstance("该订单号对应的用户已绑定微信");
|
|
|
}
|
|
}
|
|
|
User user = userMapper.selectOne(Wrappers.lambdaQuery(User.class).eq(User::getUnionid, corpUser.getUnionid()).last("limit 1"));
|
|
User user = userMapper.selectOne(Wrappers.lambdaQuery(User.class).eq(User::getUnionid, corpUser.getUnionid()).last("limit 1"));
|
|
|
|
|
+ if (user == null) {
|
|
|
|
|
+ if (!redisService.setNx(RedisService.key.REPEAT_USER_KEY.getNameFormat(corpUser.getUnionid()), corpUser.getUnionid(), RedisService.key.REPEAT_USER_KEY.getTimeout())) {
|
|
|
|
|
+ user = userMapper.selectOne(Wrappers.lambdaQuery(User.class).eq(User::getUnionid, corpUser.getUnionid()).last("limit 1"));
|
|
|
|
|
+ if (user == null) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("account binding, please retry later");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (user == null) {
|
|
|
|
|
+ user = userMapper.selectOne(Wrappers.lambdaQuery(User.class).eq(User::getUnionid, corpUser.getUnionid()).last("limit 1"));
|
|
|
|
|
+ }
|
|
|
if (user == null) {
|
|
if (user == null) {
|
|
|
user = new User();
|
|
user = new User();
|
|
|
user.setNickname(corpUser.getName());
|
|
user.setNickname(corpUser.getName());
|