Browse Source

Merge remote-tracking branch 'origin/dev_analysis_0220' into feature/yaoqingma_phone

# Conflicts:
#	esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
dev
liuchuang 6 years ago
parent
commit
04d09f2cd6
  1. 33
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterV3FormDTO.java
  2. 75
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/v2/EpdcCompleteUserInfoFormV2DTO.java
  3. 4
      esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml
  4. 23
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
  5. 36
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java
  6. 39
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  7. 16
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  8. 50
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
  9. 107
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  10. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleOrClosedDTO.java
  11. 7
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml
  12. 86
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridInvitationCodeDTO.java
  13. 27
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserGridInvitationCodeFormDTO.java
  14. 135
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridInvitationCodeController.java
  15. 43
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridInvitationCodeDao.java
  16. 56
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridInvitationCodeEntity.java
  17. 65
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/excel/UserGridInvitationCodeExcel.java
  18. 47
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridInvitationCodeRedis.java
  19. 99
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridInvitationCodeService.java
  20. 125
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridInvitationCodeServiceImpl.java
  21. 30
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridInvitationCodeDao.xml

33
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;
}

75
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;
}

4
esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml

@ -215,10 +215,10 @@
<wx.mp.configs.secret>948aa2f21dbaa3943288ea5b119ac6f2</wx.mp.configs.secret>
<wx.mp.configs.token>111</wx.mp.configs.token>
<wx.mp.configs.aesKey>111</wx.mp.configs.aesKey>
<!--小程序配置-->
<!--党群e家小程序配置-->
<!-- <wx.ma.appId>wxdd8530c5f4926766</wx.ma.appId>-->
<!-- <wx.ma.secret>5bf4fb813145431b3493a10aa7e041e9</wx.ma.secret>-->
<!--先锋市北小程序配置-->
<wx.ma.appId>wx5d3e97461d248397</wx.ma.appId>
<wx.ma.secret>bfed51b731e53db9affb9e6131e7ae12</wx.ma.secret>
<!--工作端小程序-->

23
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;
@ -106,6 +106,7 @@ public class ApiAppUserController {
ValidatorUtils.validateEntity(formDto);
return appUserService.checkRegister(formDto);
}
/**
* 用户生成小程序码
*
@ -116,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);
}
/**
@ -202,12 +204,14 @@ public class ApiAppUserController {
/**
* 更新用户微信信息
* <p>接口过时统一在完善个人信息接口更新微信信息</p>
*
* @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);
@ -241,6 +245,7 @@ public class ApiAppUserController {
public Result<EpdcCompleteUserInfoDTO> prepareCompleteUserInfo(@LoginUser TokenDto tokenDto) {
return appUserService.prepareCompleteUserInfo(tokenDto);
}
/**
* 获取邀请记录
*
@ -264,4 +269,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<String> getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.getUserWxPhone(formDto);
}
}

36
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.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;
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,32 @@ public class ApiAppUserV2Controller {
ValidatorUtils.validateEntity(formDto);
return appUserService.getMaV2Token(formDto);
}
/**
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @Author yinzuomei
* @Description 用户注册获取Token
* @Date 2020/3/1 16:26
**/
@GetMapping("user/ma/v3/getToken")
public Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterV3FormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.getMaV3Token(formDto);
}
/**
* 完善个人信息不再进行验证手机号
*
* @param tokenDto
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @author work@yujt.net.cn
* @date 2020/2/20 17:11
*/
@PostMapping("user/" + Constant.VERSION_CONTROL + "/completeInfo")
public Result<EpdcAppAuthorizationDTO> completeUserInfo(@LoginUser TokenDto tokenDto, @RequestBody EpdcCompleteUserInfoFormV2DTO formDto) {
ValidatorUtils.validateEntity(formDto);
return appUserService.completeUserInfo(tokenDto, formDto);
}
}

39
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;
@ -219,12 +222,14 @@ public interface UserFeignClient {
/**
* 更新用户微信信息
* <p>在完善个人信息时进行更新微信信息不再单独更新</p>
*
* @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);
@ -336,4 +341,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<com.elink.esua.epdc.dto.UserGridInvitationCodeDTO>
* @Author yinzuomei
* @Description 根据用户网格邀请码表主键查询记录
* @Date 2020/3/1 16:30
**/
@GetMapping("app-user/usergridinvitationcode/queryUserGridInvitationCodeDTO/{id}")
Result<UserGridInvitationCodeDTO> queryUserGridInvitationCodeDTO(@PathVariable("id") String id);
/**
* @param userGridInvitationCodeFormDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserGridInvitationCodeDTO>
* @Author yinzuomei
* @Description 查询用户网格邀请码表
* @Date 2020/3/1 17:53
**/
@PostMapping(value = "app-user/usergridinvitationcode/getUserGridInvitationCodeDTO", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<UserGridInvitationCodeDTO> 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);
}

