rk
7 小时以前 580f4d3c2ca9eee53eee95a4de2f6610b790780a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package com.doumee.api.web;
 
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.config.annotation.LoginRequired;
import com.doumee.config.annotation.LoginShopRequired;
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.dto.UserCenterVO;
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.java.Log;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletRequest;
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)
    })
    public ApiResponse<AccountResponse> wxLogin(@RequestParam String code) {
        return  ApiResponse.success(memberService.wxLogin(code));
    }
 
    @ApiOperation(value = "绑定手机号", notes = "小程序端")
    @PostMapping("/wxPhone")
    public ApiResponse<AccountResponse> wxPhone(@Valid @RequestBody WxPhoneRequest wxPhoneRequest) {
        return  ApiResponse.success(memberService.wxPhone(wxPhoneRequest));
    }
 
//    @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));
//    }
 
    @ApiOperation(value = "获取系统配置", notes = "小程序端")
    @GetMapping("/getPlatformAboutUs")
    public ApiResponse<UserCenterVO> getPlatformAboutUs() {
        return  ApiResponse.success("查询成功",shopcartService.getPlatformAboutUs());
    }
 
    @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());
        memberService.updateMember(UpdateMemberRequest);
        return  ApiResponse.success("操作成功");
    }
 
 
    @LoginRequired
    @ApiOperation(value = "获取用户信息", notes = "小程序端")
    @PostMapping("/getUserInfo")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<Member> getUserInfo() {
        Member member = memberService.findById(getMemberId());
        if(StringUtils.isNotBlank(member.getImgurl())){
            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("操作成功");
    }
 
 
    @LoginRequired
    @ApiOperation("消费者 - 退出登录")
    @GetMapping("/logOut")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse logOut(HttpServletRequest request) {
        memberService.logOut(request.getHeader(JwtTokenUtil.HEADER_KEY),getMemberId());
        return ApiResponse.success("操作成功");
    }
 
 
    @LoginRequired
    @ApiOperation("用户注销")
    @GetMapping("/logOff")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse logOff(HttpServletRequest request) {
        memberService.logOff(request.getHeader(JwtTokenUtil.HEADER_KEY),getMemberId());
        return ApiResponse.success("操作成功");
    }
 
}