Browse Source

v3/getToken,createQRCode接口修改

dev
尹作梅 6 years ago
parent
commit
be4bcb8a80
  1. 33
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/form/EpdcAppUserRegisterV3FormDTO.java
  2. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
  3. 15
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java
  4. 37
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  5. 16
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  6. 23
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
  7. 71
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  8. 86
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserGridInvitationCodeDTO.java
  9. 27
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcUserGridInvitationCodeFormDTO.java
  10. 135
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserGridInvitationCodeController.java
  11. 43
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridInvitationCodeDao.java
  12. 56
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserGridInvitationCodeEntity.java
  13. 65
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/excel/UserGridInvitationCodeExcel.java
  14. 47
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/redis/UserGridInvitationCodeRedis.java
  15. 99
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridInvitationCodeService.java
  16. 125
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridInvitationCodeServiceImpl.java
  17. 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;
}

5
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);
}
/**

15
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<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);
}
/**
* 完善个人信息不再进行验证手机号
*

37
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<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);
}
}

23
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<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>

71
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<EpdcAppAuthorizationDTO> 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<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
*
@ -698,6 +746,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);
}
/**
* 针对不同用户注册状态进行处理
*

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