16
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<UserGridInvitationCodeDTO> queryUserGridInvitationCodeDTO(String id) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "queryUserGridInvitationCodeDTO", id);
}
@Override
public Result<UserGridInvitationCodeDTO> 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);
}
}

50
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java

@ -7,8 +7,9 @@ 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.form.v2.EpdcCompleteUserInfoFormV2DTO;
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;
@ -114,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,14 +180,25 @@ public interface AppUserService {
Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterFormDTO formDto);
/**
* 用户注册获取Token
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @params [formDto]
* @author yinzuomei
* @since 2020/03/01 15:21
*/
Result<EpdcAppAuthorizationDTO> getMaV3Token(EpdcAppUserRegisterV3FormDTO formDto);
/**
* 更新用户微信信息
* <p>方法过时统一在完善个人信息接口更新微信信息</p>
*
* @params [userDetail, formDto]
* @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);
/**
@ -189,6 +212,17 @@ public interface AppUserService {
*/
Result<EpdcAppAuthorizationDTO> completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto);
/**
* 用户完善个人信息-保存
*
* @param tokenDto
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO>
* @author work@yujt.net.cn
* @date 2019/10/26 11:05
*/
Result<EpdcAppAuthorizationDTO> completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormV2DTO formDto);
/**
* 用于用户完善个人信息页面获取个人信息
*
@ -215,5 +249,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<String> getUserWxPhone(EpdcAppUserMaInfoFormDTO formDto);
}

107
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 cn.binarywang.wx.miniapp.util.crypt.WxMaCryptUtils;
import com.alibaba.fastjson.JSONObject;
@ -17,20 +19,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 +112,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<EpdcAppAuthorizationDTO> getMpToken(EpdcAppUserTokenFormDTO formDto) {
@ -135,6 +144,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<UserGridInvitationCodeDTO> 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<String> 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
*
@ -684,6 +735,21 @@ public class AppUserServiceImpl implements AppUserService {
return this.dealWithUserRegisterState(userResult.getData(), openId, unionId, IpUtils.getIpAddr(request), formDto.getInviteUserId());
}
@Override
public Result<EpdcAppAuthorizationDTO> getMaV3Token(EpdcAppUserRegisterV3FormDTO formDto) {
EpdcAppUserRegisterFormDTO epdcAppUserRegisterFormDTO = new EpdcAppUserRegisterFormDTO();
Result<UserGridInvitationCodeDTO> 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);
}
/**
* 针对不同用户注册状态进行处理
*
@ -960,6 +1026,23 @@ public class AppUserServiceImpl implements AppUserService {
return null;
}
@Override
public Result<EpdcAppAuthorizationDTO> 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<EpdcAppAuthorizationDTO> 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<EpdcCompleteUserInfoDTO> prepareCompleteUserInfo(TokenDto tokenDto) {
@ -1185,4 +1268,20 @@ public class AppUserServiceImpl implements AppUserService {
}
return result;
}
@Override
public Result<String> 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.getPurePhoneNumber());
}
} catch (WxErrorException e) {
e.printStackTrace();
log.error(e.getError().getErrorMsg());
}
return new Result().error("解析用户手机号失败");
}
}

5
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/issue/IssueWaitHandleOrClosedDTO.java

@ -62,4 +62,9 @@ public class IssueWaitHandleOrClosedDTO implements Serializable {
* 来源话题名称或者党群议事
*/
private String groupName;
/**
* 项目状态 0-处理中5-已关闭10-已结案
*/
private String itemState;
}

7
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/issue/IssueDao.xml

@ -19,11 +19,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}
@ -57,6 +59,9 @@
and trim(issue.GROUP_NAME) !=''
and issue.GROUP_NAME is not null
</if>
<if test="itemState !=null and itemState!=''">
and ei.ITEM_STATE=#{itemState}
</if>
ORDER BY
issue.CREATED_TIME DESC
</select>

86
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

27
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;
}

