From 02bb94e413f6950b9786c5ee86c0937bc20f8ae8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 12 七月 2025 14:42:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java | 38 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 38 insertions(+), 0 deletions(-) diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java index 2548608..570babe 100644 --- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java +++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TUserController.java @@ -5,11 +5,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.BaseModel; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.framework.web.service.TokenService; @@ -25,14 +27,24 @@ import com.ruoyi.system.query.KnowledgeListQuery; import com.ruoyi.system.query.TaskListQuery; import com.ruoyi.system.service.*; +import com.ruoyi.system.utils.wx.body.resp.Code2SessionRespBody; +import com.ruoyi.system.utils.wx.body.resq.Code2SessionResqBody; +import com.ruoyi.system.utils.wx.model.WeixinProperties; +import com.ruoyi.system.utils.wx.pojo.AppletUserDecodeData; +import com.ruoyi.system.utils.wx.pojo.AppletUserEncrypteData; +import com.ruoyi.system.utils.wx.tools.WxAppletTools; +import com.ruoyi.system.utils.wx.tools.WxUtils; import com.ruoyi.system.vo.system.*; import com.ruoyi.web.controller.tool.EmailUtils; import com.ruoyi.web.controller.tool.MsgUtils; import com.sun.jna.platform.win32.LMAccess; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import javax.validation.Valid; @@ -54,6 +66,7 @@ * @author xiaochen * @since 2025-05-28 */ +@Slf4j @Api(tags = "个人中心") @RestController @RequestMapping("/t-user") @@ -100,6 +113,31 @@ private TProblemEscalationService problemEscalationService; @Resource private TNoticeService noticeService; + @Autowired + private RestTemplate wxRestTemplate; + @Autowired + private WeixinProperties weixinProperties; + @Resource + private RedisService redisService; + @ApiOperation(value = "通过code获得openid,获取用户信息",tags = {"微信小程序登录"}) + @GetMapping("/openIdByJsCode") + public R<String> openIdByJsCode(@RequestParam String code) { + Long userId = tokenService.getLoginUser().getUserId(); + SysUser sysUser = sysUserService.selectUserById(userId); + if(Objects.isNull(sysUser)){ + return R.fail("未查询到当前登录用户信息"); + } + if(StringUtils.hasLength(sysUser.getOpenId())){ + return R.ok(); + } + log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", code); + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, weixinProperties, redisService); + Code2SessionRespBody body = appletTools.getOpenIdByJscode2session(new Code2SessionResqBody().build(code)); + String openid = body.getOpenid(); + sysUser.setOpenId(openid); + sysUserService.updateUser(sysUser); + return R.ok(); + } @Resource private MsgUtils msgUtils; -- Gitblit v1.7.1