Browse Source

邀请二维码和邀请列表接口开发

dev
李鹏飞 6 years ago
parent
commit
a9c9d86b02
  1. 24
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAppUserController.java
  2. 10
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  3. 4
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  4. 20
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java
  5. 68
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  6. 27
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/InvitedQRCodeFormDTO.java
  7. 39
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/InvitationUserRecordResultDTO.java
  8. 14
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
  9. 10
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java
  10. 10
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
  11. 5
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  12. 25
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

24
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<EpdcCompleteUserInfoDTO> prepareCompleteUserInfo(@LoginUser TokenDto tokenDto) {
return appUserService.prepareCompleteUserInfo(tokenDto);
}
/**
* 获取邀请记录
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.InvitationUserRecordResultDTO>>
* @author lipengfei
* @date 2019/12/02 15:58
*/
@GetMapping("user/invitationRecord")
public Result<List<InvitationUserRecordResultDTO>> invitationRecord() {
return appUserService.invitationRecord();
}
}

10
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<java.util.List.InvitationUserRecordResultDTO < com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO>>
* @author work@yujt.net.cn
* @date 2019/10/23 13:34
*/
@GetMapping("app-user/epdc-app/user/invitationRecord")
Result<List<InvitationUserRecordResultDTO>> invitationRecord();
}

4
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<List<InvitationUserRecordResultDTO>> invitationRecord() {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "invitationRecord");
}
}

20
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<EpdcAppAuthorizationDTO> 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<EpdcCompleteUserInfoDTO> prepareCompleteUserInfo(TokenDto tokenDto);
/**
* 获取邀请记录
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO>>
* @author work@yujt.net.cn
* @date 2019/10/23 15:58
*/
Result<List<InvitationUserRecordResultDTO>> invitationRecord();
}

68
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<String> 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<List<InvitationUserRecordResultDTO>> invitationRecord() {
return userFeignClient.invitationRecord();
}
}

27
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;
/**
* @Authorlipengfei
* @Date2019/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;
}

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

14
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<Integer> unauthorizedAmount(EpdcUnauthorizedAmountFromDTO fromDto) {
return userService.getAnauthorizedAmount(fromDto);
}
/**
* 获取邀请记录
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO>>
* @params [formDto]
* @author liuchuang
* @since 2019/10/23 16:22
*/
@GetMapping("invitationRecord")
public Result<List<InvitationUserRecordResultDTO>> invitationRecord() {
List<InvitationUserRecordResultDTO> data = userService.invitationRecord(SecurityUser.getUserId());
return new Result<List<InvitationUserRecordResultDTO>>().ok(data);
}
}

10
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<UserEntity> {
*/
int selectOneAnauthorizedAmount(EpdcUnauthorizedAmountFromDTO fromDto);
/**
* 获取邀请记录
*
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO>
* @params [formDto]
* @author liuchuang
* @since 2019/10/23 16:25
*/
List<InvitationUserRecordResultDTO> invitationRecord(@Param("userId") Long userId);
}

10
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<UserEntity> {
* @date 2019/11/19 13:28
*/
Result<Integer> getAnauthorizedAmount(EpdcUnauthorizedAmountFromDTO fromDto);
/**
* 获取邀请记录
*
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO>
* @params [formDto]
* @author liuchuang
* @since 2019/10/23 16:24
*/
List<InvitationUserRecordResultDTO> invitationRecord(Long userId);
}

5
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<UserDao, UserEntity> implem
return new Result<Integer>().ok(baseDao.selectOneAnauthorizedAmount(fromDto));
}
@Override
public List<InvitationUserRecordResultDTO> invitationRecord(Long userId) {
return baseDao.invitationRecord(userId);
}
}

25
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

@ -310,4 +310,29 @@
</choose>
</select>
<resultMap id="InvitationUserRecordResultMap"
type="com.elink.esua.epdc.dto.epdc.result.InvitationUserRecordResultDTO">
<id column="USER_ID" property="userId"/>
<result column="FACE_IMG" property="nickname"/>
<result column="NICKNAME" property="userFace"/>
<result column="CREATED_TIME" property="createdTime"/>
<result column="GRID" property="grid"/>
</resultMap>
<!--获取居民详情-->
<select id="invitationRecord" resultMap="InvitationUserRecordResultMap">
SELECT
record.USER_ID,
USER.FACE_IMG,
USER.NICKNAME,
record.CREATED_TIME,
record.GRID
FROM
epdc_user_invitation_record record
LEFT JOIN epdc_user USER ON USER.id = record.INVITE_USER_ID
AND record.DEL_FLAG = '0'
WHERE
record.DEL_FLAG = '0'
AND record.INVITE_USER_ID =#{userId}
</select>
</mapper>

Loading…
Cancel
Save