135
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<PageData<UserGridInvitationCodeDTO>> page(@RequestParam Map<String, Object> params){
PageData<UserGridInvitationCodeDTO> page = userGridInvitationCodeService.page(params);
return new Result<PageData<UserGridInvitationCodeDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<UserGridInvitationCodeDTO> get(@PathVariable("id") String id){
UserGridInvitationCodeDTO data = userGridInvitationCodeService.get(id);
return new Result<UserGridInvitationCodeDTO>().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<String, Object> params, HttpServletResponse response) throws Exception {
List<UserGridInvitationCodeDTO> list = userGridInvitationCodeService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, UserGridInvitationCodeExcel.class);
}
/**
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserGridInvitationCodeDTO>
* @param formDTO
* @Author yinzuomei
* @Description 查询用户邀请码生成记录
* @Date 2020/3/1 17:44
**/
@PostMapping("getUserGridInvitationCodeDTO")
public Result<UserGridInvitationCodeDTO> 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<com.elink.esua.epdc.dto.UserGridInvitationCodeDTO>
* @param id
* @Author yinzuomei
* @Description 根据用户网格邀请码表主键查询记录
* @Date 2020/3/1 16:32
**/
@GetMapping("queryUserGridInvitationCodeDTO/{id}")
public Result<UserGridInvitationCodeDTO> queryUserGridInvitationCodeDTO(@PathVariable("id") String id){
UserGridInvitationCodeDTO data = userGridInvitationCodeService.get(id);
return new Result<UserGridInvitationCodeDTO>().ok(data);
}
}

43
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<UserGridInvitationCodeEntity> {
/**
* @return com.elink.esua.epdc.dto.UserGridInvitationCodeDTO
* @param formDto
* @Author yinzuomei
* @Description 根据网格id邀请人ID查询邀请码
* @Date 2020/3/1 15:29
**/
UserGridInvitationCodeDTO selectUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO formDto);
}

56
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

65
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

47
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}
}

99
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<UserGridInvitationCodeEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<UserGridInvitationCodeDTO>
* @author generator
* @date 2020-03-01
*/
PageData<UserGridInvitationCodeDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<UserGridInvitationCodeDTO>
* @author generator
* @date 2020-03-01
*/
List<UserGridInvitationCodeDTO> list(Map<String, Object> 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<UserGridInvitationCodeDTO> getUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO formDTO);
}

125
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<UserGridInvitationCodeDao, UserGridInvitationCodeEntity> implements UserGridInvitationCodeService {
@Autowired
private UserGridInvitationCodeRedis userGridInvitationCodeRedis;
/**
* 小程序首页
*/
private static String MA_FRONT_PAGE_URL = "pages/index/index";
@Override
public PageData<UserGridInvitationCodeDTO> page(Map<String, Object> params) {
IPage<UserGridInvitationCodeEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserGridInvitationCodeDTO.class);
}
@Override
public List<UserGridInvitationCodeDTO> list(Map<String, Object> params) {
List<UserGridInvitationCodeEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserGridInvitationCodeDTO.class);
}
private QueryWrapper<UserGridInvitationCodeEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserGridInvitationCodeEntity> 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<UserGridInvitationCodeDTO> getUserGridInvitationCodeDTO(EpdcUserGridInvitationCodeFormDTO formDto) {
//1、先查本地是否生成过
UserGridInvitationCodeDTO userGridInvitationCodeDTO=baseDao.selectUserGridInvitationCodeDTO(formDto);
if(null!=userGridInvitationCodeDTO){
return new Result<UserGridInvitationCodeDTO>().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<UserGridInvitationCodeDTO>().ok(dto);
}
}

30
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridInvitationCodeDao.xml

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.dao.UserGridInvitationCodeDao">
<resultMap type="com.elink.esua.epdc.entity.UserGridInvitationCodeEntity" id="userGridInvitationCodeMap">
<result property="id" column="ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="inviteUserId" column="INVITE_USER_ID"/>
<result property="invitationCodeUrl" column="INVITATION_CODE_URL"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="delFlag" column="DEL_FLAG"/>
</resultMap>
<!-- 根据网格id、邀请人ID查询邀请码 -->
<select id="selectUserGridInvitationCodeDTO" parameterType="com.elink.esua.epdc.dto.epdc.form.EpdcUserGridInvitationCodeFormDTO" resultType="com.elink.esua.epdc.dto.UserGridInvitationCodeDTO">
SELECT
*
FROM
epdc_user_grid_invitation_code m
WHERE
m.DEL_FLAG = '0'
AND m.GRID_ID =#{gridId}
AND m.INVITE_USER_ID =#{inviteUserId}
</select>
</mapper>
Loading…
Cancel
Save