| | |
| | | package com.yeshi.fanli.service.impl.user;
|
| | |
|
| | | import java.util.Date;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | 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.entity.bus.user.WeiXinUser;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInviteRecordService;
|
| | | import com.yeshi.fanli.util.wx.WXLoginUtil;
|
| | |
|
| | |
|
| | | @Service
|
| | | public class UserInviteRecordServiceImpl implements UserInviteRecordService {
|
| | |
|
| | | @Resource
|
| | | private UserInviteRecordMapper userInviteRecordMapper;
|
| | | |
| | | @Resource
|
| | | private UserInfoService userInfoService;
|
| | | |
| | | @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;
|
| | | }
|
| | |
|
| | | // 获取微信信息
|
| | | WeiXinUser weiXinUser = WXLoginUtil.getWeiXinWYUser(code);
|
| | | 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);
|
| | | }
|
| | | |
| | | }
|
| | | 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); |
| | | } |
| | | |
| | | } |