新增邀请码来源标识

This commit is contained in:
liaozetao
2023-11-27 14:47:45 +08:00
parent 29127a8367
commit 92d765394d
15 changed files with 276 additions and 268 deletions

View File

@@ -31,4 +31,6 @@ public class FlowTeamInviteUserVO {
private String memberName;
private String inviteCode;
private Date inviteTime;
private Integer source;
}

View File

@@ -65,4 +65,9 @@ public class FlowTeamStatisticUserDetailVO {
* 转赠金额
*/
private Double giveMoney = 0D;
/**
* 邀请码填写类型
*/
private String sourceName;
}

View File

@@ -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<FlowTeamInviteUserVO> listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) {
PageHelper.startPage(page, pageSize);
List<FlowTeamInviteUserVO> flowTeamInviteUserVOS = flowTeamGroupAdminMapper.listFlowTeamInfoWithUser(erbanNo);
PageInfo<FlowTeamInviteUserVO> pageInfo = new PageInfo<>(flowTeamInviteUserVOS);
return new Pagination(pageInfo);
return new Pagination<>(pageInfo);
}
/**

View File

@@ -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<FlowTeamStatisticUserDetailVO> listUserStatisticDetails(FlowTeamStatisticParams params) {
// if (params.getMemberId() == null) {
// throw new ServiceException(BusiStatus.PARAMERROR, "传入的组员Id不能为空");
// }
return flowTeamStatisticMapper.listUserStatisticDetailsV2(params);
}
@@ -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) {
@@ -696,6 +693,7 @@ public class FlowTeamService {
/**
* 校验组长操作的邀请码
* <p>组长只能操作自己在小组后台生成的邀请码</p>
*
* @param inviteCodeList
*/
private void checkOperateInviteCodeByLeader(List<String> inviteCodeList) {
@@ -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
*/
@@ -861,6 +861,7 @@ public class FlowTeamService {
/**
* 组长生成邀请码
*
* @param teamId
* @param genCount
* @param creator

View File

@@ -23,9 +23,21 @@
</select>
<select id="listFlowTeamInfoWithUser" resultType="com.accompany.admin.vo.flowteam.FlowTeamInviteUserVO">
select u.uid, u.erban_no, u.nick, g.group_name, t.team_name, m.member_name, f.invite_code,
f.create_time inviteTime
from flow_team_member_invite_user f, users u, flow_team_group g, flow_team_info t,
select
u.uid,
u.erban_no,
u.nick,
g.group_name,
t.team_name,
m.member_name,
f.invite_code,
f.create_time inviteTime,
f.source
from
flow_team_member_invite_user f,
users u,
flow_team_group g,
flow_team_info t,
flow_team_member m
where f.uid = u.uid
and f.group_id = g.group_id

View File

@@ -208,7 +208,8 @@
</select>
<select id="listUserStatisticDetails"
resultType="com.accompany.admin.vo.flowteam.FlowTeamStatisticUserDetailVO">
select t.member_name teamMemberName, t.team_id teamId, t.invite_code inviteCode, t.erban_no userErbanNo , t.nick userNickName,t.create_time signUpTime,
select t.member_name teamMemberName, t.team_id teamId, t.invite_code inviteCode, t.erban_no userErbanNo , t.nick
userNickName,t.create_time signUpTime,
sum(t.charge_count) chargeCount,
sum(t.total_charge) chargeMoney,
sum(t.total_send_gift) totalSendGiftMoney,
@@ -278,8 +279,10 @@
0 charge_count,
0 total_charge,
sum(case when gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) total_send_gift,
sum(case when gsr.gift_source = 1 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) total_no_backbag_send_gift,
sum(case when gsr.gift_source = 2 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) total_backbag_send_gift
sum(case when gsr.gift_source = 1 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end)
total_no_backbag_send_gift,
sum(case when gsr.gift_source = 2 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end)
total_backbag_send_gift
from flow_team_member tm,
flow_team_member_invite_code ic,
user_invite_code uic,
@@ -317,7 +320,8 @@
;
</select>
<select id="listUsers" resultType="com.accompany.admin.vo.flowteam.UserWithFlowTeamInfoVO">
select u.uid, u.erban_no erbanNo, u.nick, u.create_time createTime, u.invite_code, ic.member_id memberId from users u
select u.uid, u.erban_no erbanNo, u.nick, u.create_time createTime, u.invite_code, ic.member_id memberId from
users u
left join flow_team_member_invite_code ic on ic.invite_code = u.invite_code
where u.erban_no in
<foreach item="erbanNo" collection="erbanNoList" open="(" separator="," close=")">
@@ -480,7 +484,8 @@
inner join users u on fu.uid = u.uid
left join flow_team_member tm on tm.member_id = fu.member_id
left join charge_record cr
on cr.uid = u.uid and cr.charge_status in (2,6) and cr.charge_prod_id &lt;&gt; 'exchange' and cr.buss_type in (0,4)
on cr.uid = u.uid and cr.charge_status in (2,6) and cr.charge_prod_id &lt;&gt; 'exchange' and cr.buss_type in
(0,4)
and cr.create_time >= u.create_time
<if test="groupApps != null and groupApps.size > 0">
and cr.charge_app in
@@ -542,6 +547,7 @@
t.nick as userNickName,
t.create_time as signUpTime,
t.phone,
t.sourceName,
sum(t.charge_count) as chargeCount,
sum(t.total_charge) as chargeMoney,
sum(t.total_send_gift) as totalSendGiftMoney,
@@ -556,6 +562,7 @@
tm.team_id,
u.invite_code,
u.uid,
if(u.source = 0, '自填', '补填') as sourceName,
u1.erban_no,
u1.nick,
u1.create_time,
@@ -615,6 +622,7 @@
tm.team_id,
u.invite_code,
u.uid,
if(u.source = 0, '自填', '补填') as sourceName,
u1.erban_no,
u1.nick,
u1.create_time,
@@ -622,8 +630,10 @@
0 as charge_count,
0 as total_charge,
sum(case when gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) as total_send_gift,
sum(case when gsr.gift_source = 1 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) as total_no_backbag_send_gift,
sum(case when gsr.gift_source = 2 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) as total_backbag_send_gift,
sum(case when gsr.gift_source = 1 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) as
total_no_backbag_send_gift,
sum(case when gsr.gift_source = 2 and gsr.total_gold_num is not null then gsr.total_gold_num else 0 end) as
total_backbag_send_gift,
0 as give_count,
0 as total_give
from flow_team_member_invite_user as u
@@ -660,6 +670,7 @@
tm.team_id,
u.invite_code,
u.uid,
if(u.source = 0, '自填', '补填') as sourceName,
u1.erban_no,
u1.nick,
u1.create_time,
@@ -701,7 +712,8 @@
group by tm.member_name, tm.team_id, u.invite_code, u.uid, u1.erban_no, u1.nick, u1.create_time, u1.phone
) as t
LEFT JOIN account as a ON t.erban_no = a.erban_no
group by t.member_name, t.team_id, t.invite_code, t.erban_no , t.uid, t.nick, t.create_time, a.register_ip, t.phone
group by t.member_name, t.team_id, t.invite_code, t.erban_no , t.uid, t.nick, t.create_time, a.register_ip,
t.phone
order by t.create_time desc, t.invite_code
;
</select>

View File

@@ -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());
@@ -297,6 +299,7 @@ public class FlowTeamAdminController extends BaseController {
/**
* 初始化用户与引流小组成员的邀请绑定关系
*
* @return
*/
@GetMapping("/init/member/inviteUserData")

View File

@@ -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<FlowTeamInviteUserVO> listFlowTeamInfoWithUser(Integer page, Integer pageSize, String erbanNo) {
return flowTeamGroupAdminService.listFlowTeamInfoWithUser(page, pageSize, erbanNo);
}

View File

@@ -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<NewUserEvent> {
@Autowired
private UserInviteCodeService userInviteCodeService;
@Autowired
private FlowTeamMemberInviteUserBizService flowTeamMemberInviteUserBizService;
@Autowired
private SendSysMsgService sendSysMsgService;
@@ -33,12 +27,6 @@ public class NewUserListener implements ApplicationListener<NewUserEvent> {
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<NewUserEvent> {
*/
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);

View File

@@ -57,17 +57,15 @@ public class UserInviteCodeService extends ServiceImpl<UserInviteCodeMapper, Use
return userInviteCodeMapper.selectOne(queryWrapper);
}
public void initUserInivteCode(Long uid) {
public void initUserInviteCode(Long uid) {
UserInviteCode inviteCode = getInviteCode(uid);
if (inviteCode != null) {
return;
}
UserInviteCode userInviteCode = new UserInviteCode();
userInviteCode.setUid(uid);
userInviteCode.setInviteCode(InviteCodeUtil.getInviteCodeByUid(uid));
userInviteCode.setIsPrimary(true);
userInviteCodeMapper.insert(userInviteCode);
}

View File

@@ -94,6 +94,8 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.xuanyin.flowteam.constant.FlowTeamConstant;
import com.xuanyin.flowteam.service.FlowTeamMemberInviteUserBizService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.math.NumberUtils;
@@ -227,6 +229,12 @@ public class UsersService extends BaseService {
@Autowired
private RechargeUserService rechargeUserService;
@Autowired
private UserInviteCodeService userInviteCodeService;
@Autowired
private FlowTeamMemberInviteUserBizService flowTeamMemberInviteUserBizService;
private static String regEx = "^[0-9]*[1-9][0-9]*$";
public Users getUsersByUid(Long uid) {
@@ -726,7 +734,6 @@ 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;
@@ -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) {

View File

@@ -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;
@@ -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<UserVo> busiResult = null;
public BusiResult<UserVo> saveOrUpdateUserByUid(UserParam userParam, DeviceInfo deviceInfo) {
if (userParam == null || userParam.getUid() == null) {
return new BusiResult<UserVo>(BusiStatus.PARAMETERILLEGAL);
return new BusiResult<>(BusiStatus.PARAMETERILLEGAL);
}
if (!BlankUtil.isBlank(userParam.getNick())) {
if (userParam.getNick().length() > 15) {
return new BusiResult<UserVo>(BusiStatus.NICK_TOO_LONG);
return new BusiResult<>(BusiStatus.NICK_TOO_LONG);
}
}
try {
Users usersInfo = usersService.getUsersByUid(userParam.getUid());
//不可修改头像的用户拦截
Map<String, String> maps = jedisService.hgetAll(RedisKey.room_unchange.getKey());
List<Long> uids = maps.keySet().stream().map(key -> Long.parseLong(key)).collect(Collectors.toList());
List<Long> 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<UserVo> busiResult = null;
public BusiResult<UserVo> updateUserV2(UserParam userParam, DeviceInfo deviceInfo) {
if (userParam == null || userParam.getUid() == null) {
busiResult = new BusiResult<UserVo>(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

View File

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

View File

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

View File

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