diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/CtleaveMessageServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/CtleaveMessageServiceImpl.java index 471a480..e4c45b4 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/CtleaveMessageServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/CtleaveMessageServiceImpl.java @@ -34,15 +34,18 @@ public class CtleaveMessageServiceImpl implements ICtleaveMeassageService { public int saveCtleaveMeassage(CtLeaveMessage ctLeaveMessage) { // 留言成功发送消息 WxScriptMessage wxScriptMessage = wxScriptMessageMapper.selectOneByMessageType(MessageTypeEnum.SUBMIT_MESSAGE.getCode()); - WxUserScriptLog wxUserScriptLog = new WxUserScriptLog(); - BeanUtils.copyProperties(wxScriptMessage, wxUserScriptLog); - wxUserScriptLog.setId(null); - wxUserScriptLog.setWxUserId(SecurityUtils.getLoginUser().getWxUserMember().getId()); - wxUserScriptLog.setMessageType(WxUserIntegralMessageTypeEnum.USER_REGISTRATION.getCode()); - wxUserScriptLog.setIsCustom(0); - wxUserScriptLog.setTitile(wxScriptMessage.getMessageTitle()); - wxUserScriptLog.setContent(wxScriptMessage.getMessageContent()); - wxUserScriptLogMapper.insertWxUserScriptLog(wxUserScriptLog); + if (wxScriptMessage != null) { + WxUserScriptLog wxUserScriptLog = new WxUserScriptLog(); + BeanUtils.copyProperties(wxScriptMessage, wxUserScriptLog); + wxUserScriptLog.setId(null); + wxUserScriptLog.setWxUserId(SecurityUtils.getLoginUser().getWxUserMember().getId()); + wxUserScriptLog.setMessageType(WxUserIntegralMessageTypeEnum.USER_REGISTRATION.getCode()); + wxUserScriptLog.setIsCustom(0); + wxUserScriptLog.setTitile(wxScriptMessage.getMessageTitle()); + wxUserScriptLog.setContent(wxScriptMessage.getMessageContent()); + wxUserScriptLogMapper.insertWxUserScriptLog(wxUserScriptLog); + } + // 保存消息 CtLeaveMessageEnum ctLeaveMessageEnum = CtLeaveMessageEnum.fromString(ctLeaveMessage.getSource()); diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java index b7bdb86..90057f1 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java @@ -55,6 +55,7 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { private WxUserScriptLogMapper wxUserScriptLogMapper; @Override + @Transactional public LoginUserVo login(String code) throws Exception { // 1、使用临时凭证 code 获取 appi + appsecret + unionid String result = MiniProgramUtils.getSessionKeyAndOpenId(code); @@ -80,6 +81,9 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { // 2.2、微信用户表注册 wxUserMemberMapper.insertWxUserMember(wxUserMember); // 2.3、系统表注册 + /** + * TODO: 分布式事务 + */ RegisterBody registerBody = new RegisterBody(); registerBody.setUsername(wxUserMember.getOpenid()); registerBody.setPassword(UserConstants.WX_SYSTEM_USER_PASSWORD); @@ -90,15 +94,17 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { } // 2.4、用户注册成功发送消息 WxScriptMessage wxScriptMessage = wxScriptMessageMapper.selectOneByMessageType(MessageTypeEnum.USER_REGISTRATION.getCode()); - WxUserScriptLog wxUserScriptLog = new WxUserScriptLog(); - BeanUtils.copyProperties(wxScriptMessage, wxUserScriptLog); - wxUserScriptLog.setId(null); - wxUserScriptLog.setWxUserId(wxUserMember.getId()); - wxUserScriptLog.setMessageType(WxUserIntegralMessageTypeEnum.USER_REGISTRATION.getCode()); - wxUserScriptLog.setIsCustom(0); - wxUserScriptLog.setTitile(wxScriptMessage.getMessageTitle()); - wxUserScriptLog.setContent(wxScriptMessage.getMessageContent()); - wxUserScriptLogMapper.insertWxUserScriptLog(wxUserScriptLog); + if (wxScriptMessage != null) { + WxUserScriptLog wxUserScriptLog = new WxUserScriptLog(); + BeanUtils.copyProperties(wxScriptMessage, wxUserScriptLog); + wxUserScriptLog.setId(null); + wxUserScriptLog.setWxUserId(wxUserMember.getId()); + wxUserScriptLog.setMessageType(WxUserIntegralMessageTypeEnum.USER_REGISTRATION.getCode()); + wxUserScriptLog.setIsCustom(0); + wxUserScriptLog.setTitile(wxScriptMessage.getMessageTitle()); + wxUserScriptLog.setContent(wxScriptMessage.getMessageContent()); + wxUserScriptLogMapper.insertWxUserScriptLog(wxUserScriptLog); + } } // 3、登录请求,获取 token diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java index 9f02ded..ce2bc06 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java @@ -157,6 +157,9 @@ public class WxUserScriptLogController extends BaseController { if (StringUtils.isBlank(wxUserScriptReq.getVideoNo())) { return R.fail("请输入视频号id"); } + if(!wxUserScriptReq.getVideoNo().startsWith("sph")){ + return R.fail("请输入以“sph”开头的视频号id,可在视频号助手获取"); + } if (StringUtils.isBlank(wxUserScriptReq.getFeedId())) { return R.fail("请输入视频号feedid"); } @@ -166,6 +169,9 @@ public class WxUserScriptLogController extends BaseController { if (StringUtils.isBlank(wxUserScriptReq.getVideoNo())) { return R.fail("请输入视频号id"); } + if(!wxUserScriptReq.getVideoNo().startsWith("sph")){ + return R.fail("请输入以“sph”开头的视频号id,可在视频号助手获取"); + } } } wxUserScriptLogService.sendScript(wxUserScriptReq); @@ -225,6 +231,9 @@ public class WxUserScriptLogController extends BaseController { if (StringUtils.isBlank(wxUserScriptReq.getVideoNo())) { return R.fail("请输入视频号id"); } + if(!wxUserScriptReq.getVideoNo().startsWith("sph")){ + return R.fail("请输入以“sph”开头的视频号id,可在视频号助手获取"); + } if (StringUtils.isBlank(wxUserScriptReq.getFeedId())) { return R.fail("请输入视频号feedid"); } @@ -234,6 +243,9 @@ public class WxUserScriptLogController extends BaseController { if (StringUtils.isBlank(wxUserScriptReq.getVideoNo())) { return R.fail("请输入视频号id"); } + if(!wxUserScriptReq.getVideoNo().startsWith("sph")){ + return R.fail("请输入以“sph”开头的视频号id,可在视频号助手获取"); + } } } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java index 50f6868..9e14f5c 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java @@ -148,20 +148,31 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { WxUserMember wxUserMember = new WxUserMember(); BeanUtils.copyProperties(wxUserMemberReq, wxUserMember); // 补充 省市区信息 - SysRegion province = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getProvinceId()); - wxUserMember.setProvince(province.getName()); - SysRegion city = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getCityId()); - wxUserMember.setCity(city.getName()); - SysRegion area = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getAreaId()); - wxUserMember.setArea(area.getName()); + if (wxUserMemberReq.getProvinceId() != null) { + SysRegion province = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getProvinceId()); + wxUserMember.setProvince(province.getName()); + } + if (wxUserMemberReq.getCityId() != null) { + SysRegion city = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getCityId()); + wxUserMember.setCity(city.getName()); + } + if (wxUserMemberReq.getAreaId() != null) { + SysRegion area = sysRegionMapper.selectSysRegionById(wxUserMemberReq.getAreaId()); + wxUserMember.setArea(area.getName()); + } + // 删除用户与标签的关联关系 wxUserTagMapper.deleteWxUserTagByUserId(wxUserMemberReq.getId()); // 添加用户与小程序标签关联 List userIdList = new ArrayList<>(); userIdList.add(wxUserMemberReq.getId().intValue()); - batchAddMiniProgramTag(wxUserMemberReq.getMiniProgramTags(), userIdList); + if (wxUserMemberReq.getMiniProgramTags() != null && wxUserMemberReq.getMiniProgramTags().size() > 0) { + batchAddMiniProgramTag(wxUserMemberReq.getMiniProgramTags(), userIdList); + } // 添加用户与企微标签关联 - batchAddWecomTag(wxUserMemberReq.getWecomTags(), userIdList); + if (wxUserMemberReq.getWecomTags() != null && wxUserMemberReq.getWecomTags().size() > 0) { + batchAddWecomTag(wxUserMemberReq.getWecomTags(), userIdList); + } return wxUserMemberMapper.updateWxUserMember(wxUserMember); } diff --git a/flossom-ui/src/views/system/member/index.vue b/flossom-ui/src/views/system/member/index.vue index 990dd6e..d5084cf 100644 --- a/flossom-ui/src/views/system/member/index.vue +++ b/flossom-ui/src/views/system/member/index.vue @@ -313,7 +313,8 @@ - +