Browse Source

fix:微信公众号用户关注则创建新用户

陈长荣 5 tháng trước cách đây
mục cha
commit
8c9b7c8808

+ 1 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/alarmuser/service/AlarmUserService.java

@@ -91,7 +91,7 @@ public interface AlarmUserService extends IService<AlarmUser> {
     String getUserInfo(String code, String orgId, String name);
 
     /**
-     * 关注微信号
+     * 关注微信号,如果openid不存在则创建用户
      */
     AlarmUser subscribe(String openid);
 

+ 11 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/alarmuser/service/impl/AlarmUserServiceImpl.java

@@ -160,6 +160,7 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
             // 如果有关联,则修改用户姓名
             SysUser sysUser = sysUserService.getById(alarmUser.getUserId());
             sysUser.setName(alarmUserEditParam.getName());
+            sysUser.setAvatar(CommonAvatarUtil.generateImg(sysUser.getName()));
             sysUserService.updateById(sysUser);
         }
 
@@ -269,8 +270,11 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
             AlarmUser alarmUser = new AlarmUser();
             alarmUser.setOpenId(openid);
             alarmUser.setSubscribed(AlarmUserEnum.SUBSCRIBE.getValue());
+            SysUser sysUser = createSysUser(alarmUser, null, null);
+
+            alarmUser.setUserId(sysUser.getId());
+            alarmUser.setId(IdWorker.getIdStr());
             save(alarmUser);
-            createSysUser(alarmUser, null, null);
             return alarmUser;
         }
 
@@ -302,7 +306,12 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
      */
     private SysUser createSysUser(AlarmUser alarmUser, String orgId, String name) {
         //创建系统用户
-        SysUser sysUser = BeanUtil.copyProperties(alarmUser, SysUser.class);
+        SysUser sysUser;
+        if (alarmUser == null) {
+            sysUser = new SysUser();
+        } else {
+            sysUser = BeanUtil.copyProperties(alarmUser, SysUser.class);
+        }
         sysUser.setId(IdWorker.getIdStr());
         sysUser.setName(name);
         if (StrUtil.isNotEmpty(orgId)) {