package com.github.ouyangbob.wechat.service.impl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.github.ouyangbob.util.UUIDGenerator;
import com.github.ouyangbob.wechat.mapper.IWechatUserMapper;
import com.github.ouyangbob.wechat.model.entity.WechatUser;
import com.github.ouyangbob.wechat.service.IWechatUserService;
import com.github.ouyangbob.wechat.vo.UserInfo;
@Service
public class WechatUserServiceImpl implements IWechatUserService {
@Autowired
private IWechatUserMapper wechatUserMapper;
public WechatUser saveAndFindWechatUser(UserInfo userInfo) {
WechatUser wechatUer=null;
if(StringUtils.isNoneBlank(userInfo.getUnionId())){
wechatUer=this.wechatUserMapper.findWechatUserByOpenId(userInfo.getOpenId());
}else if(StringUtils.isNoneBlank(userInfo.getOpenId())){
wechatUer=this.wechatUserMapper.findWechatUserByUnionId(userInfo.getOpenId());
}
if(wechatUer==null){
wechatUer=new WechatUser();
wechatUer.setId(UUIDGenerator.generate());
wechatUer.setNickName(userInfo.getNickName());
wechatUer.setOpenid(userInfo.getOpenId());
wechatUer.setCity(userInfo.getCity());
wechatUer.setCountry(userInfo.getCountry());
wechatUer.setProvince(userInfo.getProvince());
wechatUer.setSex(userInfo.getSex());
wechatUer.setUnionid(userInfo.getUnionId());
wechatUserMapper.saveWechatUser(wechatUer);
}else{
wechatUer.setNickName(userInfo.getNickName());
wechatUer.setOpenid(userInfo.getOpenId());
wechatUer.setCity(userInfo.getCity());
wechatUer.setCountry(userInfo.getCountry());
wechatUer.setProvince(userInfo.getProvince());
wechatUer.setSex(userInfo.getSex());
wechatUer.setUnionid(userInfo.getUnionId());
wechatUserMapper.reAuthWechatUser(wechatUer);
}
return null;
}
}