Commit d9a07a9b authored by liming's avatar liming

feat(初始化项目): 接口调整

parent 73bc0ad3
......@@ -2,7 +2,6 @@ package com.antai.sport.http.server.game.api.business.sport.user;
import com.antai.sport.http.server.common.annotation.LoginSportUser;
import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.constants.UserSectionType;
import com.antai.sport.http.server.game.api.business.sport.user.dto.*;
import com.antai.sport.http.server.repository.sport.entity.SportUser;
import io.swagger.annotations.Api;
......@@ -12,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import static com.antai.sport.http.server.common.util.ResultUtil.success;
......@@ -30,15 +30,15 @@ public class SportUserController {
@ApiOperation(value = "登录接口", notes = "登录成功后返回长短token")
@PostMapping("/login")
public ResponseEntity<Result<RespLogin>> login(@RequestBody ReqLogin param) {
public ResponseEntity<Result> login(@RequestBody ReqLogin param) {
return success(sportUserService.login(param));
}
@ApiOperation(value = "获取登录短信验证码")
@ApiOperation(value = "获取登录短信验证码", notes = "非生产环境中data直接返回验证码,可以直接用于注册,不会发送短信消息")
@GetMapping("/login/sms/captcha/{phone}")
public ResponseEntity<Result> sendLoginSmsCaptcha(@PathVariable String phone) {
public ResponseEntity<Result<String>> sendLoginSmsCaptcha(@PathVariable String phone) {
sportUserService.sendLoginSmsCaptcha(phone);
return success();
return success(sportUserService.sendLoginSmsCaptcha(phone));
}
@ApiOperation(value = "用户基本信息编辑页面所需基础数据")
......@@ -60,29 +60,42 @@ public class SportUserController {
return success(new RespBaseUserInfo(loginUser));
}
@ApiOperation(value = "用户角色信息获取")
@GetMapping("/user/role")
public ResponseEntity<Result<List<RespSportSection>>> getUserRole(@LoginSportUser SportUser loginUser) {
return success(sportUserService.getUserSection(UserSectionType.ROLE, loginUser));
@ApiOperation(value = "用户皮肤获取", notes = "返回data中为map:其中key是部位key,value是皮肤key")
@GetMapping("/user/skin")
public ResponseEntity<Result<Map<String, String>>> getUserSkin(@LoginSportUser SportUser loginUser) {
return success(sportUserService.getUserSkin(loginUser));
}
@ApiOperation(value = "用户角色信息保存")
@PostMapping("/user/role")
public ResponseEntity<Result> saveUserRole(@LoginSportUser SportUser loginUser, @RequestBody List<ReqSaveUserSkin> param) {
sportUserService.saveUserSkin(UserSectionType.ROLE, loginUser, param);
@ApiOperation(value = "用户皮肤保存")
@PostMapping("/user/skin")
public ResponseEntity<Result> saveUserSkin(@LoginSportUser SportUser loginUser, @RequestBody List<ReqSaveUserSkin> param) {
sportUserService.saveUserSkin(loginUser, param);
return success();
}
@ApiOperation(value = "用户装备信息获取")
@GetMapping("/user/equipment")
public ResponseEntity<Result<List<RespSportSection>>> getUserEquipment(@LoginSportUser SportUser loginUser) {
return success(sportUserService.getUserSection(UserSectionType.EQUIPMENT, loginUser));
}
// @ApiOperation(value = "用户角色信息获取")
// @GetMapping("/user/role")
// public ResponseEntity<Result<List<RespSportSection>>> getUserRole(@LoginSportUser SportUser loginUser) {
// return success(sportUserService.getUserSection(UserSectionType.ROLE, loginUser));
// }
@ApiOperation(value = "用户装备信息保存")
@PostMapping("/user/equipment")
public ResponseEntity<Result> saveUserEquipment(@LoginSportUser SportUser loginUser, @RequestBody List<ReqSaveUserSkin> param) {
sportUserService.saveUserSkin(UserSectionType.EQUIPMENT, loginUser, param);
return success();
}
// @ApiOperation(value = "用户角色信息保存")
// @PostMapping("/user/role")
// public ResponseEntity<Result> saveUserRole(@LoginSportUser SportUser loginUser, @RequestBody List<ReqSaveUserSkin> param) {
// sportUserService.saveUserSkin(UserSectionType.ROLE, loginUser, param);
// return success();
// }
// @ApiOperation(value = "用户装备信息获取")
// @GetMapping("/user/equipment")
// public ResponseEntity<Result<List<RespSportSection>>> getUserEquipment(@LoginSportUser SportUser loginUser) {
// return success(sportUserService.getUserSection(UserSectionType.EQUIPMENT, loginUser));
// }
// @ApiOperation(value = "用户装备信息保存")
// @PostMapping("/user/equipment")
// public ResponseEntity<Result> saveUserEquipment(@LoginSportUser SportUser loginUser, @RequestBody List<ReqSaveUserSkin> param) {
// sportUserService.saveUserSkin(UserSectionType.EQUIPMENT, loginUser, param);
// return success();
// }
}
......@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
import javax.annotation.Resource;
......@@ -45,6 +46,8 @@ public class SportUserService {
private String loginSmsCaptchaRedisKey;
@Value("${spring.cache.redis.expire.login-sms-captcha}")
private long loginSmsCaptchaExpire;
@Value("#{'${spring.profiles.active}'.equals('prod')}")
private boolean isProd;
@Resource
private SportUserMapper sportUserMapper;
......@@ -65,7 +68,7 @@ public class SportUserService {
@Resource
private RedisTemplate<String, Object> redisTemplate;
public Result<RespLogin> login(ReqLogin param) {
public Result login(ReqLogin param) {
if (param.getMode() == null || (!param.getMode().equals(LoginMode.PASSWORD) && !param.getMode().equals(LoginMode.SMS_CAPTCHA))) {
throw new BusinessException("请选择正确的登录模式");
}
......@@ -122,13 +125,13 @@ public class SportUserService {
}
result.setRespMsg("登录成功");
TokenVO tokenVO = tokenService.initToken(param.getUsername());
RespLogin respLogin = new RespLogin();
respLogin.setInfoInitialized(sportUser.getInfoInitialized());
respLogin.setRoleInitialized(sportUser.getRoleInitialized());
respLogin.setEquipmentInitialized(sportUser.getEquipmentInitialized());
// RespLogin respLogin = new RespLogin();
// respLogin.setInfoInitialized(sportUser.getInfoInitialized());
// respLogin.setRoleInitialized(sportUser.getRoleInitialized());
// respLogin.setEquipmentInitialized(sportUser.getEquipmentInitialized());
// result.setData(respLogin);
result.setLongToken(tokenVO.getLongToken());
result.setShortToken(tokenVO.getShortToken());
result.setData(respLogin);
return result;
}
......@@ -137,10 +140,15 @@ public class SportUserService {
*
* @param phone 电话号码
*/
public void sendLoginSmsCaptcha(String phone) {
public String sendLoginSmsCaptcha(String phone) {
String code = String.valueOf(RandomUtil.generateNum());
commonSmsService.sendLoginSmsCaptcha(phone, code);
redisTemplate.opsForValue().set(loginSmsCaptchaRedisKey + phone, code, loginSmsCaptchaExpire, TimeUnit.SECONDS);
if (isProd) {
commonSmsService.sendLoginSmsCaptcha(phone, code);
return null;
} else {
return code;
}
}
/**
......@@ -238,6 +246,7 @@ public class SportUserService {
* @param loginUser
* @param skinList
*/
@Transactional
public void saveUserSkin(Integer sectionType, SportUser loginUser, List<ReqSaveUserSkin> skinList) {
List<Long> delUserSectionList = new ArrayList<>(skinList.size());
List<SportUserSectionSkin> saveList = new ArrayList<>();
......@@ -258,4 +267,36 @@ public class SportUserService {
}
@Transactional
public void saveUserSkin(SportUser loginUser, List<ReqSaveUserSkin> skinList) {
List<String> delUserSectionList = new ArrayList<>(skinList.size());
List<SportUserSectionSkin> saveList = new ArrayList<>();
for (ReqSaveUserSkin item : skinList) {
delUserSectionList.add(item.getSectionKey());
SportUserSectionSkin userSkin = new SportUserSectionSkin();
userSkin.setSportUserId(loginUser.getId());
userSkin.setSectionKey(item.getSectionKey());
userSkin.setSkinKey(item.getSkinKey());
saveList.add(userSkin);
}
QueryWrapper<SportUserSectionSkin> userSkinQueryWrapper = new QueryWrapper<>();
userSkinQueryWrapper.eq("sport_user_id", loginUser.getId());
userSkinQueryWrapper.in("section_key", delUserSectionList);
sportUserSectionSkinMapper.delete(userSkinQueryWrapper);
sportUserSectionSkinService.saveBatch(saveList);
}
public Map<String, String> getUserSkin(SportUser loginUser) {
Map<String, String> result = null;
QueryWrapper<SportUserSectionSkin> userSkinQueryWrapper = new QueryWrapper<>();
userSkinQueryWrapper.eq("sport_user_id", loginUser.getId());
List<SportUserSectionSkin> skinList = sportUserSectionSkinMapper.selectList(userSkinQueryWrapper);
if (skinList.size() > 0) {
result = new HashMap<>();
for (SportUserSectionSkin item : skinList) {
result.put(item.getSectionKey(), item.getSkinKey());
}
}
return result;
}
}
......@@ -11,8 +11,13 @@ import lombok.Data;
*/
@Data
public class ReqSaveUserSkin {
@ApiModelProperty(value = "部位id")
@ApiModelProperty(value = "部位id", hidden = true)
private Long section;
@ApiModelProperty(value = "皮肤id")
@ApiModelProperty(value = "皮肤id", hidden = true)
private Long skin;
@ApiModelProperty(value = "部位key")
private String sectionKey;
@ApiModelProperty(value = "皮肤key")
private String skinKey;
}
......@@ -44,11 +44,21 @@ public class SportUserSectionSkin implements Serializable {
*/
private Long section;
/**
* 部位key
*/
private String sectionKey;
/**
* 皮肤
*/
private Long skin;
/**
* 皮肤key
*/
private String skinKey;
/**
* 删除标记
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment