package com.yeshi.fanli.service.impl.user;
|
|
import java.util.Date;
|
|
import javax.annotation.Resource;
|
|
import com.yeshi.fanli.entity.config.SystemConfigKeyEnum;
|
import com.yeshi.fanli.service.inter.config.SystemConfigService;
|
import com.yeshi.fanli.util.wx.MyWXLoginUtil;
|
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.user.UserInviteRecordMapper;
|
import com.yeshi.fanli.entity.bus.user.UserInfo;
|
import com.yeshi.fanli.entity.bus.user.UserInviteRecord;
|
import com.yeshi.fanli.service.inter.user.UserInfoService;
|
import com.yeshi.fanli.service.inter.user.UserInviteRecordService;
|
import org.yeshi.utils.entity.wx.WeiXinUser;
|
|
|
@Service
|
public class UserInviteRecordServiceImpl implements UserInviteRecordService {
|
|
@Resource
|
private UserInviteRecordMapper userInviteRecordMapper;
|
|
@Resource
|
private UserInfoService userInfoService;
|
|
@Resource
|
private SystemConfigService systemConfigService;
|
|
@Async("pushExecutor")
|
@Override
|
public void saveInviteRecord(String code, String uid) {
|
|
// 用户code 未获取到
|
if (code == null || uid == null || uid.trim().length() == 0) {
|
return;
|
}
|
|
// 没得这个人
|
Long invitId = Long.parseLong(uid);
|
|
UserInfo inviter = userInfoService.getUserById(invitId);
|
if (inviter == null) {
|
return;
|
}
|
|
// 获取微信信息
|
String wxGZAppId = systemConfigService.getValueCache(SystemConfigKeyEnum.wxGZAppId, inviter.getSystem());
|
String wxGZSecretId = systemConfigService.getValueCache(SystemConfigKeyEnum.wxGZAppSecret, inviter.getSystem());
|
|
WeiXinUser weiXinUser = MyWXLoginUtil.getWeiXinWYUser(code, wxGZAppId, wxGZSecretId);
|
if (weiXinUser == null) {
|
return;
|
}
|
|
String wxUnionId = weiXinUser.getUnionid();
|
if (wxUnionId == null || wxUnionId.trim().length() == 0) {
|
return;
|
}
|
|
// 是否是邀请者自己识别
|
if (wxUnionId.equals(inviter.getWxUnionId())) {
|
return;
|
}
|
|
UserInviteRecord record = userInviteRecordMapper.getByInviterIdAndUnionid(invitId, wxUnionId);
|
if (record != null) {
|
UserInviteRecord userInviteRecord = new UserInviteRecord();
|
userInviteRecord.setId(record.getId());
|
userInviteRecord.setUpdateTime(new Date());
|
userInviteRecordMapper.updateByPrimaryKey(record);
|
} else {
|
UserInviteRecord userInviteRecord = new UserInviteRecord();
|
userInviteRecord.setInviterId(invitId);
|
userInviteRecord.setWxUnionid(wxUnionId);
|
userInviteRecord.setCreateTime(new Date());
|
userInviteRecord.setUpdateTime(new Date());
|
userInviteRecordMapper.insertSelective(userInviteRecord);
|
}
|
}
|
|
@Override
|
public Long getNewestInviterId(String wxUnionId) {
|
return userInviteRecordMapper.getNewestInviterId(wxUnionId);
|
}
|
|
}
|