| | |
| | | package com.ruoyi.web.controller.system; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | |
| | | import com.ruoyi.common.redis.service.RedisService; |
| | | import com.ruoyi.framework.web.service.TokenService; |
| | | import com.ruoyi.system.model.TSysAppUser; |
| | | import com.ruoyi.system.service.ISysRoleService; |
| | | import com.ruoyi.system.service.TSysAppUserService; |
| | | import com.ruoyi.system.model.TSysMessageTemplate; |
| | | 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.pojo.OfficeUserEncrypteData; |
| | | import com.ruoyi.system.utils.wx.tools.WxAppletTools; |
| | | import com.ruoyi.system.utils.wx.tools.WxUtils; |
| | | import com.ruoyi.web.controller.tool.MsgUtils; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.framework.web.service.SysLoginService; |
| | | import com.ruoyi.framework.web.service.SysPermissionService; |
| | | import com.ruoyi.system.service.ISysMenuService; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | private WeixinProperties wxConfig; |
| | | @Autowired |
| | | private RestTemplate wxRestTemplate; |
| | | @Resource |
| | | @Autowired |
| | | private MsgUtils msgUtils; |
| | | @Autowired |
| | | private TSysMessageTemplateService sysMessageTemplateService; |
| | | @Autowired |
| | | private RedisService redisService; |
| | | @Resource |
| | | @Autowired |
| | | private TSysAppUserService sysAppUserService; |
| | | @Autowired |
| | | private ISysUserService sysUserService; |
| | | /** |
| | | * 账号密码登录 |
| | | * |
| | |
| | | return R.ok(tokenInfos); |
| | | } |
| | | |
| | | @ApiOperation(value = "通过code获得openid",tags = {"微信服务号、公众号登录"}) |
| | | @PostMapping("/openIdByCode") |
| | | public R<Map<String, Object>> openIdByCode(@RequestBody OfficeUserEncrypteData data) { |
| | | log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", data.getCode()); |
| | | WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, wxConfig, redisService); |
| | | Code2SessionRespBody body = appletTools.getOpenIdByJscode2session(new Code2SessionResqBody().build(data.getCode())); |
| | | String openid = body.getOpenid(); |
| | | String phone = data.getPhone(); |
| | | if(StringUtils.isEmpty(phone)){ |
| | | return R.fail("请输入手机号"); |
| | | } |
| | | TSysAppUser sysAppUser = sysAppUserService.getOne(Wrappers.lambdaQuery(TSysAppUser.class) |
| | | .eq(TSysAppUser::getPhone, phone)); |
| | | if(Objects.nonNull(sysAppUser)){ |
| | | sysAppUser.setOfficeOpenId(openid); |
| | | sysAppUserService.updateById(sysAppUser); |
| | | } |
| | | // 获取诊所信息 |
| | | SysUser sysUser = sysUserService.selectByPhone(phone); |
| | | if(Objects.nonNull(sysUser) && (sysUser.getRoleType() == 5 || sysUser.getRoleType() == 3)){ |
| | | // 诊所 |
| | | sysUser.setOpenId(openid); |
| | | sysUserService.updateUserInfo(sysUser); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * 账号密码登录 |
| | | * |
| | |
| | | String code = String.valueOf((int) (Math.random() * 1000000)); |
| | | redisCache.setCacheObject(phone, code,5*60,TimeUnit.SECONDS); |
| | | try { |
| | | // smsUtil.sendSms(phone, "2369926", new String[]{code}); |
| | | TSysMessageTemplate messageTemplate = sysMessageTemplateService.getOne(Wrappers.lambdaQuery(TSysMessageTemplate.class) |
| | | .eq(TSysMessageTemplate::getTemplateType, 1)); |
| | | Map<String,String> params = new HashMap<>(); |
| | | params.put("code", code); |
| | | msgUtils.sendMsg(phone, params, messageTemplate.getTemplateCode()); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |