| | |
| | |
|
| | | 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) {
|
| | |
| | | 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);
|
| | |
| | | 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());
|
| | | }
|
| | |
|
| | | }
|
| | | }
|