diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/company/controller/CompanyAPI.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/company/controller/CompanyAPI.java index 09549e56..8c74e024 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/company/controller/CompanyAPI.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/app/company/controller/CompanyAPI.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.app.company.controller; import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; import cn.iocoder.yudao.module.company.entity.Company; import cn.iocoder.yudao.module.company.service.CompanyService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/jx/controller/app/AppJxAuthController.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/jx/controller/app/AppJxAuthController.java new file mode 100644 index 00000000..6bad6783 --- /dev/null +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/jx/controller/app/AppJxAuthController.java @@ -0,0 +1,106 @@ +package cn.iocoder.yudao.module.jx.controller.app; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.security.core.LoginUser; +import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.jx.domain.DriveSchoolCoach; +import cn.iocoder.yudao.module.jx.domain.DriveSchoolInfo; +import cn.iocoder.yudao.module.jx.mapper.DriveSchoolCoachMapper; +import cn.iocoder.yudao.module.jx.service.IDriveSchoolInfoService; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; +import cn.iocoder.yudao.module.system.service.permission.PermissionService; +import cn.iocoder.yudao.module.system.service.user.AdminUserService; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 认证") +@RestController +@RequestMapping("/jx/auth") +@Validated +@Slf4j +public class AppJxAuthController { + + + @Resource + private AdminUserService userService; + @Resource + private PermissionService permissionService; + @Resource + private DriveSchoolCoachMapper driveSchoolCoachMapper; + @Resource + private IDriveSchoolInfoService driveSchoolInfoService; + @Resource + private AdminUserApi userApi; + + + + + /** + * 获取Jx用户信息 + * + * @return 用户信息 + */ + @GetMapping("/getJxInfo") + public CommonResult getJxInfo() + { + // 获取当前用户信息 +// Long userId = SecurityFrameworkUtils.getLoginUserId(); +// AdminUserRespDTO sysUser = userApi.getUser(userId); +// Long deptId = sysUser.getDeptId(); + + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + // 获取当前登录用户角色编码 + Set<String> roles = permissionService.getRolePermission(user.getId()); + //获取驾校的 + Long userId = user.getId(); + AdminUserDO sysUser = userService.getUser(userId); + Long deptId = sysUser.getDeptId(); + + String phonenumber = sysUser.getMobile(); + //根据手机号查询驾校教练 + DriveSchoolCoach driveSchoolCoach = driveSchoolCoachMapper.selectByPhonenumber(phonenumber); + + if (ObjectUtils.isNotEmpty(driveSchoolCoach)){ + sysUser.setAvatar(driveSchoolCoach.getImage()); + } + DriveSchoolInfo driveSchoolInfo = driveSchoolInfoService.getSchoolInfoByDeptId(deptId); + + Map<String,Object> result = new HashMap<>(); + result.put("user", sysUser); + result.put("roles", roles); + result.put("schoolInfo", driveSchoolInfo); + + return CommonResult.success(result); + } + + /** + * 获取App用户信息 + * + * @return 用户信息 + */ + @GetMapping("/getAppInfo") + public CommonResult<?> getAppInfo() + { + LoginUser user = SecurityFrameworkUtils.getLoginUser(); + // 获取当前登录用户角色编码 + Set<String> roles = permissionService.getRolePermission(user.getId()); + Map<String,Object> result = new HashMap<>(); + result.put("user", user); + result.put("role", roles); + return success(result); + } + +} diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java index 8108925a..29e9607e 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/LoginController.java @@ -62,13 +62,28 @@ public class LoginController { @PostMapping("/wxLogin") @TenantIgnore public CommonResult<?> wxLogin(@RequestBody WxLoginBody wxLoginBody) { + // appId + String appId = wxConfig.getRepairAppId(); + //appSecret + String appSecret = wxConfig.getRepairAppSecret(); + //code + String appCode = SystemEnum.REPAIR.getCode(); + if (StrUtil.isNotEmpty(wxLoginBody.getType())) { + switch (wxLoginBody.getType()) { + case "jx": + appId = wxConfig.getJxAppId(); + appSecret = wxConfig.getJxAppSecret(); + appCode = SystemEnum.SCHOOL.getCode(); + break; + } + } String code = wxLoginBody.getCode(); //秘钥 String encryptedIv = wxLoginBody.getEncryptedIv(); //加密数据 String encryptedData = wxLoginBody.getEncryptedData(); //想微信服务器发送请求获取用户信息 - String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxConfig.getRepairAppId() + "&secret=" + wxConfig.getRepairAppSecret() + "&js_code=" + code + "&grant_type=authorization_code"; + String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + appSecret + "&js_code=" + code + "&grant_type=authorization_code"; String res = restTemplate.getForObject(url, String.class); JSONObject jsonObject = JSONObject.parseObject(res); //获取session_key和openid @@ -86,7 +101,7 @@ public class LoginController { if (StringUtils.hasText(decryptResult)) { //如果解析成功,获取token //查用户(未注册的话自动注册) - AdminUserDO adminUserDO = wechatService.wechatLogin(SystemEnum.REPAIR.getCode(),decryptResult,openId,wxLoginBody.getInviteId()); + AdminUserDO adminUserDO = wechatService.wechatLogin(appCode,decryptResult,openId,wxLoginBody.getInviteId()); //登录生成token AuthLoginRespVO loginVO = loginService.wxLoginByUserId(adminUserDO.getId(),adminUserDO.getUsername()); Map<String, Object> map = new HashMap<>(); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/vo/WxLoginBody.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/vo/WxLoginBody.java index d99b2c38..ada275c2 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/vo/WxLoginBody.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/vo/WxLoginBody.java @@ -19,6 +19,11 @@ public class WxLoginBody { */ private String encryptedData; + /** + * 小程序类型 + */ + private String type; + //邀请码 private String inviteId; }