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 3dc1c81e7..755b05c45 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 @@ -7,6 +7,7 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; 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.EpdcUserInfoResultDTO; +import com.elink.esua.epdc.dto.epdc.result.InvitationUserRecordResultDTO; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; @@ -105,6 +106,18 @@ public class ApiAppUserController { ValidatorUtils.validateEntity(formDto); return appUserService.checkRegister(formDto); } + /** + * 用户生成小程序码 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author lipengfei + * @date 2019/12/02 09:14 + */ + @GetMapping("user/createQRCode") + public Result createQRCode(InvitedQRCodeFormDTO formDto) { + return appUserService.createQRCode(formDto); + } /** * 公众号用户登录,获取token @@ -229,5 +242,16 @@ public class ApiAppUserController { public Result prepareCompleteUserInfo(@LoginUser TokenDto tokenDto) { return appUserService.prepareCompleteUserInfo(tokenDto); } + /** + * 获取邀请记录 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author lipengfei + * @date 2019/12/02 15:58 + */ + @GetMapping("user/invitationRecord") + public Result> invitationRecord() { + return appUserService.invitationRecord(); + } } 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 dfe2a598d..da8757aaa 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 @@ -317,4 +317,14 @@ public interface UserFeignClient { **/ @PostMapping("app-user/epdc-app/usergrid/removeGrid") Result removeGrid(EpdcAppRemoveGridFormDTO formDto); + + /** + * 获取邀请记录 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2019/10/23 13:34 + */ + @GetMapping("app-user/epdc-app/user/invitationRecord") + Result> invitationRecord(); } 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 dbfc14e00..308078260 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 @@ -156,4 +156,8 @@ public class UserFeignClientFallback implements UserFeignClient { public Result removeGrid(EpdcAppRemoveGridFormDTO formDto) { return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "removeGrid", formDto); } + @Override + public Result> invitationRecord() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "invitationRecord"); + } } 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 4240885a0..ec1a41bb1 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 @@ -5,6 +5,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result; 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.EpdcUserInfoResultDTO; +import com.elink.esua.epdc.dto.epdc.result.InvitationUserRecordResultDTO; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; @@ -105,6 +106,16 @@ public interface AppUserService { */ Result checkRegister(EpdcCheckRegisterFormDTO formDto); + /** + * 用户生成小程序码 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author lipengfei + * @date 2019/12/02 09:14 + */ + Result createQRCode(InvitedQRCodeFormDTO formDto); + /** * 保存微信用户formId * @@ -188,4 +199,13 @@ public interface AppUserService { */ Result prepareCompleteUserInfo(TokenDto tokenDto); + /** + * 获取邀请记录 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2019/10/23 15:58 + */ + Result> invitationRecord(); + } 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 c3858c5a6..7bdca3fe0 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 @@ -20,6 +20,7 @@ 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.InvitationUserRecordResultDTO; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.group.form.GroupUserFormDTO; import com.elink.esua.epdc.dto.group.form.GroupUserPartyMemberFormDTO; @@ -28,6 +29,7 @@ import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO; import com.elink.esua.epdc.enums.*; import com.elink.esua.epdc.feign.AdminFeignClient; +import com.elink.esua.epdc.feign.OssFeignClient; import com.elink.esua.epdc.feign.UserFeignClient; import com.elink.esua.epdc.jwt.JwtTokenProperties; import com.elink.esua.epdc.jwt.JwtTokenUtils; @@ -44,6 +46,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; import java.util.Date; import java.util.List; @@ -77,6 +82,8 @@ public class AppUserServiceImpl implements AppUserService { @Autowired private JwtTokenProperties jwtTokenProperties; + @Autowired + private OssFeignClient ossFeignClient; @Autowired private JwtTokenUtils jwtTokenUtils; @@ -115,6 +122,63 @@ public class AppUserServiceImpl implements AppUserService { return this.userFeignClient.saveWxFormId(saveFormId); } + /** + * 创建微信小程序码,并上传到oss + * + * @param formDto 小程序码的参数 + * @return java.lang.String 小程序码的下载抵制 + * @author work@yujt.net.cn + * @date 2019/10/22 10:14 + */ + @Override + public Result createQRCode(InvitedQRCodeFormDTO formDto) { + File wxaCodeUnlimit; + try { + wxaCodeUnlimit = wxMaServiceUtils.normalWxMaService().getQrcodeService().createWxaCodeUnlimit(formDto.getGridId().toString()+"-"+formDto.getInviteUserId(), "pages/index/index"); + } catch (WxErrorException e) { + throw new RenException("请求微信接口失败"); + } + + 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("小程序码上传失败"); + } + return ossResult; + } + /** + * File文件转为byte[] + * + * @param file + * @return byte[] + * @author work@yujt.net.cn + * @date 2019/9/19 15:56 + */ + private byte[] fileToByteArray(File file) { + try { + //获取输入流 + FileInputStream fis = new FileInputStream(file); + //新的 byte 数组输出流,缓冲区容量1024byte + ByteArrayOutputStream bos = new ByteArrayOutputStream(1024); + //缓存 + byte[] b = new byte[1024]; + int n; + while ((n = fis.read(b)) != NumConstant.ONE_NEG) { + bos.write(b, NumConstant.ZERO, n); + } + fis.close(); + //改变为byte[] + byte[] data = bos.toByteArray(); + bos.close(); + return data; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } /** * 根据openId登录 @@ -886,4 +950,8 @@ public class AppUserServiceImpl implements AppUserService { formDto.setGridId(userDto.getGridId()); groupTask.joinGridPartyGroup(formDto); } + @Override + public Result> invitationRecord() { + return userFeignClient.invitationRecord(); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/InvitedQRCodeFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/InvitedQRCodeFormDTO.java new file mode 100644 index 000000000..174d7224b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/InvitedQRCodeFormDTO.java @@ -0,0 +1,27 @@ +package com.elink.esua.epdc.dto.epdc.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @Author:lipengfei + * @Date:2019/12/02 13:42 + */ +@Data +public class InvitedQRCodeFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 网格Id + */ + @NotNull(message = "网格Id不能为空") + private Long gridId; + + /** + * 第一页查询发起时的时间 + */ + @NotBlank(message = "邀请人Id不能为空") + private String inviteUserId; +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/InvitationUserRecordResultDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/InvitationUserRecordResultDTO.java new file mode 100644 index 000000000..d4047e811 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/InvitationUserRecordResultDTO.java @@ -0,0 +1,39 @@ +package com.elink.esua.epdc.dto.epdc.result; + +import lombok.Data; + +/** + * @author: lipengfei + * @Date: 2019/12/02 13:34 + * @Description: 用户列表 + */ +@Data +public class InvitationUserRecordResultDTO { + + private static final long serialVersionUID = 1L; + /** + * 用户ID + */ + private String userId; + + /** + * 用户名 + */ + private String nickname; + + /** + * 用户头像 + */ + private String userFace; + + /** + * 加入网格时间 + */ + private String createdTime; + + /** + * 加入网格名称 + */ + private String grid; + +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java index 3084a59de..76f19c88f 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java @@ -1,6 +1,7 @@ package com.elink.esua.epdc.controller; import com.elink.esua.epdc.commons.tools.constant.Constant; +import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; @@ -309,4 +310,17 @@ public class EpdcAppUserController { public Result unauthorizedAmount(EpdcUnauthorizedAmountFromDTO fromDto) { return userService.getAnauthorizedAmount(fromDto); } + /** + * 获取邀请记录 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 16:22 + */ + @GetMapping("invitationRecord") + public Result> invitationRecord() { + List data = userService.invitationRecord(SecurityUser.getUserId()); + 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/UserDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java index bd02252ff..df00bb423 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java @@ -148,4 +148,14 @@ public interface UserDao extends BaseDao { */ int selectOneAnauthorizedAmount(EpdcUnauthorizedAmountFromDTO fromDto); + /** + * 获取邀请记录 + * + * @return java.util.List + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 16:25 + */ + List invitationRecord(@Param("userId") Long userId); + } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java index eaff0357f..7d2d2041c 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java @@ -238,4 +238,14 @@ public interface UserService extends BaseService { * @date 2019/11/19 13:28 */ Result getAnauthorizedAmount(EpdcUnauthorizedAmountFromDTO fromDto); + + /** + * 获取邀请记录 + * + * @return java.util.List + * @params [formDto] + * @author liuchuang + * @since 2019/10/23 16:24 + */ + List invitationRecord(Long userId); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index 1955f39e3..d275e2b6b 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -646,4 +646,9 @@ public class UserServiceImpl extends BaseServiceImpl implem return new Result().ok(baseDao.selectOneAnauthorizedAmount(fromDto)); } + @Override + public List invitationRecord(Long userId) { + return baseDao.invitationRecord(userId); + } + } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index ac714d80a..1a65719a2 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -310,4 +310,29 @@ + + + + + + + + + +