From 57cdf0d3794726ad5ec367598022cd005cdab978 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 16 八月 2024 17:42:29 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 6 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index f8237ff..0a12801 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -3,18 +3,25 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.dto.*; import com.ruoyi.account.api.model.*; import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.account.service.*; +import com.ruoyi.account.wx.body.resp.Code2SessionRespBody; +import com.ruoyi.account.wx.body.resq.Code2SessionResqBody; +import com.ruoyi.account.wx.model.WeixinProperties; +import com.ruoyi.account.wx.tools.WxAppletTools; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.BasePojo; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.feignClient.ExchangeOrderClient; import com.ruoyi.order.api.model.TChargingOrder; @@ -22,18 +29,20 @@ import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.feignClient.OtherClient; +import com.ruoyi.system.api.domain.SysRole; +import com.ruoyi.system.api.model.LoginUserApplet; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.time.Duration; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -44,6 +53,7 @@ * @author luodangjia * @since 2024-08-06 */ +@Slf4j @RestController @RequestMapping("/t-app-user") public class TAppUserController { @@ -68,8 +78,41 @@ @Resource private ExchangeOrderClient exchangeOrderClient; - - + @Autowired + private TokenService tokenService; + @Autowired + private RedisService redisService; + @Autowired + private WeixinProperties wxConfig; + @Autowired + private RestTemplate wxRestTemplate; + @ApiOperation(value = "通过code获得openid, 1 --->对应的appid:wx4c405fa42539fc21 2---->对应的appid:wx02d9f6c92e6d3c86") + @GetMapping("openId-by-jscode2session/{code}") + public AjaxResult<Map<String, Object>> jscode2session(@PathVariable String code) { + log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", code); + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, wxConfig); + Code2SessionRespBody body = appletTools.getOpenIdByJscode2session(new Code2SessionResqBody().build(code)); + String openid = body.getOpenid(); + String sessionKey = body.getSessionKey(); + TAppUser appUser = appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class).eq(TAppUser::getWxOpenid, openid).last("limit 1")); + if (Objects.isNull(appUser)) { + appUser = new TAppUser(); + appUser.setWxOpenid(openid); + appUserService.save(appUser); + } + // 提前对sessionKey进行删除 + log.info("换取sessionKey:{}", sessionKey); + // 将sessionKey进行存储,后续获取信息需要 + redisService.setCacheObject(openid, sessionKey); + LoginUserApplet loginUserApplet = new LoginUserApplet(); + if(ObjectUtils.isNotNull(appUser)){ + loginUserApplet.setUserId(appUser.getId()); + } + HashMap<String, Object> tokenInfos = new HashMap<>(); + tokenInfos.put("token",tokenService.createTokenApplet(loginUserApplet)); + tokenInfos.put("info",loginUserApplet); + return AjaxResult.ok(tokenInfos); + } @ApiOperation(value = "管理后台-根据手机号查询用户ids", tags = {"管理后台-活动费用统计"}) @PostMapping(value = "/user/getUserIdsByPhone") -- Gitblit v1.7.1