Files
jsowell-charger-web/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java

241 lines
8.3 KiB
Java
Raw Normal View History

2023-03-04 16:29:55 +08:00
package com.jsowell.api.uniapp;
import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import com.jsowell.common.annotation.Anonymous;
import com.jsowell.common.core.controller.BaseController;
import com.jsowell.common.core.page.PageResponse;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.exception.ServiceException;
import com.jsowell.common.response.RestApiResponse;
import com.jsowell.common.util.SMSUtil;
import com.jsowell.common.util.StringUtils;
2023-03-06 08:36:39 +08:00
import com.jsowell.pile.domain.MemberBasicInfo;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.service.IMemberBasicInfoService;
2023-03-04 16:29:55 +08:00
import com.jsowell.pile.vo.uniapp.MemberVO;
import com.jsowell.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
2023-03-06 08:36:39 +08:00
import org.springframework.web.bind.annotation.*;
2023-03-04 16:29:55 +08:00
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* 小程序接口
*/
// 不登录直接访问
@Anonymous
@RestController
@RequestMapping("/uniapp/member")
public class MemberController extends BaseController {
@Autowired
private MemberService memberService;
2023-03-06 08:36:39 +08:00
@Autowired
private IMemberBasicInfoService memberBasicInfoService;
2023-03-04 16:29:55 +08:00
/**
* 下发短信接口 business
* http://localhost:8080/uniapp/member/sendSMS
*/
@PostMapping("/sendSMS")
public RestApiResponse<?> sendSMS(HttpServletRequest request, @RequestBody MemberRegisterAndLoginDTO dto) {
logger.info("下发短信接口 param:{}", JSONObject.toJSONString(dto));
RestApiResponse<?> response = null;
try {
if (StringUtils.isBlank(dto.getMobileNumber())) {
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
}
String sendSMSResult = SMSUtil.sendSMS(request, dto.getMobileNumber());
response = new RestApiResponse<>(sendSMSResult);
} catch (Exception e) {
logger.error("下发短信接口 发生异常 error", e);
response = new RestApiResponse<>(ReturnCodeEnum.CODE_SEND_SMS_ERROR);
}
logger.info("下发短信接口 result:{}", JSONObject.toJSONString(response));
return response;
}
/**
* 会员登录注册
* 登录成功返回memberToken
* http://localhost:8080/uniapp/member/memberRegisterAndLogin
*/
@PostMapping("/memberRegisterAndLogin")
public RestApiResponse<?> memberRegisterAndLogin(HttpServletRequest request, @RequestBody MemberRegisterAndLoginDTO dto) {
logger.info("会员登录注册接口 param:{}", JSONObject.toJSONString(dto));
RestApiResponse<?> response = null;
try {
// 执行登录(查这个手机号在后台有没有数据,如果没有就静默注册)
String memberToken = memberService.memberRegisterAndLogin(dto);
// 返回前端成功
Map<String, String> map = Maps.newHashMap();
map.put("memberToken", memberToken);
response = new RestApiResponse<>(map);
} catch (ServiceException e) {
logger.warn("会员登录注册接口 warn", e);
response = new RestApiResponse<>(e.getMessage());
} catch (Exception e) {
logger.error("会员登录注册接口 发生异常 error", e);
response = new RestApiResponse<>(ReturnCodeEnum.CODE_MEMBER_REGISTER_AND_LOGIN_ERROR);
}
return response;
}
/**
* 微信一键登录
* http://localhost:8080/uniapp/member/wechatLogin
*/
@PostMapping("/wechatLogin")
public RestApiResponse<?> wechatLogin(@RequestBody WechatLoginDTO dto) {
RestApiResponse<?> response = null;
try {
String memberToken = memberService.wechatLogin(dto);
response = new RestApiResponse<>(ImmutableMap.of("memberToken", memberToken));
} catch (Exception e) {
logger.error("微信登录异常", e);
response = new RestApiResponse<>(ReturnCodeEnum.CODE_WECHAT_LOGIN_ERROR);
}
return response;
}
/**
* 接收并处理前端用户信息
*
* http://localhost:8080/uniapp/member/saveUserInfo
*/
@PostMapping("/saveUserInfo")
public RestApiResponse<?> saveUserInfo(@RequestBody MemberRegisterDTO dto) {
logger.info("接受前端用户信息并处理 param:{}", JSONObject.toJSONString(dto));
RestApiResponse<?> response = null;
try {
memberService.handleUserInfo(dto);
response = new RestApiResponse<>();
} catch (Exception e) {
logger.error("处理用户信息异常", e);
response = new RestApiResponse<>(ReturnCodeEnum.CODE_HANDLE_USER_INFO_ERROR);
}
logger.info("接受前端用户信息并处理 result:{}", response);
return response;
}
/**
* 查询用户账户信息
*
* http://localhost:8080/uniapp/member/getMemberInfo
* @return 用户账户信息
*/
@GetMapping("/getMemberInfo")
public RestApiResponse<?> getMemberInfo(HttpServletRequest request) {
RestApiResponse<?> response = null;
try {
String memberId = getMemberIdByAuthorization(request);
logger.info("查询账户总余额 param memberId:{}", memberId);
MemberVO memberVO = memberService.getMemberInfoByMemberId(memberId);
response = new RestApiResponse<>(memberVO);
}catch (BusinessException e) {
response = new RestApiResponse<>(e.getCode(), e.getMessage());
}catch (Exception e) {
logger.error("查询用户账户总余额异常", e);
response = new RestApiResponse<>(ReturnCodeEnum.CODE_GET_MEMBER_ACCOUNT_AMOUNT_ERROR);
}
logger.info("查询用户账户信息 result:{}", response);
return response;
}
/**
* 获取openId
* http://localhost:8080/uniapp/member/getOpenId
*/
@PostMapping("/getOpenId")
public RestApiResponse<?> getOpenId(HttpServletRequest request, @RequestBody WeixinPayDTO dto) {
logger.info("获取openId param:{}", dto.toString());
RestApiResponse<?> response;
try {
getMemberIdByAuthorization(request);
String openId = memberService.getOpenIdByCode(dto.getCode());
response = new RestApiResponse<>(ImmutableMap.of("openId", openId));
} catch (Exception e) {
logger.error("获取openId error", e);
response = new RestApiResponse<>(ReturnCodeEnum.CODE_GET_OPEN_ID_BY_CODE_ERROR);
}
logger.info("获取openId result:{}", response);
return response;
}
/**
* 获取用户账户余额变动信息
* http://localhost:8080/uniapp/member/getMemberBalanceChanges
* @param request
* @param dto
* @return
*/
@PostMapping("/getMemberBalanceChanges")
public RestApiResponse<?> getMemberBalanceChanges(HttpServletRequest request, @RequestBody UniAppQueryMemberBalanceDTO dto) {
logger.info("查询用户账户余额变动信息 params:{}", dto.toString() );
RestApiResponse<?> response = null;
try {
String memberId = getMemberIdByAuthorization(request);
dto.setMemberId(memberId);
PageResponse pageResponse = memberService.getMemberBalanceChanges(dto);
response = new RestApiResponse<>(pageResponse);
} catch (Exception e) {
logger.error("查询用户账户余额变动信息 error:", e);
response = new RestApiResponse<>(ReturnCodeEnum.CODE_GET_BALANCE_CHANGES_ERROR);
}
logger.info("查询用户账户余额变动信息 result:{}", response);
return response;
}
2023-03-06 08:36:39 +08:00
/**
* 通过 memberId 查询用户个人基本信息
* http://localhost:8080/uniapp/member/selectInfoByMemberId
*
* @return
*/
@GetMapping("/selectInfoByMemberId")
public RestApiResponse<?> selectInfoByMemberId(HttpServletRequest request){
String memberId = getMemberIdByAuthorization(request);
logger.info("通过 memberId 查询用户个人基本信息 param:{}", memberId);
RestApiResponse<?> response = null;
try {
MemberBasicInfo memberBasicInfo = memberBasicInfoService.selectInfoByMemberId(memberId);
response = new RestApiResponse<>(memberBasicInfo);
} catch (Exception e) {
logger.error("通过 memberId 查询用户个人基本信息 error", e);
response = new RestApiResponse<>(e);
}
logger.info("通过 memberId 查询用户个人基本信息 result:{}", response);
return response;
}
/**
* 用户绑定车牌号
*
* @return
*/
@PostMapping("/memberBindingCarNo")
public RestApiResponse<?> memberBindingCarNo(@RequestBody BindingCarNoDTO dto){
logger.info("用户绑定车牌号 param:{}", JSONObject.toJSONString(dto));
RestApiResponse<?> response = null;
try {
memberService.memberBindingCarNo(dto);
response = new RestApiResponse<>();
}catch (Exception e){
logger.error("用户绑定车牌号 error", e);
response = new RestApiResponse<>(e);
}
logger.info("用户绑定车牌号 result:{}", response);
return response;
}
2023-03-04 16:29:55 +08:00
}