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