From 2beeb2b5048be05bb4cc8a59e2224cbcbefc172b Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Wed, 18 Aug 2021 15:28:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BE=AE=E4=BF=A1=20?= =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=B7=E4=B8=8E=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=20=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=88=A0=E9=99=A4=E6=B7=BB=E5=8A=A0=E5=85=B3=E8=81=94?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../miniapp/IMiniappUserBaseService.java | 28 +++++++++++++ .../account/IOfficialAccountBaseService.java | 28 +++++++++++++ .../wechat/dao/miniapp/IMiniAppUserDao.java | 17 ++++++++ .../account/IOfficialAccountUserDao.java | 18 ++++----- .../service/miniapp/IMiniappUserService.java | 3 +- .../miniapp/impl/MiniappUserServiceImpl.java | 39 +++++++++++++++++++ .../account/IOfficialAccountUserService.java | 3 +- .../impl/OfficialAccountUserServiceImpl.java | 25 ++++++++++++ .../mybatis/mapper/miniapp-user-mapper.xml | 35 ++++++++++++++++- .../mapper/official-account-user-mapper.xml | 17 ++++---- .../user/service/impl/UserServiceImpl.java | 24 ++++++++++++ 11 files changed, 216 insertions(+), 21 deletions(-) create mode 100644 basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/miniapp/IMiniappUserBaseService.java create mode 100644 basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/official/account/IOfficialAccountBaseService.java diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/miniapp/IMiniappUserBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/miniapp/IMiniappUserBaseService.java new file mode 100644 index 00000000..ec06ecd6 --- /dev/null +++ b/basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/miniapp/IMiniappUserBaseService.java @@ -0,0 +1,28 @@ +package ink.wgink.interfaces.user.wechat.miniapp; + +import java.util.List; + +/** + * @ClassName: IMiniappUserBaseService + * @Description: 微信小程序接口 + * @Author: wanggeng + * @Date: 2021/8/18 10:59 上午 + * @Version: 1.0 + */ +public interface IMiniappUserBaseService { + + /** + * 删除用户 + * + * @param userId 用户ID + */ + void delete(String userId); + + /** + * 删除用户 + * + * @param userIds 用户ID列表 + */ + void delete(List userIds); + +} diff --git a/basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/official/account/IOfficialAccountBaseService.java b/basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/official/account/IOfficialAccountBaseService.java new file mode 100644 index 00000000..069de523 --- /dev/null +++ b/basic-interface/src/main/java/ink/wgink/interfaces/user/wechat/official/account/IOfficialAccountBaseService.java @@ -0,0 +1,28 @@ +package ink.wgink.interfaces.user.wechat.official.account; + +import java.util.List; + +/** + * @ClassName: IOfficialAccountBaseService + * @Description: 公众号用户 + * @Author: wanggeng + * @Date: 2021/8/18 3:11 下午 + * @Version: 1.0 + */ +public interface IOfficialAccountBaseService { + + /** + * 删除用户 + * + * @param userId 用户ID + */ + void delete(String userId); + + /** + * 删除用户 + * + * @param userIds 用户ID列表 + */ + void delete(List userIds); + +} diff --git a/module-wechat/src/main/java/ink/wgink/module/wechat/dao/miniapp/IMiniAppUserDao.java b/module-wechat/src/main/java/ink/wgink/module/wechat/dao/miniapp/IMiniAppUserDao.java index 39360d80..80ec58ef 100644 --- a/module-wechat/src/main/java/ink/wgink/module/wechat/dao/miniapp/IMiniAppUserDao.java +++ b/module-wechat/src/main/java/ink/wgink/module/wechat/dao/miniapp/IMiniAppUserDao.java @@ -1,5 +1,6 @@ package ink.wgink.module.wechat.dao.miniapp; +import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.UpdateException; @@ -31,6 +32,14 @@ public interface IMiniAppUserDao extends IInitBaseTable { */ void save(Map params) throws SaveException; + /** + * 删除 + * + * @param params + * @throws RemoveException + */ + void delete(Map params) throws RemoveException; + /** * 更新信息 * @@ -47,6 +56,14 @@ public interface IMiniAppUserDao extends IInitBaseTable { */ void updateIsInitAccount(Map params) throws UpdateException; + /** + * 更新用户码 + * + * @param params + * @throws UpdateException + */ + void updateUserCode(Map params) throws UpdateException; + /** * 列表 * diff --git a/module-wechat/src/main/java/ink/wgink/module/wechat/dao/official/account/IOfficialAccountUserDao.java b/module-wechat/src/main/java/ink/wgink/module/wechat/dao/official/account/IOfficialAccountUserDao.java index 5a1cd55c..4974d7aa 100644 --- a/module-wechat/src/main/java/ink/wgink/module/wechat/dao/official/account/IOfficialAccountUserDao.java +++ b/module-wechat/src/main/java/ink/wgink/module/wechat/dao/official/account/IOfficialAccountUserDao.java @@ -33,6 +33,14 @@ public interface IOfficialAccountUserDao extends IInitBaseTable { */ void save(Map params) throws SaveException; + /** + * 删除用户 + * + * @param params + * @throws RemoveException + */ + void delete(Map params) throws RemoveException; + /** * 修改 * @@ -51,19 +59,12 @@ public interface IOfficialAccountUserDao extends IInitBaseTable { /** * 修改初始账号标识 + * * @param params * @throws UpdateException */ void updateIsInitAccount(Map params) throws UpdateException; - /** - * 删除 - * - * @param params - * @throws RemoveException - */ - void remove(Map params) throws RemoveException; - /** * 详情 * @@ -100,5 +101,4 @@ public interface IOfficialAccountUserDao extends IInitBaseTable { */ List listPO(Map params) throws SearchException; - } diff --git a/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/IMiniappUserService.java b/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/IMiniappUserService.java index 2ff9506c..4aeb3605 100644 --- a/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/IMiniappUserService.java +++ b/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/IMiniappUserService.java @@ -1,6 +1,7 @@ package ink.wgink.module.wechat.service.miniapp; +import ink.wgink.interfaces.user.wechat.miniapp.IMiniappUserBaseService; import ink.wgink.module.wechat.pojo.pos.miniapp.MiniappUserPO; import ink.wgink.module.wechat.pojo.vos.miniapp.MiniAppUpdateInfoVO; @@ -17,7 +18,7 @@ import java.util.Map; * @Date: 2021/4/8 5:37 下午 * @Version: 1.0 */ -public interface IMiniappUserService { +public interface IMiniappUserService extends IMiniappUserBaseService { /** * 微信随机用户前缀 diff --git a/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/impl/MiniappUserServiceImpl.java b/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/impl/MiniappUserServiceImpl.java index ea60778e..2bdbb705 100644 --- a/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/impl/MiniappUserServiceImpl.java +++ b/module-wechat/src/main/java/ink/wgink/module/wechat/service/miniapp/impl/MiniappUserServiceImpl.java @@ -7,15 +7,19 @@ import ink.wgink.module.wechat.dao.miniapp.IMiniAppUserDao; import ink.wgink.module.wechat.pojo.pos.miniapp.MiniappUserPO; import ink.wgink.module.wechat.pojo.vos.miniapp.MiniAppUpdateInfoVO; import ink.wgink.module.wechat.service.miniapp.IMiniappUserService; +import ink.wgink.properties.wechat.miniapp.MiniappProperties; import ink.wgink.service.user.pojo.pos.UserPO; import ink.wgink.service.user.pojo.vos.UserVO; import ink.wgink.service.user.service.IUserService; import ink.wgink.util.date.DateUtil; import ink.wgink.util.string.WStringUtil; +import ink.wgink.util.verification.share.ShareCodeUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -38,6 +42,8 @@ public class MiniappUserServiceImpl extends DefaultBaseService implements IMinia private IMiniAppUserDao miniappUserDao; @Autowired private IUserService userService; + @Autowired + private MiniappProperties miniappProperties; @Override public String createAndReturnUserId(String appKey, String openId) { @@ -63,9 +69,33 @@ public class MiniappUserServiceImpl extends DefaultBaseService implements IMinia params.put("isInitAccount", 1); params.put("gmtCreate", DateUtil.getTime()); miniappUserDao.save(params); + + Long id = Long.parseLong(params.get("id").toString()); + String userCode = ShareCodeUtil.gen(id); + updateUserCode(openId, userCode); return userId; } + @Override + public void delete(String userId) { + if (StringUtils.isBlank(userId)) { + return; + } + List userIds = new ArrayList<>(); + userIds.add(userId); + delete(userIds); + } + + @Override + public void delete(List userIds) { + if (userIds == null || userIds.isEmpty()) { + return; + } + Map params = getHashMap(2); + params.put("userIds", userIds); + miniappUserDao.delete(params); + } + @Override public void updateInfo(String token, MiniAppUpdateInfoVO miniAppUpdateInfoVO) throws Exception { String userId = getAppTokenUser(token).getId(); @@ -128,4 +158,13 @@ public class MiniappUserServiceImpl extends DefaultBaseService implements IMinia params.put("openId", openId); return getPO(params); } + + private void updateUserCode(String userCode, String openId) { + Map params = getHashMap(6); + params.put("userCode", userCode); + params.put("appId", miniappProperties.getAppKey()); + params.put("openId", openId); + miniappUserDao.updateUserCode(params); + } + } diff --git a/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/IOfficialAccountUserService.java b/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/IOfficialAccountUserService.java index b5ea9cfb..d81af52e 100644 --- a/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/IOfficialAccountUserService.java +++ b/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/IOfficialAccountUserService.java @@ -1,5 +1,6 @@ package ink.wgink.module.wechat.service.official.account; +import ink.wgink.interfaces.user.wechat.official.account.IOfficialAccountBaseService; import ink.wgink.module.wechat.enums.XmlEventTypeEnum; import ink.wgink.module.wechat.pojo.dtos.official.account.OfficialAccountUserDTO; import ink.wgink.module.wechat.pojo.pos.official.account.OfficialAccountUserPO; @@ -20,7 +21,7 @@ import java.util.Map; * @Date: 2021/4/28 6:15 下午 * @Version: 1.0 */ -public interface IOfficialAccountUserService { +public interface IOfficialAccountUserService extends IOfficialAccountBaseService { /** * 公众号用户前缀 diff --git a/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/impl/OfficialAccountUserServiceImpl.java b/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/impl/OfficialAccountUserServiceImpl.java index 2225cae9..2990aca9 100644 --- a/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/impl/OfficialAccountUserServiceImpl.java +++ b/module-wechat/src/main/java/ink/wgink/module/wechat/service/official/account/impl/OfficialAccountUserServiceImpl.java @@ -17,10 +17,12 @@ import ink.wgink.util.date.DateUtil; import ink.wgink.util.map.HashMapUtil; import ink.wgink.util.string.WStringUtil; import ink.wgink.util.verification.share.ShareCodeUtil; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -85,6 +87,27 @@ public class OfficialAccountUserServiceImpl extends DefaultBaseService implement updateUserCode(openId, userCode); } + + @Override + public void delete(String userId) { + if (StringUtils.isBlank(userId)) { + return; + } + List userIds = new ArrayList<>(); + userIds.add(userId); + delete(userIds); + } + + @Override + public void delete(List userIds) { + if (userIds.isEmpty()) { + return; + } + Map params = getHashMap(4); + params.put("userIds", userIds); + officialAccountUserDao.delete(params); + } + @Override public void updateStatus(String openId, XmlEventTypeEnum xmlEventTypeEnum) { String time = DateUtil.getTime(); @@ -161,6 +184,7 @@ public class OfficialAccountUserServiceImpl extends DefaultBaseService implement /** * 更新用户码(邀请码) + * * @param openId * @param userCode */ @@ -171,4 +195,5 @@ public class OfficialAccountUserServiceImpl extends DefaultBaseService implement params.put("userCode", userCode); officialAccountUserDao.updateUserCode(params); } + } diff --git a/module-wechat/src/main/resources/mybatis/mapper/miniapp-user-mapper.xml b/module-wechat/src/main/resources/mybatis/mapper/miniapp-user-mapper.xml index c9bac6f4..e2c67b07 100644 --- a/module-wechat/src/main/resources/mybatis/mapper/miniapp-user-mapper.xml +++ b/module-wechat/src/main/resources/mybatis/mapper/miniapp-user-mapper.xml @@ -21,6 +21,7 @@ `app_id` varchar(255) DEFAULT NULL COMMENT 'appid', `open_id` varchar(255) DEFAULT NULL COMMENT 'openid', `user_id` varchar(255) DEFAULT NULL COMMENT '用户ID', + `user_code` varchar(255) DEFAULT NULL COMMENT '用户码', `nick_name` varchar(255) DEFAULT NULL COMMENT '微信昵称', `avatar_url` varchar(500) DEFAULT NULL COMMENT '微信头像', `is_init_account` int(1) DEFAULT '0' COMMENT '是否初始化账户', @@ -28,27 +29,43 @@ PRIMARY KEY (`id`), KEY `app_id` (`app_id`) USING BTREE, KEY `open_id` (`open_id`) USING BTREE, - KEY `user_id` (`user_id`) USING BTREE + KEY `user_id` (`user_id`) USING BTREE, + KEY `user_code` (`user_code`) USING BTREE, ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='小程序用户'; - + INSERT INTO wechat_mini_app_user( app_id, open_id, user_id, + user_code, is_init_account, gmt_create ) VALUES( #{appId}, #{openId}, #{userId}, + #{userCode}, #{isInitAccount}, #{gmtCreate} ) + + + DELETE FROM + wechat_mini_app_user + WHERE + + user_id IN + + #{userIds[${index}]} + + + + UPDATE @@ -74,12 +91,25 @@ + + + UPDATE + wechat_mini_app_user + SET + user_code = #{userCode} + WHERE + app_id = #{appId} + AND + open_id = #{openId} + +