package com.doumee.api.web; import com.doumee.biz.system.SystemUserBiz; import com.doumee.config.annotation.LoginRequired; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.dao.system.dto.ResetSystemUserPwdDTO; import com.doumee.dao.system.model.SystemUser; import com.doumee.dao.web.request.UserEditRequest; import com.doumee.dao.web.request.WxPhoneRequest; import com.doumee.dao.web.response.AccountResponse; import com.doumee.dao.web.response.UserResponse; import com.doumee.dao.web.response.VisitorLoginResponse; import com.doumee.service.system.SystemUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.java.Log; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/5/5 16:02 */ @Api(tags = "1、登录业务") @Trace(exclude = true) @RestController @RequestMapping("/web/account") @Slf4j public class AccountApi extends ApiController{ @Autowired private SystemUserService systemUserService; @Autowired private SystemUserBiz systemUserBiz; @ApiOperation(value = "账号密码登陆", notes = "小程序端") @GetMapping("/ordinaryLogin") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "account", value = "账号", required = true), @ApiImplicitParam(paramType = "query", dataType = "String", name = "password", value = "密码", required = true) }) public ApiResponse ordinaryLogin(@RequestParam String account, @RequestParam String password) { return ApiResponse.success(systemUserService.ordinaryLogin(account,password)); } @LoginRequired @ApiOperation(value = "微信授权(登录后)", notes = "小程序端") @GetMapping("/wxEmpower") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "微信code", required = true) }) public ApiResponse wxEmpower(@RequestParam String code) { systemUserService.wxEmpower(code,getMemberId()); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation(value = "获取用户信息", notes = "小程序端") @GetMapping("/getUserInfo") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse getUserInfo() { UserResponse userResponse = systemUserService.getUserInfo(getMemberId()); return ApiResponse.success("查询成功",userResponse); } @LoginRequired @ApiOperation(value = "修改用户信息", notes = "小程序端") @PostMapping("/editUserInfo") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse editUserInfo(@RequestBody UserEditRequest userEditRequest) { userEditRequest.setId(getMemberId()); userEditRequest.setEditor(getMemberId()); systemUserService.editUserInfo(userEditRequest); return ApiResponse.success("操作成功"); } @ApiOperation(value = "访客登录", notes = "小程序端") @GetMapping("/visitorLogin") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "微信code", required = true) }) public ApiResponse visitorLogin(@RequestParam String code) { return ApiResponse.success("操作成功",systemUserService.visitorLogin(code)); } @ApiOperation(value = "访客授权手机号", notes = "小程序端") @PostMapping("/visitorWxPhone") public ApiResponse visitorWxPhone(@RequestBody WxPhoneRequest wxPhoneRequest) { return ApiResponse.success("操作成功",systemUserService.wxPhone(wxPhoneRequest)); } @Trace(withRequestParameters = false) @PreventRepeat @ApiOperation("重置用户密码") @PostMapping("/resetPwd") public ApiResponse resetPwd (@Validated @RequestBody ResetSystemUserPwdDTO dto) { dto.setOperaUserId(getMemberId()); systemUserBiz.resetPwd(dto); return ApiResponse.success(null); } }