hjl
2024-07-16 ec6d43aa07ee0e8faf34498057ebcfbb446aa015
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserController.java
@@ -31,6 +31,7 @@
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
@@ -59,13 +60,34 @@
    private RecoveryServeService recoveryServeService;
    /**
     * 解密用户敏感数据
     *
     * @param encryptedData 明文,加密数据
     * @param iv            加密算法的初始向量
     * @param code          用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key
     * @return 登录信息
     */
    @ApiOperation("微信授权一键登录")
    @GetMapping("/wxAuthorize")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "用户允许登录后回调内容code", name = "code", dataType = "String", required = true),
            @ApiImplicitParam(value = "明文,加密数据", name = "encryptedData", dataType = "String", required = true),
            @ApiImplicitParam(value = "加密算法的初始向量", name = "iv", dataType = "String", required = true)
    })
    public R<Map<String, Object>> decodeUserInfo(@RequestParam("code") String code,
                                                 @RequestParam("encryptedData") String encryptedData,
                                                 @RequestParam("iv") String iv) {
        return R.ok(userService.decodeUserInfo(code, encryptedData, iv));
    }
    /**
     * 用户端-获取微信openId
     *
     * @param code 随机code
     */
    @ApiOperation(value = "获取微信openId", tags = {"用户端-登录"})
    @PostMapping(value = "/decodeOpenid")
    public R<String> decodeOpenid(HttpServletResponse response, @RequestParam String code) {
    public R<String> decodeOpenid(HttpServletResponse response, String code) {
        return userService.decodeOpenid(response, code);
    }
@@ -133,7 +155,7 @@
            @ApiImplicitParam(value = "0:用户注册协议、1:用户隐私协议", name = "type", dataType = "Integer", required = true)
    })
    public R<Agreement> recoverySearch(@RequestParam Integer type) {
        if (!Constants.ZERO.equals(type) || !Constants.ONE.equals(type)) {
        if (!Constants.ZERO.equals(type) && !Constants.ONE.equals(type)) {
            throw new GlobalException("获取类型异常!");
        }
        return R.ok(adminClient.dataInfo(type).getData());
@@ -145,7 +167,25 @@
    @ApiOperation(value = "轮播图列表", tags = {"用户端-首页"})
    @GetMapping(value = "/banner")
    public R<List<Rotate>> banner() {
        return R.ok(adminClient.bannerList().getData());
        List<Rotate> data = adminClient.bannerList().getData();
        for (Rotate datum : data) {
            RecoveryServe recoveryServe = recoveryServeService.lambdaQuery()
                    .eq(RecoveryServe::getId, datum.getId())
                    .eq(RecoveryServe::getIsDelete, 0).one();
            Integer classifyId = recoveryServe.getClassifyId();
            RecoveryClassify classify = recoveryClassifyService.lambdaQuery()
                    .eq(RecoveryClassify::getId, classifyId)
                    .eq(RecoveryClassify::getIsDelete, 0).one();
            if (null != classify) {
                String supClassify = classify.getSupClassify();
                if (Constants.RECOVERY.equals(supClassify)) {
                    datum.setType(Constants.ONE);
                } else {
                    datum.setType(Constants.ZERO);
                }
            }
        }
        return R.ok(data);
    }
    /**
@@ -155,6 +195,15 @@
    @GetMapping(value = "/notice")
    public R<List<Notices>> notice() {
        return R.ok(adminClient.noticesList().getData());
    }
    /**
     * 用户端-通知公告详情
     */
    @ApiOperation(value = "通知公告详情", tags = {"用户端-首页"})
    @GetMapping(value = "/noticeDetail")
    public R<Notices> notice(@RequestParam Integer id) {
        return R.ok(adminClient.noticesDetail(id).getData());
    }
    /**
@@ -182,7 +231,7 @@
    @ApiOperation(value = "首页回收分类推荐", tags = {"用户端-首页"})
    public R<List<RecoveryClassify>> recommend() {
        return R.ok(recoveryClassifyService.lambdaQuery().eq(RecoveryClassify::getIsRecommend, Constants.ONE)
                .eq(RecoveryClassify::getIsDelete, 0).orderByAsc(RecoveryClassify::getOrder).list());
                .eq(RecoveryClassify::getIsDelete, 0).orderByAsc(RecoveryClassify::getSort).list());
    }
    /**
@@ -198,6 +247,17 @@
                .eq(RecoveryServe::getIsDelete, 0)
                .orderByAsc(RecoveryServe::getSort);
        wrapper = StringUtils.isNotBlank(keyword) ? wrapper.like(RecoveryServe::getServeName, keyword) : wrapper;
        List<RecoveryServe> serveList = wrapper.list();
        for (RecoveryServe recoveryServe : serveList) {
            RecoveryClassify classify = recoveryClassifyService.lambdaQuery()
                    .eq(RecoveryClassify::getId, recoveryServe.getClassifyId())
                    .eq(RecoveryClassify::getIsDelete, 0).one();
            if (Constants.RECOVERY.equals(classify.getSupClassify())) {
                recoveryServe.setType(Constants.ONE);
            } else {
                recoveryServe.setType(Constants.ZERO);
            }
        }
        return R.ok(wrapper.list());
    }
@@ -215,4 +275,19 @@
                .eq(User::getIsDelete, 0).one());
    }
    /**
     * 用户端-修改头像&昵称
     */
    @ApiOperation(value = "修改头像&昵称", tags = {"用户端-个人中心"})
    @GetMapping(value = "/updateInfo")
    public R<Boolean> updateInfo(@RequestParam String picture, @RequestParam String nickname) {
        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
        if (null == loginUser) {
            return R.loginExpire("登录失效!");
        }
        return R.ok(userService.lambdaUpdate().eq(User::getId, loginUser.getUserid())
                .set(User::getProfilePicture, picture)
                .set(User::getNickname, nickname).update());
    }
}