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