package com.fzzy.appwx.manager;
|
|
import com.fzzy.appwx.param.WeChatBaseParam;
|
import com.fzzy.appwx.util.WeChatUtil;
|
import com.fzzy.igds.constant.RespCodeEnum;
|
import com.fzzy.igds.data.PageResponse;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.system.service.ISysUserService;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
@Component
|
public class WeChatManager {
|
|
@Autowired
|
private WeChatUtil weChatUtil;
|
@Autowired
|
private ISysUserService sysUserService;
|
|
|
public String getOpenid(String code) {
|
//根据code获取用户openid
|
return weChatUtil.getOpenid(code);
|
}
|
|
|
public SysUser getUser(String openid) {
|
//根据openid获取用户信息
|
return sysUserService.selectUserByOpenId(openid);
|
}
|
|
//获取用户绑定信息
|
public PageResponse<SysUser> getUserBindInfo(WeChatBaseParam param) {
|
//判断参数
|
if (null == param) {
|
return new PageResponse<SysUser>(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查");
|
}
|
|
SysUser user = null;
|
|
//微信公众号
|
if (StringUtils.isEmpty(param.getOpenid())) {
|
return new PageResponse<SysUser>(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查");
|
|
}
|
//根据openid查询用户是否已经绑定
|
user = sysUserService.selectUserByOpenId(param.getOpenid());
|
if (user == null) {
|
return new PageResponse<SysUser>(RespCodeEnum.CODE_1008.getCode(), "业务数据返回为空");
|
|
}
|
|
Long deptId = user.getDeptId();
|
if (deptId == null) {
|
deptId = Long.valueOf(user.getCompanyId());
|
user.setDeptId(deptId);
|
}
|
return new PageResponse(RespCodeEnum.CODE_0000.getCode(), "查询成功",user);
|
}
|
|
//绑定openId
|
public PageResponse<String> bandOpenId(WeChatBaseParam param) {
|
|
//判断参数
|
if (null == param || StringUtils.isEmpty(param.getOpenid())) {
|
return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查");
|
|
}
|
if (StringUtils.isEmpty(param.getMobile())) {
|
return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "手机号为空,请填写");
|
|
}
|
// if (StringUtils.isEmpty(param.getMsgCode())) {
|
// return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "验证码不能为空");
|
//
|
// }
|
//
|
// String code = (String) redisService.getCacheObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
|
// if(StringUtils.isEmpty(code)){
|
// res.put("code","1007");
|
// res.put("msg","验证码已失效,请重新获取");
|
// return res;
|
// }
|
// if(! code.equals(param.getMsgCode())){
|
// res.put("code","1007");
|
// res.put("msg","验证码错误");
|
// return res;
|
// }
|
|
//根据手机号查看用户是否是系统用户
|
SysUser user = sysUserService.selectUserByPhoneNumber(param.getMobile());
|
if(user == null || StringUtils.isEmpty(user.getPhonenumber())){
|
return new PageResponse<String>(RespCodeEnum.CODE_1006.getCode(), "手机号不在系统内,请联系管理员!");
|
}
|
|
//更新数据库,用户信息加入微信认证ID
|
user.setOpenId(param.getOpenid());
|
sysUserService.updateUserInfo(user);
|
|
// redisService.deleteObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
|
|
return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "请求成功");
|
|
}
|
|
|
//解绑openId
|
public PageResponse<String> unBandOpenId(WeChatBaseParam param) {
|
|
//判断参数
|
if (null == param || StringUtils.isEmpty(param.getOpenid())) {
|
return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查");
|
|
}
|
if (StringUtils.isEmpty(param.getMobile())) {
|
return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "手机号为空,请填写");
|
}
|
if (StringUtils.isEmpty(param.getMsgCode())) {
|
return new PageResponse<String>(RespCodeEnum.CODE_1007.getCode(), "验证码不能为空");
|
|
}
|
|
// String code = (String) redisService.getCacheObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
|
// if(StringUtils.isEmpty(code)){
|
// res.put("code","1007");
|
// res.put("msg","验证码已失效,请重新获取");
|
// return res;
|
//
|
// }
|
// if(! code.equals(param.getMsgCode())){
|
// res.put("code","1007");
|
// res.put("msg","验证码错误");
|
// return res;
|
// }
|
|
//根据手机号查询用户是否已经绑定
|
SysUser user = sysUserService.selectUserByPhoneNumber(param.getMobile());
|
if(user == null || StringUtils.isEmpty(user.getPhonenumber())){
|
return new PageResponse<String>(RespCodeEnum.CODE_1006.getCode(), "手机号不在系统内,请联系管理员!");
|
|
}
|
|
user.setOpenId("");
|
sysUserService.updateUserInfo(user);
|
|
// redisService.deleteObject(WeChatConst.WX_MOBILE_CODE + param.getMobile());
|
|
return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(), "请求成功");
|
|
}
|
|
}
|