diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java index ee96b8f88..00e255789 100644 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java +++ b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamInviteUserVO.java @@ -31,4 +31,6 @@ public class FlowTeamInviteUserVO { private String memberName; private String inviteCode; private Date inviteTime; + + private Integer source; } diff --git a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java index 3e115b43c..ea6cf4e3f 100644 --- a/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java +++ b/accompany-admin/accompany-admin-sdk/src/main/java/com/accompany/admin/vo/flowteam/FlowTeamStatisticUserDetailVO.java @@ -65,4 +65,9 @@ public class FlowTeamStatisticUserDetailVO { * 转赠金额 */ private Double giveMoney = 0D; + + /** + * 邀请码填写类型 + */ + private String sourceName; } diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java index c5457e89a..ded7fd543 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamGroupAdminService.java @@ -71,8 +71,8 @@ public class FlowTeamGroupAdminService { private FlowTeamMemberInviteCodeService flowTeamMemberInviteCodeService; @Autowired private SysConfService sysConfService; - - + + private final static Integer MAX_TEAM_COUNT = 20; @@ -135,7 +135,7 @@ public class FlowTeamGroupAdminService { } PageHelper.startPage(page, pageSize); QueryWrapper query = new QueryWrapper<>(); - query.lambda().eq(FlowTeamInfo::getGroupId, groupId).ne(FlowTeamInfo :: getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); + query.lambda().eq(FlowTeamInfo::getGroupId, groupId).ne(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); List teams = flowTeamInfoService.list(query); List teamList = new ArrayList<>(); teams.forEach( @@ -173,7 +173,7 @@ public class FlowTeamGroupAdminService { } @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void delTeam (String teamId) { + public void delTeam(String teamId) { if (StringUtils.isBlank(teamId)) { throw new ServiceException(BusiStatus.PARAMERROR); } @@ -214,7 +214,7 @@ public class FlowTeamGroupAdminService { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(FlowTeamMember::getMemberPhone, phone) .in(FlowTeamMember::getTeamRole, Arrays.asList(FlowTeamConstant.TeamRole.LEADER, FlowTeamConstant.TeamRole.GROUP_LEADER)) - .eq(FlowTeamMember:: getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); + .eq(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); List teamList = flowTeamMemberService.list(queryWrapper); if (org.springframework.util.CollectionUtils.isEmpty(teamList)) { return null; @@ -244,8 +244,8 @@ public class FlowTeamGroupAdminService { Date now = new Date(); String dataStr = com.accompany.common.utils.DateTimeUtil.convertDate(now, com.accompany.common.utils.DateTimeUtil.DEFAULT_DATE_PATTERN_); Long seq = jedisService.incr(RedisKey.flow_team_id_seq.getKey(dataStr)); - long expireTime = com.accompany.common.utils.DateTimeUtil.getNextDay2(now,1).getTime() - 1; - jedisService.expireAt(RedisKey.flow_team_id_seq.getKey(dataStr),expireTime); + long expireTime = com.accompany.common.utils.DateTimeUtil.getNextDay2(now, 1).getTime() - 1; + jedisService.expireAt(RedisKey.flow_team_id_seq.getKey(dataStr), expireTime); return dataStr + String.format("%04d", seq); } @@ -262,12 +262,12 @@ public class FlowTeamGroupAdminService { private void checkTeamName(String teamName, String teamId) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(FlowTeamInfo::getTeamName, teamName).eq(FlowTeamInfo :: getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); + queryWrapper.lambda().eq(FlowTeamInfo::getTeamName, teamName).eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); FlowTeamInfo flowTeamInfo = flowTeamInfoService.getOne(queryWrapper); - if (null != teamId && flowTeamInfo != null && !flowTeamInfo.getTeamId().equals(teamId)) { + if (null != teamId && flowTeamInfo != null && !flowTeamInfo.getTeamId().equals(teamId)) { throw new ServiceException(BusiStatus.SERVER_BUSY, "小组名称已存在"); } - if (null == teamId && null != flowTeamInfo) { + if (null == teamId && null != flowTeamInfo) { throw new ServiceException(BusiStatus.SERVER_BUSY, "小组名称已存在"); } } @@ -287,7 +287,7 @@ public class FlowTeamGroupAdminService { private List listTeamLeader(String teamId) { QueryWrapper query = new QueryWrapper<>(); query.lambda().eq(FlowTeamMember::getTeamId, teamId) - .eq(FlowTeamMember :: getTeamRole, FlowTeamConstant.TeamRole.LEADER) + .eq(FlowTeamMember::getTeamRole, FlowTeamConstant.TeamRole.LEADER) .ne(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_DELETED); return flowTeamMemberService.list(query); } @@ -305,7 +305,7 @@ public class FlowTeamGroupAdminService { return vo; } - private Integer countGroupValidTeam (Long groupId) { + private Integer countGroupValidTeam(Long groupId) { QueryWrapper query = new QueryWrapper<>(); query.lambda().eq(FlowTeamInfo::getGroupId, groupId) .eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID); @@ -385,16 +385,17 @@ public class FlowTeamGroupAdminService { /** * 获取邀请用户的引流团队信息 + * * @param page * @param pageSize * @param erbanNo * @return */ - public Pagination listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) { + public Pagination listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) { PageHelper.startPage(page, pageSize); List flowTeamInviteUserVOS = flowTeamGroupAdminMapper.listFlowTeamInfoWithUser(erbanNo); PageInfo pageInfo = new PageInfo<>(flowTeamInviteUserVOS); - return new Pagination(pageInfo); + return new Pagination<>(pageInfo); } /** diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java index 0de4f8424..4b2c94a54 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/flowteam/FlowTeamService.java @@ -202,7 +202,7 @@ public class FlowTeamService { } // 校验当前手机号是否加入其它团队 Long joinGroupIdByPhone = flowTeamGroupAdminMapper.getJoinGroupIdByPhone(params.getMemberPhone()); - if (joinGroupIdByPhone != null && !joinGroupIdByPhone.equals(params.getGroupId())) { + if (joinGroupIdByPhone != null && !joinGroupIdByPhone.equals(params.getGroupId())) { throw new ServiceException(BusiStatus.BUSIERROR, "该手机号已被其他团队使用,无法添加成员"); } // 小组最大成员上限 @@ -226,7 +226,7 @@ public class FlowTeamService { List memberInviteCodes = flowTeamMemberInviteCodeMapper.selectList(queryWrapper); if (memberInviteCodes == null || memberInviteCodes.isEmpty()) { addMemberInviteCode(memberId, inviteCodes); - return ; + return; } Map memberCodeMap = memberInviteCodes.stream().collect(Collectors.toMap(FlowTeamMemberInviteCode::getInviteCode, memberInviteCode -> memberInviteCode, (k1, k2) -> k1)); @@ -307,12 +307,12 @@ public class FlowTeamService { if (memberId != null) { queryWrapper.lambda().ne(FlowTeamMember::getMemberId, memberId); } - queryWrapper.lambda().exists("select 1 from flow_team_member_invite_code ic where flow_team_member.member_id = ic.member_id and ic.invite_code = '" + userInviteCode.getInviteCode() +"'"); + queryWrapper.lambda().exists("select 1 from flow_team_member_invite_code ic where flow_team_member.member_id = ic.member_id and ic.invite_code = '" + userInviteCode.getInviteCode() + "'"); queryWrapper.lambda().in(FlowTeamMember::getMemberStatus, Arrays.asList(MEMBER_STATUS_VALID, MEMBER_STATUS_INVALID)); Integer count = flowTeamMemberMapper.selectCount(queryWrapper); if (count > 0) { duplicateCods.add(userInviteCode.getInviteCode()); - return ; + return; } }); @@ -373,12 +373,12 @@ public class FlowTeamService { queryWrapper.lambda().in(FlowTeamMember::getTeamId, teamIdList); } if (StringUtils.isNotBlank(params.getInviteCode())) { - queryWrapper.lambda().exists("select 1 from flow_team_member_invite_code ic where flow_team_member.member_id = ic.member_id and ic.invite_code = '" + params.getInviteCode() +"'"); + queryWrapper.lambda().exists("select 1 from flow_team_member_invite_code ic where flow_team_member.member_id = ic.member_id and ic.invite_code = '" + params.getInviteCode() + "'"); } queryWrapper.lambda().in(FlowTeamMember::getMemberStatus, Arrays.asList(MEMBER_STATUS_VALID, MEMBER_STATUS_INVALID)) .orderByDesc(FlowTeamMember::getTeamRole).orderByDesc(FlowTeamMember::getMemberId); - IPage iPage = new Page<>(params.getPageNumber(),params.getPageSize()); + IPage iPage = new Page<>(params.getPageNumber(), params.getPageSize()); IPage flowTeamMemberIPage = flowTeamMemberMapper.selectPage(iPage, queryWrapper); return buildVoPage(flowTeamMemberIPage); @@ -429,7 +429,7 @@ public class FlowTeamService { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(FlowTeamInfo::getStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID) .in(FlowTeamInfo::getTeamId, teamIds); - return flowTeamInfoService.list(queryWrapper); + return flowTeamInfoService.list(queryWrapper); } private List listFlowTeamMemberInviteCodes(Collection memberIds) { @@ -441,6 +441,7 @@ public class FlowTeamService { /** * 获取分组统计列表 + * * @param params * @return */ @@ -532,6 +533,7 @@ public class FlowTeamService { /** * 分组统计明细 + * * @param params * @return */ @@ -555,13 +557,11 @@ public class FlowTeamService { flowTeamStatisticSummaryVO.setMemberStatus(null); } } + /** * 个人统计明细 */ public List listUserStatisticDetails(FlowTeamStatisticParams params) { -// if (params.getMemberId() == null) { -// throw new ServiceException(BusiStatus.PARAMERROR, "传入的组员Id不能为空"); -// } return flowTeamStatisticMapper.listUserStatisticDetailsV2(params); } @@ -579,7 +579,7 @@ public class FlowTeamService { List flowTeamInfos = listTeam(); List teams = new ArrayList<>(); flowTeamInfos.forEach( - team ->{ + team -> { FlowTeamConfVO.TeamItem item = new FlowTeamConfVO.TeamItem(); item.setTeamId(team.getTeamId()); item.setTeamName(team.getTeamName()); @@ -628,7 +628,7 @@ public class FlowTeamService { private boolean isInCanRefillInviteCodeTime(Users user) { FlowTeamConfVO flowTeamConfVO = getConfig(); - if (user.getCreateTime().getTime() < System.currentTimeMillis() - flowTeamConfVO.getCanRefillInterval() * 60 * 1000) { + if (user.getCreateTime().getTime() < System.currentTimeMillis() - flowTeamConfVO.getCanRefillInterval() * 60 * 1000) { return false; } @@ -655,9 +655,7 @@ public class FlowTeamService { if (StringUtils.isBlank(user.getInviteCode())) { throw new ServiceException(BusiStatus.PARAMERROR, "请填写邀请码"); } - long inviteUid = checkInviteCodeForRefill(user.getInviteCode()); - Users usersByUid = usersService.getUsersByUid(user.getUid()); if (usersByUid == null) { throw new ServiceException(BusiStatus.USERNOTEXISTS); @@ -665,19 +663,18 @@ public class FlowTeamService { if (!isInCanRefillInviteCodeTime(usersByUid)) { throw new ServiceException(BusiStatus.TIME_OUT_TO_REFILL_INVITE_CODE); } - Users userForUpdate = new Users(); userForUpdate.setUid(user.getUid()); userForUpdate.setInviteCode(user.getInviteCode()); userForUpdate.setInviteUid(inviteUid); - usersBaseService.updateUser(userForUpdate); // 绑定用户与引流团队成员的邀请关系 - flowTeamMemberInviteUserBizService.saveFlowTeamMemberInviteUserAsync(user.getInviteCode(), user.getUid()); + flowTeamMemberInviteUserBizService.saveFlowTeamMemberInviteUser(user.getInviteCode(), user.getUid(), FlowTeamConstant.UserSourceType.REPAIR); } /** * 组长添加组内成员 + * * @param params */ public void addTeamMemberByLeader(TeamMemberEditParams params) { @@ -694,8 +691,9 @@ public class FlowTeamService { } /** - * 校验组长操作的邀请码 - *

组长只能操作自己在小组后台生成的邀请码

+ * 校验组长操作的邀请码 + *

组长只能操作自己在小组后台生成的邀请码

+ * * @param inviteCodeList */ private void checkOperateInviteCodeByLeader(List inviteCodeList) { @@ -705,7 +703,7 @@ public class FlowTeamService { .filter(i -> !Constant.InviteCodeGenScene.flow_team.equals(i.getGenScene())).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(notFlowTeamGenInviteCodes)) { List codes = new ArrayList<>(); - notFlowTeamGenInviteCodes.forEach( code -> { + notFlowTeamGenInviteCodes.forEach(code -> { codes.add(code.getInviteCode()); }); String msg = "以下邀请码无权操作:" + StringUtils.join(codes, ",") + "。"; @@ -715,6 +713,7 @@ public class FlowTeamService { /** * 组长编辑组内成员 + * * @param params */ @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") @@ -728,6 +727,7 @@ public class FlowTeamService { /** * 获取小组下的邀请码自动进房列表 + * * @param teamId 小组id * @return */ @@ -740,10 +740,10 @@ public class FlowTeamService { List inviteCodes = flowTeamInviteCodeRecordService.listTeamGenInviteCode(teamIds); List queryErbanNos = StringUtils.isNotBlank(erbanNo) ? convertStringToList(erbanNo) : null; List queryUidList = new ArrayList<>(); - if(!CollectionUtils.isEmpty(queryErbanNos)){ - for(String erbanNoStr : queryErbanNos){ + if (!CollectionUtils.isEmpty(queryErbanNos)) { + for (String erbanNoStr : queryErbanNos) { Users users = usersService.getUserByErbanNo(Long.valueOf(erbanNoStr)); - if(users != null){ + if (users != null) { queryUidList.add(users.getUid()); } } @@ -770,16 +770,16 @@ public class FlowTeamService { } checkTeamRoomInviteCode(teamId, roomInviteCode); RoomInviteCode roomInviteCodeForUpdate = new RoomInviteCode(); - if(id != null){ + if (id != null) { roomInviteCodeForUpdate.setId(id); } - if(erbanNo != null){ + if (erbanNo != null) { Users user = usersService.getUserByErbanNo(erbanNo); - if(user == null){ + if (user == null) { throw new ServiceException(BusiStatus.USERNOTEXISTS); } Room room = roomService.getRoomByUid(user.getUid()); - if(room == null){ + if (room == null) { throw new ServiceException(BusiStatus.ROOMNOTEXIST); } roomInviteCodeForUpdate.setRoomUid(user.getUid()); @@ -797,7 +797,7 @@ public class FlowTeamService { throw new ServiceException(BusiStatus.BUSIERROR, "邀请码已绑定其他房间"); } UserInviteCode specialCode = userInviteCodeService.getByCode(roomInviteCode); - if (specialCode != null){ + if (specialCode != null) { return; } // 校验邀请码是不是自己小组的 @@ -835,8 +835,8 @@ public class FlowTeamService { List teamIdList = Arrays.asList(teamId.split(",")); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(FlowTeamInviteCodeRecord::getTeamId, teamIdList) - .eq(FlowTeamInviteCodeRecord :: getStatus, Constant.status.valid) - .orderByDesc(FlowTeamInviteCodeRecord :: getCreateTime); + .eq(FlowTeamInviteCodeRecord::getStatus, Constant.status.valid) + .orderByDesc(FlowTeamInviteCodeRecord::getCreateTime); if (StringUtils.isNotBlank(inviteCode)) { queryWrapper.lambda().eq(FlowTeamInviteCodeRecord::getInviteCode, inviteCode); } @@ -861,6 +861,7 @@ public class FlowTeamService { /** * 组长生成邀请码 + * * @param teamId * @param genCount * @param creator @@ -907,7 +908,7 @@ public class FlowTeamService { return codeList.size(); } - private List checkGenInviteCode (List codeList) { + private List checkGenInviteCode(List codeList) { List validCodeList = new ArrayList<>(); codeList.forEach(code -> { // 检查邀请码是否已经被使用 @@ -936,7 +937,7 @@ public class FlowTeamService { public List listTeamMember(String teamId) { QueryWrapper query = new QueryWrapper<>(); query.lambda().in(FlowTeamMember::getMemberStatus, FlowTeamConstant.MemberStatus.MEMBER_STATUS_VALID, - FlowTeamConstant.MemberStatus.MEMBER_STATUS_INVALID) + FlowTeamConstant.MemberStatus.MEMBER_STATUS_INVALID) .eq(FlowTeamMember::getTeamId, teamId); return flowTeamMemberService.list(query); } diff --git a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml b/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml index 983318d00..a47784b78 100644 --- a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml +++ b/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamGroupAdminMapper.xml @@ -11,29 +11,41 @@ \ No newline at end of file diff --git a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml b/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml index f67acb3be..e2321ba06 100644 --- a/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml +++ b/accompany-admin/accompany-admin-service/src/main/resources/mapper/FlowTeamStatisticMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java index 8004d1cd4..34ecc6d63 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamAdminController.java @@ -60,7 +60,7 @@ public class FlowTeamAdminController extends BaseController { @PostMapping("/saveMember") public BaseResponseVO saveOrUpdateMember(@RequestBody TeamMemberEditParams params) { - adminLogService.insertLog(getAdminId(),getClass().getCanonicalName(),"saveOrUpdateMember","params===>>params:" + JSON.toJSONString(params)); + adminLogService.insertLog(getAdminId(), getClass().getCanonicalName(), "saveOrUpdateMember", "params===>>params:" + JSON.toJSONString(params)); if (params.getMemberId() != null) { flowTeamService.editTeamMember(params); } else { @@ -92,7 +92,7 @@ public class FlowTeamAdminController extends BaseController { // 设置下载时客户端Excel的名称 String filename = new StrBuilder(teamItem.getTeamName()).append(params.getStartDate()).append("_").append(params.getEndDate()).append("邀请明细.xls").toString(); response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"),"ISO8859-1")); + response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1")); response.setCharacterEncoding("UTF-8"); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); @@ -104,7 +104,7 @@ public class FlowTeamAdminController extends BaseController { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("邀请明细"); - String[] headers = {"邀请码","被邀请用户id", "被邀请用户昵称", + String[] headers = {"邀请码", "邀请码填写类型", "被邀请用户id", "被邀请用户昵称", "被邀请用户注册ip", "被邀请用户手机号", "引入组", "引入人", "新增日期", "充值次数", "充值金额(美元)", "送礼钻石数", @@ -121,6 +121,8 @@ public class FlowTeamAdminController extends BaseController { int cellIdx = 0; row.createCell(cellIdx).setCellValue(item.getInviteCode()); cellIdx++; + row.createCell(cellIdx).setCellValue(item.getSourceName()); + cellIdx++; row.createCell(cellIdx).setCellValue(item.getUserErbanNo()); cellIdx++; row.createCell(cellIdx).setCellValue(item.getUserNickName()); @@ -168,7 +170,7 @@ public class FlowTeamAdminController extends BaseController { // 设置下载时客户端Excel的名称 String filename = new StrBuilder(teamItem.getTeamName()).append(params.getStartDate()).append("_").append(params.getEndDate()).append("明细.xls").toString(); response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"),"ISO8859-1")); + response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1")); response.setCharacterEncoding("UTF-8"); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); @@ -214,7 +216,7 @@ public class FlowTeamAdminController extends BaseController { public void exportUserStatisticDetails(HttpServletResponse response, FlowTeamStatisticParams params) throws IOException { List summaryVOS = flowTeamService.listUserStatisticDetails(params); if (summaryVOS == null || summaryVOS.isEmpty()) { - return ; + return; } FlowTeamStatisticUserDetailVO flowTeamStatisticUserDetailVO = summaryVOS.get(0); Map teamMap = flowTeamService.getTeamMap(); @@ -226,7 +228,7 @@ public class FlowTeamAdminController extends BaseController { .append(flowTeamStatisticUserDetailVO.getTeamMemberName()).append(" ") .append(params.getStartDate()).append("_").append(params.getEndDate()).append("明细.xls").toString(); response.setContentType("application/vnd.ms-excel"); - response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"),"ISO8859-1")); + response.setHeader("Content-disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"), "ISO8859-1")); response.setCharacterEncoding("UTF-8"); OutputStream ouputStream = response.getOutputStream(); workbook.write(ouputStream); @@ -238,7 +240,7 @@ public class FlowTeamAdminController extends BaseController { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("邀请明细"); - String[] headers = {"邀请码", "被邀请用户id", "被邀请用户昵称","被邀请用户注册ip","被邀请用户手机号", "引入人", "新增日期", "充值次数", "充值金额", "送礼金额", + String[] headers = {"邀请码", "被邀请用户id", "被邀请用户昵称", "被邀请用户注册ip", "被邀请用户手机号", "引入人", "新增日期", "充值次数", "充值金额", "送礼金额", "送礼背包金额", "送礼非背包金额", "累计收到转赠次数", "累计收到转赠金额"}; HSSFRow header = sheet.createRow(0); for (int i = 0; i < headers.length; i++) { @@ -289,7 +291,7 @@ public class FlowTeamAdminController extends BaseController { @PostMapping("/refillUserInviteCode") public BaseResponseVO refillInviteCode(@RequestBody Users user) { - adminLogService.insertLog(getAdminId(),getClass().getCanonicalName(),"refillInviteCode","params===>>user:" + JSON.toJSONString(user)); + adminLogService.insertLog(getAdminId(), getClass().getCanonicalName(), "refillInviteCode", "params===>>user:" + JSON.toJSONString(user)); flowTeamService.refillUserInviteCode(user); return new BaseResponseVO(BusinessStatusCodeEnum.SUCCESS); @@ -297,12 +299,13 @@ public class FlowTeamAdminController extends BaseController { /** * 初始化用户与引流小组成员的邀请绑定关系 + * * @return */ @GetMapping("/init/member/inviteUserData") public BaseResponseVO initFlowTeamMemberInviteUserData() { flowTeamMemberInviteUserAdminService.initFlowTeamMemberInviteUserData(); - return new BaseResponseVO(BusinessStatusCodeEnum.SUCCESS); + return new BaseResponseVO(BusinessStatusCodeEnum.SUCCESS); } @GetMapping("/listTeamByGroupId") diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java index a0a842d31..bff9fe490 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/flowteam/FlowTeamGroupAdminController.java @@ -15,6 +15,7 @@ import com.accompany.admin.controller.BaseController; import com.accompany.admin.params.flowteam.FlowTeamEditInviteUserParams; import com.accompany.admin.service.flowteam.FlowTeamGroupAdminService; import com.accompany.admin.service.system.AdminLogService; +import com.accompany.admin.vo.flowteam.FlowTeamInviteUserVO; import com.accompany.common.status.BusiStatus; import com.accompany.core.vo.BaseResponseVO; import io.swagger.annotations.ApiOperation; @@ -42,6 +43,7 @@ public class FlowTeamGroupAdminController extends BaseController { /** * 分页获取团队列表 + * * @param page * @param pageSize * @param groupName @@ -85,6 +87,7 @@ public class FlowTeamGroupAdminController extends BaseController { /** * 团队功能上线时初始化已有的团队与组信息 + * * @return */ // @RequestMapping(value = "/initGroupAndTeam", method = RequestMethod.GET) @@ -95,7 +98,7 @@ public class FlowTeamGroupAdminController extends BaseController { @ApiOperation("获取邀请用户的引流团队信息") @GetMapping("/listFlowTeamInfoWithUser") - public Pagination listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) { + public Pagination listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) { return flowTeamGroupAdminService.listFlowTeamInfoWithUser(page, pageSize, erbanNo); } diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/NewUserListener.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/NewUserListener.java index 2626f1d00..bd91f7efa 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/NewUserListener.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/event/listener/NewUserListener.java @@ -4,13 +4,11 @@ package com.accompany.business.event.listener; import com.accompany.business.event.NewUserEvent; import com.accompany.business.param.neteasepush.NeteaseSendMsgParam; import com.accompany.business.service.SendSysMsgService; -import com.accompany.business.service.user.UserInviteCodeService; import com.accompany.common.config.SystemConfig; import com.accompany.common.constant.Attach; import com.accompany.common.constant.Constant; import com.accompany.core.model.Users; import com.alibaba.fastjson.JSONObject; -import com.xuanyin.flowteam.service.FlowTeamMemberInviteUserBizService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; @@ -21,10 +19,6 @@ import org.springframework.stereotype.Component; @Slf4j public class NewUserListener implements ApplicationListener { - @Autowired - private UserInviteCodeService userInviteCodeService; - @Autowired - private FlowTeamMemberInviteUserBizService flowTeamMemberInviteUserBizService; @Autowired private SendSysMsgService sendSysMsgService; @@ -33,12 +27,6 @@ public class NewUserListener implements ApplicationListener { public void onApplicationEvent(NewUserEvent event) { Users user = (Users) event.getSource(); Long uid = user.getUid(); - - // 初始化用户邀请码 - userInviteCodeService.initUserInivteCode(uid); - // 绑定与引流小组成员的邀请关系 - flowTeamMemberInviteUserBizService.saveFlowTeamMemberInviteUserAsync(user.getInviteCode(), uid); - log.info("首次登录版本小秘书登录消息, {} ", uid); sendFirstLoginMsgToUser(user); } @@ -48,23 +36,18 @@ public class NewUserListener implements ApplicationListener { */ private void sendFirstLoginMsgToUser(Users u) { Long uid = u.getUid(); - String msg = "Hi!歡迎你的到來!為了方便您的使用,可前往【我的】-【設置】去設置登錄密碼喔>>"; - Attach attach = new Attach(); attach.setFirst(Constant.DefineProtocol.CUSTOM_MESS_HEAD_SECRETARY); attach.setSecond(Constant.DefineProtocol.CUSTOM_MESS_SUB_SECRETARY_INTRACTION); - JSONObject jsonObject = new JSONObject(); jsonObject.put("title", msg); jsonObject.put("msg", msg); jsonObject.put("routerType", Constant.SecretarySkipType.SET_PASSWORD); attach.setData(jsonObject); - NeteaseSendMsgParam neteaseSendMsgParam = new NeteaseSendMsgParam(); neteaseSendMsgParam.setType(Constant.DefineProtocol.CUSTOM_MESS_DEFINE); neteaseSendMsgParam.setFrom(SystemConfig.secretaryUid); - neteaseSendMsgParam.setOpe(0); neteaseSendMsgParam.setTo(uid.toString()); neteaseSendMsgParam.setAttach(attach); diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/user/UserInviteCodeService.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/user/UserInviteCodeService.java index 3cf855236..494ac6c45 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/user/UserInviteCodeService.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/service/user/UserInviteCodeService.java @@ -33,8 +33,8 @@ public class UserInviteCodeService extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(UserInviteCode::getUid, uid) - .eq(UserInviteCode::getStatus, INVITE_CODE_STATUS_VALID) - .orderByDesc(UserInviteCode::getCreateTime); + .eq(UserInviteCode::getStatus, INVITE_CODE_STATUS_VALID) + .orderByDesc(UserInviteCode::getCreateTime); List userInviteCodes = userInviteCodeMapper.selectList(queryWrapper); List primaryInviteCodes = userInviteCodes.stream().filter(UserInviteCode::getIsPrimary).collect(Collectors.toList()); @@ -49,7 +49,7 @@ public class UserInviteCodeService extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(UserInviteCode::getInviteCode, code) .eq(UserInviteCode::getStatus, INVITE_CODE_STATUS_VALID) @@ -57,17 +57,15 @@ public class UserInviteCodeService extends ServiceImpl usersList = this.usersMapper.selectByExample(usersExample); - for (Users user: usersList) { + for (Users user : usersList) { user.setNick(user.getNick() == null ? null : SensitiveFilterUtil.getStringSensitiveFilter(user.getNick())); user.setUserDesc(user.getUserDesc() == null ? null : SensitiveFilterUtil.getStringSensitiveFilter(user.getUserDesc())); this.jedisService.hset(RedisKey.user.getKey(), user.getUid().toString(), this.gson.toJson(user)); @@ -726,12 +734,11 @@ public class UsersService extends BaseService { if (account == null) { return new BusiResult<>(BusiStatus.USERNOTEXISTS); } - Users userDb = usersMapper.selectByPrimaryKey(users.getUid()); String avatarUrl = users.getAvatar(); boolean isReview = false; if (!BlankUtil.isBlank(avatarUrl)) { - if (ObjectUtil.isNull(userDb)){ + if (ObjectUtil.isNull(userDb)) { users.setAvatar(avatarUrl); } else { users.setAvatar(null); @@ -740,18 +747,14 @@ public class UsersService extends BaseService { } } Byte operType = null; - Date date = new Date(); boolean hasRegPacket = false;//如果有被邀请人,判断是被邀请人是否能收到邀请红包 - if (null == userDb) {// 第一次登录 log.info("用户第一次注册,uid:" + users.getUid()); operType = 2; - if (null == users.getBirth()) { users.setBirth(new Date(0)); } - String phone = account.getPhone(); if (StringUtils.isNotBlank(phone)) { users.setPhone(phone); @@ -769,7 +772,7 @@ public class UsersService extends BaseService { users.setLastLoginIp(account.getRegisterIp()); users.setLastLoginRegion(regionService.getRegion(account.getRegisterIp())); } - hasRegPacket = checkHasInviteRegisterPacket(users.getShareUid(), deviceInfo); + hasRegPacket = checkHasInviteRegisterPacket(users.getShareUid()); users.setErbanNo(account.getErbanNo()); users.setCreateTime(date); users.setUpdateTime(date); @@ -778,36 +781,33 @@ public class UsersService extends BaseService { } logger.info("saveOrUpdateUserByUidV2 users before insert: {}", JSONObject.toJSONString(users)); usersMapper.insertSelective(users); - //用户注册的时候给用户创建钱包 userPurseService.createUserPurse(users.getUid()); - + Long uid = users.getUid(); + String inviteCode = users.getInviteCode(); + // 初始化用户邀请码 + userInviteCodeService.initUserInviteCode(uid); + // 绑定与引流小组成员的邀请关系 + flowTeamMemberInviteUserBizService.saveFlowTeamMemberInviteUser(inviteCode, uid, FlowTeamConstant.UserSourceType.SELF); Byte gender = null != users.getGender() ? users.getGender() : Constant.UserGender.MALE; erBanNetEaseService.updateUserGenderOnly(String.valueOf(users.getUid()), gender); - //新创建的用户 applicationContext.publishEvent(new NewUserEvent(users)); - deleteUserRelateCaches(users); addCurrentDayUserCache(users); } else { checkCanUpdateUserInfo(users); - operType = 1; users.setUpdateTime(date); usersBaseService.updateUser(users); - // 更新用户房间头像 - //usersMapper.updateUserRoom(users.getUid()); } // 更新声音 if (StringUtils.isNotBlank(users.getUserVoice()) && users.getVoiceDura() != null) { this.voiceService.updateHistoryVersionVoice(userDb, users); } - String nick = users.getNick(); String avatar = ObjectUtil.isNull(userDb) ? users.getAvatar() : userDb.getAvatar(); String uidStr = String.valueOf(users.getUid()); - BaseNetEaseRet baseNetEaseRet = erBanNetEaseService.updateUserInfo(uidStr, nick, avatar); if (200 != baseNetEaseRet.getCode()) { log.info("更新网易云账号信息异常accid=" + uidStr + ",uid=" + users.getUid() + "异常编码=" + baseNetEaseRet.getCode()); @@ -821,9 +821,7 @@ public class UsersService extends BaseService { userVo.setNewAvatar(jedisService.hget(RedisKey.user_avatar_under_review.getKey(), String.valueOf(users.getUid()))); } ReplaceDomainUtil.handlerForObject(userVo); - applicationContext.publishEvent(new RoomCacheDealEvent(users.getUid())); - return new BusiResult<>(userVo); } @@ -860,29 +858,12 @@ public class UsersService extends BaseService { this.jedisService.hdel(RedisKey.user_summary.getKey(), user.getUid().toString()); } - public boolean checkHasInviteRegisterPacket(Long shareUid, DeviceInfo curDeviceInfo) { - boolean result = false; + public boolean checkHasInviteRegisterPacket(Long shareUid) { if (shareUid != null) { return true; } else { return false; } - // if(shareUid==null){ - // return result; - // } - // if(curDeviceInfo==null){//版本稳定之后修改 - // return true; - // } - // Users users=getUsersByUid(shareUid); - // if(users==null){ - // return result; - // } - // //被邀请人与邀请人有着相同的imei号或者deviceId,邀请无效,不给红包 - //// if(curDeviceInfo.getImei().equals(users.getImei())||curDeviceInfo.getDeviceId().equals(curDeviceInfo.getDeviceId())) { - //// return result; - //// } - // result =true; - // return result; } public Users fillDeviceInfo(Users users, DeviceInfo deviceInfo) { @@ -1017,15 +998,15 @@ public class UsersService extends BaseService { int size = erbanNoList.size(); String[] erbanStrArray = erbanNoList.stream().map(Object::toString).toArray(String[]::new); List usersListStr = jedisService.hmread(RedisKey.user_erban_no.getKey(), erbanStrArray); - if (CollectionUtils.isEmpty(usersListStr)){ + if (CollectionUtils.isEmpty(usersListStr)) { return listUsersFromDbInErbanNos(erbanNoList); } List usersList = usersListStr.stream() - .filter(str->StringUtils.isNotBlank(str) && !ApplicationConstant.NULL_JSON_OBJECT.equals(str)) - .map(str->gson.fromJson(str, Users.class)).collect(Collectors.toList()); - if (usersList.size() < size){ + .filter(str -> StringUtils.isNotBlank(str) && !ApplicationConstant.NULL_JSON_OBJECT.equals(str)) + .map(str -> gson.fromJson(str, Users.class)).collect(Collectors.toList()); + if (usersList.size() < size) { Set cacheErbanNos = usersList.stream().map(Users::getErbanNo).collect(Collectors.toSet()); - List dbErbanNos = erbanNoList.stream().filter(erbanNo->!cacheErbanNos.contains(erbanNo)).collect(Collectors.toList()); + List dbErbanNos = erbanNoList.stream().filter(erbanNo -> !cacheErbanNos.contains(erbanNo)).collect(Collectors.toList()); usersList.addAll(listUsersFromDbInErbanNos(dbErbanNos)); } return usersList; @@ -1039,7 +1020,7 @@ public class UsersService extends BaseService { return null; } - for (Users user: usersList){ + for (Users user : usersList) { user.setNick(user.getNick() == null ? null : SensitiveFilterUtil.getStringSensitiveFilter(user.getNick())); user.setUserDesc(user.getUserDesc() == null ? null : SensitiveFilterUtil.getStringSensitiveFilter(user.getUserDesc())); @@ -1510,15 +1491,15 @@ public class UsersService extends BaseService { String[] uidstrArray = uidsList.stream().map(Object::toString).toArray(String[]::new); List usersListStr = jedisService.hmread(RedisKey.user.getKey(), uidstrArray); - if (CollectionUtils.isEmpty(usersListStr)){ + if (CollectionUtils.isEmpty(usersListStr)) { return listUsersFromDbInUids(uidsList); } List usersList = usersListStr.stream() - .filter(str->StringUtils.isNotBlank(str) && !ApplicationConstant.NULL_JSON_OBJECT.equals(str)) - .map(str->gson.fromJson(str, Users.class)).collect(Collectors.toList()); - if (usersList.size() < size){ + .filter(str -> StringUtils.isNotBlank(str) && !ApplicationConstant.NULL_JSON_OBJECT.equals(str)) + .map(str -> gson.fromJson(str, Users.class)).collect(Collectors.toList()); + if (usersList.size() < size) { Set cacheUids = usersList.stream().map(Users::getUid).collect(Collectors.toSet()); - List dbUids = uidsList.stream().filter(uid->!cacheUids.contains(uid)).collect(Collectors.toList()); + List dbUids = uidsList.stream().filter(uid -> !cacheUids.contains(uid)).collect(Collectors.toList()); usersList.addAll(listUsersFromDbInUids(dbUids)); } return usersList; @@ -1527,7 +1508,7 @@ public class UsersService extends BaseService { public Map getUsersMapByUids(List uids) { List usersList = getUsersListByUids(uids); - return usersList.stream().collect(Collectors.toMap(Users::getUid, u->u)); + return usersList.stream().collect(Collectors.toMap(Users::getUid, u -> u)); } diff --git a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/user/UsersController.java b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/user/UsersController.java index 1dd563002..33f1263e4 100644 --- a/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/user/UsersController.java +++ b/accompany-business/accompany-business-web/src/main/java/com/accompany/business/controller/user/UsersController.java @@ -30,6 +30,7 @@ import com.accompany.business.vo.user.PrivacyVo; import com.accompany.common.annotation.Authorization; import com.accompany.common.constant.Constant; import com.accompany.common.device.DeviceInfo; +import com.accompany.common.exception.ApiException; import com.accompany.common.redis.RedisKey; import com.accompany.common.result.BusiResult; import com.accompany.common.status.BusiStatus; @@ -138,7 +139,7 @@ public class UsersController extends BaseController { CountDownLatch cdl = new CountDownLatch(4); boolean isSelft = this.getUid().equals(uid); - bizExecutor.execute(()->{ + bizExecutor.execute(() -> { try { if (!isSelft) { userVo.setPrivatePhoto(privatePhotoService.dealPrivatePhotoVo(userVo.getPrivatePhoto())); @@ -160,7 +161,7 @@ public class UsersController extends BaseController { } userVo.setBanAccount(accountBlockService.checkAccountBlock(userVo.getErbanNo(), userVo.getPhone())); - } catch (Exception e){ + } catch (Exception e) { logger.error("[getUserByUid] 查询 {} 个人信息类信息 异常 ", uid, e); throw new ServiceException(BusiStatus.SERVER_BUSY); } finally { @@ -168,7 +169,7 @@ public class UsersController extends BaseController { } }); - bizExecutor.execute(()->{ + bizExecutor.execute(() -> { try { //过滤自定义敏感词 String filterNick = dfaService.filterWord(userVo.getNick()); @@ -185,7 +186,7 @@ public class UsersController extends BaseController { List labels = labelService.listByUid(uid); userVo.setLabels(labels); - } catch (Exception e){ + } catch (Exception e) { logger.error("[getUserByUid] 查询 {} 个人信息类信息 异常 ", uid, e); throw new ServiceException(BusiStatus.SERVER_BUSY); } finally { @@ -193,7 +194,7 @@ public class UsersController extends BaseController { } }); - bizExecutor.execute(()->{ + bizExecutor.execute(() -> { try { //处理话题 IPage worldIPage = worldService.queryMyJoinWorlds(uid, 1, 20); @@ -228,7 +229,7 @@ public class UsersController extends BaseController { NewUserSayHelloChannel byChannel = newUserSayHelloChannelService.getByChannel(getDeviceInfo(request).getChannel()); userVo.setFromSayHelloChannel(byChannel != null); - } catch (Exception e){ + } catch (Exception e) { logger.error("[getUserByUid] 查询 {} 社交类信息 异常 ", uid, e); throw new ServiceException(BusiStatus.SERVER_BUSY); } finally { @@ -236,7 +237,7 @@ public class UsersController extends BaseController { } }); - bizExecutor.execute(()->{ + bizExecutor.execute(() -> { try { // 查询用户是否满足首充激励条件 Boolean isFirstCharge = firstChargeRewardService.isFirstCharge(uid); @@ -269,7 +270,7 @@ public class UsersController extends BaseController { userVo.setMicNickColor(micNickColour == null ? null : micNickColour.getItemValue()); } } - } catch (Exception e){ + } catch (Exception e) { logger.error("[getUserByUid] 查询 {} 充值类信息 异常 ", uid, e); throw new ServiceException(BusiStatus.SERVER_BUSY); } finally { @@ -347,75 +348,63 @@ public class UsersController extends BaseController { return new BusiResult(BusiStatus.SUCCESS, Lists.newArrayList()); } - @RequestMapping(value = "update") + @PostMapping("update") @Authorization - public BusiResult saveOrUpdateUserByUid(UserParam userParam, DeviceInfo deviceInfo) { - BusiResult busiResult = null; + public BusiResult saveOrUpdateUserByUid(UserParam userParam, DeviceInfo deviceInfo) { if (userParam == null || userParam.getUid() == null) { - return new BusiResult(BusiStatus.PARAMETERILLEGAL); + return new BusiResult<>(BusiStatus.PARAMETERILLEGAL); } if (!BlankUtil.isBlank(userParam.getNick())) { if (userParam.getNick().length() > 15) { - return new BusiResult(BusiStatus.NICK_TOO_LONG); + return new BusiResult<>(BusiStatus.NICK_TOO_LONG); } } try { Users usersInfo = usersService.getUsersByUid(userParam.getUid()); //不可修改头像的用户拦截 Map maps = jedisService.hgetAll(RedisKey.room_unchange.getKey()); - List uids = maps.keySet().stream().map(key -> Long.parseLong(key)).collect(Collectors.toList()); + List uids = maps.keySet().stream().map(Long::parseLong).collect(Collectors.toList()); if (uids.contains(userParam.getUid()) && !StringUtils.isBlank(userParam.getAvatar()) && !usersInfo.getAvatar().equalsIgnoreCase(userParam.getAvatar())) { return new BusiResult<>(BusiStatus.ROOM_UNCHANGE); } - Users users = usersService.convertUserParamToUsers(userParam); - busiResult = usersService.saveOrUpdateUserByUidV2(users, deviceInfo); - - UserVo userVo = busiResult.getData(); - if (busiResult.getCode() == 200 && userVo.getOperType() == 2) { - //Async异步执行红包邀请活动,用户首次注册,并且属于被人邀请人,则邀请人获得红包 - // 去除邀请红包和新人红包 -// if (userVo.isHasRegPacket()) { -// userShareRecordService.saveUserShareRegisterRecord(userParam.getShareUid(), userParam.getUid()); -// } -// userPacketService.checkAndGetFirsetPacket(userParam.getUid()); - } + return usersService.saveOrUpdateUserByUidV2(users, deviceInfo); } catch (Exception e) { logger.error("saveOrUpdateUserByUid error..uid=" + userParam.getUid(), e); - return new BusiResult(BusiStatus.BUSIERROR); + if (e instanceof ApiException) { + ApiException exception = (ApiException) e; + return BusiResult.fail(exception.getMessage()); + } else if (e instanceof ServiceException) { + ServiceException exception = (ServiceException) e; + return BusiResult.fail(exception.getMessage()); + } + return BusiResult.fail(BusiStatus.BUSIERROR); } - return busiResult; } - @RequestMapping(value = "updatev2", method = RequestMethod.POST) + @PostMapping("updatev2") @Authorization - public BusiResult saveOrUpdateUserByUidV2(UserParam userParam, DeviceInfo deviceInfo) { - BusiResult busiResult = null; + public BusiResult updateUserV2(UserParam userParam, DeviceInfo deviceInfo) { if (userParam == null || userParam.getUid() == null) { - busiResult = new BusiResult(BusiStatus.PARAMETERILLEGAL); + return BusiResult.fail(BusiStatus.PARAMETERILLEGAL); } - try { Users users = usersService.convertUserParamToUsers(userParam); - busiResult = usersService.saveOrUpdateUserByUidV2(users, deviceInfo); - - UserVo userVo = busiResult.getData(); - if (userVo.getOperType() == 2) { - //Async异步执行红包邀请活动,用户首次注册,并且属于被人邀请人,则邀请人获得红包 - // 去除邀请红包和新人红包 -// if (userVo.isHasRegPacket()) { -// userShareRecordService.saveUserShareRegisterRecord(userParam.getShareUid(), userParam.getUid()); -// } -// userPacketService.checkAndGetFirsetPacket(userParam.getUid()); - } + return usersService.saveOrUpdateUserByUidV2(users, deviceInfo); } catch (Exception e) { logger.error("saveOrUpdateUserByUidV2 error..uid=" + userParam.getUid(), e); - return new BusiResult(BusiStatus.BUSIERROR); + if (e instanceof ApiException) { + ApiException exception = (ApiException) e; + return BusiResult.fail(exception.getMessage()); + } else if (e instanceof ServiceException) { + ServiceException exception = (ServiceException) e; + return BusiResult.fail(exception.getMessage()); + } + return BusiResult.fail(BusiStatus.BUSIERROR); } - return busiResult; } @RequestMapping(value = "/test", method = RequestMethod.POST) @@ -938,6 +927,7 @@ public class UsersController extends BaseController { /** * 绑定手机号 + * * @param phone * @param code * @return @@ -947,11 +937,11 @@ public class UsersController extends BaseController { public BusiResult boundPhone(@RequestParam("phone") String phone, @RequestParam("code") String code, @RequestParam("phoneAreaCode") String phoneAreaCode, - HttpServletRequest request) throws Exception{ + HttpServletRequest request) throws Exception { phone = decryptSensitiveInfo(request, phone); - if (phoneBlackService.checkIsNeedInterceptWithPhoneAreaCode(phoneAreaCode,phone)) { + if (phoneBlackService.checkIsNeedInterceptWithPhoneAreaCode(phoneAreaCode, phone)) { throw new ServiceException(BusiStatus.PHONE_BE_INTERCEPTED); } - return new BusiResult(usersService.boundPhone(getUid(request), phone, code,phoneAreaCode)); + return new BusiResult(usersService.boundPhone(getUid(request), phone, code, phoneAreaCode)); } } diff --git a/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/constant/FlowTeamConstant.java b/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/constant/FlowTeamConstant.java index a2f59d743..46ce2732a 100644 --- a/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/constant/FlowTeamConstant.java +++ b/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/constant/FlowTeamConstant.java @@ -50,4 +50,11 @@ public class FlowTeamConstant { public final static Byte UPDATE = 1; public final static Byte DEL = 2; } + + public interface UserSourceType { + //自填 + int SELF = 0; + //补填 + int REPAIR = 1; + } } diff --git a/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/model/FlowTeamMemberInviteUser.java b/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/model/FlowTeamMemberInviteUser.java index 48bc0ba7c..072b33005 100644 --- a/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/model/FlowTeamMemberInviteUser.java +++ b/xuanyin-flow-team/xuanyin-flow-team-sdk/src/main/java/com/xuanyin/flowteam/model/FlowTeamMemberInviteUser.java @@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -50,4 +51,10 @@ public class FlowTeamMemberInviteUser { private Date createTime; @TableField(value = "update_time") private Date updateTime; + /** + * 来源类型 0 自填 1 补填 + */ + @ApiModelProperty("来源类型 0 自填 1 补填") + @TableField("source") + private Integer source; } diff --git a/xuanyin-flow-team/xuanyin-flow-team-service/src/main/java/com/xuanyin/flowteam/service/FlowTeamMemberInviteUserBizService.java b/xuanyin-flow-team/xuanyin-flow-team-service/src/main/java/com/xuanyin/flowteam/service/FlowTeamMemberInviteUserBizService.java index f9ffabd60..16bf24274 100644 --- a/xuanyin-flow-team/xuanyin-flow-team-service/src/main/java/com/xuanyin/flowteam/service/FlowTeamMemberInviteUserBizService.java +++ b/xuanyin-flow-team/xuanyin-flow-team-service/src/main/java/com/xuanyin/flowteam/service/FlowTeamMemberInviteUserBizService.java @@ -10,6 +10,7 @@ */ package com.xuanyin.flowteam.service; +import com.accompany.common.exception.ApiException; import com.accompany.common.utils.StringUtils; import com.xuanyin.flowteam.constant.FlowTeamConstant; import com.xuanyin.flowteam.model.FlowTeamInfo; @@ -46,19 +47,19 @@ public class FlowTeamMemberInviteUserBizService { /** * 保存引流小组成员与用户之间的邀请关系 + * * @param inviteCode 邀请码 - * @param uid 被邀请用户uid + * @param uid 被邀请用户uid */ - @Async @Transactional(rollbackFor = Exception.class, transactionManager = "mybatisplusTransactionManager") - public void saveFlowTeamMemberInviteUserAsync(String inviteCode, Long uid) { + public void saveFlowTeamMemberInviteUser(String inviteCode, Long uid, Integer source) { if (uid == null || StringUtils.isBlank(inviteCode)) { return; } // 根据邀请码查询对用的引流小组成员与当前所处小组信息 FlowTeamMemberInviteCode flowTeamMemberInviteCode = flowTeamMemberInviteCodeService.getByInviteCode(inviteCode); if (flowTeamMemberInviteCode == null) { - return; + throw new ApiException("請輸入正確的邀請碼"); } Long memberId = flowTeamMemberInviteCode.getMemberId(); FlowTeamMember flowTeamMember = flowTeamMemberService.getById(memberId); @@ -72,16 +73,18 @@ public class FlowTeamMemberInviteUserBizService { if (null == flowTeamInfo) { return; } - - FlowTeamMemberInviteUser flowTeamMemberInviteUser = buildFlowTeamMemberInviteUser(flowTeamMember, inviteCode, uid, flowTeamInfo.getGroupId()); + Date now = new Date(); + FlowTeamMemberInviteUser flowTeamMemberInviteUser = FlowTeamMemberInviteUser.builder() + .groupId(flowTeamInfo.getGroupId()) + .teamId(flowTeamMember.getTeamId()) + .memberId(flowTeamMember.getMemberId()) + .inviteCode(inviteCode) + .uid(uid) + .createTime(now) + .updateTime(now) + .source(source) + .build(); flowTeamMemberInviteUserService.save(flowTeamMemberInviteUser); } - private FlowTeamMemberInviteUser buildFlowTeamMemberInviteUser(FlowTeamMember flowTeamMember, String inviteCode, Long uid, Long groupId) { - return FlowTeamMemberInviteUser.builder().groupId(groupId).teamId(flowTeamMember.getTeamId()) - .memberId(flowTeamMember.getMemberId()).inviteCode(inviteCode).uid(uid) - .createTime(new Date()).updateTime(new Date()).build(); - } - - }