From 0e0451fa79474d2ed219c255604bda39b60712c7 Mon Sep 17 00:00:00 2001 From: yujintao Date: Thu, 20 Feb 2020 17:30:02 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=89=8B=E6=9C=BA=E9=AA=8C=E8=AF=81=E7=A0=81=EF=BC=9B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=8E=A5=E5=8F=A3=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=89=8B=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2/EpdcCompleteUserInfoFormV2DTO.java | 75 +++++++++++++++++++ .../epdc/controller/ApiAppUserController.java | 16 ++++ .../controller/v2/ApiAppUserV2Controller.java | 23 +++++- .../esua/epdc/service/AppUserService.java | 27 ++++++- .../epdc/service/impl/AppUserServiceImpl.java | 56 +++++++++++--- 5 files changed, 179 insertions(+), 18 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/v2/EpdcCompleteUserInfoFormV2DTO.java diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/v2/EpdcCompleteUserInfoFormV2DTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/v2/EpdcCompleteUserInfoFormV2DTO.java new file mode 100644 index 000000000..f4094c08c --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/v2/EpdcCompleteUserInfoFormV2DTO.java @@ -0,0 +1,75 @@ +package com.elink.esua.epdc.dto.form.v2; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 移动端完善用户信息 + * + * @author work@yujt.net.cn + * @date 2019/10/26 10:56 + */ +@Data +public class EpdcCompleteUserInfoFormV2DTO implements Serializable { + + private static final long serialVersionUID = 7848126935041704928L; + + @NotBlank(message = "党员标识不能为空") + private String partyFlag; + + /** + * 身份证号码 + */ + private String identityNo; + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空") + private String mobile; + /** + * 真实姓名 + */ + @NotBlank(message = "真实姓名不能为空") + private String realName; + /** + * 所在道路 + */ + @NotBlank(message = "所在道路不能为空") + private String road; + /** + * 小区名 + */ + private String villageName; + /** + * 住处(楼栋-单元-房间) + */ + private String dwellingPlace; + + /** + * 0女,1男 + */ + @NotBlank(message = "性别不能为空") + private String sex; + + /** + * 微信code + */ + private String wxCode; + + /** + * 用户信息 + */ + private String encryptedData; + + /** + * 加密算法的初始向量 + */ + private String iv; + + /** + * 居住网格id + */ + private Long gridId; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java index 8c462b1fa..8f70114a0 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java @@ -106,6 +106,7 @@ public class ApiAppUserController { ValidatorUtils.validateEntity(formDto); return appUserService.checkRegister(formDto); } + /** * 用户生成小程序码 * @@ -241,6 +242,7 @@ public class ApiAppUserController { public Result prepareCompleteUserInfo(@LoginUser TokenDto tokenDto) { return appUserService.prepareCompleteUserInfo(tokenDto); } + /** * 获取邀请记录 * @@ -264,4 +266,18 @@ public class ApiAppUserController { public Result checkWxUnionId(@LoginUser TokenDto tokenDto) { return appUserService.checkWxUnionId(tokenDto); } + + /** + * 获取用户微信手机号 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/2/20 17:23 + */ + @GetMapping("user/ma/getWxPhone") + public Result getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return appUserService.getUserWxPhone(formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java index c06725cd9..569f9d3bb 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java @@ -1,16 +1,18 @@ package com.elink.esua.epdc.controller.v2; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.api.version.ApiVersion; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.form.EpdcAppUserRegisterFormDTO; +import com.elink.esua.epdc.dto.form.EpdcCompleteUserInfoFormDTO; +import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; import com.elink.esua.epdc.service.AppUserService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 用户模块迭代接口 v2 @@ -39,4 +41,19 @@ public class ApiAppUserV2Controller { ValidatorUtils.validateEntity(formDto); return appUserService.getMaV2Token(formDto); } + + /** + * 完善个人信息,不再进行验证手机号 + * + * @param tokenDto + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/2/20 17:11 + */ + @PostMapping("user/" + Constant.VERSION_CONTROL + "/completeInfo") + public Result completeUserInfo(@LoginUser TokenDto tokenDto, @RequestBody EpdcCompleteUserInfoFormV2DTO formDto) { + ValidatorUtils.validateEntity(formDto); + return appUserService.completeUserInfo(tokenDto, formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java index 4155c3c28..9684a4b13 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java @@ -7,6 +7,7 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; import com.elink.esua.epdc.dto.form.*; +import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO; @@ -168,11 +169,10 @@ public interface AppUserService { Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto); /** - * * 更新用户微信信息 * - * @params [userDetail, formDto] * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [userDetail, formDto] * @author liuchuang * @since 2019/10/25 16:26 */ @@ -189,6 +189,17 @@ public interface AppUserService { */ Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto); + /** + * 用户完善个人信息-保存 + * + * @param tokenDto + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/26 11:05 + */ + Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormV2DTO formDto); + /** * 用于用户完善个人信息页面,获取个人信息 * @@ -215,5 +226,15 @@ public interface AppUserService { * @Description 查看用户是否已保存unionId * @Date 2019/12/7 14:32 **/ - Result checkWxUnionId(TokenDto tokenDto); + Result checkWxUnionId(TokenDto tokenDto); + + /** + * 获取用户微信手机号 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/2/20 17:24 + */ + Result getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 92bf20d64..8ce80bd59 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -1,6 +1,8 @@ package com.elink.esua.epdc.service.impl; +import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; import com.elink.esua.epdc.async.GroupTask; import com.elink.esua.epdc.common.token.dto.TokenDto; @@ -23,6 +25,7 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; import com.elink.esua.epdc.dto.form.*; +import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.group.form.GroupUserFormDTO; import com.elink.esua.epdc.dto.group.form.GroupUserPartyMemberFormDTO; import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; @@ -777,16 +780,11 @@ public class AppUserServiceImpl implements AppUserService { return userDto; } - @Override - public Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) { + private Result completeUserInfo(TokenDto tokenDto, UserDTO userDto, String wxCode, String encryptedData, String iv, String smsCode) { - UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class); - userDto.setDeptId(Long.valueOf(infoDto.getGridId())); - userDto.setId(tokenDto.getUserId()); - - if (StringUtils.isNotBlank(infoDto.getWxCode())) { - String sessionKey = this.getUserSessionKey(infoDto.getWxCode()); - WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.normalWxMaService().getUserService().getUserInfo(sessionKey, infoDto.getEncryptedData(), infoDto.getIv()); + if (StringUtils.isNotBlank(wxCode)) { + String sessionKey = this.getUserSessionKey(wxCode); + WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.normalWxMaService().getUserService().getUserInfo(sessionKey, encryptedData, iv); if (StringUtils.isBlank(wxMaUserInfo.getUnionId())) { return new Result().error("解析微信开放平台ID失败"); } @@ -808,7 +806,9 @@ public class AppUserServiceImpl implements AppUserService { userDto.setIdentityNo(null); } // 验证手机号 - this.checkSmsCode(userDto.getMobile(), infoDto.getSmsCode()); + if (StringUtils.isNotBlank(smsCode)) { + this.checkSmsCode(userDto.getMobile(), smsCode); + } // 验证用户提交的信息 Result verifyResult = userFeignClient.verifyUserCompleteData(userDto); if (!verifyResult.success()) { @@ -816,7 +816,7 @@ public class AppUserServiceImpl implements AppUserService { } String userState = verifyResult.getData(); - UserGridRelationDTO userGrid = this.packageUserGridRelationInfo(infoDto.getGridId()); + UserGridRelationDTO userGrid = this.packageUserGridRelationInfo(userDto.getDeptId()); EpdcCompleteAppUserDTO completeAppUserDto = ConvertUtils.sourceToTarget(userDto, EpdcCompleteAppUserDTO.class); completeAppUserDto = this.packageUserCompleteInfo(completeAppUserDto, userState); // 组装对象,准备保存用户信息 @@ -854,12 +854,28 @@ public class AppUserServiceImpl implements AppUserService { formDto.setState(GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue()); groupFeignClient.updateUserPartyMember(formDto); -// groupTask.updateUserPartyMember(formDto); } return new Result().ok(authorizationDto); } + @Override + public Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) { + UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class); + userDto.setDeptId(infoDto.getGridId()); + userDto.setId(tokenDto.getUserId()); + return this.completeUserInfo(tokenDto, userDto, infoDto.getWxCode(), infoDto.getEncryptedData(), infoDto.getIv(), infoDto.getSmsCode()); + } + + + @Override + public Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormV2DTO infoDto) { + UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class); + userDto.setDeptId(infoDto.getGridId()); + userDto.setId(tokenDto.getUserId()); + return this.completeUserInfo(tokenDto, userDto, infoDto.getWxCode(), infoDto.getEncryptedData(), infoDto.getIv(), null); + } + @Override public Result prepareCompleteUserInfo(TokenDto tokenDto) { @@ -1082,4 +1098,20 @@ public class AppUserServiceImpl implements AppUserService { } return result; } + + @Override + public Result getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto) { + try { + WxMaService wxMaService = wxMaServiceUtils.normalWxMaService(); + WxMaJscode2SessionResult wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(formDto.getWxCode()); + WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(wxMaJscode2SessionResult.getSessionKey(), formDto.getEncryptedData(), formDto.getIv()); + if (null != phoneNoInfo) { + return new Result().ok(phoneNoInfo.getPhoneNumber()); + } + } catch (WxErrorException e) { + e.printStackTrace(); + log.error(e.getError().getErrorMsg()); + } + return new Result().error("解析用户手机号失败"); + } } From dd27fc90ec111def0ea77fa2ab3130b7eff1bd79 Mon Sep 17 00:00:00 2001 From: yujintao Date: Thu, 20 Feb 2020 17:32:31 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8D=E5=B8=A6?= =?UTF-8?q?=E5=8C=BA=E5=8F=B7=E7=9A=84=E6=89=8B=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/elink/esua/epdc/service/impl/AppUserServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 8ce80bd59..cbff0bce7 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -1106,7 +1106,7 @@ public class AppUserServiceImpl implements AppUserService { WxMaJscode2SessionResult wxMaJscode2SessionResult = wxMaService.jsCode2SessionInfo(formDto.getWxCode()); WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(wxMaJscode2SessionResult.getSessionKey(), formDto.getEncryptedData(), formDto.getIv()); if (null != phoneNoInfo) { - return new Result().ok(phoneNoInfo.getPhoneNumber()); + return new Result().ok(phoneNoInfo.getPurePhoneNumber()); } } catch (WxErrorException e) { e.printStackTrace(); From 1afd95ff5b77a50242fabf29cf4f7d3a1111bc17 Mon Sep 17 00:00:00 2001 From: yinzuomei Date: Fri, 21 Feb 2020 10:41:20 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=AE=AE=E9=A2=98=E7=AE=A1=E7=90=86--?= =?UTF-8?q?=E5=B7=B2=E8=BD=AC=E9=A1=B9=E7=9B=AE=20=E5=88=97=E8=A1=A8=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=AD=9B=E9=80=89=E6=9D=A1=E4=BB=B6=E5=8F=8A?= =?UTF-8?q?=E5=88=97=E2=80=9C=E9=A1=B9=E7=9B=AE=E7=8A=B6=E6=80=81=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esua/epdc/dto/issue/IssueWaitHandleOrClosedDTO.java | 5 +++++ .../src/main/resources/mapper/issue/IssueDao.xml | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleOrClosedDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleOrClosedDTO.java index 2dfdbd895..8ac176e3b 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleOrClosedDTO.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleOrClosedDTO.java @@ -60,4 +60,9 @@ public class IssueWaitHandleOrClosedDTO implements Serializable { * 来源:话题名称或者‘党群议事’ */ private String groupName; + + /** + * 项目状态 0-处理中,5-已关闭,10-已结案 + */ + private String itemState; } diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml index 9202ad3f0..ce898bf44 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml @@ -18,11 +18,13 @@ WHEN trim( issue.GROUP_NAME ) != '' AND issue.GROUP_NAME IS NOT NULL THEN issue.GROUP_NAME ELSE '党群议事' - END ) AS groupName + END ) AS groupName, + ei.ITEM_STATE as itemState FROM epdc_issue issue LEFT JOIN epdc_events e ON issue.EVENT_ID = e.ID AND e.DEL_FLAG = '0' + left join epdc_item ei on( issue.id=ei.ISSUE_ID and ei.del_flag='0') WHERE issue.DEL_FLAG = '0' and issue.ISSUE_STATE = #{state} @@ -52,6 +54,9 @@ and trim(issue.GROUP_NAME) !='' and issue.GROUP_NAME is not null + + and ei.ITEM_STATE=#{itemState} + ORDER BY issue.CREATED_TIME DESC From 44999bf6b0165ecdbd276ddfc2bb29b4b6636395 Mon Sep 17 00:00:00 2001 From: yujintao Date: Fri, 21 Feb 2020 15:15:45 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=E7=BD=AE?= =?UTF-8?q?=E4=B8=BA=E8=BF=87=E6=97=B6=E7=8A=B6=E6=80=81=EF=BC=9B=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E5=A4=B4=E5=83=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml | 4 ++-- .../elink/esua/epdc/controller/ApiAppUserController.java | 2 ++ .../java/com/elink/esua/epdc/feign/UserFeignClient.java | 8 +++++--- .../java/com/elink/esua/epdc/service/AppUserService.java | 2 ++ .../elink/esua/epdc/service/impl/AppUserServiceImpl.java | 1 + .../elink/esua/epdc/dto/epdc/EpdcCompleteAppUserDTO.java | 5 +++++ 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml index 72bd0392a..f277da2f6 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml @@ -215,10 +215,10 @@ 948aa2f21dbaa3943288ea5b119ac6f2 111 111 - + - + wx5d3e97461d248397 bfed51b731e53db9affb9e6131e7ae12 diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java index 8f70114a0..9bfe36ff5 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java @@ -203,12 +203,14 @@ public class ApiAppUserController { /** * 更新用户微信信息 + *

接口过时,统一在完善个人信息接口更新微信信息

* * @return com.elink.esua.epdc.commons.tools.utils.Result * @params [tokenDto, formDto] * @author liuchuang * @since 2019/10/28 9:58 */ + @Deprecated @PostMapping("user/ma/updateWxInfo") public Result updateWxInfo(@LoginUser TokenDto tokenDto, @RequestBody EpdcAppUserMaInfoFormDTO formDto) { ValidatorUtils.validateEntity(formDto); diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index 963b22a2b..c1669d1fa 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -186,7 +186,7 @@ public interface UserFeignClient { * 获取网格长管理的网格列表 * * @param userId - * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @return com.elink.esua.epdc.commons.tools.utils.Result> * @author work@yujt.net.cn * @date 2019/10/23 13:34 */ @@ -218,12 +218,14 @@ public interface UserFeignClient { /** * 更新用户微信信息 + *

在完善个人信息时进行更新微信信息,不再单独更新。

* * @return com.elink.esua.epdc.commons.tools.utils.Result * @params [userDTO] * @author liuchuang * @since 2019/10/25 17:07 */ + @Deprecated @PostMapping("app-user/epdc-app/user/updateWxInfo") Result updateWxInfo(UserDTO userDTO); @@ -288,7 +290,7 @@ public interface UserFeignClient { /** * @param formDTO - * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @return com.elink.esua.epdc.commons.tools.utils.Result> * @Author yinzuomei * @Description 用户认证审核历史 * @Date 2019/11/22 13:17 @@ -309,7 +311,7 @@ public interface UserFeignClient { /** * 获取邀请记录 * - * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @return com.elink.esua.epdc.commons.tools.utils.Result> * @author work@yujt.net.cn * @date 2019/10/23 13:34 */ diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java index 9684a4b13..e994e88a0 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java @@ -170,12 +170,14 @@ public interface AppUserService { /** * 更新用户微信信息 + *

方法过时,统一在完善个人信息接口更新微信信息

* * @return com.elink.esua.epdc.commons.tools.utils.Result * @params [userDetail, formDto] * @author liuchuang * @since 2019/10/25 16:26 */ + @Deprecated Result updateWxInfo(TokenDto userDetail, EpdcAppUserMaInfoFormDTO formDto); /** diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index cbff0bce7..fb0c439aa 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -789,6 +789,7 @@ public class AppUserServiceImpl implements AppUserService { return new Result().error("解析微信开放平台ID失败"); } userDto.setWxUnionId(wxMaUserInfo.getUnionId()); + userDto.setFaceImg(wxMaUserInfo.getAvatarUrl()); } // 党员提交,验证身份证号 diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcCompleteAppUserDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcCompleteAppUserDTO.java index fc6f1734d..c421c3094 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcCompleteAppUserDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcCompleteAppUserDTO.java @@ -103,4 +103,9 @@ public class EpdcCompleteAppUserDTO implements Serializable { * 居住网格id */ private Long deptId; + + /** + * 用户头像 + */ + private String faceImg; } From be4bcb8a809840db1330e102f5a0757a94e15541 Mon Sep 17 00:00:00 2001 From: yinzuomei Date: Sun, 1 Mar 2020 18:36:24 +0800 Subject: [PATCH 5/5] =?UTF-8?q?v3/getToken,createQRCode=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/EpdcAppUserRegisterV3FormDTO.java | 33 +++++ .../epdc/controller/ApiAppUserController.java | 5 +- .../controller/v2/ApiAppUserV2Controller.java | 15 +- .../esua/epdc/feign/UserFeignClient.java | 37 ++++- .../fallback/UserFeignClientFallback.java | 16 +++ .../esua/epdc/service/AppUserService.java | 23 ++- .../epdc/service/impl/AppUserServiceImpl.java | 71 ++++++++- .../epdc/dto/UserGridInvitationCodeDTO.java | 86 +++++++++++ .../EpdcUserGridInvitationCodeFormDTO.java | 27 ++++ .../UserGridInvitationCodeController.java | 135 ++++++++++++++++++ .../epdc/dao/UserGridInvitationCodeDao.java | 43 ++++++ .../entity/UserGridInvitationCodeEntity.java | 56 ++++++++ .../excel/UserGridInvitationCodeExcel.java | 65 +++++++++ .../redis/UserGridInvitationCodeRedis.java | 47 ++++++ .../UserGridInvitationCodeService.java | 99 +++++++++++++ .../UserGridInvitationCodeServiceImpl.java | 125 ++++++++++++++++ .../mapper/UserGridInvitationCodeDao.xml | 30 ++++ 17 files changed, 903 insertions(+), 10 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterV3FormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridInvitationCodeDTO.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserGridInvitationCodeFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridInvitationCodeController.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridInvitationCodeDao.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridInvitationCodeEntity.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/excel/UserGridInvitationCodeExcel.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridInvitationCodeRedis.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridInvitationCodeService.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridInvitationCodeServiceImpl.java create mode 100644 esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridInvitationCodeDao.xml diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterV3FormDTO.java b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterV3FormDTO.java new file mode 100644 index 000000000..a5da29e09 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterV3FormDTO.java @@ -0,0 +1,33 @@ +package com.elink.esua.epdc.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 用户注册,获取Token + * @Author yinzuomei + * @Date 2020/3/1 16:24 + */ +@Data +public class EpdcAppUserRegisterV3FormDTO implements Serializable { + + private static final long serialVersionUID = 7461926285043647200L; + /** + * 微信code + */ + @NotBlank(message = "微信code不能为空") + private String wxCode; + + /** + * 网格ID + */ + @NotBlank(message = "网格ID或用户网格邀请码ID不能为空") + private String gridId; + + /** + * 邀请人ID + */ + private String inviteUserId; +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java index 9bfe36ff5..435ad40f0 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java @@ -9,8 +9,8 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; import com.elink.esua.epdc.dto.form.*; -import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; +import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO; import com.elink.esua.epdc.service.AppUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -117,7 +117,8 @@ public class ApiAppUserController { */ @GetMapping("user/createQRCode") public Result createQRCode(InvitedQRCodeFormDTO formDto) { - return appUserService.createQRCode(formDto); + ValidatorUtils.validateEntity(formDto); + return appUserService.createQRCodeUnlimited(formDto); } /** diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java index 569f9d3bb..b746b38f1 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java @@ -7,7 +7,7 @@ import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.form.EpdcAppUserRegisterFormDTO; -import com.elink.esua.epdc.dto.form.EpdcCompleteUserInfoFormDTO; +import com.elink.esua.epdc.dto.form.EpdcAppUserRegisterV3FormDTO; import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; import com.elink.esua.epdc.service.AppUserService; @@ -42,6 +42,19 @@ public class ApiAppUserV2Controller { return appUserService.getMaV2Token(formDto); } + /** + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description 用户注册、获取Token + * @Date 2020/3/1 16:26 + **/ + @GetMapping("user/ma/v3/getToken") + public Result getMaV2Token(EpdcAppUserRegisterV3FormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return appUserService.getMaV3Token(formDto); + } + /** * 完善个人信息,不再进行验证手机号 * diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java index c1669d1fa..b187c5e29 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java @@ -3,15 +3,18 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.UserGridInvitationCodeDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.UserWxFormIdDTO; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.*; -import com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO; import com.elink.esua.epdc.feign.fallback.UserFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -337,4 +340,34 @@ public interface UserFeignClient { */ @PostMapping(value = "app-user/epdc-app/user/sentryPost/completeInfo", consumes = MediaType.APPLICATION_JSON_VALUE) Result createPidemicInfo(EpdcAppPidemicCompleteInfoFromDTO formDTO); + + /** + * @param id + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description 根据用户网格邀请码表主键查询记录 + * @Date 2020/3/1 16:30 + **/ + @GetMapping("app-user/usergridinvitationcode/queryUserGridInvitationCodeDTO/{id}") + Result queryUserGridInvitationCodeDTO(@PathVariable("id") String id); + + /** + * @param userGridInvitationCodeFormDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description 查询用户网格邀请码表 + * @Date 2020/3/1 17:53 + **/ + @PostMapping(value = "app-user/usergridinvitationcode/getUserGridInvitationCodeDTO", consumes = MediaType.APPLICATION_JSON_VALUE) + Result getUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO userGridInvitationCodeFormDTO); + + /** + * @param userGridInvitationCodeDTO + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description + * @Date 2020/3/1 17:53 + **/ + @PostMapping(value = "app-user/usergridinvitationcode/updateInvitationCodeUrl", consumes = MediaType.APPLICATION_JSON_VALUE) + Result updateInvitationCodeUrl(UserGridInvitationCodeDTO userGridInvitationCodeDTO); } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java index 4902abd7f..1507ab5e1 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java @@ -4,6 +4,7 @@ import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.UserGridInvitationCodeDTO; import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.UserWxFormIdDTO; import com.elink.esua.epdc.dto.epdc.form.*; @@ -165,4 +166,19 @@ public class UserFeignClientFallback implements UserFeignClient { public Result createPidemicInfo(EpdcAppPidemicCompleteInfoFromDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "createPidemicInfo", formDTO); } + + @Override + public Result queryUserGridInvitationCodeDTO(String id) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "queryUserGridInvitationCodeDTO", id); + } + + @Override + public Result getUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO userGridInvitationCodeFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserGridInvitationCodeDTO", userGridInvitationCodeFormDTO); + } + + @Override + public Result updateInvitationCodeUrl(UserGridInvitationCodeDTO userGridInvitationCodeDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "updateInvitationCodeUrl", userGridInvitationCodeDTO); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java index e994e88a0..80cba6fd8 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java @@ -8,8 +8,8 @@ import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; -import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; +import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO; import java.util.List; @@ -115,8 +115,19 @@ public interface AppUserService { * @author lipengfei * @date 2019/12/02 09:14 */ + @Deprecated Result createQRCode(InvitedQRCodeFormDTO formDto); + /** + * 用户生成小程序码-永久有效,数量暂无限制 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author yinzuomei + * @date 2020/03/01 09:14 + */ + Result createQRCodeUnlimited(InvitedQRCodeFormDTO formDto); + /** * 保存微信用户formId * @@ -168,6 +179,16 @@ public interface AppUserService { */ Result getMaV2Token(EpdcAppUserRegisterFormDTO formDto); + /** + * 用户注册、获取Token + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @params [formDto] + * @author yinzuomei + * @since 2020/03/01 15:21 + */ + Result getMaV3Token(EpdcAppUserRegisterV3FormDTO formDto); + /** * 更新用户微信信息 *

方法过时,统一在完善个人信息接口更新微信信息

diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index fb0c439aa..4a5bc9336 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -17,21 +17,23 @@ import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.enums.GroupUserStateEnum; import com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO; import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; -import com.elink.esua.epdc.dto.epdc.form.EpdcGridLeaderRegisterFormDTO; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO; -import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO; import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.group.form.GroupUserFormDTO; import com.elink.esua.epdc.dto.group.form.GroupUserPartyMemberFormDTO; -import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; +import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO; -import com.elink.esua.epdc.enums.*; +import com.elink.esua.epdc.enums.AppUserAuditStateEnum; +import com.elink.esua.epdc.enums.AppUserRegisterSourceEnum; +import com.elink.esua.epdc.enums.AppUserRegisterWayEnum; +import com.elink.esua.epdc.enums.AppUserStatesEnum; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.feign.GroupFeignClient; import com.elink.esua.epdc.feign.OssFeignClient; @@ -107,6 +109,10 @@ public class AppUserServiceImpl implements AppUserService { //private static String USER_FACE = "https://epdc.elinkchina.com.cn/esua-epdc/static/default/default_user_face.png"; private static String USER_FACE = "https://epdc-shibei.elinkservice.cn/epdcFile/M00/00/00/CgUipV3wgl6Afm4cAAAa8QfEb00266_big.png"; + /** + * 小程序首页 + */ + private static String MA_FRONT_PAGE_URL = "pages/index/index"; @Override public Result getMpToken(EpdcAppUserTokenFormDTO formDto) { @@ -135,6 +141,48 @@ public class AppUserServiceImpl implements AppUserService { return this.userFeignClient.saveWxFormId(saveFormId); } + /** + * 用户生成小程序码-永久有效,数量暂无限制 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author yinzuomei + * @date 2020/03/01 09:14 + */ + @Override + public Result createQRCodeUnlimited(InvitedQRCodeFormDTO formDto) { + //1、先查询是否已经生成过,有则直接返回 + EpdcUserGridInvitationCodeFormDTO userGridInvitationCodeFormDTO = new EpdcUserGridInvitationCodeFormDTO(); + userGridInvitationCodeFormDTO.setGridId(formDto.getGridId().toString()); + userGridInvitationCodeFormDTO.setInviteUserId(formDto.getInviteUserId()); + Result result = userFeignClient.getUserGridInvitationCodeDTO(userGridInvitationCodeFormDTO); + if (!result.success()) { + throw new RenException("用户网格邀请码查询失败"); + } else if (null != result.getData() && StringUtils.isNotBlank(result.getData().getInvitationCodeUrl())) { + return new Result().ok(result.getData().getInvitationCodeUrl()); + } + //2、调用微信接口生成小程序码 + File wxaCodeUnlimit; + try { + wxaCodeUnlimit = wxMaServiceUtils.normalWxMaService().getQrcodeService() + .createWxaCodeUnlimit(result.getData().getId(), MA_FRONT_PAGE_URL, 1280, true, null, false); + } catch (WxErrorException e) { + throw new RenException("请求微信接口失败"); + } + //3、上传到服务器 + UploadToOssDTO dto = new UploadToOssDTO(); + dto.setFileByte(this.fileToByteArray(wxaCodeUnlimit)); + dto.setFileName(wxaCodeUnlimit.getName()); + Result ossResult = ossFeignClient.uploadFile(dto); + if (null == ossResult || !ossResult.success() || null == ossResult.getData()) { + throw new RenException("邀请码上传失败"); + } + //4、回写用户网格邀请码表 + result.getData().setInvitationCodeUrl(ossResult.getData()); + Result updateResult = userFeignClient.updateInvitationCodeUrl(result.getData()); + return ossResult; + } + /** * 创建微信小程序码,并上传到oss * @@ -698,6 +746,21 @@ public class AppUserServiceImpl implements AppUserService { return this.dealWithUserRegisterState(userResult.getData(), openId, unionId, IpUtils.getIpAddr(request), formDto.getInviteUserId()); } + @Override + public Result getMaV3Token(EpdcAppUserRegisterV3FormDTO formDto) { + EpdcAppUserRegisterFormDTO epdcAppUserRegisterFormDTO = new EpdcAppUserRegisterFormDTO(); + Result res = userFeignClient.queryUserGridInvitationCodeDTO(formDto.getGridId()); + if (res.success() && null != res.getData()) { + epdcAppUserRegisterFormDTO.setGridId(Long.valueOf(res.getData().getGridId())); + epdcAppUserRegisterFormDTO.setInviteUserId(res.getData().getInviteUserId()); + } else { + epdcAppUserRegisterFormDTO.setGridId(Long.valueOf(formDto.getGridId())); + epdcAppUserRegisterFormDTO.setInviteUserId(formDto.getInviteUserId()); + } + epdcAppUserRegisterFormDTO.setWxCode(formDto.getWxCode()); + return this.getMaV2Token(epdcAppUserRegisterFormDTO); + } + /** * 针对不同用户注册状态进行处理 * diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridInvitationCodeDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridInvitationCodeDTO.java new file mode 100644 index 000000000..0b7925367 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridInvitationCodeDTO.java @@ -0,0 +1,86 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +@Data +public class UserGridInvitationCodeDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 网格ID + */ + private String gridId; + + /** + * 邀请人ID + */ + private String inviteUserId; + + /** + * 邀请码 + */ + private String invitationCodeUrl; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 删除标记 + */ + private String delFlag; + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserGridInvitationCodeFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserGridInvitationCodeFormDTO.java new file mode 100644 index 000000000..965ec8b3d --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserGridInvitationCodeFormDTO.java @@ -0,0 +1,27 @@ +package com.elink.esua.epdc.dto.epdc.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 根据网格ID、邀请人ID查询 + * @Author yinzuomei + * @Date 2020/3/1 17:38 + */ +@Data +public class EpdcUserGridInvitationCodeFormDTO implements Serializable { + private static final long serialVersionUID = -678481190071802167L; + /** + * 网格ID + */ + @NotBlank(message = "网格ID不能为空") + private String gridId; + + /** + * 邀请人ID + */ + @NotBlank(message = "邀请人ID不能为空") + private String inviteUserId; +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridInvitationCodeController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridInvitationCodeController.java new file mode 100644 index 000000000..c1b9035b0 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridInvitationCodeController.java @@ -0,0 +1,135 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.controller; + +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.AssertUtils; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; +import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; +import com.elink.esua.epdc.dto.UserGridInvitationCodeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGridInvitationCodeFormDTO; +import com.elink.esua.epdc.excel.UserGridInvitationCodeExcel; +import com.elink.esua.epdc.service.UserGridInvitationCodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +@RestController +@RequestMapping("usergridinvitationcode") +public class UserGridInvitationCodeController { + + @Autowired + private UserGridInvitationCodeService userGridInvitationCodeService; + + @GetMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = userGridInvitationCodeService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + UserGridInvitationCodeDTO data = userGridInvitationCodeService.get(id); + return new Result().ok(data); + } + + @PostMapping + public Result save(@RequestBody UserGridInvitationCodeDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + userGridInvitationCodeService.save(dto); + return new Result(); + } + + @PutMapping + public Result update(@RequestBody UserGridInvitationCodeDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + userGridInvitationCodeService.update(dto); + return new Result(); + } + + @DeleteMapping + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + userGridInvitationCodeService.delete(ids); + return new Result(); + } + + @GetMapping("export") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = userGridInvitationCodeService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, UserGridInvitationCodeExcel.class); + } + + /** + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @param formDTO + * @Author yinzuomei + * @Description 查询用户邀请码生成记录 + * @Date 2020/3/1 17:44 + **/ + @PostMapping("getUserGridInvitationCodeDTO") + public Result getUserGridInvitationCodeDTO(@RequestBody EpdcUserGridInvitationCodeFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + return userGridInvitationCodeService.getUserGridInvitationCodeDTO(formDTO); + } + + /** + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @param dto + * @Author yinzuomei + * @Description 回写用户网格邀请码表 + * @Date 2020/3/1 18:00 + **/ + @PostMapping("updateInvitationCodeUrl") + public Result updateInvitationCodeUrl(@RequestBody UserGridInvitationCodeDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + userGridInvitationCodeService.update(dto); + return new Result(); + } + + /** + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @param id + * @Author yinzuomei + * @Description 根据用户网格邀请码表主键查询记录 + * @Date 2020/3/1 16:32 + **/ + @GetMapping("queryUserGridInvitationCodeDTO/{id}") + public Result queryUserGridInvitationCodeDTO(@PathVariable("id") String id){ + UserGridInvitationCodeDTO data = userGridInvitationCodeService.get(id); + return new Result().ok(data); + } +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridInvitationCodeDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridInvitationCodeDao.java new file mode 100644 index 000000000..2653b00a1 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridInvitationCodeDao.java @@ -0,0 +1,43 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.dao; + +import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.dto.UserGridInvitationCodeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGridInvitationCodeFormDTO; +import com.elink.esua.epdc.entity.UserGridInvitationCodeEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +@Mapper +public interface UserGridInvitationCodeDao extends BaseDao { + + /** + * @return com.elink.esua.epdc.dto.UserGridInvitationCodeDTO + * @param formDto + * @Author yinzuomei + * @Description 根据网格id、邀请人ID查询邀请码 + * @Date 2020/3/1 15:29 + **/ + UserGridInvitationCodeDTO selectUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO formDto); +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridInvitationCodeEntity.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridInvitationCodeEntity.java new file mode 100644 index 000000000..951ca3249 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridInvitationCodeEntity.java @@ -0,0 +1,56 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("epdc_user_grid_invitation_code") +public class UserGridInvitationCodeEntity extends BaseEpdcEntity { + + private static final long serialVersionUID = 1L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 邀请人ID + */ + private String inviteUserId; + + /** + * 邀请码 + */ + private String invitationCodeUrl; + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/excel/UserGridInvitationCodeExcel.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/excel/UserGridInvitationCodeExcel.java new file mode 100644 index 000000000..364675ca4 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/excel/UserGridInvitationCodeExcel.java @@ -0,0 +1,65 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +@Data +public class UserGridInvitationCodeExcel { + + @Excel(name = "主键") + private String id; + + @Excel(name = "网格ID") + private String gridId; + + @Excel(name = "邀请人ID") + private String inviteUserId; + + @Excel(name = "邀请码") + private String invitationCodeUrl; + + @Excel(name = "乐观锁") + private Integer revision; + + @Excel(name = "创建人") + private String createdBy; + + @Excel(name = "创建时间") + private Date createdTime; + + @Excel(name = "更新人") + private String updatedBy; + + @Excel(name = "更新时间") + private Date updatedTime; + + @Excel(name = "删除标记") + private String delFlag; + + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridInvitationCodeRedis.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridInvitationCodeRedis.java new file mode 100644 index 000000000..61640c338 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridInvitationCodeRedis.java @@ -0,0 +1,47 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.redis; + +import com.elink.esua.epdc.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +@Component +public class UserGridInvitationCodeRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridInvitationCodeService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridInvitationCodeService.java new file mode 100644 index 000000000..2fcf09cd2 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridInvitationCodeService.java @@ -0,0 +1,99 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.service; + +import com.elink.esua.epdc.commons.mybatis.service.BaseService; +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.UserGridInvitationCodeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGridInvitationCodeFormDTO; +import com.elink.esua.epdc.entity.UserGridInvitationCodeEntity; + +import java.util.List; +import java.util.Map; + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +public interface UserGridInvitationCodeService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-03-01 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-03-01 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return UserGridInvitationCodeDTO + * @author generator + * @date 2020-03-01 + */ + UserGridInvitationCodeDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2020-03-01 + */ + void save(UserGridInvitationCodeDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2020-03-01 + */ + void update(UserGridInvitationCodeDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2020-03-01 + */ + void delete(String[] ids); + + Result getUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO formDTO); +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridInvitationCodeServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridInvitationCodeServiceImpl.java new file mode 100644 index 000000000..9a83845ea --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridInvitationCodeServiceImpl.java @@ -0,0 +1,125 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; +import com.elink.esua.epdc.commons.tools.constant.FieldConstant; +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dao.UserGridInvitationCodeDao; +import com.elink.esua.epdc.dto.UserGridInvitationCodeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcUserGridInvitationCodeFormDTO; +import com.elink.esua.epdc.entity.UserGridInvitationCodeEntity; +import com.elink.esua.epdc.redis.UserGridInvitationCodeRedis; +import com.elink.esua.epdc.service.UserGridInvitationCodeService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 用户网格邀请码表 用户网格邀请码表 + * + * @author qu qu@elink-cn.com + * @since v1.0.0 2020-03-01 + */ +@Service +public class UserGridInvitationCodeServiceImpl extends BaseServiceImpl implements UserGridInvitationCodeService { + + @Autowired + private UserGridInvitationCodeRedis userGridInvitationCodeRedis; + /** + * 小程序首页 + */ + private static String MA_FRONT_PAGE_URL = "pages/index/index"; + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, UserGridInvitationCodeDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, UserGridInvitationCodeDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public UserGridInvitationCodeDTO get(String id) { + UserGridInvitationCodeEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, UserGridInvitationCodeDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(UserGridInvitationCodeDTO dto) { + UserGridInvitationCodeEntity entity = ConvertUtils.sourceToTarget(dto, UserGridInvitationCodeEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(UserGridInvitationCodeDTO dto) { + UserGridInvitationCodeEntity entity = ConvertUtils.sourceToTarget(dto, UserGridInvitationCodeEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + @Override + public Result getUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO formDto) { + //1、先查本地是否生成过 + UserGridInvitationCodeDTO userGridInvitationCodeDTO=baseDao.selectUserGridInvitationCodeDTO(formDto); + if(null!=userGridInvitationCodeDTO){ + return new Result().ok(userGridInvitationCodeDTO); + } + //2、没有,则生成主键 + UserGridInvitationCodeEntity entity = new UserGridInvitationCodeEntity(); + entity.setGridId(formDto.getGridId()); + entity.setInviteUserId(formDto.getInviteUserId()); + insert(entity); + UserGridInvitationCodeDTO dto = ConvertUtils.sourceToTarget(entity, UserGridInvitationCodeDTO.class); + return new Result().ok(dto); + } + +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridInvitationCodeDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridInvitationCodeDao.xml new file mode 100644 index 000000000..efb44a014 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridInvitationCodeDao.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + +