From 744594ef1a2f530fc3e86ea9dc48b62247f79420 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 19 五月 2020 17:13:23 +0800 Subject: [PATCH] 饿了么绘图,添加口碑 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoModifyRecordServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 130 insertions(+), 10 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoModifyRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoModifyRecordServiceImpl.java index 60b16c6..f03770e 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoModifyRecordServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoModifyRecordServiceImpl.java @@ -6,31 +6,66 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import com.aliyun.openservices.ons.api.Message; +import com.aliyun.openservices.ons.api.Producer; +import com.google.gson.Gson; import com.yeshi.fanli.dao.mybatis.user.UserInfoModifyRecordMapper; +import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; +import com.yeshi.fanli.dto.mq.user.body.UserAccountBindingMQMsg; +import com.yeshi.fanli.dto.mq.user.body.UserInfoUpdateMQMsg; +import com.yeshi.fanli.dto.mq.user.body.UserInfoUpdateMQMsg.UserInfoUpdateTypeEnum; +import com.yeshi.fanli.entity.bus.user.BindingAccount; +import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; +import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord; import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum; import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.integral.IntegralGetService; +import com.yeshi.fanli.service.inter.money.extract.BindingAccountService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService; +import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.service.inter.user.integral.IntegralGetService; +import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; +import com.yeshi.fanli.util.rocketmq.MQTopicName; @Service public class UserInfoModifyRecordServiceImpl implements UserInfoModifyRecordService { @Resource private UserInfoModifyRecordMapper userInfoModifyRecordMapper; - + @Resource private IntegralGetService integralGetService; + @Resource + private UserInfoService userInfoService; + + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private BindingAccountService bindingAccountService; + + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + @Resource(name = "producer") + private Producer producer; + @Async() + @Transactional @Override public void addModifyRecord(Long uid, ModifyTypeEnum type, String value) { try { if (uid == null || StringUtil.isNullOrEmpty(value)) return; - + long count = countByUid(uid, type.name()); if (count == 0) { if (type == ModifyTypeEnum.bindPhone) { @@ -51,13 +86,51 @@ integralGetService.addSetWeiXinNum(uid); } } - - UserInfoModifyRecord record = new UserInfoModifyRecord(); - record.setUid(uid); - record.setType(type); - record.setValue(value); - record.setCreateTime(new Date()); - userInfoModifyRecordMapper.insertSelective(record); + + UserInfoModifyRecord oldRecord = userInfoModifyRecordMapper.selectLatestByUidAndType(uid, type.name()); + if (oldRecord == null || !oldRecord.getValue().equalsIgnoreCase(value)) {// 涓嶈兘淇敼閲嶅鐨勬暟鎹� + UserInfoModifyRecord record = new UserInfoModifyRecord(); + record.setUid(uid); + record.setType(type); + record.setValue(value); + record.setCreateTime(new Date()); + userInfoModifyRecordMapper.insertSelective(record); + + if (oldRecord == null) {// 鏂板缓 + // 鍙戦�佽处鍙蜂慨鏀规秷鎭� + UserAccountBindingMQMsg mqMsg = null; + if (type == ModifyTypeEnum.bindPhone) { + mqMsg = new UserAccountBindingMQMsg(uid, UserAccountBindingMQMsg.TYPE_PHONE, value, new Date()); + } else if (type == ModifyTypeEnum.bindTaoBao) { + mqMsg = new UserAccountBindingMQMsg(uid, UserAccountBindingMQMsg.TYPE_TAOBAO, value, + new Date()); + } else if (type == ModifyTypeEnum.bindWeiXin) { + mqMsg = new UserAccountBindingMQMsg(uid, UserAccountBindingMQMsg.TYPE_WX, value, new Date()); + } else if (type == ModifyTypeEnum.bindAlipay) { + mqMsg = new UserAccountBindingMQMsg(uid, UserAccountBindingMQMsg.TYPE_ALIPAY, value, + new Date()); + } + Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, + UserTopicTagEnum.userAccountBinding, mqMsg); + if (!Constant.IS_TEST) + producer.send(message); + } else {// 淇敼 + UserInfoUpdateMQMsg mqMsg = null; + + if (type == ModifyTypeEnum.portrait) { + mqMsg = new UserInfoUpdateMQMsg(uid, UserInfoUpdateTypeEnum.portrait, value, new Date()); + } else if (type == ModifyTypeEnum.nickName) + mqMsg = new UserInfoUpdateMQMsg(uid, UserInfoUpdateTypeEnum.nickName, value, new Date()); + else if (type == ModifyTypeEnum.setWeiXinNum) + mqMsg = new UserInfoUpdateMQMsg(uid, UserInfoUpdateTypeEnum.wxId, value, new Date()); + + if (mqMsg != null) { + Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, + UserTopicTagEnum.userInfoUpdate, mqMsg); + producer.send(message); + } + } + } } catch (Exception e) { e.printStackTrace(); LogHelper.errorDetailInfo(e); @@ -68,4 +141,51 @@ public long countByUid(Long uid, String type) { return userInfoModifyRecordMapper.countByUid(uid, type); } + + @Override + public void syncBeforeInfo(Long uid) { + // 鑾峰彇鐢ㄦ埛鍩烘湰淇℃伅 + UserInfo user = userInfoService.selectByPKey(uid); + if (user == null || user.getState() != UserInfo.STATE_NORMAL) {// 鐢ㄦ埛涓嶆甯� + return; + } + if (!StringUtil.isNullOrEmpty(user.getPhone())) { + addModifyRecord(uid, ModifyTypeEnum.bindPhone, user.getPhone()); + } + + BindingAccount account = bindingAccountService.getBindingAccountByUidAndType(uid, BindingAccount.TYPE_ALIPAY); + if (account != null) { + addModifyRecord(uid, ModifyTypeEnum.bindAlipay, account.getAccount()); + } + + if (!StringUtil.isNullOrEmpty(user.getWxUnionId())) { + addModifyRecord(uid, ModifyTypeEnum.bindWeiXin, user.getWxUnionId()); + } + + if (user.getNickName() != null && !user.getNickName().startsWith("杩斿埄鍒�") + && !user.getNickName().startsWith(Constant.systemCommonConfig.getDefaultNickName())) { + addModifyRecord(uid, ModifyTypeEnum.nickName, user.getNickName() + ""); + } + + if (!Constant.systemCommonConfig.getDefaultPortrait().equalsIgnoreCase(user.getPortrait())) { + addModifyRecord(uid, ModifyTypeEnum.portrait, user.getPortrait()); + } + + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra != null) { + if (userInfoExtra.getSex() != null) + addModifyRecord(uid, ModifyTypeEnum.gender, userInfoExtra.getSex() + ""); + + if (!StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) + addModifyRecord(uid, ModifyTypeEnum.setWeiXinNum, userInfoExtra.getWeiXin()); + } + + UserExtraTaoBaoInfo taoBaoExtra = userExtraTaoBaoInfoService.getByUid(uid); + if (taoBaoExtra != null && !StringUtil.isNullOrEmpty(taoBaoExtra.getRelationId()) + && !StringUtil.isNullOrEmpty(taoBaoExtra.getSpecialId()) && taoBaoExtra.getRelationValid() + && taoBaoExtra.getSpecialValid()) { + addModifyRecord(uid, ModifyTypeEnum.bindTaoBao, taoBaoExtra.getTaoBaoUid()); + } + + } } -- Gitblit v1.8.0