mitao
2025-03-28 b44b174f656aac1fe03e7f96851e564c3982f67d
medicalWaste-admin/src/main/java/com/sinata/web/controller/applet/AppLoginController.java
@@ -21,6 +21,7 @@
import com.sinata.system.domain.SysDepartment;
import com.sinata.system.domain.SysUserRole;
import com.sinata.system.domain.dto.UserInfoDTO;
import com.sinata.system.enums.DepartmentEnum;
import com.sinata.system.mapper.SysUserRoleMapper;
import com.sinata.system.service.ISysMenuService;
import com.sinata.system.service.ISysRoleService;
@@ -41,6 +42,7 @@
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Random;
import java.util.Set;
@@ -124,15 +126,34 @@
        String openid = map.get("openid").toString();
        String sessionKey = map.get("sessionKey").toString();
        String decrypt = WXCore.decrypt(EncryptedData_phone, sessionKey, Iv_phone);
        if (StringUtils.isEmpty(decrypt)) {
            return R.fail("获取手机信息失败");
        }
        JSONObject phone = JSON.parseObject(decrypt);
        String purePhoneNumber = phone.getString("purePhoneNumber");
        return R.ok(purePhoneNumber);
        // 查询手机号对应的用户
        SysUser user = userService.lambdaQuery()
                .eq(SysUser::getUserName, purePhoneNumber)
                .one();
        if(user == null) {
            return R.fail("该手机号未注册");
        }
        // 创建LoginUser对象
        LoginUser loginUser = new LoginUser();
        loginUser.setUserId(user.getUserId());
        loginUser.setUser(user);
        // 生成token
        String token = tokenService.createToken(loginUser);
        JSONObject result = new JSONObject();
        result.put("phone", purePhoneNumber);
        result.put(Constants.TOKEN, token);
        return R.ok(result);
    }
    /**
     * 登录方法
@@ -211,6 +232,16 @@
        userInfoDTO.setNickName(user.getNickName());
        userInfoDTO.setDepartment(byId2);
        userInfoDTO.setRoles(roles);
        if (byId2.getOrgType().equals(DepartmentEnum.REGULATORY_UNIT.getCode())) {
            SysDepartment department = departmentService.getById(byId2.getParentId());
            if (Objects.nonNull(department)) {
                userInfoDTO.setCurrentDepartmentId(department.getId());
                userInfoDTO.setCurrentDepartmentName(department.getDepartmentName());
            }
        } else {
            userInfoDTO.setCurrentDepartmentId(byId2.getId());
            userInfoDTO.setCurrentDepartmentName(byId2.getDepartmentName());
        }
        SysUserRole sysUserRole = sysUserRoleMapper.selectOne(Wrappers.<SysUserRole>lambdaQuery().eq(SysUserRole::getUserId, user.getUserId()));
        if (sysUserRole != null) {
            SysRole byId = roleService.getById(sysUserRole.getRoleId());