diff --git a/keyboard-server/pom.xml b/keyboard-server/pom.xml new file mode 100644 index 0000000..45298a8 --- /dev/null +++ b/keyboard-server/pom.xml @@ -0,0 +1,56 @@ + + 4.0.0 + + com.yolo + yolo + ${revision} + + jar + keyboard-server + + ${project.artifactId} + http://maven.apache.org + + 键盘后台服务 + + + UTF-8 + + + + + + com.yolo + yolo-spring-boot-starter-web + + + + com.yolo + yolo-spring-boot-starter-security + + + + + com.yolo + yolo-spring-boot-starter-mybatis + + + + junit + junit + 3.8.1 + test + + + com.yolo + yolo-spring-boot-starter-excel + + + com.yolo + yolo-module-infra + 2025.11-SNAPSHOT + compile + + + diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/KeyboardUserController.java b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/KeyboardUserController.java new file mode 100644 index 0000000..95492ef --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/KeyboardUserController.java @@ -0,0 +1,105 @@ +package com.yolo.keyboard.controller.admin.user; + +import com.yolo.keyboard.dal.dataobject.user.KeyboardUserDO; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserPageReqVO; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserRespVO; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserSaveReqVO; +import com.yolo.keyboard.service.user.KeyboardUserService; +import org.springframework.web.bind.annotation.*; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import jakarta.validation.*; +import jakarta.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.yolo.keyboard.framework.common.pojo.PageParam; +import com.yolo.keyboard.framework.common.pojo.PageResult; +import com.yolo.keyboard.framework.common.pojo.CommonResult; +import com.yolo.keyboard.framework.common.util.object.BeanUtils; +import static com.yolo.keyboard.framework.common.pojo.CommonResult.success; + +import com.yolo.keyboard.framework.excel.core.util.ExcelUtils; + +import com.yolo.keyboard.framework.apilog.core.annotation.ApiAccessLog; +import static com.yolo.keyboard.framework.apilog.core.enums.OperateTypeEnum.*; + + +@Tag(name = "管理后台 - 键盘用户") +@RestController +@RequestMapping("/keyboard-server/keyboard-user") +@Validated +public class KeyboardUserController { + + @Resource + private KeyboardUserService keyboardUserService; + + @PostMapping("/create") + @Operation(summary = "创建键盘用户") + @PreAuthorize("@ss.hasPermission('keyboard-server:keyboard-user:create')") + public CommonResult createKeyboardUser(@Valid @RequestBody KeyboardUserSaveReqVO createReqVO) { + return success(keyboardUserService.createKeyboardUser(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新键盘用户") + @PreAuthorize("@ss.hasPermission('keyboard-server:keyboard-user:update')") + public CommonResult updateKeyboardUser(@Valid @RequestBody KeyboardUserSaveReqVO updateReqVO) { + keyboardUserService.updateKeyboardUser(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除键盘用户") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('keyboard-server:keyboard-user:delete')") + public CommonResult deleteKeyboardUser(@RequestParam("id") Long id) { + keyboardUserService.deleteKeyboardUser(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除键盘用户") + @PreAuthorize("@ss.hasPermission('keyboard-server:keyboard-user:delete')") + public CommonResult deleteKeyboardUserList(@RequestParam("ids") List ids) { + keyboardUserService.deleteKeyboardUserListByIds(ids); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得键盘用户") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('keyboard-server:keyboard-user:query')") + public CommonResult getKeyboardUser(@RequestParam("id") Long id) { + KeyboardUserDO keyboardUser = keyboardUserService.getKeyboardUser(id); + return success(BeanUtils.toBean(keyboardUser, KeyboardUserRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得键盘用户分页") + @PreAuthorize("@ss.hasPermission('keyboard-server:keyboard-user:query')") + public CommonResult> getKeyboardUserPage(@Valid KeyboardUserPageReqVO pageReqVO) { + PageResult pageResult = keyboardUserService.getKeyboardUserPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, KeyboardUserRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出键盘用户 Excel") + @PreAuthorize("@ss.hasPermission('keyboard-server:keyboard-user:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportKeyboardUserExcel(@Valid KeyboardUserPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = keyboardUserService.getKeyboardUserPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "键盘用户.xls", "数据", KeyboardUserRespVO.class, + BeanUtils.toBean(list, KeyboardUserRespVO.class)); + } + +} \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserPageReqVO.java b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserPageReqVO.java new file mode 100644 index 0000000..659d415 --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserPageReqVO.java @@ -0,0 +1,55 @@ +package com.yolo.keyboard.controller.admin.user.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yolo.keyboard.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.yolo.keyboard.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 键盘用户分页 Request VO") +@Data +public class KeyboardUserPageReqVO extends PageParam { + + @Schema(description = "用户 Id", example = "16033") + private Long uid; + + @Schema(description = "用户昵称", example = "张三") + private String nickName; + + @Schema(description = "性别") + private Integer gender; + + @Schema(description = "头像地址", example = "https://www.iocoder.cn") + private String avatarUrl; + + @Schema(description = "创建时间") + private LocalDateTime createdAt; + + @Schema(description = "更新时间") + private LocalDateTime updatedAt; + + @Schema(description = "邮箱地址") + private String email; + + @Schema(description = "是否禁用", example = "1") + private Boolean status; + + @Schema(description = "密码") + private String password; + + @Schema(description = "苹果登录subjectId", example = "12266") + private String subjectId; + + @Schema(description = "邮箱是否验证") + private Boolean emailVerified; + + @Schema(description = "是否是 VIP") + private Boolean isVip; + + @Schema(description = "VIP 过期时间") + private LocalDateTime vipExpiry; + +} \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserRespVO.java b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserRespVO.java new file mode 100644 index 0000000..07496e3 --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserRespVO.java @@ -0,0 +1,69 @@ +package com.yolo.keyboard.controller.admin.user.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import cn.idev.excel.annotation.*; + +@Schema(description = "管理后台 - 键盘用户 Response VO") +@Data +@ExcelIgnoreUnannotated +public class KeyboardUserRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "22036") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "用户 Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16033") + @ExcelProperty("用户 Id") + private Long uid; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @ExcelProperty("用户昵称") + private String nickName; + + @Schema(description = "性别") + @ExcelProperty("性别") + private Integer gender; + + @Schema(description = "头像地址", example = "https://www.iocoder.cn") + @ExcelProperty("头像地址") + private String avatarUrl; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createdAt; + + @Schema(description = "更新时间") + @ExcelProperty("更新时间") + private LocalDateTime updatedAt; + + @Schema(description = "邮箱地址") + @ExcelProperty("邮箱地址") + private String email; + + @Schema(description = "是否禁用", example = "1") + @ExcelProperty("是否禁用") + private Boolean status; + + + + @Schema(description = "苹果登录subjectId", example = "12266") + @ExcelProperty("苹果登录subjectId") + private String subjectId; + + @Schema(description = "邮箱是否验证") + @ExcelProperty("邮箱是否验证") + private Boolean emailVerified; + + @Schema(description = "是否是 VIP") + @ExcelProperty("是否是 VIP") + private Boolean isVip; + + @Schema(description = "VIP 过期时间") + @ExcelProperty("VIP 过期时间") + private LocalDateTime vipExpiry; + +} \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserSaveReqVO.java b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserSaveReqVO.java new file mode 100644 index 0000000..ad17f89 --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/controller/admin/user/vo/KeyboardUserSaveReqVO.java @@ -0,0 +1,58 @@ +package com.yolo.keyboard.controller.admin.user.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 键盘用户新增/修改 Request VO") +@Data +public class KeyboardUserSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "22036") + private Long id; + + @Schema(description = "用户 Id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16033") + @NotNull(message = "用户 Id不能为空") + private Long uid; + + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三") + @NotEmpty(message = "用户昵称不能为空") + private String nickName; + + @Schema(description = "性别") + private Integer gender; + + @Schema(description = "头像地址", example = "https://www.iocoder.cn") + private String avatarUrl; + + @Schema(description = "创建时间") + private LocalDateTime createdAt; + + @Schema(description = "更新时间") + private LocalDateTime updatedAt; + + @Schema(description = "邮箱地址") + private String email; + + @Schema(description = "是否禁用", example = "1") + private Boolean status; + + @Schema(description = "密码") + private String password; + + @Schema(description = "苹果登录subjectId", example = "12266") + private String subjectId; + + @Schema(description = "邮箱是否验证") + private Boolean emailVerified; + + @Schema(description = "是否是 VIP") + private Boolean isVip; + + @Schema(description = "VIP 过期时间") + private LocalDateTime vipExpiry; + +} \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/dal/dataobject/user/KeyboardUserDO.java b/keyboard-server/src/main/java/com/yolo/keyboard/dal/dataobject/user/KeyboardUserDO.java new file mode 100644 index 0000000..71c6575 --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/dal/dataobject/user/KeyboardUserDO.java @@ -0,0 +1,87 @@ +package com.yolo.keyboard.dal.dataobject.user; + + +import com.yolo.keyboard.framework.tenant.core.aop.TenantIgnore; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.yolo.keyboard.framework.mybatis.core.dataobject.BaseDO; + +/** + * 键盘用户 DO + * + * @author ziin + */ +@TableName("keyboard_user") +@KeySequence("keyboard_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TenantIgnore +public class KeyboardUserDO { + + /** + * 主键 + */ + @TableId + private Long id; + /** + * 用户 Id + */ + private Long uid; + /** + * 用户昵称 + */ + private String nickName; + /** + * 性别 + */ + private Integer gender; + /** + * 头像地址 + */ + private String avatarUrl; + /** + * 创建时间 + */ + private LocalDateTime createdAt; + /** + * 更新时间 + */ + private LocalDateTime updatedAt; + /** + * 邮箱地址 + */ + private String email; + /** + * 是否禁用 + */ + private Boolean status; + /** + * 密码 + */ + private String password; + /** + * 苹果登录subjectId + */ + private String subjectId; + /** + * 邮箱是否验证 + */ + private Boolean emailVerified; + /** + * 是否是 VIP + */ + private Boolean isVip; + /** + * VIP 过期时间 + */ + private LocalDateTime vipExpiry; + + +} \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/user/KeyboardUserMapper.java b/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/user/KeyboardUserMapper.java new file mode 100644 index 0000000..be0c62a --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/dal/mysql/user/KeyboardUserMapper.java @@ -0,0 +1,38 @@ +package com.yolo.keyboard.dal.mysql.user; + + + +import com.yolo.keyboard.dal.dataobject.user.KeyboardUserDO; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserPageReqVO; +import com.yolo.keyboard.framework.common.pojo.PageResult; +import com.yolo.keyboard.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.yolo.keyboard.framework.mybatis.core.mapper.BaseMapperX; +import org.apache.ibatis.annotations.Mapper; + +/** + * 键盘用户 Mapper + * + * @author ziin + */ +@Mapper +public interface KeyboardUserMapper extends BaseMapperX { + + default PageResult selectPage(KeyboardUserPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(KeyboardUserDO::getUid, reqVO.getUid()) + .likeIfPresent(KeyboardUserDO::getNickName, reqVO.getNickName()) + .eqIfPresent(KeyboardUserDO::getGender, reqVO.getGender()) + .eqIfPresent(KeyboardUserDO::getAvatarUrl, reqVO.getAvatarUrl()) + .eqIfPresent(KeyboardUserDO::getCreatedAt, reqVO.getCreatedAt()) + .eqIfPresent(KeyboardUserDO::getUpdatedAt, reqVO.getUpdatedAt()) + .eqIfPresent(KeyboardUserDO::getEmail, reqVO.getEmail()) + .eqIfPresent(KeyboardUserDO::getStatus, reqVO.getStatus()) + .eqIfPresent(KeyboardUserDO::getPassword, reqVO.getPassword()) + .eqIfPresent(KeyboardUserDO::getSubjectId, reqVO.getSubjectId()) + .eqIfPresent(KeyboardUserDO::getEmailVerified, reqVO.getEmailVerified()) + .eqIfPresent(KeyboardUserDO::getIsVip, reqVO.getIsVip()) + .eqIfPresent(KeyboardUserDO::getVipExpiry, reqVO.getVipExpiry()) + .orderByDesc(KeyboardUserDO::getId)); + } + +} \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/service/user/KeyboardUserService.java b/keyboard-server/src/main/java/com/yolo/keyboard/service/user/KeyboardUserService.java new file mode 100644 index 0000000..1effce7 --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/service/user/KeyboardUserService.java @@ -0,0 +1,64 @@ +package com.yolo.keyboard.service.user; + + +import java.util.*; + +import com.yolo.keyboard.dal.dataobject.user.KeyboardUserDO; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserPageReqVO; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserSaveReqVO; +import jakarta.validation.*; +import com.yolo.keyboard.framework.common.pojo.PageResult; + +/** + * 键盘用户 Service 接口 + * + * @author ziin + */ +public interface KeyboardUserService { + + /** + * 创建键盘用户 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createKeyboardUser(@Valid KeyboardUserSaveReqVO createReqVO); + + /** + * 更新键盘用户 + * + * @param updateReqVO 更新信息 + */ + void updateKeyboardUser(@Valid KeyboardUserSaveReqVO updateReqVO); + + /** + * 删除键盘用户 + * + * @param id 编号 + */ + void deleteKeyboardUser(Long id); + + /** + * 批量删除键盘用户 + * + * @param ids 编号 + */ + void deleteKeyboardUserListByIds(List ids); + + /** + * 获得键盘用户 + * + * @param id 编号 + * @return 键盘用户 + */ + KeyboardUserDO getKeyboardUser(Long id); + + /** + * 获得键盘用户分页 + * + * @param pageReqVO 分页查询 + * @return 键盘用户分页 + */ + PageResult getKeyboardUserPage(KeyboardUserPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/keyboard-server/src/main/java/com/yolo/keyboard/service/user/KeyboardUserServiceImpl.java b/keyboard-server/src/main/java/com/yolo/keyboard/service/user/KeyboardUserServiceImpl.java new file mode 100644 index 0000000..238a902 --- /dev/null +++ b/keyboard-server/src/main/java/com/yolo/keyboard/service/user/KeyboardUserServiceImpl.java @@ -0,0 +1,82 @@ +package com.yolo.keyboard.service.user; + + +import com.yolo.keyboard.dal.dataobject.user.KeyboardUserDO; +import com.yolo.keyboard.dal.mysql.user.KeyboardUserMapper; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserPageReqVO; +import com.yolo.keyboard.controller.admin.user.vo.KeyboardUserSaveReqVO; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import com.yolo.keyboard.framework.common.pojo.PageResult; +import com.yolo.keyboard.framework.common.util.object.BeanUtils; + + +import static com.yolo.keyboard.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.yolo.keyboard.module.infra.enums.ErrorCodeConstants.*; + +/** + * 键盘用户 Service 实现类 + * + * @author ziin + */ +@Service +@Validated +public class KeyboardUserServiceImpl implements KeyboardUserService { + + @Resource + private KeyboardUserMapper keyboardUserMapper; + + @Override + public Long createKeyboardUser(KeyboardUserSaveReqVO createReqVO) { + // 插入 + KeyboardUserDO keyboardUser = BeanUtils.toBean(createReqVO, KeyboardUserDO.class); + keyboardUserMapper.insert(keyboardUser); + + // 返回 + return keyboardUser.getId(); + } + + @Override + public void updateKeyboardUser(KeyboardUserSaveReqVO updateReqVO) { + // 校验存在 + validateKeyboardUserExists(updateReqVO.getId()); + // 更新 + KeyboardUserDO updateObj = BeanUtils.toBean(updateReqVO, KeyboardUserDO.class); + keyboardUserMapper.updateById(updateObj); + } + + @Override + public void deleteKeyboardUser(Long id) { + // 校验存在 + validateKeyboardUserExists(id); + // 删除 + keyboardUserMapper.deleteById(id); + } + + @Override + public void deleteKeyboardUserListByIds(List ids) { + // 删除 + keyboardUserMapper.deleteByIds(ids); + } + + + private void validateKeyboardUserExists(Long id) { + if (keyboardUserMapper.selectById(id) == null) { + throw exception(KEYBOARD_USER_NOT_EXISTS); + } + } + + @Override + public KeyboardUserDO getKeyboardUser(Long id) { + return keyboardUserMapper.selectById(id); + } + + @Override + public PageResult getKeyboardUserPage(KeyboardUserPageReqVO pageReqVO) { + return keyboardUserMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 90ad161..454ca18 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,8 @@ yolo-module-system yolo-module-infra - + keyboard-server + diff --git a/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java b/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java index 314cab1..f6b16e6 100644 --- a/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java +++ b/yolo-module-infra/src/main/java/com/yolo/keyboard/module/infra/enums/ErrorCodeConstants.java @@ -69,4 +69,7 @@ public interface ErrorCodeConstants { ErrorCode DEMO03_GRADE_NOT_EXISTS = new ErrorCode(1_001_201_009, "学生班级不存在"); ErrorCode DEMO03_GRADE_EXISTS = new ErrorCode(1_001_201_010, "学生班级已存在"); + + // ========== 键盘用户 1-001-202-000 ========== + ErrorCode KEYBOARD_USER_NOT_EXISTS = new ErrorCode(1_001_202_000, "键盘用户不存在"); } diff --git a/yolo-server/pom.xml b/yolo-server/pom.xml index 80b4d72..d1b6eb4 100644 --- a/yolo-server/pom.xml +++ b/yolo-server/pom.xml @@ -31,7 +31,11 @@ yolo-module-infra ${revision} - + + com.yolo + keyboard-server + ${revision} + org.springframework.boot diff --git a/yolo-server/src/main/java/com/yolo/keyboard/server/YoloServerApplication.java b/yolo-server/src/main/java/com/yolo/keyboard/server/YoloServerApplication.java index b32b885..bc7bb4f 100644 --- a/yolo-server/src/main/java/com/yolo/keyboard/server/YoloServerApplication.java +++ b/yolo-server/src/main/java/com/yolo/keyboard/server/YoloServerApplication.java @@ -13,7 +13,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @author 芋道源码 */ @SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${yolo.info.base-package} -@SpringBootApplication(scanBasePackages = {"${yolo.info.base-package}.server", "${yolo.info.base-package}.module"}) +@SpringBootApplication(scanBasePackages = {"${yolo.info.base-package}.server", "${yolo.info.base-package}.module", "com.yolo.keyboard"}) public class YoloServerApplication { public static void main(String[] args) { diff --git a/yolo-server/src/main/resources/application-dev.yaml b/yolo-server/src/main/resources/application-dev.yaml index 081d69d..787e169 100644 --- a/yolo-server/src/main/resources/application-dev.yaml +++ b/yolo-server/src/main/resources/application-dev.yaml @@ -1,5 +1,5 @@ server: - port: 48080 + port: 48081 --- #################### 数据库相关配置 #################### @@ -50,11 +50,11 @@ spring: url: jdbc:postgresql://localhost:5432/keyborad_db?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 username: root password: 123asd - slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改 - lazy: true # 开启懒加载,保证启动速度 - url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 - username: root - password: 123456 +# slave: # 模拟从库,可根据自己需要修改 # 模拟从库,可根据自己需要修改 +# lazy: true # 开启懒加载,保证启动速度 +# url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 +# username: root +# password: 123456 # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 data: diff --git a/yolo-server/src/main/resources/application-local.yaml b/yolo-server/src/main/resources/application-local.yaml index 9f3d768..f085267 100644 --- a/yolo-server/src/main/resources/application-local.yaml +++ b/yolo-server/src/main/resources/application-local.yaml @@ -1,5 +1,5 @@ server: - port: 48080 + port: 48081 --- #################### 数据库相关配置 #################### spring: @@ -231,4 +231,23 @@ justauth: cache: type: REDIS prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: - timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 \ No newline at end of file + timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 + +--- #################### 微信公众号相关配置 #################### +wx: # 参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-mp-spring-boot-starter/README.md 文档 + mp: + # 公众号配置(必填) + app-id: wx041349c6f39b268b + secret: 5abee519483bc9f8cb37ce280e814bd0 + # 存储配置,解决 AccessToken 的跨节点的共享 + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wx # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 + miniapp: # 小程序配置(必填),参见 https://github.com/Wechat-Group/WxJava/blob/develop/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md 文档 + appid: wx63c280fe3248a3e7 + secret: 6f270509224a7ae1296bbf1c8cb97aed + config-storage: + type: RedisTemplate # 采用 RedisTemplate 操作 Redis,会自动从 Spring 中获取 + key-prefix: wa # Redis Key 的前缀 + http-client-type: HttpClient # 采用 HttpClient 请求微信公众号平台 \ No newline at end of file diff --git a/yolo-server/src/main/resources/application.yaml b/yolo-server/src/main/resources/application.yaml index 390a399..73be83f 100644 --- a/yolo-server/src/main/resources/application.yaml +++ b/yolo-server/src/main/resources/application.yaml @@ -58,12 +58,12 @@ mybatis-plus: map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 global-config: db-config: - id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 + id-type: NONE # "智能"模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 # id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库 # id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 # id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 - logic-delete-value: 1 # 逻辑已删除值(默认为 1) - logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) + logic-delete-value: 1 # 逻辑已删除值 + logic-not-delete-value: 0 # 逻辑未删除值 banner: false # 关闭控制台的 Banner 打印 type-aliases-package: ${yolo.info.base-package}.module.*.dal.dataobject encryptor: