| package cc.mrbird.febs.mall.controller; | 
|   | 
| import cc.mrbird.febs.common.entity.FebsResponse; | 
| import cc.mrbird.febs.common.utils.RedisUtils; | 
| import cc.mrbird.febs.mall.dto.*; | 
| import cc.mrbird.febs.mall.service.IApiMallMemberService; | 
| import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto; | 
| import cc.mrbird.febs.pay.service.IXcxPayService; | 
| import cc.mrbird.febs.pay.util.WechatConfigure; | 
| import com.alibaba.fastjson.JSON; | 
| import com.alibaba.fastjson.JSONObject; | 
| import io.swagger.annotations.Api; | 
| import io.swagger.annotations.ApiOperation; | 
| import lombok.RequiredArgsConstructor; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.validation.annotation.Validated; | 
| import org.springframework.web.bind.annotation.*; | 
|   | 
| import javax.validation.Valid; | 
| import java.io.ByteArrayInputStream; | 
| import java.io.ByteArrayOutputStream; | 
| import java.io.FileOutputStream; | 
| import java.io.IOException; | 
| import java.util.Dictionary; | 
| import java.util.HashMap; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * @author wzy | 
|  * @date 2021-09-16 | 
|  **/ | 
| @Slf4j | 
| @CrossOrigin("*") | 
| @RequiredArgsConstructor | 
| @RestController | 
| @RequestMapping(value = "/api/login") | 
| @Api(value = "ApiLoginController", tags = "登录注册类") | 
| public class ApiLoginController { | 
|   | 
|     private final IApiMallMemberService memberService; | 
|     private final IXcxPayService iXcxPayService; | 
|     private final RedisUtils redisUtils; | 
|   | 
|     @ApiOperation(value = "app注册接口", notes = "app注册接口") | 
|     @PostMapping(value = "/register") | 
|     public FebsResponse register(@RequestBody RegisterDto registerDto) { | 
|         return memberService.register(registerDto); | 
|     } | 
|   | 
|   | 
|     @ApiOperation(value = "账号密码登录接口", notes = "账号密码登录接口") | 
|     @PostMapping(value = "/toLogin") | 
|     public FebsResponse login(@RequestBody LoginDto loginDto) { | 
|         return memberService.toLogin(loginDto); | 
|     } | 
|   | 
|   | 
|     @ApiOperation(value = "忘记/修改密码", notes = "忘记/修改密码") | 
|     @PostMapping(value = "/forgetPwd") | 
|     public FebsResponse forgetPwd(@RequestBody ForgetPwdDto forgetPwdDto) { | 
|         return memberService.forgetPwd(forgetPwdDto); | 
|     } | 
|   | 
|     @ApiOperation(value = "提交注册申诉", notes = "提交注册申诉") | 
|     @PostMapping(value = "addRegisterAppeal") | 
|     public FebsResponse addRegisterAppeal(@RequestBody RegisterAppealDto registerAppeal) { | 
|         memberService.addRegisterAppeal(registerAppeal); | 
|         return new FebsResponse().success().message("申请成功"); | 
|     } | 
|   | 
|     /** | 
|      * 小程序登录 | 
|      */ | 
|     @ApiOperation(value = "小程序登录", notes = "小程序登录") | 
|     @PostMapping(value = "/xcxLogin") | 
|     public FebsResponse xcxLogin(@RequestBody ApiXcxLoginDto apiXcxLoginDto) throws IOException { | 
|         return memberService.xcxLogin(apiXcxLoginDto); | 
|     } | 
|   | 
|     /** | 
|      * 小程序手机号登录 | 
|      */ | 
|     @ApiOperation(value = "小程序手机号登录", notes = "小程序手机号登录") | 
|     @PostMapping(value = "/xcxPhoneLogin") | 
|     public FebsResponse xcxPhoneLogin(@RequestBody ApiXcxPhoneLoginDto apiXcxPhoneLoginDto){ | 
|         return memberService.xcxPhoneLogin(apiXcxPhoneLoginDto); | 
|     } | 
|   | 
|     /** | 
|      * 小程序接收用户数据,更新用户信息 | 
|      */ | 
|     @ApiOperation(value = "小程序接收用户数据", notes = "小程序接收用户数据") | 
|     @PostMapping(value = "/xcxSaveInfo") | 
|     public FebsResponse xcxSaveInfo(@RequestBody ApiXcxSaveInfoDto apiXcxSaveInfoDto){ | 
|         return memberService.xcxSaveInfo(apiXcxSaveInfoDto); | 
|     } | 
|   | 
|     /** | 
|      * 小程序是否允许打开 | 
|      *    先获取系统设置的范围访问开关 | 
|      *      1:开启,获取范围大小,如果范围内没有团长,不允许打开 | 
|      *      2:关闭,允许打开 | 
|      */ | 
|     @ApiOperation(value = "小程序是否允许打开(1:允许 2:不允许)", notes = "小程序是否允许打开") | 
|     @PostMapping(value = "/xcxOpen") | 
|     public FebsResponse xcxOpen(@RequestBody ApiXcxOpenDto apiXcxOpenDto){ | 
|         return memberService.xcxOpen(apiXcxOpenDto); | 
|     } | 
|   | 
|     /** | 
|      * 获取分享二维码 | 
|      */ | 
|     @ApiOperation(value = "获取分享二维码", notes = "获取分享二维码") | 
|     @PostMapping(value = "/generateQrCode") | 
|     public FebsResponse generateQrCode(@RequestBody WxGenerateQrCodeDto wxGenerateQrCodeDto){ | 
|         return iXcxPayService.generateQrCode(wxGenerateQrCodeDto); | 
|     } | 
|   | 
|     /** | 
|      * 获取ACCESS_TOKEN | 
|      */ | 
|     @ApiOperation(value = "获取ACCESS_TOKEN", notes = "获取ACCESS_TOKEN") | 
|     @GetMapping(value = "/getAccessToken") | 
|     public FebsResponse getAccessToken(){ | 
|         return new FebsResponse().success().data(redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString()); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 获取分享二维码(不上传服务器) | 
|      */ | 
|     @ApiOperation(value = "获取分享二维码(不上传服务器)", notes = "获取分享二维码(不上传服务器)") | 
|     @PostMapping(value = "/getQrCode") | 
|     public FebsResponse getQrCode(@RequestBody WxGenerateQrCodeDto wxGenerateQrCodeDto) { | 
|         return iXcxPayService.getQrCode(wxGenerateQrCodeDto); | 
|     } | 
|   | 
| } |