feat(theme): 新增主题按国家筛选功能

This commit is contained in:
2026-03-09 11:44:34 +08:00
parent 147c05a6f0
commit 49a58e6f87
5 changed files with 21 additions and 10 deletions

View File

@@ -54,8 +54,11 @@ public class ThemesController {
@GetMapping("/listAllStyles") @GetMapping("/listAllStyles")
@Operation(summary = "查询所有主题风格", description = "查询所有主题风格列表接口") @Operation(summary = "查询所有主题风格", description = "查询所有主题风格列表接口")
public BaseResponse<List<KeyboardThemeStylesRespVO>> listAllStyles() { public BaseResponse<List<KeyboardThemeStylesRespVO>> listAllStyles(
return ResultUtils.success(keyboardThemeStylesService.selectAllThemeStyles()); @RequestHeader(value = "Accept-Language", required = false) String acceptLanguage
) {
String local = RequestLocaleUtils.resolveLanguage(acceptLanguage);
return ResultUtils.success(keyboardThemeStylesService.selectAllThemeStyles(local));
} }
@PostMapping("/purchase") @PostMapping("/purchase")

View File

@@ -45,4 +45,8 @@ public class KeyboardThemeStyles {
@TableField(value = "updated_at") @TableField(value = "updated_at")
@Schema(description="") @Schema(description="")
private Date updatedAt; private Date updatedAt;
}
@TableField(value = "local")
@Schema(description = "所属国家")
private String local;
}

View File

@@ -14,8 +14,9 @@ public interface KeyboardThemeStylesService extends IService<KeyboardThemeStyles
/** /**
* 查询所有主题风格(未删除) * 查询所有主题风格(未删除)
* @param local 语言标识
* @return 主题风格列表 * @return 主题风格列表
*/ */
List<KeyboardThemeStylesRespVO> selectAllThemeStyles(); List<KeyboardThemeStylesRespVO> selectAllThemeStyles(String local);
} }

View File

@@ -2,13 +2,14 @@ package com.yolo.keyborad.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.yolo.keyborad.model.vo.themes.KeyboardThemeStylesRespVO; import com.yolo.keyborad.model.vo.themes.KeyboardThemeStylesRespVO;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yolo.keyborad.mapper.KeyboardThemeStylesMapper; import com.yolo.keyborad.mapper.KeyboardThemeStylesMapper;
import com.yolo.keyborad.model.entity.KeyboardThemeStyles; import com.yolo.keyborad.model.entity.KeyboardThemeStyles;
import com.yolo.keyborad.service.KeyboardThemeStylesService; import com.yolo.keyborad.service.KeyboardThemeStylesService;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List;
/* /*
* @author: ziin * @author: ziin
* @date: 2025/12/9 15:20 * @date: 2025/12/9 15:20
@@ -22,9 +23,10 @@ public class KeyboardThemeStylesServiceImpl extends ServiceImpl<KeyboardThemeSty
* @return 主题风格列表 * @return 主题风格列表
*/ */
@Override @Override
public List<KeyboardThemeStylesRespVO> selectAllThemeStyles() { public List<KeyboardThemeStylesRespVO> selectAllThemeStyles(String local) {
List<KeyboardThemeStyles> themeStylesList = this.lambdaQuery() List<KeyboardThemeStyles> themeStylesList = this.lambdaQuery()
.eq(KeyboardThemeStyles::getDeleted, false) .eq(KeyboardThemeStyles::getDeleted, false)
.eq(StringUtils.hasText(local), KeyboardThemeStyles::getLocal, local)
.list(); .list();
return BeanUtil.copyToList(themeStylesList, KeyboardThemeStylesRespVO.class); return BeanUtil.copyToList(themeStylesList, KeyboardThemeStylesRespVO.class);
} }

View File

@@ -9,9 +9,10 @@
<result column="deleted" jdbcType="BOOLEAN" property="deleted" /> <result column="deleted" jdbcType="BOOLEAN" property="deleted" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" /> <result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="DATE" property="updatedAt" /> <result column="updated_at" jdbcType="DATE" property="updatedAt" />
<result column="local" jdbcType="VARCHAR" property="local" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, style_name, deleted, created_at, updated_at id, style_name, deleted, created_at, updated_at, local
</sql> </sql>
</mapper> </mapper>