package com.doumee.api.web; import com.doumee.config.annotation.LoginRequired; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.aliyun.ALiYunSmSUtil; import com.doumee.dao.business.model.Areas; import com.doumee.dao.business.model.Member; import com.doumee.dao.web.request.UpdateMemberRequest; import com.doumee.dao.web.request.WxPhoneRequest; import com.doumee.dao.web.response.AccountResponse; 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.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.HashMap; import java.util.Map; import java.util.Optional; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/3/23 9:12 */ @Api(tags = "小程序用户业务") @Trace(exclude = true) @RestController @RequestMapping("/web/account") @Slf4j public class AccountApi extends ApiController{ @ApiOperation(value = "小程序登陆方式", notes = "小程序端") @GetMapping("/wxLogin") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "微信code", required = true), @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "recId", value = "分享码", required = false) }) public ApiResponse wxLogin(@RequestParam String code, Integer recId) { return ApiResponse.success(memberService.wxLogin(code,recId)); } @ApiOperation(value = "测试登陆接口", notes = "小程序端") @GetMapping("/testLogin") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "memberId", value = "用户编码", required = false) }) public ApiResponse testLogin(@RequestParam Integer memberId) { return ApiResponse.success(memberService.wxLoginTest(memberId)); } @LoginRequired @ApiOperation(value = "绑定手机号", notes = "小程序端") @PostMapping("/wxPhone") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) }) public ApiResponse wxLogin(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) { wxPhoneRequest.setMemberId(getMemberId()); memberService.wxPhone(wxPhoneRequest); return ApiResponse.success("绑定成功"); } @LoginRequired @ApiOperation(value = "更新用户信息", notes = "小程序端") @PostMapping("/updateMember") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) }) public ApiResponse updateMember(@RequestBody UpdateMemberRequest UpdateMemberRequest) { UpdateMemberRequest.setMemberId(getMemberId()); return ApiResponse.success("操作成功",memberService.updateMember(UpdateMemberRequest)); } @LoginRequired @ApiOperation(value = "获取用户信息", notes = "小程序端") @PostMapping("/getUserInfo") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true) }) public ApiResponse getUserInfo() { Member member = memberService.findById(getMemberId()); member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode() +member.getImgurl()); Areas areas = areasService.findById(member.getCityId(), Constants.ONE); member.setCityName(Optional.ofNullable(areas).map(s->s.getName()).orElse("")); return ApiResponse.success("获取成功",member); } @LoginRequired @ApiOperation(value = "发送短信验证码", notes = "小程序端") @GetMapping("/sendSmsCode") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "手机号码", required = true) }) public ApiResponse sendSmsCode(@RequestParam String phone) { smsrecordService.sendSms(getMemberId(),phone); return ApiResponse.success("操作成功"); } @LoginRequired @ApiOperation(value = "验证短信验证码", notes = "小程序端") @GetMapping("/verifyCode") @ApiImplicitParams({ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true), @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "手机号码", required = true), @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "验证码", required = true) }) public ApiResponse verifyCode(@RequestParam String phone,@RequestParam String code) { smsrecordService.verifyCode(getMemberId(),phone,code); return ApiResponse.success("操作成功"); } }