From 797cdd2fe13f580b5e2cf38c229a18f61a6cad8d Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Tue, 8 Aug 2023 17:10:42 +0800 Subject: [PATCH] 2023-08-08 --- .../system/sysuser/SysUserMapper.java | 7 +- .../supervise/system/sysuser/SysUserRest.java | 18 +-- .../system/sysuser/SysUserService.java | 43 ++++++++ .../system/sysuser/wx/WxSysUserRest.java | 5 + .../system/useropenid/UserOpenid.java | 18 +++ .../system/useropenid/UserOpenidDto.java | 17 +++ .../system/useropenid/UserOpenidMapper.java | 42 +++++++ .../system/useropenid/UserOpenidMapper.xml | 45 ++++++++ .../system/useropenid/UserOpenidQuery.java | 17 +++ .../system/useropenid/UserOpenidRest.java | 74 +++++++++++++ .../system/useropenid/UserOpenidService.java | 103 ++++++++++++++++++ .../system/useropenid/UserOpenidVo.java | 17 +++ 12 files changed, 385 insertions(+), 21 deletions(-) create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenid.java create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidDto.java create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.java create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.xml create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidQuery.java create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidRest.java create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidService.java create mode 100644 yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidVo.java diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.java index 1de41e18..00d76598 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserMapper.java @@ -6,13 +6,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.supervise.system.sysstaffinfo.SysStaffinfoVo; import com.yxt.supervise.system.sysuser.app.AppUserOrgInfoVo; +import com.yxt.supervise.system.sysuser.wx.SysUserWxBindMobileDto; import com.yxt.supervise.system.sysuser.wx.WxHomePageVo; import com.yxt.supervise.system.sysuser.wx.WxMySysUserInfoVo; import com.yxt.supervise.system.sysuser.wx.WxSysUserVo; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; -import org.apache.ibatis.annotations.Update; +import org.apache.ibatis.annotations.*; import java.util.List; import java.util.Map; @@ -182,4 +180,5 @@ public interface SysUserMapper extends BaseMapper { String selectIdBySid(@Param("list") List stringList); List getUserMessageByRole(@Param("roleSid") String roleSid,@Param("levelOrgSid") String levelOrgSid, @Param("list") List stringList); + } \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java index c6b3237b..6635701d 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserRest.java @@ -181,12 +181,6 @@ public class SysUserRest implements SysUserFeign { //用户类型 int userType = dto.getUserType(); //部门sid -// String deptSid = dto.getDeptSid(); -// //岗位sid -// String postSid = dto.getPostSid(); - //验证码 -// String verificationCode = dto.getVerificationCode(); - if (StringUtils.isBlank(mobile)) { return new ResultBean().fail().setMsg("手机号不能为空"); } else { @@ -201,21 +195,11 @@ public class SysUserRest implements SysUserFeign { if (userType == 0) { return new ResultBean().fail().setMsg("用户类型不能为空"); } - //取消验证码 -// if (StringUtils.isBlank(verificationCode)) { -// return new ResultBean().fail().setMsg("验证码不能为空"); -// } else { -// Map stringObjectMap = sysUserService.mobileValidateRegister(mobile, verificationCode); -// String code = stringObjectMap.get("code").toString(); -// String details = stringObjectMap.get("details").toString(); -// if (Tools.CODE_FAIL.equals(code)) { -// return ResultBean.fireFail().setMessage(details).setMsg(details); -// } -// } //"15097329653"; String password = mobile.substring(5, 11); String md5 = Encodes.md5(password); SysUser su = new SysUser(); + su.setSid(UUID.randomUUID().toString()); dto.fillEntity(su); su.setStaffSid(dto.getBankMessageSid()); su.setUserName(mobile); diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java index 01586e65..11eff6a4 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java @@ -581,6 +581,11 @@ public class SysUserService extends MybatisBaseService { * @return */ public ResultBean sendVerificationCodeForApp(String mobile, String type) { + ResultBean rb=new ResultBean().fireFail(); + SysUser sysUser = baseMapper.selectOne(new QueryWrapper().eq("mobile",mobile)); + if(null==sysUser){ + return rb.setMsg("您的平台应用未被授权,请联系工作人员。"); + } Date date = new Date(); String redisKey = ""; if (type.equals("1")) { @@ -1203,6 +1208,44 @@ public class SysUserService extends MybatisBaseService { sysUser.setToken(sysUserVo.getToken()); return rb.success().setData(sysUser); } + + + /** + * 微信静默登录 + * @param wxCode 临时凭证code值 + * @return ResultBean data:Token + * 登陆成功后data返回用户Sid + * 聂金毅 2022/6/8 20:30 创建 + */ + public ResultBean SilentLogin(String wxCode) { + ResultBean rb = ResultBean.fireFail(); + // 通过wxCode获取unionid,失败返回微信的错误提示。 + + ResultBean rbJsonObject = wxLogin(wxCode,APP_ID,SECRET); + if (!rbJsonObject.getSuccess()){ + JSONObject jsonObject = rbJsonObject.getData(); + String errcode = jsonObject.get("errcode").toString(); + String errmsg = jsonObject.get("errmsg").toString(); + return rb.setMsg(errmsg).setCode(errcode); + } + // 判断存在不存在unionid,用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID 机制说明。、 + JSONObject jsonObject = rbJsonObject.getData(); + if (!jsonObject.containsKey("openid")){ + return rb.setMsg("未获得openid,请联系管理员"); + } +// String unionid = jsonObject.get("unionid").toString(); + String openid = jsonObject.get("openid").toString(); + // 判断用户登陆授权表是否存在该用户unionid和openid,如果不存在就增加一条返回 +// SysUser sysUser=baseMapper.selectOne(new QueryWrapper().eq("appletOpenid",openid)); +// Map map=new HashMap<>(); +// map.put("openid",openid); +// map.put("unionid",unionid); +// if(sysUser==null){ +// return rb.setMsg("此微信没有绑定用户").setCode("100").setData(openid); +// } + return rb.success().setData(openid); + } + /** * 授权登录 * @param wxCode 临时凭证code值 diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java index 9c3c3e53..4700c1f8 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/wx/WxSysUserRest.java @@ -386,6 +386,11 @@ public class WxSysUserRest implements WxSysUserFeign { public ResultBean wxSilentLogin(@RequestParam(value = "wxCode") String wxCode) { return sysUserService.wxSilentLogin(wxCode); } + @ApiOperation(value = "微信静默登录") + @GetMapping("/SilentLogin") + public ResultBean SilentLogin(@RequestParam(value = "wxCode") String wxCode) { + return sysUserService.SilentLogin(wxCode); + } @ApiOperation(value = "微信授权登录") @GetMapping("/wxAuthLogin") public ResultBean wxAuthLogin(@RequestParam(value = "wxCode") String wxCode) { diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenid.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenid.java new file mode 100644 index 00000000..df332a47 --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenid.java @@ -0,0 +1,18 @@ +package com.yxt.supervise.system.useropenid; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/8/8 16:31 + */ +@Data +@TableName("user_openid") +public class UserOpenid { + private String id; + private String sid; + private String mobile; + private String openid; + private String state; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidDto.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidDto.java new file mode 100644 index 00000000..9bbea5c2 --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidDto.java @@ -0,0 +1,17 @@ +package com.yxt.supervise.system.useropenid; + +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/8/8 16:32 + */ +@Data +public class UserOpenidDto implements Dto { + private String id; + private String sid; + private String mobile; + private String openid; + private String state; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.java new file mode 100644 index 00000000..fab9d38f --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.java @@ -0,0 +1,42 @@ +package com.yxt.supervise.system.useropenid; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; + +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + + +@Mapper +public interface UserOpenidMapper extends BaseMapper { + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); + + @Select("select * from sys_staff_post") + List selectListVo(); + + @Delete("delete from sys_staff_post where staffSid=#{staffSid} ") + void deleteByStaffSid(String staffSid); + + /** + * 根据员工sid查询员工的岗位信息 + * + * @param sid 员工的sid + * @return + */ + UserOpenid selectByStaffSid(@Param("sid") String sid, @Param("postSid") String postSid); + + + + String selectPost(String sid); + + List getPost(String staffSid); +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.xml b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.xml new file mode 100644 index 00000000..7393501d --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidQuery.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidQuery.java new file mode 100644 index 00000000..e4972c04 --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidQuery.java @@ -0,0 +1,17 @@ +package com.yxt.supervise.system.useropenid; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/8/8 16:32 + */ +@Data +public class UserOpenidQuery implements Query { + private String id; + private String sid; + private String mobile; + private String openid; + private String state; +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidRest.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidRest.java new file mode 100644 index 00000000..2f6a6f1f --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidRest.java @@ -0,0 +1,74 @@ +package com.yxt.supervise.system.useropenid; + +import com.yxt.common.base.config.RedisUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.supervise.system.sysuser.SysUser; +import com.yxt.supervise.system.sysuser.SysUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +/** + * @author wangpengfei + * @date 2023/8/8 16:32 + */ +@Api(tags = "用户和微信小程序openid") +@RestController +@RequestMapping("useropenid") +public class UserOpenidRest { + + @Autowired + private UserOpenidService UserOpenidService; + + + + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = UserOpenidService.listPageVo(pq); + return rb.success().setData(pv); + } + + + public ResultBean> listAll(@RequestBody UserOpenidQuery query) { + ResultBean rb = ResultBean.fireFail(); + List list = UserOpenidService.listAllVo(query); + return rb.success().setData(list); + } + + + public ResultBean> list() { + ResultBean rb = ResultBean.fireFail(); + List list = UserOpenidService.listVo(); + return rb.success().setData(list); + } + + @ApiOperation(value = "保存") + @PostMapping("/save") + public ResultBean save(@RequestBody UserOpenidDto dto) { + ResultBean rb = ResultBean.fireFail(); + UserOpenidService.saveOrUpdateDto(dto); + return rb.success(); + } + + @ApiOperation(value = "修改") + @PostMapping("/update") + public ResultBean update(@RequestBody UserOpenidDto dto, String sid) { + ResultBean rb = ResultBean.fireFail(); + UserOpenidService.updateBySid(dto.toMap(), sid); + return rb.success(); + } + + public ResultBean del(String ids) { + ResultBean rb = ResultBean.fireFail(); + UserOpenidService.delByIds(ids); + return rb.success(); + } + +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidService.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidService.java new file mode 100644 index 00000000..a899a51c --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidService.java @@ -0,0 +1,103 @@ +package com.yxt.supervise.system.useropenid; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.vo.PagerVo; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.UUID; + +/** + * @author wangpengfei + * @date 2023/8/8 16:32 + */ +@Service +public class UserOpenidService extends MybatisBaseService { + public PagerVo listPage(PagerQuery pq) { + UserOpenidQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAll(UserOpenidQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + return baseMapper.selectList(qw); + } + +// private QueryWrapper createQueryWrapper(UserOpenidQuery query) { +// // todo: 这里根据具体业务调整查询条件 +// // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); +// QueryWrapper qw = new QueryWrapper<>(); +// +// +// if (StringUtils.isNotBlank(query.getStaffSid())) { +// qw.eq("staffSid", query.getStaffSid()); +// } +// +// if (StringUtils.isNotBlank(query.getOrgSid())) { +// qw.eq("orgSid", query.getOrgSid()); +// } +// +// if (StringUtils.isNotBlank(query.getPostSid())) { +// qw.eq("postSid", query.getPostSid()); +// } +// +// if (query.getStartDateStart() != null) { +// qw.ge("startDate", query.getStartDateStart()); +// } +// if (query.getStartDateEnd() != null) { +// qw.le("startDate", query.getStartDateEnd()); +// } +// +// if (query.getIsDepetHead() != null) { +// qw.eq("isDepetHead", query.getIsDepetHead()); +// } +// return qw; +// } + + public PagerVo listPageVo(PagerQuery pq) { + UserOpenidQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List listAllVo(UserOpenidQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + return baseMapper.selectListAllVo(qw); + } + + public List listVo() { + return baseMapper.selectListVo(); + } + + public void saveOrUpdateDto(UserOpenidDto dto) { + UserOpenid entity = new UserOpenid(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setSid(UUID.randomUUID().toString()); + this.saveOrUpdate(entity); + } + + public UserOpenidVo fetchByIdVo(String id) { + UserOpenid entity = this.fetchById(id); + UserOpenidVo vo = new UserOpenidVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } + + + + +} \ No newline at end of file diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidVo.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidVo.java new file mode 100644 index 00000000..f000c46d --- /dev/null +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/useropenid/UserOpenidVo.java @@ -0,0 +1,17 @@ +package com.yxt.supervise.system.useropenid; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/8/8 16:32 + */ +@Data +public class UserOpenidVo implements Vo { + private String id; + private String sid; + private String mobile; + private String openid; + private String state; +}