From c1ec4b541d2de21742d46636401449324ebfcf41 Mon Sep 17 00:00:00 2001
From: licong <2301640570@qq.com>
Date: Mon, 23 Jun 2025 19:25:40 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=83=A8=E5=88=86=E6=B8=B8?=
=?UTF-8?q?=E6=88=8F=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 101 -------------
.../front/enums/GameErrorCodeConstants.java | 7 +
.../vo/GameUserBeehiveRespVO.java | 7 +-
.../app/game/AppGameIndexController.java | 58 +++++++-
.../app/game/dto/GameUserRespDTO.java | 17 +++
.../app/game/dto/GameUserRespInfo.java | 13 ++
.../controller/app/game/dto/LevelNeedDTO.java | 15 ++
.../app/index/WeiXinMiniController.java | 7 +-
.../dataobject/game/GameUserBeehiveDO.java | 3 +-
.../dal/mysql/game/GameUserBeehiveMapper.java | 2 +-
.../service/game/GameAnnouncementService.java | 2 +
.../service/game/GameBeehiveService.java | 16 +-
.../service/game/GameBeehiveServiceImpl.java | 140 ++++++++++++++++--
.../service/game/GameHarvestService.java | 1 +
.../service/game/GameHarvestServiceImpl.java | 25 +++-
.../service/game/GameTaskServiceImpl.java | 2 +-
.../service/game/GameUserBeehiveService.java | 2 +
.../game/GameUserBeehiveServiceImpl.java | 5 +
.../front/service/game/GameUserService.java | 6 +
.../service/game/GameUserServiceImpl.java | 58 ++++++++
.../service/index/WeiXinMiniService.java | 4 +-
.../service/index/WeiXinMiniServiceImpl.java | 16 +-
.../yudao/bee/front/util/ListUtils.java | 34 +++++
.../pay/service/wallet/PayWalletService.java | 2 +-
.../service/wallet/PayWalletServiceImpl.java | 5 +-
.../mysql/oauth2/OAuth2AccessTokenMapper.java | 14 +-
.../service/oauth2/OAuth2TokenService.java | 1 +
.../oauth2/OAuth2TokenServiceImpl.java | 10 ++
.../src/main/resources/application-local.yaml | 6 +-
.../src/main/resources/application.yaml | 6 +-
30 files changed, 431 insertions(+), 154 deletions(-)
create mode 100644 yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespDTO.java
create mode 100644 yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespInfo.java
create mode 100644 yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/LevelNeedDTO.java
create mode 100644 yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/util/ListUtils.java
diff --git a/README.md b/README.md
index 62252f9ac3..957c4a7116 100644
--- a/README.md
+++ b/README.md
@@ -4,43 +4,14 @@
-**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!!**
-
-**「我喜欢写代码,乐此不疲」**
-**「我喜欢做开源,以此为乐」**
-
-我 🐶 在上海艰苦奋斗,早中晚在 top3 大厂认真搬砖,夜里为开源做贡献。
-
-如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
## 🐶 新手必读
-* 演示地址【Vue3 + element-plus】:
-* 演示地址【Vue3 + vben(ant-design-vue)】:
-* 演示地址【Vue2 + element-ui】:
* 启动文档:
* 视频教程:
-## 🐰 版本说明
-
-| 版本 | JDK 8 + Spring Boot 2.7 | JDK 17/21 + Spring Boot 3.2 |
-|---------------------------------------------------------------------|---------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
-| 【完整版】[ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [`master`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/) 分支 | [`master-jdk17`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master-jdk17/) 分支 |
-| 【精简版】[yudao-boot-mini](https://gitee.com/yudaocode/yudao-boot-mini) | [`master`](https://gitee.com/yudaocode/yudao-boot-mini/tree/master/) 分支 | [`master-jdk17`](https://gitee.com/yudaocode/yudao-boot-mini/tree/master-jdk17/) 分支 |
-
-* 【完整版】:包括系统功能、基础设施、会员中心、数据报表、工作流程、商城系统、微信公众号、CRM、ERP 等功能
-* 【精简版】:只包括系统功能、基础设施功能,不包括会员中心、数据报表、工作流程、商城系统、微信公众号、CRM、ERP 等功能
-
-可参考 [《迁移文档》](https://doc.iocoder.cn/migrate-module/) ,只需要 5-10 分钟,即可将【完整版】按需迁移到【精简版】
-
## 🐯 平台简介
-**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。
-
-> 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。
->
-> 😜 给项目点点 Star 吧,这对我们真的很重要!
-

* Java 后端:`master` 分支为 JDK 8 + Spring Boot 2.7,`master-jdk17` 分支为 JDK 17/21 + Spring Boot 3.2
@@ -59,31 +30,6 @@
* 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务
* 集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏
-## 🐳 项目关系
-
-
-
-三个项目的功能对比,可见社区共同整理的 [国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) 表格。
-
-### 后端项目
-
-| 项目 | Star | 简介 |
-|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
-| [ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [](https://gitee.com/zhijiantianya/ruoyi-vue-pro) [](https://github.com/YunaiV/ruoyi-vue-pro) | 基于 Spring Boot 多模块架构 |
-| [yudao-cloud](https://gitee.com/zhijiantianya/yudao-cloud) | [](https://gitee.com/zhijiantianya/yudao-cloud) [](https://github.com/YunaiV/yudao-cloud) | 基于 Spring Cloud 微服务架构 |
-| [Spring-Boot-Labs](https://gitee.com/yudaocode/SpringBoot-Labs) | [](https://gitee.com/zhijiantianya/yudao-cloud) [](https://github.com/yudaocode/SpringBoot-Labs) | 系统学习 Spring Boot & Cloud 专栏 |
-
-### 前端项目
-
-| 项目 | Star | 简介 |
-|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
-| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 |
-| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [](https://gitee.com/yudaocode/yudao-ui-admin-vben) [](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 |
-| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [](https://gitee.com/yudaocode/yudao-mall-uniapp) [](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 |
-| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 |
-| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 |
-| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [](https://gitee.com/yudaocode/yudao-ui-go-view) [](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 |
-
## 😎 开源协议
**为什么推荐使用本项目?**
@@ -96,30 +42,6 @@
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,113770 行 Java 代码,42462 行代码注释。
-## 🤝 项目外包
-
-我们也是接外包滴,如果你有项目想要外包,可以微信联系【**Aix9975**】。
-
-团队包含专业的项目经理、架构师、前端工程师、后端工程师、测试工程师、运维工程师,可以提供全流程的外包服务。
-
-项目可以是商城、SCRM 系统、OA 系统、物流系统、ERP 系统、CMS 系统、HIS 系统、支付系统、IM 聊天、微信公众号、微信小程序等等。
-
-## 🐼 内置功能
-
-系统内置多种多种业务功能,可以用于快速你的业务系统:
-
-
-
-* 通用模块(必选):系统功能、基础设施
-* 通用模块(可选):工作流程、支付系统、数据报表、会员中心
-* 业务系统(按需):ERP 系统、CRM 系统、商城系统、微信公众号、AI 大模型
-
-> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。
->
-> * 额外新增的功能,我们使用 🚀 标记。
-> * 重新实现的功能,我们使用 ⭐️ 标记。
-
-🙂 所有功能,都通过 **单元测试** 保证高质量。
### 系统功能
@@ -245,10 +167,6 @@
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 |
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 |
-### 商城系统
-
-演示地址:
-


@@ -263,25 +181,6 @@
| 🚀 | 会员分组 | 对会员进行分组,用于用户画像、内容推送等运营手段 |
| 🚀 | 积分签到 | 回馈给签到、消费等行为的积分,会员可订单抵现、积分兑换等途径消耗 |
-### ERP 系统
-
-演示地址:
-
-
-
-### CRM 系统
-
-演示地址:
-
-
-
-### AI 大模型
-
-演示地址:
-
-
-
-
## 🐨 技术栈
diff --git a/yudao-bee-front/yudao-bee-front-api/src/main/java/cn/iocoder/yudao/bee/front/enums/GameErrorCodeConstants.java b/yudao-bee-front/yudao-bee-front-api/src/main/java/cn/iocoder/yudao/bee/front/enums/GameErrorCodeConstants.java
index ef575182f3..03d4638291 100644
--- a/yudao-bee-front/yudao-bee-front-api/src/main/java/cn/iocoder/yudao/bee/front/enums/GameErrorCodeConstants.java
+++ b/yudao-bee-front/yudao-bee-front-api/src/main/java/cn/iocoder/yudao/bee/front/enums/GameErrorCodeConstants.java
@@ -7,6 +7,13 @@ public interface GameErrorCodeConstants {
ErrorCode GAME_USER_NOT_EXISTS = new ErrorCode(2_001_110_002, "养蜂游戏用户不存在");
ErrorCode INSUFFICIENT_NECTAR = new ErrorCode(2_001_110_102, "花蜜不足");
+ ErrorCode STAGE_CAP = new ErrorCode(2_001_110_202, "蜂箱已达到当前阶段上限,请选择升级或收获");
+ ErrorCode LEVEL_UP_EXCEPTION = new ErrorCode(2_001_110_702, "条件设置异常");
+ ErrorCode PROGRESS_NOT_ENOUGH = new ErrorCode(2_001_110_302, "未达到收获进度");
+ ErrorCode UPGRADE_CONDITIONS_ARE_NOT_MET = new ErrorCode(2_001_110_402, "不满足升级条件");
+ ErrorCode LEVEL_FULL = new ErrorCode(2_001_110_502, "蜂箱已完成,请收获");
+ ErrorCode LEVEL_NOT_ENOUGH = new ErrorCode(2_001_110_602, "蜂箱等级不足,无法收获");
+
ErrorCode GAME_STRATEGY_NOT_EXISTS = new ErrorCode(2_001_110_003, "养蜂游戏丰收攻略不存在");
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/admin/game/gameuserbeehive/vo/GameUserBeehiveRespVO.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/admin/game/gameuserbeehive/vo/GameUserBeehiveRespVO.java
index 07f26ec7fe..926e738d5b 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/admin/game/gameuserbeehive/vo/GameUserBeehiveRespVO.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/admin/game/gameuserbeehive/vo/GameUserBeehiveRespVO.java
@@ -2,7 +2,6 @@ package cn.iocoder.yudao.bee.front.controller.admin.game.gameuserbeehive.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
-import java.util.*;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 养蜂游戏用户蜂箱中间 Response VO")
@@ -26,8 +25,8 @@ public class GameUserBeehiveRespVO {
@ExcelProperty("进度")
private Integer progress;
- @Schema(description = "阶段")
- @ExcelProperty("阶段")
- private Integer process;
+ @Schema(description = "等级")
+ @ExcelProperty("等级")
+ private Integer level;
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/AppGameIndexController.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/AppGameIndexController.java
index 5d7a531195..67a0069368 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/AppGameIndexController.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/AppGameIndexController.java
@@ -2,14 +2,18 @@ package cn.iocoder.yudao.bee.front.controller.app.game;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameactivity.vo.GameActivityRespVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameannouncement.vo.GameAnnouncementRespVO;
+import cn.iocoder.yudao.bee.front.controller.admin.game.gamebeehive.vo.GameBeehiveRespVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameexchangerecords.vo.GameExchangeRecordsRespVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameharvest.vo.GameHarvestRespVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gamestrategy.vo.GameStrategyRespVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gametask.vo.GameTaskRespVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameuser.vo.GameUserRespVO;
import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameBeehiveInfoDTO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameUserRespDTO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameUserRespInfo;
import cn.iocoder.yudao.bee.front.service.beeuser.BeeUserService;
import cn.iocoder.yudao.bee.front.service.game.*;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.LevelNeedDTO;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import io.swagger.v3.oas.annotations.Operation;
@@ -19,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.annotation.security.PermitAll;
+import javax.servlet.http.HttpServletRequest;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -91,9 +96,30 @@ public class AppGameIndexController {
return success(BeanUtils.toBean(gameAnnouncementService.getGameAnnouncement(id),GameAnnouncementRespVO.class));
}
- @GetMapping("/get/my/beehive")
+ @GetMapping("/get/userList")
+ @Operation(summary = "获取其他用户列表")
+ @PermitAll
+ public CommonResult> getUserList() {
+ return success(gameUserService.getUserList());
+ }
+
+ @GetMapping("/visit/user")
+ @Operation(summary = "访问其他用户")
+ @PermitAll
+ public CommonResult getUserList(@RequestParam("userId") Integer userId) {
+ return success(gameUserService.getGameUserRespInfo(userId));
+ }
+
+ @GetMapping("/get/beehive")
@Operation(summary = "获取蜂箱列表")
@PermitAll
+ public CommonResult> getBeehiveList() {
+ return success(BeanUtils.toBean(gameBeehiveService.getBeehiveList(),GameBeehiveRespVO.class));
+ }
+
+ @GetMapping("/get/my/beehive")
+ @Operation(summary = "获取我的蜂箱列表")
+ @PermitAll
public CommonResult> getMyBeehive() {
return success(gameBeehiveService.getGameAnnouncementList());
}
@@ -102,8 +128,34 @@ public class AppGameIndexController {
@Operation(summary = "领取蜜蜂")
@Parameter(name = "id", description = "蜂箱编号", required = true, example = "1024")
@PermitAll
- public CommonResult receiveBee(@RequestParam("id")Integer id){
- gameBeehiveService.receiveBee(id);
+ public CommonResult receiveBee(HttpServletRequest request, @RequestParam("id")Integer id){
+ gameBeehiveService.receiveBee(request,id);
+ return success(true);
+ }
+
+ @GetMapping("/get/escalationConditions")
+ @Operation(summary = "查看升级条件")
+ @Parameter(name = "id", description = "蜂箱编号", required = true, example = "1024")
+ @PermitAll
+ public CommonResult getEscalationConditions(@RequestParam("id") Integer id) {
+ return success(gameBeehiveService.getNeed(id));
+ }
+
+ @PostMapping("/upgrade/beehive")
+ @Operation(summary = "升级蜂箱")
+ @Parameter(name = "id", description = "蜂箱编号", required = true, example = "1024")
+ @PermitAll
+ public CommonResult upgrade(@RequestParam("id")Integer id){
+ gameBeehiveService.levelUp(id);
+ return success(true);
+ }
+
+ @PostMapping("/harvest/beehive")
+ @Operation(summary = "收获蜂箱")
+ @Parameter(name = "id", description = "蜂箱编号", required = true, example = "1024")
+ @PermitAll
+ public CommonResult harvestBeehive(@RequestParam("id")Integer id){
+ gameBeehiveService.HarvestBeehive(id);
return success(true);
}
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespDTO.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespDTO.java
new file mode 100644
index 0000000000..66c56ccb5a
--- /dev/null
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespDTO.java
@@ -0,0 +1,17 @@
+package cn.iocoder.yudao.bee.front.controller.app.game.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+public class GameUserRespDTO {
+
+ @Schema(description = "用户编号")
+ private Integer userId;
+
+ @Schema(description = "用户名", example = "张三")
+ private String name;
+
+ @Schema(description = "收获数量,单位:罐",example = "24")
+ private Long harvestNumber;
+}
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespInfo.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespInfo.java
new file mode 100644
index 0000000000..f6b5366040
--- /dev/null
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/GameUserRespInfo.java
@@ -0,0 +1,13 @@
+package cn.iocoder.yudao.bee.front.controller.app.game.dto;
+
+import cn.iocoder.yudao.bee.front.controller.admin.game.gameuserbeehive.vo.GameUserBeehiveRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@Schema(description = "养蜂游戏-其他用户信息 RespVO")
+public class GameUserRespInfo extends GameUserRespDTO {
+
+ private GameUserBeehiveRespVO gameBeehive;
+
+}
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/LevelNeedDTO.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/LevelNeedDTO.java
new file mode 100644
index 0000000000..29c04247ed
--- /dev/null
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/game/dto/LevelNeedDTO.java
@@ -0,0 +1,15 @@
+package cn.iocoder.yudao.bee.front.controller.app.game.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@Schema(description = "蜂箱升级条件 DTO")
+public class LevelNeedDTO {
+
+ @Schema(description = "当前等级")
+ private Integer level;
+
+ @Schema(description = "升级所需M币")
+ private Integer levelNeed;
+}
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/index/WeiXinMiniController.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/index/WeiXinMiniController.java
index b30c3002c9..cfcf8da98e 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/index/WeiXinMiniController.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/controller/app/index/WeiXinMiniController.java
@@ -8,14 +8,17 @@ import cn.iocoder.yudao.bee.front.service.banner.BannerService;
import cn.iocoder.yudao.bee.front.service.index.WeiXinMiniService;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import com.alipay.api.kms.aliyun.http.HttpRequest;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.annotation.security.PermitAll;
+import javax.servlet.http.HttpServletRequest;
import java.util.List;
@RestController
@@ -55,7 +58,7 @@ public class WeiXinMiniController {
@GetMapping("/get/MyBeehiveInfo")
@Operation(summary = "获取首页我的蜂箱列表")
@PermitAll
- public CommonResult> getMyBeehiveInfo() {
- return CommonResult.success(weiXinMiniService.getMyBeehiveAdoptList());
+ public CommonResult> getMyBeehiveInfo(@RequestParam("id") Integer id) {
+ return CommonResult.success(weiXinMiniService.getMyBeehiveAdoptList(id));
}
}
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/dataobject/game/GameUserBeehiveDO.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/dataobject/game/GameUserBeehiveDO.java
index 46b8c6282b..85ab005536 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/dataobject/game/GameUserBeehiveDO.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/dataobject/game/GameUserBeehiveDO.java
@@ -1,7 +1,6 @@
package cn.iocoder.yudao.bee.front.dal.dataobject.game;
import lombok.*;
-import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
@@ -40,6 +39,6 @@ public class GameUserBeehiveDO extends BaseDO {
/**
* 阶段
*/
- private Integer process;
+ private Integer level;
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/mysql/game/GameUserBeehiveMapper.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/mysql/game/GameUserBeehiveMapper.java
index 87c90f069e..716ee4f40e 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/mysql/game/GameUserBeehiveMapper.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/dal/mysql/game/GameUserBeehiveMapper.java
@@ -20,7 +20,7 @@ public interface GameUserBeehiveMapper extends BaseMapperX {
.eqIfPresent(GameUserBeehiveDO::getBeehiveId, reqVO.getBeehiveId())
.eqIfPresent(GameUserBeehiveDO::getUserId, reqVO.getUserId())
.eqIfPresent(GameUserBeehiveDO::getProgress, reqVO.getProgress())
- .eqIfPresent(GameUserBeehiveDO::getProcess, reqVO.getProcess())
+ .eqIfPresent(GameUserBeehiveDO::getLevel, reqVO.getProcess())
.orderByDesc(GameUserBeehiveDO::getId));
}
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameAnnouncementService.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameAnnouncementService.java
index fdabd5fa38..2f02714dbc 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameAnnouncementService.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameAnnouncementService.java
@@ -4,6 +4,7 @@ import java.util.*;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameannouncement.vo.GameAnnouncementPageReqVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameannouncement.vo.GameAnnouncementSaveReqVO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameUserRespDTO;
import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameAnnouncementDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
@@ -56,4 +57,5 @@ public interface GameAnnouncementService {
PageResult getGameAnnouncementPage(GameAnnouncementPageReqVO pageReqVO);
List getGameAnnouncementList();
+
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveService.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveService.java
index d47d954c58..be2c773c3e 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveService.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveService.java
@@ -6,9 +6,11 @@ import cn.iocoder.yudao.bee.front.controller.admin.game.gamebeehive.vo.GameBeehi
import cn.iocoder.yudao.bee.front.controller.admin.game.gamebeehive.vo.GameBeehiveSaveReqVO;
import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameBeehiveInfoDTO;
import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameBeehiveDO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.LevelNeedDTO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.transaction.annotation.Transactional;
+import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
/**
@@ -58,7 +60,17 @@ public interface GameBeehiveService {
List getGameAnnouncementList();
- void receiveBee(Integer id);
+ void receiveBee(HttpServletRequest request, Integer id);
void fedBee(Integer id);
+
+ LevelNeedDTO getNeed(Integer id);
+
+ @Transactional(rollbackFor = Exception.class)
+ void levelUp(Integer id);
+
+ @Transactional(rollbackFor = Exception.class)
+ void HarvestBeehive(Integer id);
+
+ List getBeehiveList();
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveServiceImpl.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveServiceImpl.java
index 5a412499e3..1087c480a4 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveServiceImpl.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameBeehiveServiceImpl.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.bee.front.service.game;
import cn.iocoder.yudao.bee.front.controller.admin.game.gamebeehive.vo.GameBeehivePageReqVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gamebeehive.vo.GameBeehiveSaveReqVO;
+import cn.iocoder.yudao.bee.front.controller.admin.game.gameharvest.vo.GameHarvestSaveReqVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameuser.vo.GameUserSaveReqVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameuserbeehive.vo.GameUserBeehiveSaveReqVO;
import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameBeehiveInfoDTO;
@@ -10,23 +11,31 @@ import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameBeehiveDO;
import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameUserBeehiveDO;
import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameUserDO;
import cn.iocoder.yudao.bee.front.dal.mysql.game.GameBeehiveMapper;
+import cn.iocoder.yudao.bee.front.enums.game.GameHarvestStatusEnum;
import cn.iocoder.yudao.bee.front.service.beeuser.BeeUserService;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.LevelNeedDTO;
import cn.iocoder.yudao.bee.front.util.AssertUtils;
+import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
+import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
+import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
+import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
+import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
+import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
import static cn.iocoder.yudao.bee.front.enums.GameErrorCodeConstants.*;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -51,6 +60,14 @@ public class GameBeehiveServiceImpl implements GameBeehiveService {
@Resource
private GameUserBeehiveService gameUserBeehiveService;
+ @Autowired
+ private OAuth2TokenService oAuth2TokenService;
+ @Autowired
+ private GameHarvestService gameHarvestService;
+ @Autowired
+ private DictDataApi dictDataApi;
+ @Autowired
+ private PayWalletService payWalletService;
@Override
public Integer createGameBeehive(GameBeehiveSaveReqVO createReqVO) {
@@ -98,12 +115,9 @@ public class GameBeehiveServiceImpl implements GameBeehiveService {
@Override
public List getGameAnnouncementList() {
// 获取当前用户
- BeeUserDO userInfo = beeUserService.getLoginUserInfo();
+ BeeUserDO userInfo = beeUserService.getLoginUserInfoException();
// 获取游戏用户信息,无则创建
GameUserDO gameUser = gameUserService.getGameUserByUserId(userInfo.getId());
- if (gameUser == null) {
- return Collections.emptyList();
- }
// 获取用户蜂箱列表
List userBeehiveList = gameUserBeehiveService.getGameUserBeehiveList(gameUser.getId());
@@ -138,7 +152,7 @@ public class GameBeehiveServiceImpl implements GameBeehiveService {
for (GameUserBeehiveDO userBeehive : userBeehiveList) {
GameBeehiveInfoDTO dto = beehiveMap.get(userBeehive.getBeehiveId());
if (dto != null) {
- dto.setProcess(userBeehive.getProcess());
+ dto.setProcess(userBeehive.getLevel());
dto.setProgress(userBeehive.getProgress());
}
}
@@ -147,10 +161,12 @@ public class GameBeehiveServiceImpl implements GameBeehiveService {
}
@Override
- public void receiveBee(Integer id) {
+ public void receiveBee(HttpServletRequest request, Integer id) {
Integer userId = beeUserService.getUserIdException();
GameUserDO gameUserDO = gameUserService.getGameUserByUserId(userId);
GameUserBeehiveSaveReqVO gameUserBeehiveDO = new GameUserBeehiveSaveReqVO();
+ GameBeehiveDO gameBeehiveDO = gameBeehiveMapper.selectById(id);
+ if (gameBeehiveDO == null) throw exception(GAME_BEEHIVE_NOT_EXISTS);
gameUserBeehiveDO.setBeehiveId(id).setUserId(gameUserDO.getId()).setProcess(0).setProgress(0);
gameUserBeehiveService.createGameUserBeehive(gameUserBeehiveDO);
}
@@ -168,11 +184,113 @@ public class GameBeehiveServiceImpl implements GameBeehiveService {
else {
nectarNumber -= 500;
gameUserService.updateGameUser(new GameUserSaveReqVO().setId(gameUser.getId()).setNectarNumber(nectarNumber));
- gameUserBeehiveDO.setProgress(gameUserBeehiveDO.getProgress() + 1);
- if (gameUserBeehiveDO.getProgress() == 10) {
- gameUserBeehiveDO.setProcess(gameUserBeehiveDO.getProcess() + 1);
- }
+ Integer level = gameUserBeehiveDO.getLevel();
+ String levelUpCount = getDictValue("level_up_count", level);
+
+ if (gameUserBeehiveDO.getProgress() == Integer.parseInt(levelUpCount)) throw exception(STAGE_CAP);
+ else gameUserBeehiveDO.setProgress(gameUserBeehiveDO.getProgress() + 1);
+
gameUserBeehiveService.updateGameUserBeehive(BeanUtils.toBean(gameUserBeehiveDO, GameUserBeehiveSaveReqVO.class));
}
}
+
+ @Override
+ public LevelNeedDTO getNeed(Integer id) {
+ Integer userId = beeUserService.getUserIdException();
+ GameUserBeehiveDO gameUserBeehiveDO = gameUserBeehiveService.getGameUserBeehiveByBeehiveId(id,userId);
+ AssertUtils.notNull(gameUserBeehiveDO,GAME_BEEHIVE_NOT_EXISTS);
+ GameUserDO gameUser = gameUserService.getGameUser(gameUserBeehiveDO.getUserId());
+ AssertUtils.notNull(gameUser,GAME_USER_NOT_EXISTS);
+ Integer level = gameUserBeehiveDO.getLevel();
+ LevelNeedDTO dto = new LevelNeedDTO();
+ dto.setLevel(level);
+ String levelNeed = getDictValue("level_need",level);
+ dto.setLevelNeed(Integer.parseInt(levelNeed));
+ return dto;
+ }
+
+ private String getDictValue(String type, Integer level) {
+ String levelName = (level +1) + "级";
+ DictDataRespDTO dictDataRespDTO = dictDataApi.parseDictData(type, levelName);
+ if (dictDataRespDTO == null) throw exception(LEVEL_UP_EXCEPTION);
+ return dictDataRespDTO.getValue();
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void levelUp(Integer id) {
+ Integer userId = beeUserService.getUserIdException();
+ GameUserBeehiveDO gameUserBeehiveDO = gameUserBeehiveService.getGameUserBeehiveByBeehiveId(id,userId);
+ AssertUtils.notNull(gameUserBeehiveDO,GAME_BEEHIVE_NOT_EXISTS);
+ GameUserDO gameUser = gameUserService.getGameUser(gameUserBeehiveDO.getUserId());
+ AssertUtils.notNull(gameUser,GAME_USER_NOT_EXISTS);
+ Integer level = gameUserBeehiveDO.getLevel();
+ PayWalletDO wallet = payWalletService.getWalletByUserId(gameUser.getBeeUserId());
+ String levelNeed = getDictValue("level_need",level);
+ switch (level) {
+ case 1:
+ case 2:
+ case 3:
+ if (gameUserBeehiveDO.getProgress() == 10 && wallet.getCoin()>Integer.parseInt(levelNeed)) {
+ gameUserBeehiveDO.setLevel(level + 1);
+ gameUserBeehiveDO.setProgress(0);
+ wallet.setCoin(wallet.getCoin()-Integer.parseInt(levelNeed));
+ }else throw exception(UPGRADE_CONDITIONS_ARE_NOT_MET);
+ break;
+ case 4:throw exception(LEVEL_FULL);
+ default:throw exception(UPGRADE_CONDITIONS_ARE_NOT_MET);
+ }
+ payWalletService.updateCoins(wallet);
+ gameUserBeehiveService.updateGameUserBeehive(BeanUtils.toBean(gameUserBeehiveDO, GameUserBeehiveSaveReqVO.class));
+ }
+
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void HarvestBeehive(Integer id) {
+ Integer userId = beeUserService.getUserIdException();
+ GameUserBeehiveDO gameUserBeehiveDO = gameUserBeehiveService.getGameUserBeehiveByBeehiveId(id,userId);
+ AssertUtils.notNull(gameUserBeehiveDO,GAME_BEEHIVE_NOT_EXISTS);
+ GameUserDO gameUser = gameUserService.getGameUser(gameUserBeehiveDO.getUserId());
+ AssertUtils.notNull(gameUser,GAME_USER_NOT_EXISTS);
+ Integer level = gameUserBeehiveDO.getLevel();
+ String dictKey = level < 4 ? (level + 1) + "级" : level + "级";
+ //校验收获阶段是否满足
+ DictDataRespDTO dictDataRespDTO = dictDataApi.parseDictData("level_up_count", dictKey);
+ if (dictDataRespDTO == null) throw exception(LEVEL_UP_EXCEPTION);
+ String value = dictDataRespDTO.getValue();
+ Integer harvestCount = Integer.parseInt(value);
+
+ if (gameUserBeehiveDO.getProgress() < harvestCount) throw exception(PROGRESS_NOT_ENOUGH);
+ //创建收获
+ GameHarvestSaveReqVO gameHarvestDO = new GameHarvestSaveReqVO();
+ gameHarvestDO.setBeehiveId(id)
+ .setUserId(userId)
+ .setStatus(GameHarvestStatusEnum.REDEEMABLE.getStatus())
+ .setExpireTime(LocalDateTime.now().plusDays(7L));
+ //设置收获价值
+ switch (level) {
+ case 1:
+ gameHarvestDO.setName("普通蜂蜜").setPrice(Integer.parseInt(dictDataApi.parseDictData("harvest_level","普通蜂蜜").getValue()));
+ break;
+ case 2:
+ gameHarvestDO.setName("中级蜂蜜").setPrice(Integer.parseInt(dictDataApi.parseDictData("harvest_level","中级蜂蜜").getValue()));
+ break;
+ case 3:
+ gameHarvestDO.setName("高级蜂蜜").setPrice(Integer.parseInt(dictDataApi.parseDictData("harvest_level","高级蜂蜜").getValue()));
+ break;
+ case 4:
+ gameHarvestDO.setName("稀有蜂蜜").setPrice(Integer.parseInt(dictDataApi.parseDictData("harvest_level","稀有蜂蜜").getValue()));
+ break;
+ default:throw exception(LEVEL_NOT_ENOUGH);
+ }
+ //创建收获信息
+ gameHarvestService.createGameHarvest(gameHarvestDO);
+ //收获后清理蜂箱数据
+ gameUserBeehiveService.deleteGameUserBeehive(gameUserBeehiveDO.getUserId());
+ }
+
+ @Override
+ public List getBeehiveList() {
+ return gameBeehiveMapper.selectList(null);
+ }
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestService.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestService.java
index fecd14c19b..41accfe0fc 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestService.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestService.java
@@ -59,4 +59,5 @@ public interface GameHarvestService {
void redeemCoin(Integer id);
+ Long getGameHarvestCount(Integer id);
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestServiceImpl.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestServiceImpl.java
index 7284c4b548..9987152105 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestServiceImpl.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameHarvestServiceImpl.java
@@ -10,7 +10,6 @@ import cn.iocoder.yudao.bee.front.enums.game.GameHarvestStatusEnum;
import cn.iocoder.yudao.bee.front.service.beeuser.BeeUserService;
import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
@@ -18,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -94,9 +92,18 @@ public class GameHarvestServiceImpl implements GameHarvestService {
@Override
public List getGameHarvestList() {
- Integer userIdException = beeUserService.getUserIdException();
- GameUserDO gameUserDO = gameUserService.getGameUserByUserId(userIdException);
- return gameHarvestMapper.selectList(GameHarvestDO::getUserId, gameUserDO.getId());
+ Integer loginUser = beeUserService.getUserIdException();
+ GameUserDO gameUserDO = gameUserService.getGameUserByUserId(loginUser);
+ if (gameUserDO == null) return Collections.emptyList();
+ List gameHarvestDOS = gameHarvestMapper.selectList(GameHarvestDO::getUserId, gameUserDO.getId());
+ if (gameHarvestDOS == null || gameHarvestDOS.isEmpty()) return Collections.emptyList();
+ gameHarvestDOS.forEach(gameHarvestDO -> {
+ if (LocalDateTime.now().isAfter(gameHarvestDO.getExpireTime())) {
+ gameHarvestDO.setStatus(GameHarvestStatusEnum.EXPIRED.getStatus());
+ gameHarvestMapper.updateById(gameHarvestDO);
+ }
+ });
+ return gameHarvestDOS;
}
@Transactional(rollbackFor = Exception.class)
@@ -108,8 +115,14 @@ public class GameHarvestServiceImpl implements GameHarvestService {
if (gameHarvest == null || gameHarvest.getExpireTime().isBefore(LocalDateTime.now())) throw exception(GAME_HARVEST_NOT_EXISTS);
if (!gameHarvest.getStatus().equals(GameHarvestStatusEnum.REDEEMABLE.getStatus()))throw exception(GAME_HARVEST_NOT_REDEEM);
wallet.setCoin(wallet.getCoin()+gameHarvest.getPrice());
- payWalletService.addCoins(new PayWalletDO().setId(wallet.getId()).setCoin(wallet.getCoin()));
+ payWalletService.updateCoins(new PayWalletDO().setId(wallet.getId()).setCoin(wallet.getCoin()));
gameHarvest.setStatus(GameHarvestStatusEnum.REDEEMED.getStatus());
gameHarvestMapper.updateById(gameHarvest);
}
+
+ @Override
+ public Long getGameHarvestCount(Integer id) {
+ Long count = gameHarvestMapper.selectCount(GameHarvestDO::getUserId, id);
+ return count == null ? 0 : count;
+ }
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameTaskServiceImpl.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameTaskServiceImpl.java
index e5354fad84..0b3fb70a55 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameTaskServiceImpl.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameTaskServiceImpl.java
@@ -94,7 +94,7 @@ public class GameTaskServiceImpl implements GameTaskService {
Integer userId = beeUserService.getUserIdException();
List gameTaskDOS = taskMapper.selectList(null);
GameUserDO gameUser = gameUserService.getGameUserByUserId(userId);
-
+ if (gameUser == null) return Collections.emptyList();
//获取今日任务记录
List gameTaskRecordsDOS = gameTaskRecordsMapper
.selectList(GameTaskRecordsDO::getGameUserId, gameUser.getId(), GameTaskRecordsDO::getCreateTime, LocalDate.now());
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveService.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveService.java
index 225bc25882..bcea7952c2 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveService.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveService.java
@@ -57,4 +57,6 @@ public interface GameUserBeehiveService {
List getGameUserBeehiveList(Integer id);
GameUserBeehiveDO getGameUserBeehiveByBeehiveId(Integer beehiveId, Integer userId);
+
+ GameUserBeehiveDO getGameUserBeehiveByUserId(Integer userId);
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveServiceImpl.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveServiceImpl.java
index 1f0c8f8777..3468243fef 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveServiceImpl.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserBeehiveServiceImpl.java
@@ -83,4 +83,9 @@ public class GameUserBeehiveServiceImpl implements GameUserBeehiveService {
public GameUserBeehiveDO getGameUserBeehiveByBeehiveId(Integer beehiveId, Integer userId) {
return gameUserBeehiveMapper.selectOne(GameUserBeehiveDO::getBeehiveId,beehiveId,GameUserBeehiveDO::getUserId,userId);
}
+
+ @Override
+ public GameUserBeehiveDO getGameUserBeehiveByUserId(Integer userId) {
+ return gameUserBeehiveMapper.selectOne(GameUserBeehiveDO::getUserId,userId);
+ }
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserService.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserService.java
index b7fa84c434..50112e9859 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserService.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserService.java
@@ -2,11 +2,14 @@ package cn.iocoder.yudao.bee.front.service.game;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameuser.vo.GameUserPageReqVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameuser.vo.GameUserSaveReqVO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameUserRespDTO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameUserRespInfo;
import cn.iocoder.yudao.bee.front.dal.dataobject.beeuser.BeeUserDO;
import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameUserDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import javax.validation.Valid;
+import java.util.List;
/**
* 养蜂游戏用户 Service 接口
@@ -57,4 +60,7 @@ public interface GameUserService {
GameUserDO getOrCreateGameUserByUserId(BeeUserDO userDO);
+ List getUserList();
+
+ GameUserRespInfo getGameUserRespInfo(Integer userId);
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserServiceImpl.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserServiceImpl.java
index ba3d4bdbd9..9ecb0b5f0f 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserServiceImpl.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/game/GameUserServiceImpl.java
@@ -2,7 +2,11 @@ package cn.iocoder.yudao.bee.front.service.game;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameuser.vo.GameUserPageReqVO;
import cn.iocoder.yudao.bee.front.controller.admin.game.gameuser.vo.GameUserSaveReqVO;
+import cn.iocoder.yudao.bee.front.controller.admin.game.gameuserbeehive.vo.GameUserBeehiveRespVO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameUserRespDTO;
+import cn.iocoder.yudao.bee.front.controller.app.game.dto.GameUserRespInfo;
import cn.iocoder.yudao.bee.front.dal.dataobject.beeuser.BeeUserDO;
+import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameUserBeehiveDO;
import cn.iocoder.yudao.bee.front.dal.dataobject.game.GameUserDO;
import cn.iocoder.yudao.bee.front.dal.mysql.game.GameUserMapper;
import cn.iocoder.yudao.bee.front.service.beeuser.BeeUserService;
@@ -16,7 +20,11 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
import static cn.iocoder.yudao.bee.front.enums.GameErrorCodeConstants.GAME_USER_NOT_EXISTS;
+import static cn.iocoder.yudao.bee.front.util.ListUtils.getRandomElementsOptimized;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
/**
@@ -30,6 +38,12 @@ public class GameUserServiceImpl implements GameUserService {
@Resource
private GameUserMapper gameUserMapper;
+ @Autowired
+ private BeeUserService beeUserService;
+ @Autowired
+ private GameHarvestService gameHarvestService;
+ @Autowired
+ private GameUserBeehiveService gameUserBeehiveService;
@Override
public Integer createGameUser(GameUserSaveReqVO createReqVO) {
@@ -92,4 +106,48 @@ public class GameUserServiceImpl implements GameUserService {
public GameUserDO getGameUserByUserId(Integer userId) {
return gameUserMapper.selectOne(GameUserDO::getBeeUserId, userId);
}
+
+ @Override
+ public List getUserList() {
+ // 获取当前用户信息
+ Integer userId = beeUserService.getUserIdException();
+ GameUserDO currentUser = getGameUserByUserId(userId);
+
+ // 构建当前用户响应对象
+ GameUserRespDTO currentUserResp = getGameUserRespDTO(currentUser);
+
+ // 获取所有用户
+ List allUsers = gameUserMapper.selectList(null);
+
+ // 移除当前用户(避免重复)
+ allUsers.removeIf(user -> user.getId().equals(userId));
+
+ // 随机选择4个用户
+ List randomUsers = getRandomElementsOptimized(allUsers, 4);
+
+ // 构建随机用户响应列表
+ List randomUserResps = randomUsers.stream()
+ .map(this::getGameUserRespDTO)
+ .collect(Collectors.toList());
+
+ // 将当前用户添加到结果列表的第一个位置
+ randomUserResps.add(0, currentUserResp);
+
+ return randomUserResps;
+ }
+
+ private GameUserRespDTO getGameUserRespDTO(GameUserDO gameUser) {
+ return new GameUserRespDTO().setUserId(gameUser.getId())
+ .setName(gameUser.getName())
+ .setHarvestNumber(gameHarvestService.getGameHarvestCount(gameUser.getId()));
+ }
+
+ @Override
+ public GameUserRespInfo getGameUserRespInfo(Integer userId){
+ GameUserRespDTO gameUserRespDTO = getGameUserRespDTO(gameUserMapper.selectById(userId));
+ GameUserRespInfo gameUserRespInfo = BeanUtils.toBean(gameUserRespDTO, GameUserRespInfo.class);
+ GameUserBeehiveDO gameUserBeehiveDO= gameUserBeehiveService.getGameUserBeehiveByUserId(userId);
+ gameUserRespInfo.setGameBeehive(BeanUtils.toBean(gameUserBeehiveDO, GameUserBeehiveRespVO.class));
+ return gameUserRespInfo;
+ }
}
\ No newline at end of file
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniService.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniService.java
index e9c086fe28..19331c0d81 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniService.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniService.java
@@ -6,7 +6,9 @@ import cn.iocoder.yudao.bee.front.dal.dataobject.beehive.BeehiveDO;
import cn.iocoder.yudao.bee.front.dal.dataobject.beehiveadopt.BeehiveAdoptDO;
import cn.iocoder.yudao.bee.front.dal.dataobject.honeyproduct.HoneyProductDO;
import cn.iocoder.yudao.bee.front.dal.dataobject.product.ProductDO;
+import com.alipay.api.kms.aliyun.http.HttpRequest;
+import javax.servlet.http.HttpServletRequest;
import java.util.List;
public interface WeiXinMiniService {
@@ -38,5 +40,5 @@ public interface WeiXinMiniService {
*/
List getProductList();
- List getMyBeehiveAdoptList();
+ List getMyBeehiveAdoptList(Integer userId);
}
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniServiceImpl.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniServiceImpl.java
index b2f9feba53..5eac142303 100644
--- a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniServiceImpl.java
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/service/index/WeiXinMiniServiceImpl.java
@@ -18,10 +18,14 @@ import cn.iocoder.yudao.bee.front.service.product.ProductService;
import cn.iocoder.yudao.bee.front.util.AssertUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
+import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
+import com.alipay.api.kms.aliyun.http.HttpRequest;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -33,13 +37,13 @@ import static cn.iocoder.yudao.bee.front.enums.ErrorCodeConstants.HONEY_PRODUCT_
public class WeiXinMiniServiceImpl implements WeiXinMiniService {
@Resource
- BeeFarmService beeFarmService;
+ private BeeFarmService beeFarmService;
@Resource
- BeeUserService beeUserService;
+ private BeeUserService beeUserService;
@Resource
- BeehiveService beehiveService;
+ private BeehiveService beehiveService;
@Resource
private ProductService productService;
@@ -50,6 +54,9 @@ public class WeiXinMiniServiceImpl implements WeiXinMiniService {
@Resource
HoneyProductService honeyProductService;
+ @Resource
+ private OAuth2TokenService oAuth2TokenService;
+
@Override
public BeeFarmTotalRespVO getInfo() {
BeeFarmTotalRespVO result = new BeeFarmTotalRespVO();
@@ -94,8 +101,7 @@ public class WeiXinMiniServiceImpl implements WeiXinMiniService {
}
@Override
- public List getMyBeehiveAdoptList() {
- Integer userId = beeUserService.getUserId();
+ public List getMyBeehiveAdoptList(Integer userId) {
if (userId == null) return Collections.emptyList();
//获取用户蜂箱认养单信息
List adoptDOS = beehiveAdoptService.getBeehiveAdoptListByUserId(userId);
diff --git a/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/util/ListUtils.java b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/util/ListUtils.java
new file mode 100644
index 0000000000..50cc6c5471
--- /dev/null
+++ b/yudao-bee-front/yudao-bee-front-biz/src/main/java/cn/iocoder/yudao/bee/front/util/ListUtils.java
@@ -0,0 +1,34 @@
+package cn.iocoder.yudao.bee.front.util;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+public class ListUtils {
+
+ public static List getRandomElementsOptimized(List list, int count) {
+ if (list == null || list.isEmpty() || count <= 0) {
+ return new ArrayList<>();
+ }
+
+ int size = list.size();
+ if (count >= size) {
+ return new ArrayList<>(list);
+ }
+
+ List result = new ArrayList<>(count);
+ Random random = new Random();
+ List selectedIndices = new ArrayList<>(count);
+
+ // 随机选择不重复的索引
+ while (result.size() < count) {
+ int randomIndex = random.nextInt(size);
+ if (!selectedIndices.contains(randomIndex)) {
+ selectedIndices.add(randomIndex);
+ result.add(list.get(randomIndex));
+ }
+ }
+
+ return result;
+ }
+}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java
index 7aeecc1b4e..79dca5df4c 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java
@@ -99,5 +99,5 @@ public interface PayWalletService {
PayWalletDO getWalletByUserId(Integer userId);
- void addCoins(PayWalletDO wallet);
+ void updateCoins(PayWalletDO wallet);
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java
index 79994260c4..a6077f5b75 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java
@@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.pay.service.wallet;
import cn.hutool.core.lang.Assert;
+import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.wallet.PayWalletPageReqVO;
@@ -228,7 +229,7 @@ public class PayWalletServiceImpl implements PayWalletService {
@Override
public PayWalletDO getWalletByUserId(Integer userId) {
- return walletMapper.selectOne(PayWalletDO::getUserId, userId);
+ return getOrCreateWallet(userId.longValue(), UserTypeEnum.MEMBER.getValue());
}
@Override
@@ -240,7 +241,7 @@ public class PayWalletServiceImpl implements PayWalletService {
}
@Override
- public void addCoins(PayWalletDO wallet) {
+ public void updateCoins(PayWalletDO wallet) {
walletMapper.updateById(wallet);
}
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java
index b262d58835..68d85fb63c 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/oauth2/OAuth2AccessTokenMapper.java
@@ -33,10 +33,12 @@ public interface OAuth2AccessTokenMapper extends BaseMapperX()
- .eq(OAuth2AccessTokenDO::getRefreshToken,refreshToken)
- .orderByDesc(OAuth2AccessTokenDO::getExpiresTime)
- .last("limit 1"))
- .get(0);
- };
+ List oAuth2AccessTokenDOS = selectList(new LambdaQueryWrapperX()
+ .eq(OAuth2AccessTokenDO::getRefreshToken, refreshToken)
+ .orderByDesc(OAuth2AccessTokenDO::getExpiresTime)
+ .last("limit 1"));
+ if (oAuth2AccessTokenDOS != null && !oAuth2AccessTokenDOS.isEmpty()){
+ return oAuth2AccessTokenDOS.get(0);
+ }else return null;
+ }
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java
index 470c8fc0dd..c3208b4a42 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenService.java
@@ -78,4 +78,5 @@ public interface OAuth2TokenService {
*/
PageResult getAccessTokenPage(OAuth2AccessTokenPageReqVO reqVO);
+ Integer getUserIdByAccessToken(String token);
}
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
index d9bfa59373..9cd23838f2 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/oauth2/OAuth2TokenServiceImpl.java
@@ -163,6 +163,16 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService {
return oauth2AccessTokenMapper.selectPage(reqVO);
}
+ @Override
+ public Integer getUserIdByAccessToken(String token) {
+ OAuth2AccessTokenDO oAuth2AccessTokenDO = oauth2AccessTokenMapper.selectByAccessToken(token);
+ if (oAuth2AccessTokenDO != null && !DateUtils.isExpired(oAuth2AccessTokenDO.getExpiresTime())) {
+ Long userId = oAuth2AccessTokenDO.getUserId();
+ return userId.intValue();
+ }
+ return null;
+ }
+
private OAuth2AccessTokenDO createOAuth2AccessToken(OAuth2RefreshTokenDO refreshTokenDO, OAuth2ClientDO clientDO) {
OAuth2AccessTokenDO accessTokenDO = new OAuth2AccessTokenDO().setAccessToken(generateAccessToken())
.setUserId(refreshTokenDO.getUserId()).setUserType(refreshTokenDO.getUserType())
diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml
index af22f118a7..d4e8281e2f 100644
--- a/yudao-server/src/main/resources/application-local.yaml
+++ b/yudao-server/src/main/resources/application-local.yaml
@@ -124,10 +124,10 @@ rocketmq:
spring:
# RabbitMQ 配置项,对应 RabbitProperties 配置类
rabbitmq:
- host: 124.220.236.38 # RabbitMQ 服务的地址
+ host: 8.153.204.174 # RabbitMQ 服务的地址
port: 5672 # RabbitMQ 服务的端口
- username: admin # RabbitMQ 服务的账号
- password: Cd5XhnCt # RabbitMQ 服务的密码
+ username: rabbitmq # RabbitMQ 服务的账号
+ password: rabbitmq # RabbitMQ 服务的密码
# Kafka 配置项,对应 KafkaProperties 配置类
kafka:
bootstrap-servers: 127.0.0.1:9092 # 指定 Kafka Broker 地址,可以设置多个,以逗号分隔
diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml
index 863b304b37..adf4ef7e09 100644
--- a/yudao-server/src/main/resources/application.yaml
+++ b/yudao-server/src/main/resources/application.yaml
@@ -48,7 +48,7 @@ springdoc:
default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档
knife4j:
- enable: false # TODO 芋艿:需要关闭增强,具体原因见:https://github.com/xiaoymin/knife4j/issues/874
+ enable: false # TODO 需要关闭增强,具体原因见:https://github.com/xiaoymin/knife4j/issues/874
setting:
language: zh_cn
@@ -361,7 +361,7 @@ yudao:
kd100:
key: pLXUGAwK5305
customer: E77DF18BE109F454A5CD319E44BF5177
- pay: #微信支付配置 todo 请自行配置
+ pay: #微信支付配置 TODO 请自行配置
wechat:
app-id: wxed3e5106f6adce94
mch-id: 1312305301
@@ -370,7 +370,7 @@ yudao:
notify-url: https://www.weixin.qq.com/wxpay/pay.php
debug: false
-# 插件配置 TODO 芋艿:【IOT】需要处理下
+# 插件配置 TODO 【IOT】需要处理下
pf4j:
pluginsDir: /Users/anhaohao/code/gitee/ruoyi-vue-pro/plugins # 插件目录