|
|
@@ -1,15 +1,23 @@
|
|
|
package com.cyksj.web.controller.user;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
+import com.cyksj.mapper.UserPageLanguageMapper;
|
|
|
import com.cyksj.model.dto.UserWhoami;
|
|
|
+import com.cyksj.model.entity.User;
|
|
|
+import com.cyksj.model.entity.UserPageLanguage;
|
|
|
import com.cyksj.model.request.ExchangeCodeTicket;
|
|
|
import com.cyksj.service.exchange.ExchangeCodeService;
|
|
|
import com.cyksj.service.user.UserService;
|
|
|
import com.cyksj.web.util.StpUserUtil;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.springframework.dao.DuplicateKeyException;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
+import java.util.Optional;
|
|
|
+
|
|
|
/**
|
|
|
* @author chan
|
|
|
* @date 2021/10/11 下午11:05
|
|
|
@@ -23,6 +31,7 @@ public class UserController {
|
|
|
|
|
|
private final ExchangeCodeService exchangeCodeService;
|
|
|
|
|
|
+ private final UserPageLanguageMapper userPageLanguageMapper;
|
|
|
|
|
|
|
|
|
@GetMapping(value = "/wx/whoami")
|
|
|
@@ -43,4 +52,45 @@ public class UserController {
|
|
|
return exchangeCodeService.getTicketByExchangeCode(exchangeCodeTicket, userId);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询页面语言
|
|
|
+ */
|
|
|
+ @GetMapping("/get/self/language")
|
|
|
+ public Result<UserPageLanguage> getSelfLanguage() {
|
|
|
+ long userId = StpUserUtil.getLoginIdAsLong();
|
|
|
+ UserPageLanguage userPageLanguage = userPageLanguageMapper.selectOne(Wrappers.lambdaQuery(UserPageLanguage.class).eq(UserPageLanguage::getUserId, userId).last("limit 1"));
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(userPageLanguage);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更换页面语言
|
|
|
+ */
|
|
|
+ @PutMapping("/put/language")
|
|
|
+ public Result<String> updatePageLanguage(String language) {
|
|
|
+ long userId = StpUserUtil.getLoginIdAsLong();
|
|
|
+ User user = userService.getById(userId);
|
|
|
+ if (user == null) {
|
|
|
+ throw BusinessRuntimeException.getInstance("登录信息失效,请您重新授权登录..");
|
|
|
+ }
|
|
|
+ if (!UserPageLanguage.Language.checkLanguage(language)) {
|
|
|
+ throw BusinessRuntimeException.getInstance("语言传递错误");
|
|
|
+ }
|
|
|
+ UserPageLanguage.Language lang = UserPageLanguage.Language.valueOf(language);
|
|
|
+ UserPageLanguage userPageLanguage = userPageLanguageMapper.selectOne(Wrappers.lambdaQuery(UserPageLanguage.class).eq(UserPageLanguage::getUserId, userId).last("limit 1"));
|
|
|
+ Optional.ofNullable(userPageLanguage).ifPresentOrElse(exits -> {
|
|
|
+ exits.setLanguage(lang);
|
|
|
+ userPageLanguageMapper.updateById(exits);
|
|
|
+ }, () -> {
|
|
|
+ try {
|
|
|
+ UserPageLanguage entity = new UserPageLanguage();
|
|
|
+ entity.setUserId(userId);
|
|
|
+ entity.setLanguage(lang);
|
|
|
+ userPageLanguageMapper.insert(entity);
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult("更换语言成功");
|
|
|
+ }
|
|
|
}
|