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 getUserBindInfo(WeChatBaseParam param) { //判断参数 if (null == param) { return new PageResponse(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查"); } SysUser user = null; //微信公众号 if (StringUtils.isEmpty(param.getOpenid())) { return new PageResponse(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查"); } //根据openid查询用户是否已经绑定 user = sysUserService.selectUserByOpenId(param.getOpenid()); if (user == null) { return new PageResponse(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 bandOpenId(WeChatBaseParam param) { //判断参数 if (null == param || StringUtils.isEmpty(param.getOpenid())) { return new PageResponse(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查"); } if (StringUtils.isEmpty(param.getMobile())) { return new PageResponse(RespCodeEnum.CODE_1007.getCode(), "手机号为空,请填写"); } // if (StringUtils.isEmpty(param.getMsgCode())) { // return new PageResponse(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(RespCodeEnum.CODE_1006.getCode(), "手机号不在系统内,请联系管理员!"); } //更新数据库,用户信息加入微信认证ID user.setOpenId(param.getOpenid()); sysUserService.updateUserInfo(user); // redisService.deleteObject(WeChatConst.WX_MOBILE_CODE + param.getMobile()); return new PageResponse(RespCodeEnum.CODE_0000.getCode(), "请求成功"); } //解绑openId public PageResponse unBandOpenId(WeChatBaseParam param) { //判断参数 if (null == param || StringUtils.isEmpty(param.getOpenid())) { return new PageResponse(RespCodeEnum.CODE_1007.getCode(), "参数不完整,请核查"); } if (StringUtils.isEmpty(param.getMobile())) { return new PageResponse(RespCodeEnum.CODE_1007.getCode(), "手机号为空,请填写"); } if (StringUtils.isEmpty(param.getMsgCode())) { return new PageResponse(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(RespCodeEnum.CODE_1006.getCode(), "手机号不在系统内,请联系管理员!"); } user.setOpenId(""); sysUserService.updateUserInfo(user); // redisService.deleteObject(WeChatConst.WX_MOBILE_CODE + param.getMobile()); return new PageResponse(RespCodeEnum.CODE_0000.getCode(), "请求成功"); } }