|
|
|
@@ -4,9 +4,12 @@ import com.github.pagehelper.PageHelper; |
|
|
|
import com.github.pagehelper.PageInfo; |
|
|
|
import com.iformall.common.IdWorker; |
|
|
|
import com.iformall.domain.dto.WxCUserBasicInfoDto; |
|
|
|
import com.iformall.domain.po.WxAuthorizerInfo; |
|
|
|
import com.iformall.domain.po.WxCUser; |
|
|
|
import com.iformall.enums.EnumAppType; |
|
|
|
import com.iformall.mapper.WxCUserMapper; |
|
|
|
import com.iformall.service.WxCUserService; |
|
|
|
import me.chanjar.weixin.mp.bean.result.WxMpUser; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
@@ -37,6 +40,16 @@ public class WxCUserServiceImpl implements WxCUserService { |
|
|
|
return wxCUserMapper.findByOpenId(record); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public WxCUser getByObject(WxCUser record) { |
|
|
|
try { |
|
|
|
return wxCUserMapper.selectOne(record); |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("NOT found: " + e.getMessage()); |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public int saveOrUpdate(WxCUser user) { |
|
|
|
int ret = 0; |
|
|
|
@@ -67,6 +80,66 @@ public class WxCUserServiceImpl implements WxCUserService { |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public int saveOrUpdateMpUser(WxMpUser mpUser, WxAuthorizerInfo authorizerInfo) { |
|
|
|
// 1. check user exist |
|
|
|
WxCUser userQ = new WxCUser(); |
|
|
|
userQ.setTenantId(authorizerInfo.getTenantId()); |
|
|
|
boolean bHaveUnionId = false; |
|
|
|
if(StringUtils.isNotBlank(mpUser.getUnionId())) { |
|
|
|
userQ.setUnionId(mpUser.getUnionId()); |
|
|
|
bHaveUnionId = true; |
|
|
|
} else { |
|
|
|
userQ.setOpenAppId(authorizerInfo.getOpenAppid()); |
|
|
|
if(authorizerInfo.getType().equals(EnumAppType.MP_S.getCode())) { |
|
|
|
userQ.setMpOpenId(mpUser.getOpenId()); |
|
|
|
userQ.setMpAppId(authorizerInfo.getAuthorizerAppid()); |
|
|
|
} else if(authorizerInfo.getType().equals(EnumAppType.MP_P.getCode())) { |
|
|
|
userQ.setSubsOpenId(mpUser.getOpenId()); |
|
|
|
userQ.setSubsAppId(authorizerInfo.getAuthorizerAppid()); |
|
|
|
} |
|
|
|
} |
|
|
|
WxCUser oldUser = getByObject(userQ); |
|
|
|
boolean bHave = false; |
|
|
|
if(oldUser != null) { |
|
|
|
userQ.setId(oldUser.getId()); |
|
|
|
bHave = true; |
|
|
|
} |
|
|
|
if(!bHave && !mpUser.getSubscribe()) { |
|
|
|
// 未找到,且是关注消息, 直接返回 |
|
|
|
return 0; |
|
|
|
} |
|
|
|
if(bHaveUnionId) { |
|
|
|
userQ.setOpenAppId(authorizerInfo.getOpenAppid()); |
|
|
|
if (authorizerInfo.getType().equals(EnumAppType.MP_S.getCode())) { |
|
|
|
userQ.setMpOpenId(mpUser.getOpenId()); |
|
|
|
userQ.setMpAppId(authorizerInfo.getAuthorizerAppid()); |
|
|
|
} else if (authorizerInfo.getType().equals(EnumAppType.MP_P.getCode())) { |
|
|
|
userQ.setSubsOpenId(mpUser.getOpenId()); |
|
|
|
userQ.setSubsAppId(authorizerInfo.getAuthorizerAppid()); |
|
|
|
} |
|
|
|
} |
|
|
|
if(((oldUser != null && StringUtils.isBlank(oldUser.getNickName())) || (oldUser == null)) |
|
|
|
&& StringUtils.isNotBlank(mpUser.getNickname())) { |
|
|
|
userQ.setNickName(mpUser.getNickname()); |
|
|
|
userQ.setGender(mpUser.getSex()); |
|
|
|
userQ.setAvatarUrl(mpUser.getHeadImgUrl()); |
|
|
|
userQ.setCity(mpUser.getCity()); |
|
|
|
userQ.setProvince(mpUser.getProvince()); |
|
|
|
userQ.setLanguage(mpUser.getLanguage()); |
|
|
|
} |
|
|
|
if(authorizerInfo.getType().equals(EnumAppType.MP_S.getCode())) { |
|
|
|
userQ.setMpSubscribe(mpUser.getSubscribe()?1:0); |
|
|
|
userQ.setMpSubscribeScene(mpUser.getSubscribeScene()); |
|
|
|
userQ.setMpSubscribeTime(new Date(mpUser.getSubscribeTime())); |
|
|
|
} else if(authorizerInfo.getType().equals(EnumAppType.MP_P.getCode())) { |
|
|
|
userQ.setSubsSubscribe(mpUser.getSubscribe()?1:0); |
|
|
|
userQ.setSubsSubscribeScene(mpUser.getSubscribeScene()); |
|
|
|
userQ.setMpSubscribeTime(new Date(mpUser.getSubscribeTime())); |
|
|
|
} |
|
|
|
return saveOrUpdate(userQ); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void deleteById(Long id) { |
|
|
|
wxCUserMapper.deleteByPrimaryKey(id); |
|
|
|
|