package com.ruoyi.web.controller.system; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.BasePage; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.NumberUtil; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.model.TbQuestion; import com.ruoyi.system.model.TbSystemConfig; import com.ruoyi.system.model.TbUser; import com.ruoyi.system.service.TbQuestionService; import com.ruoyi.system.service.TbSystemConfigService; import com.ruoyi.system.service.TbUserService; import com.ruoyi.system.vo.InviteUserListVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @Slf4j @RestController @RequestMapping("/user") @Api(tags = "用户模块") public class UserController { @Autowired private TbUserService userService; @Autowired private TokenService tokenService; @Autowired private TbQuestionService questionService; @Autowired private TbSystemConfigService systemConfigService; @ApiOperation(value = "修改用户信息",tags = {"用户模块"}) @PostMapping("/updateUserInfo") public R updateUserInfo(String avatar,String username) { LoginUser loginUser = tokenService.getLoginUser(); Long userId = loginUser.getUserId(); TbUser user = userService.getById(userId); if(StringUtils.isNotEmpty(username)) { user.setUserName(username); } if(StringUtils.isNotEmpty(avatar)){ user.setAvatar(avatar); } userService.updateById(user); return R.ok(); } @ApiOperation(value = "获取最新用户信息",tags = {"用户模块"}) @GetMapping("/getUserInfo") public R getUserInfo() { LoginUser loginUser = tokenService.getLoginUser(); Long userId = loginUser.getUserId(); TbUser user = userService.getById(userId); return R.ok(user); } @ApiOperation(value = "账号注销",tags = {"用户模块"}) @PostMapping("/accountCancellation") public R accountCancellation() { LoginUser loginUser = tokenService.getLoginUser(); Long userId = loginUser.getUserId(); TbUser user = userService.getById(userId); user.setStatus(3); userService.updateById(user); return R.ok(user); } @ApiOperation(value = "分享有礼列表",tags = {"分享有礼列表"}) @GetMapping("/getInviteUserList") public R> getInviteUserList(BasePage page) { LoginUser loginUser = tokenService.getLoginUser(); Long userId = loginUser.getUserId(); Page page1 = userService.page(new Page<>(page.getPageNum(), page.getPageSize()), new LambdaQueryWrapper().eq(TbUser::getInviteId, userId).orderByDesc(TbUser::getCreateTime)); Page inviteUserListVoPage = new Page<>(); if(page1.getRecords().isEmpty()){ return R.ok(inviteUserListVoPage); } ArrayList inviteUserListVos = new ArrayList<>(); for (TbUser record : page1.getRecords()) { InviteUserListVo inviteUserListVo = new InviteUserListVo(); inviteUserListVo.setUsername(record.getUserName()); inviteUserListVo.setCreateTime(record.getCreateTime()); inviteUserListVo.setInviteNum(record.getInviteNum()); inviteUserListVos.add(inviteUserListVo); } BeanUtils.copyProperties(page1,inviteUserListVoPage); inviteUserListVoPage.setRecords(inviteUserListVos); return R.ok(inviteUserListVoPage); } @ApiOperation(value = "常见问题",tags = {"用户模块"}) @GetMapping("/getQuestion") public R> getQuestion() { List list = questionService.list(new LambdaQueryWrapper().eq(TbQuestion::getDelFlag,0).orderByDesc(TbQuestion::getOrderNum)); return R.ok(list); } @ApiOperation(value = "客服",tags = {"用户模块"}) @GetMapping("/customerService") public R customerService() { TbSystemConfig config = systemConfigService.getOne(new LambdaQueryWrapper().eq(TbSystemConfig::getType, 2)); String content = config.getContent(); return R.ok(content); } @ApiOperation(value = "退出登录",tags = {"用户模块"}) @PostMapping("/quit") public R quit(HttpServletRequest request) { tokenService.quitLogin(request); return R.ok(); } }