From 5e7b0ed4a154ad067cbcf4aa1a1c7cce32f9864c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 26 四月 2024 18:02:17 +0800 Subject: [PATCH] 唯品会链接解析升级 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInviteRecordServiceImpl.java | 172 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 90 insertions(+), 82 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInviteRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInviteRecordServiceImpl.java index 8469a0e..717bb52 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInviteRecordServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInviteRecordServiceImpl.java @@ -1,82 +1,90 @@ -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); + } + +} -- Gitblit v1.8.0