package com.doumee.api.web; import com.doumee.config.wx.TransferToUser; import com.doumee.core.annotation.LoginRequired; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.IdentityInfo; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.MemberRevenue; import com.doumee.dao.dto.WithdrawalDTO; import com.doumee.dao.dto.WxPhoneRequest; import com.doumee.dao.vo.AccountResponse; import com.doumee.dao.vo.UserCenterVO; import com.doumee.service.business.IdentityInfoService; import com.doumee.service.business.MemberRevenueService; import com.doumee.service.business.MemberService; import com.doumee.service.business.WithdrawalOrdersService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; 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.web.bind.annotation.*; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2025/7/10 9:29 */ @Api(tags = "2、用户信息") @Trace(exclude = true) @RestController @RequestMapping("/web/user") @Slf4j public class UserApi extends ApiController{ @Autowired private MemberService memberService; @Autowired private IdentityInfoService identityInfoService; @Autowired private MemberRevenueService memberRevenueService; @Autowired private WithdrawalOrdersService withdrawalOrdersService; @ApiOperation(value = "获取系统配置", notes = "小程序端") @GetMapping("/getPlatformAboutUs") public ApiResponse getPlatformAboutUs() { return ApiResponse.success("查询成功",memberService.getPlatformAboutUs()); } @LoginRequired @ApiOperation(value = "获取个人信息", notes = "小程序端") @GetMapping("/getMemberInfo") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse getMemberInfo() { return ApiResponse.success("查询成功",memberService.getMemberInfo(getMemberId())); } @LoginRequired @ApiOperation(value = "编辑个人信息", notes = "小程序端") @PostMapping("/editMemberInfo") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse editMemberInfo(@RequestBody Member member) { member.setId(getMemberId()); memberService.editMemberInfo(member); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation(value = "切换用工身份", notes = "小程序端") @PostMapping("/editUseIdentity") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse editUseIdentity(@RequestBody Member member) { member.setId(getMemberId()); memberService.editUseIdentity(member); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation(value = "获取身份认证信息", notes = "小程序端") @GetMapping("/getIdentityInfo") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse getIdentityInfo(@RequestParam Integer type) { return ApiResponse.success("查询成功",identityInfoService.findByMemberType(type,getMemberId())); } @LoginRequired @ApiOperation(value = "申请身份信息", notes = "小程序端") @PostMapping("/applyForIdentity") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse applyForIdentity(@RequestBody IdentityInfo identityInfo) { identityInfo.setMemberId(getMemberId()); identityInfoService.create(identityInfo); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation(value = "修改身份信息(认证失败后使用)", notes = "小程序端") @PostMapping("/updateIdentity") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse updateIdentity(@RequestBody IdentityInfo identityInfo) { identityInfo.setMemberId(getMemberId()); identityInfoService.updateById(identityInfo); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation(value = "修改身份信息位置(认证成功后使用)", notes = "小程序端") @PostMapping("/updateLocation") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse updateLocation(@RequestBody IdentityInfo identityInfo) { identityInfo.setMemberId(getMemberId()); identityInfoService.updateLocation(identityInfo); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation("余额明细") @PostMapping("/revenuePage") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse> revenuePage (@RequestBody PageWrap pageWrap) { pageWrap.getModel().setMemberId(this.getMemberId()); return ApiResponse.success(memberRevenueService.findPage(pageWrap)); } @LoginRequired @ApiOperation("提现申请") @PostMapping("/applyWithdrawal") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse applyWithdrawal (@RequestBody WithdrawalDTO withdrawalDTO) { withdrawalDTO.setMember(this.getMemberResponse()); return ApiResponse.success("操作成功",withdrawalOrdersService.applyWithdrawal(withdrawalDTO)); } @LoginRequired @ApiOperation("撤销提现申请") @PostMapping("/cancelTransfer") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), }) public ApiResponse cancelTransfer (@RequestBody TransferToUser.CancelTransferRequest request) { withdrawalOrdersService.cancelTransfer(request); return ApiResponse.success("操作成功"); } }