From 781b5fea46cd55220b5ffca17aa6bb1b83551410 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期二, 21 五月 2024 08:59:55 +0800
Subject: [PATCH] 代码提交
---
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserShareServiceImpl.java | 23 +
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java | 26 +
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java | 8
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java | 17
ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/SubjectVO.java | 2
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TFeedback.java | 2
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java | 4
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStory.java | 13
ruoyi-service/ruoyi-management/src/main/resources/mapper/management/src/main/resources/mapper/TUseGuideMapper.xml | 3
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserShare.java | 34 +
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserParent.java | 52 ++
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TStudyController.java | 6
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TUserShareMapper.java | 17
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java | 7
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/vo/VipSetVO.java | 6
ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java | 13
ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/SubjectDTO.java | 2
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java | 11
ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/query/UseGuideQuery.java | 17
ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStoryMapper.xml | 2
ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TUserShareMapper.xml | 7
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StoryDTO.java | 2
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/SubjectDTO.java | 2
ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/StoryDTO.java | 2
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserShareService.java | 17
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java | 6
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java | 3
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/OssController.java | 78 +++
ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TUseGuide.java | 108 +++++
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/mapper/TUseGuideMapper.java | 2
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java | 9
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/query/UseGuideQuery.java | 17
ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TFeedback.java | 118 +++++
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/service/ITUseGuideService.java | 2
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java | 3
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 89 ++++
ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/domain/TUserShare.java | 36 +
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 273 +++++++++---
ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java | 18
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/utils/ObsUploadUtil.java | 78 +++
ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TUseGuide.java | 15
41 files changed, 1,017 insertions(+), 133 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java
index 9c592e4..82dc9c2 100644
--- a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/factory/TManagementFallbackFactory.java
@@ -1,10 +1,12 @@
package com.ruoyi.management.api.factory;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.management.api.feignClient.ManagementClient;
+import com.ruoyi.management.api.model.TFeedback;
+import com.ruoyi.management.api.model.TUseGuide;
import com.ruoyi.management.api.model.TVipSet;
+import com.ruoyi.management.api.query.UseGuideQuery;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
@@ -28,12 +30,22 @@
return new ManagementClient() {
@Override
public R getPage1() {
- return R.fail("获取注意事项失败"+cause.getMessage());
+ return R.fail("家长端获取注意事项失败"+cause.getMessage());
}
@Override
public R<List<TVipSet>> getVipSet1() {
- return R.fail("获取会员规格配置和说明失败"+cause.getMessage());
+ return R.fail("家长端获取会员规格配置和说明失败"+cause.getMessage());
+ }
+
+ @Override
+ public R<PageInfo<TUseGuide>> useGuide1(UseGuideQuery query) {
+ return R.fail("家长端获取使用指南失败"+cause.getMessage());
+ }
+
+ @Override
+ public R addFeedBack(TFeedback dto) {
+ return R.fail("家长端发布意见反馈失败"+cause.getMessage());
}
};
}
diff --git a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java
index 9a5400d..16601be 100644
--- a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java
+++ b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/feignClient/ManagementClient.java
@@ -2,14 +2,17 @@
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.management.api.factory.TManagementFallbackFactory;
+import com.ruoyi.management.api.model.TFeedback;
import com.ruoyi.management.api.model.TPage;
+import com.ruoyi.management.api.model.TUseGuide;
import com.ruoyi.management.api.model.TVipSet;
+import com.ruoyi.management.api.query.UseGuideQuery;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@@ -21,4 +24,10 @@
@PostMapping("/tUser/getVipSet1")
R<List<TVipSet>> getVipSet1();
+ @PostMapping("/tSysSet/useGuide1")
+ R<PageInfo<TUseGuide>> useGuide1(@RequestBody UseGuideQuery query);
+
+ @PostMapping("/tFeedback/addFeedBack")
+ R addFeedBack(@RequestBody TFeedback dto);
+
}
diff --git a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TFeedback.java b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TFeedback.java
new file mode 100644
index 0000000..678a6dd
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TFeedback.java
@@ -0,0 +1,118 @@
+package com.ruoyi.management.api.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户反馈
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+@Data
+@TableName("t_feedback")
+public class TFeedback extends BaseModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 用户id
+ */
+ @ApiModelProperty(value = "用户id")
+ private Integer userId;
+ /**
+ * 图片
+ */
+ @ApiModelProperty(value = "图片 多张逗号隔开")
+ private String img;
+ /**
+ * 内容
+ */
+ @ApiModelProperty(value = "内容")
+ private String content;
+ /**
+ * 状态1未处理 2已处理
+ */
+ @ApiModelProperty(value = "状态1未处理2已处理")
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @ApiModelProperty(value = "插入时间")
+ private Date insertTime;
+
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public Integer getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Integer userId) {
+ this.userId = userId;
+ }
+
+ public String getImg() {
+ return img;
+ }
+
+ public void setImg(String img) {
+ this.img = img;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public Integer getState() {
+ return state;
+ }
+
+ public void setState(Integer state) {
+ this.state = state;
+ }
+
+ public Date getInsertTime() {
+ return insertTime;
+ }
+
+ public void setInsertTime(Date insertTime) {
+ this.insertTime = insertTime;
+ }
+
+ @Override
+ public String toString() {
+ return "TFeedback{" +
+ ", id=" + id +
+ ", userId=" + userId +
+ ", img=" + img +
+ ", content=" + content +
+ ", state=" + state +
+ ", insertTime=" + insertTime +
+ "}";
+ }
+}
diff --git a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TUseGuide.java b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TUseGuide.java
new file mode 100644
index 0000000..e793774
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/model/TUseGuide.java
@@ -0,0 +1,108 @@
+package com.ruoyi.management.api.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.web.domain.BaseModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 使用指南
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+@Data
+@TableName("t_use_guide")
+public class TUseGuide extends BaseModel {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 标题
+ */
+ @ApiModelProperty(value = "标题")
+ private String title;
+ /**
+ * 排序 数字越大权重越大
+ */
+ @ApiModelProperty(value = "排序")
+ private String sort;
+
+ /**
+ * 答案
+ */
+ @ApiModelProperty(value = "答案--查看详情使用该字段")
+ private String answer;
+ /**
+ * 插入时间
+ */
+ @ApiModelProperty(value = "插入时间")
+ private Date insertTime;
+
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getSort() {
+ return sort;
+ }
+
+ public void setSort(String sort) {
+ this.sort = sort;
+ }
+
+
+
+ public String getAnswer() {
+ return answer;
+ }
+
+ public void setAnswer(String answer) {
+ this.answer = answer;
+ }
+
+ public Date getInsertTime() {
+ return insertTime;
+ }
+
+ public void setInsertTime(Date insertTime) {
+ this.insertTime = insertTime;
+ }
+
+ @Override
+ public String toString() {
+ return "TUseGuide{" +
+ ", id=" + id +
+ ", title=" + title +
+ ", sort=" + sort +
+
+ ", answer=" + answer +
+ ", insertTime=" + insertTime +
+ "}";
+ }
+}
diff --git a/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/query/UseGuideQuery.java b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/query/UseGuideQuery.java
new file mode 100644
index 0000000..63c2844
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-management/src/main/java/com/ruoyi/management/api/query/UseGuideQuery.java
@@ -0,0 +1,17 @@
+package com.ruoyi.management.api.query;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@ApiModel
+@Data
+public class UseGuideQuery {
+ @ApiModelProperty(value = "标题")
+ private String title;
+ @ApiModelProperty(value = "页码,首页1", required = true)
+ private Integer pageNumber;
+ @ApiModelProperty(value = "页条数", required = true)
+ private Integer pageSize;
+}
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/domain/TUserShare.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/domain/TUserShare.java
new file mode 100644
index 0000000..4cbc1a8
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/domain/TUserShare.java
@@ -0,0 +1,36 @@
+package com.ruoyi.study.api.domain;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.web.domain.BaseModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户表
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+@Data
+@TableName("t_user_share")
+public class TUserShare extends BaseModel {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 用户id
+ */
+ private Integer userId;
+ /**
+ * 分享时 获得积分
+ */
+ private Integer integral;
+
+}
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/StoryDTO.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/StoryDTO.java
index 638d8c7..f01777f 100644
--- a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/StoryDTO.java
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/StoryDTO.java
@@ -19,7 +19,7 @@
@ApiModelProperty(value = "图片",required = true)
private String img;
@ApiModelProperty(value = "正确语音",required = true)
- private String right;
+ private String correct;
@ApiModelProperty(value = "错误语音 多个逗号拼接")
private String error;
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/SubjectDTO.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/SubjectDTO.java
index c7f1322..183d190 100644
--- a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/SubjectDTO.java
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/dto/SubjectDTO.java
@@ -19,7 +19,7 @@
@ApiModelProperty(value = "图片",required = true)
private String img;
@ApiModelProperty(value = "正确语音",required = true)
- private String right;
+ private String correct;
@ApiModelProperty(value = "错误语音 多个逗号拼接")
private String error;
diff --git a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/SubjectVO.java b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/SubjectVO.java
index 180d6c8..0baa4c7 100644
--- a/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/SubjectVO.java
+++ b/ruoyi-api/ruoyi-api-study/src/main/java/com/ruoyi/study/api/vo/SubjectVO.java
@@ -7,6 +7,8 @@
@Data
@ApiModel("故事/题目管理列表查询返回VO")
public class SubjectVO {
+ @ApiModelProperty(value = "id")
+ private Integer id;
@ApiModelProperty(value = "题目名称")
private String name;
@ApiModelProperty(value = "英文释义")
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserParent.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserParent.java
new file mode 100644
index 0000000..da08de9
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUserParent.java
@@ -0,0 +1,52 @@
+package com.ruoyi.system.api.model;
+
+import com.ruoyi.system.api.domain.SysUser;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * 用户信息 家长端 学习端使用
+ *
+ * @author ruoyi
+ */
+@Data
+public class LoginUserParent implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户唯一标识
+ */
+ private String token;
+ /**
+ * 用户姓名
+ */
+ private String name;
+
+ /**
+ * 用户名id
+ */
+ private Integer userid;
+
+ /**
+ * 用户名
+ */
+ private String phone;
+ /**
+ * 登录时间
+ */
+ private Long loginTime;
+
+ /**
+ * 过期时间
+ */
+ private Long expireTime;
+
+ /**
+ * 登录IP地址
+ */
+ private String ipaddr;
+
+}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
index c122e52..80a3aeb 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/SecurityConstants.java
@@ -36,6 +36,14 @@
* 用户标识
*/
public static final String USER_KEY = "user_key";
+ /**
+ * 家长端登录用户标识
+ */
+ public static final String USER_PARENT_KEY = "user_parent_key";
+ /**
+ * 学习端登录用户标识 -- 做单点登录
+ */
+ public static final String USER_STUDY_KEY = "user_study_key";
/**
* 登录用户
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java
index d984892..e0e99f4 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/JwtUtils.java
@@ -51,6 +51,17 @@
Claims claims = parseToken(token);
return getValue(claims, SecurityConstants.USER_KEY);
}
+ /**
+ * 家长端 学习端根据令牌获取用户标识
+ *
+ * @param token 令牌
+ * @return 用户ID
+ */
+ public static String getUserKey1(String token)
+ {
+ Claims claims = parseToken(token);
+ return getValue(claims, SecurityConstants.USER_PARENT_KEY);
+ }
/**
* 根据令牌获取用户标识
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
index fa04637..9813724 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
@@ -53,6 +53,13 @@
{
tokenService.delLoginUser(token);
}
+ /**
+ * 家长端会话注销,根据指定Token
+ */
+ public void logoutByToken1(String token)
+ {
+ tokenService.delLoginUser1(token);
+ }
/**
* 检验用户是否已经登录,如未登录,则抛出异常
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java
index 8b0d86c..3d070e5 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthUtil.java
@@ -33,6 +33,15 @@
{
authLogic.logoutByToken(token);
}
+ /**
+ * 家长端会话注销,根据指定Token
+ *
+ * @param token 指定token
+ */
+ public static void logoutByToken1(String token)
+ {
+ authLogic.logoutByToken1(token);
+ }
/**
* 检验当前会话是否已经登录,如未登录,则抛出异常
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 139ee8b..a5af603 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -4,6 +4,8 @@
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
+
+import com.ruoyi.system.api.model.LoginUserParent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ruoyi.common.core.constant.CacheConstants;
@@ -64,7 +66,25 @@
rspMap.put("expires_in", expireTime);
return rspMap;
}
-
+ public Map<String, Object> createToken1(LoginUserParent loginUser)
+ {
+ String token = IdUtils.fastUUID();
+ Integer userId = loginUser.getUserid();
+ String name = loginUser.getName();
+ loginUser.setToken(token);
+ loginUser.setIpaddr(IpUtils.getIpAddr());
+ refreshToken1(loginUser);
+ // Jwt存储信息
+ Map<String, Object> claimsMap = new HashMap<String, Object>();
+ claimsMap.put(SecurityConstants.USER_PARENT_KEY, token);
+ claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+ claimsMap.put(SecurityConstants.DETAILS_USERNAME, name);
+ // 接口返回信息
+ Map<String, Object> rspMap = new HashMap<String, Object>();
+ rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+ rspMap.put("expires_in", expireTime);
+ return rspMap;
+ }
/**
* 获取用户身份信息
*
@@ -85,6 +105,27 @@
// 获取请求携带的令牌
String token = SecurityUtils.getToken(request);
return getLoginUser(token);
+ }
+ /**
+ * 家长端/学习端获取用户身份信息
+ *
+ * @return 用户信息
+ */
+ public LoginUserParent getLoginUser1()
+ {
+ return getLoginUser1(ServletUtils.getRequest());
+ }
+
+ /**
+ * 获取用户身份信息
+ *
+ * @return 用户信息
+ */
+ public LoginUserParent getLoginUser1(HttpServletRequest request)
+ {
+ // 获取请求携带的令牌
+ String token = SecurityUtils.getToken(request);
+ return getLoginUser1(token);
}
/**
@@ -109,6 +150,29 @@
}
return user;
}
+ /**
+ * 家长端 学习端 获取用户身份信息
+ *
+ * @return 用户信息
+ */
+ public LoginUserParent getLoginUser1(String token)
+ {
+ LoginUserParent user = null;
+ try
+ {
+ if (StringUtils.isNotEmpty(token))
+ {
+ String userkey = JwtUtils.getUserKey1(token);
+ user = redisService.getCacheObject(getTokenKey(userkey));
+ return user;
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return user;
+ }
/**
* 设置用户身份信息
@@ -129,6 +193,17 @@
if (StringUtils.isNotEmpty(token))
{
String userkey = JwtUtils.getUserKey(token);
+ redisService.deleteObject(getTokenKey(userkey));
+ }
+ }
+ /**
+ * 家长端删除用户缓存信息
+ */
+ public void delLoginUser1(String token)
+ {
+ if (StringUtils.isNotEmpty(token))
+ {
+ String userkey = JwtUtils.getUserKey1(token);
redisService.deleteObject(getTokenKey(userkey));
}
}
@@ -162,6 +237,18 @@
redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
}
+ /**
+ * 家长端用户登录
+ */
+ public void refreshToken1(LoginUserParent dto)
+ {
+ dto.setLoginTime(System.currentTimeMillis());
+ dto.setExpireTime(dto.getLoginTime() + expireTime * MILLIS_MINUTE);
+ // 根据uuid将loginUser缓存
+ String userKey = getTokenKey(dto.getToken());
+ redisService.setCacheObject(userKey, dto, expireTime, TimeUnit.MINUTES);
+ }
+
private String getTokenKey(String token)
{
return ACCESS_TOKEN + token;
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/OssController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/OssController.java
new file mode 100644
index 0000000..4560bfe
--- /dev/null
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/OssController.java
@@ -0,0 +1,78 @@
+package com.ruoyi.management.controller;
+
+
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.management.utils.ObsUploadUtil;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+@RestController
+@RequestMapping("/base/oss")
+public class OssController {
+ private static final String endpoint = "obs.cn-north-4.myhuaweicloud.com";
+ private static final String accessKeyId = "DRJFJRVQ9KVLQUSJUROI";
+ private static final String accessKeySecret = "3zpPkULh0a8CTTYjKL4f7szQZECkvVol4SwNab0f";
+ private static final String bucketName = "jkjianshen";
+ @PostMapping("/upload")
+ @ApiOperation(value = "文件上传",tags = "文件上传")
+ public String upload(@RequestParam("file") MultipartFile file) throws IOException {
+ String s = ObsUploadUtil.obsUpload(file);
+ return s;
+ }
+// @PostMapping("/uploadVideo")
+// @ApiOperation(value = "视频上传",tags = "文件上传")
+// public String uploadVideo(@RequestParam("file") MultipartFile file) throws Exception {
+// // 获取文件名
+// String fileName = file.getOriginalFilename();
+// // 构建目标文件路径
+// String filePath = "/usr/local/temp" + fileName;
+//// String filePath = "C:/temp/" + fileName;
+// // 创建目标文件对象
+// File targetFile = new File(filePath);
+// // 将 MultipartFile 内容写入目标文件
+// try (FileOutputStream fos = new FileOutputStream(targetFile)) {
+// fos.write(file.getBytes());
+// }
+// String s = UploadVideoUtil.endUpload(targetFile.toString(), UUIDUtil.getRandomCode(5)+fileName);
+// // 创建要删除的文件对象
+// File fileToDelete = new File(targetFile.toString());
+// // 检查文件是否存在,并删除文件
+// if (fileToDelete.exists()) {
+// fileToDelete.delete();
+// }
+// return s;
+// }
+
+// @PostMapping("/upload")
+// @ApiOperation(value = "文件上传",tags = "文件上传")
+// public ResponseEntity<String> upload(@RequestParam("file") MultipartFile file) throws IOException {
+// // 创建 OSSClient 实例
+// OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
+//
+//
+// // 创建 PutObjectRequest 对象
+// PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, file.getOriginalFilename(), file.getInputStream());
+//
+// ObjectMetadata metadata = new ObjectMetadata();
+// // 取消文件缓存,文件每次都会从OSS服务器获取
+// metadata.setHeader("Cache-Control", "no-cache");
+// metadata.setHeader("Expires", "0");
+//
+//
+// // 上传文件
+// PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
+//
+// // 关闭 OSSClient 实例
+// ossClient.shutdown();
+//
+// String fileUrl = "https://" + bucketName + "." + endpoint + "/" + file.getOriginalFilename();
+// return ResponseEntity.ok(fileUrl);
+// }
+
+
+}
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java
index 8af2110..73e0bbe 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TFeedbackController.java
@@ -1,21 +1,24 @@
package com.ruoyi.management.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.management.domain.TFeedback;
+import com.ruoyi.management.domain.TUseGuide;
import com.ruoyi.management.dto.FeedbackQuery;
+import com.ruoyi.management.query.UseGuideQuery;
import com.ruoyi.management.service.ITFeedbackService;
import com.ruoyi.management.vo.FeedbackVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -32,6 +35,12 @@
@Autowired
private ITFeedbackService feedbackService;
+ @PostMapping("/addFeedBack")
+ @ApiOperation(value = "反馈", tags = {"家长端-意见反馈"})
+ public R addFeedBack(@RequestBody TFeedback dto) {
+ feedbackService.save(dto);
+ return R.ok();
+ }
@ResponseBody
@PostMapping("/listAll")
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TStudyController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TStudyController.java
index 0908c27..7032f98 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TStudyController.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TStudyController.java
@@ -30,7 +30,7 @@
* @since 2024-04-26
*/
@Controller
-@RequestMapping("/management/tStudy")
+@RequestMapping("/tStudy")
public class TStudyController {
@Autowired
private StudyClient studyClient;
@@ -43,9 +43,9 @@
return AjaxResult.success(data);
}
@ApiOperation(value = "选择故事列表查询", tags = {"后台-学习"})
- @PostMapping(value = "/storyist1")
+ @PostMapping(value = "/storyList1")
@ResponseBody
- public AjaxResult<PageInfo<TStory>> storyist(ChoiceStory dto) {
+ public AjaxResult<PageInfo<TStory>> storyList(ChoiceStory dto) {
R<PageInfo<TStory>> pageInfoR = studyClient.storyList(dto);
PageInfo<TStory> data = pageInfoR.getData();
return AjaxResult.success(data);
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java
index 6187c6c..821b6c1 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TSysSetController.java
@@ -11,6 +11,7 @@
import com.ruoyi.management.domain.TUseGuide;
import com.ruoyi.management.dto.AggrementDTO;
import com.ruoyi.management.dto.UseGuidDTO;
+import com.ruoyi.management.query.UseGuideQuery;
import com.ruoyi.management.service.ITPageService;
import com.ruoyi.management.service.ITProtocolService;
import com.ruoyi.management.service.ITSysSetService;
@@ -20,7 +21,6 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@@ -118,6 +118,23 @@
res.setTotal(useGuides.size());
return AjaxResult.success(res);
}
+ @PostMapping("/useGuide1")
+ @ApiOperation(value = "列表查询", tags = {"家长端-使用指南"})
+ public R<PageInfo<TUseGuide>> useGuide1(@RequestBody UseGuideQuery query) {
+ QueryWrapper<TUseGuide> wrapper = new QueryWrapper<>();
+ if (StringUtils.hasLength(query.getTitle())){
+ wrapper.like("title",query.getTitle());
+ }
+ List<String> strings = new ArrayList<>();
+ strings.add("insertTime");
+ wrapper.orderByDesc(strings);
+ PageInfo<TUseGuide> res = new PageInfo<>(query.getPageNumber(), query.getPageSize());
+ List<TUseGuide> useGuides = useGuideService.list(wrapper);
+ res.setRecords(useGuides);
+ res.setTotal(useGuides.size());
+ return R.ok(res);
+ }
+
@PostMapping("/updateUseGuide")
@ApiOperation(value = "使用指南-添加/编辑/查看详情", tags = {"使用指南"})
public AjaxResult<TUseGuide> updateUseGuide(@RequestBody UseGuidDTO dto) {
@@ -126,7 +143,6 @@
TUseGuide useGuide = new TUseGuide();
useGuide.setTitle(dto.getTitle());
useGuide.setSort(dto.getSort());
- useGuide.setIsDelete(0);
useGuide.setAnswer(dto.getAnswer());
useGuide.setInsertTime(new Date());
useGuideService.save(useGuide);
@@ -148,10 +164,8 @@
@DeleteMapping("/delete{id}")
@ApiOperation(value = "使用指南-删除", tags = {"使用指南"})
public AjaxResult updateUseGuide(@PathVariable Integer id) {
-
- TUseGuide useGuide2 = useGuideService.getById(id);
- useGuide2.setIsDelete(1);
- useGuideService.updateById(useGuide2);
+// TUseGuide useGuide2 = useGuideService.getById(id);
+ useGuideService.removeById(id);
return AjaxResult.success("删除成功");
}
}
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
index c12df85..3bf88bd 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/controller/TUserController.java
@@ -136,14 +136,12 @@
return R.ok(list);
}
@PostMapping("/setVipSet")
- @ApiOperation(value = "获取会员设置", tags = {"用户管理"})
+ @ApiOperation(value = "保存会员设置", tags = {"用户管理"})
public AjaxResult setVipSet(@RequestBody VipSetVO vo) {
- String info = vo.getInfo();
List<TVipSet> list = vo.getList();
// 删除原有数据 重新保存
vipSetService.remove(new QueryWrapper<TVipSet>());
for (TVipSet tVipSet : list) {
- tVipSet.setInfo(info);
vipSetService.save(tVipSet);
}
return AjaxResult.success("保存成功");
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TFeedback.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TFeedback.java
index b41a00e..3a2ca11 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TFeedback.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TFeedback.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.web.domain.BaseModel;
import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
import java.io.Serializable;
@@ -19,6 +20,7 @@
* @author 无关风月
* @since 2024-04-26
*/
+@Data
@TableName("t_feedback")
public class TFeedback extends BaseModel {
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TUseGuide.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TUseGuide.java
index bda616c..88cf1a5 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TUseGuide.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/domain/TUseGuide.java
@@ -39,11 +39,7 @@
*/
@ApiModelProperty(value = "排序")
private String sort;
- /**
- * 是否删除0否1是
- */
- @ApiModelProperty(value = "是否删除 0否1是")
- private Integer isDelete;
+
/**
* 答案
*/
@@ -80,13 +76,6 @@
this.sort = sort;
}
- public Integer getIsDelete() {
- return isDelete;
- }
-
- public void setIsDelete(Integer isDelete) {
- this.isDelete = isDelete;
- }
public String getAnswer() {
return answer;
@@ -110,7 +99,7 @@
", id=" + id +
", title=" + title +
", sort=" + sort +
- ", isDelete=" + isDelete +
+
", answer=" + answer +
", insertTime=" + insertTime +
"}";
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/mapper/TUseGuideMapper.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/mapper/TUseGuideMapper.java
index 6213eaa..95a419c 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/mapper/TUseGuideMapper.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/mapper/TUseGuideMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.management.mapper;
-import com.ruoyi.management.domain.TUseGuide;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.management.domain.TUseGuide;
/**
* <p>
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/query/UseGuideQuery.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/query/UseGuideQuery.java
new file mode 100644
index 0000000..d278c60
--- /dev/null
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/query/UseGuideQuery.java
@@ -0,0 +1,17 @@
+package com.ruoyi.management.query;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@ApiModel
+@Data
+public class UseGuideQuery {
+ @ApiModelProperty(value = "标题")
+ private String title;
+ @ApiModelProperty(value = "页码,首页1", required = true)
+ private Integer pageNumber;
+ @ApiModelProperty(value = "页条数", required = true)
+ private Integer pageSize;
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/service/ITUseGuideService.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/service/ITUseGuideService.java
index a841d2b..4cf2c8c 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/service/ITUseGuideService.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/service/ITUseGuideService.java
@@ -1,7 +1,7 @@
package com.ruoyi.management.service;
-import com.ruoyi.management.domain.TUseGuide;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.management.domain.TUseGuide;
/**
* <p>
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/utils/ObsUploadUtil.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/utils/ObsUploadUtil.java
new file mode 100644
index 0000000..a9335f5
--- /dev/null
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/utils/ObsUploadUtil.java
@@ -0,0 +1,78 @@
+package com.ruoyi.management.utils;
+
+import com.obs.services.ObsClient;
+import com.obs.services.model.ObjectMetadata;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.UUID;
+
+public class ObsUploadUtil {
+
+ public static String endPoint = "obs.cn-north-4.myhuaweicloud.com";
+ public static String accessKeyId = "X3V6GPYUK1VQ03K0JG4G";
+ public static String accessKeySecret = "CustHR4B9XKdT7hGcEYEpV9UVUoc4pmUhnHckU9h";
+ public static String bucketName = "jkjianshen";
+ public static String oss_domain = "https://jkjianshen.obs.cn-north-4.myhuaweicloud.com/";
+ // 创建ObsClient实例
+ public static ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endPoint);
+
+ public static String obsUpload(MultipartFile file) throws IOException{
+ //CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
+ String fileName = "";
+ if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
+ InputStream content = file.getInputStream();//获得指定文件的输入流
+ ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
+ meta.setContentLength(file.getSize()); // 必须设置ContentLength
+ String originalFilename = file.getOriginalFilename();
+ if (originalFilename.contains("apk")){
+ fileName = "bf2fe5c5499341e5bc0d56c0c7d5fb2e.apk";
+ System.err.println("apk");
+ }else{
+ fileName = UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
+ }
+ obsClient.putObject(bucketName,"admin/"+fileName,content,meta);// 上传Object.
+ if(fileName != null && !"".equals(fileName)){
+ System.out.println(fileName);
+ fileName = oss_domain+"admin/"+fileName;
+ }
+ }
+ return fileName;
+ }
+
+ /**
+ * 删除某个Object
+ *
+ * @param bucketUrl
+ * @return
+ */
+ public static boolean deleteObject(String bucketUrl) {
+ try {
+ bucketUrl=bucketUrl.replace(oss_domain+"web","");
+ // 删除Object.
+ obsClient.deleteObject(bucketName, bucketUrl);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ } finally {
+ //ossClient.shutdown();
+ }
+ return true;
+ }
+
+// public static void createBucket(String bucketName)
+// {
+// //初始化 OSSClient
+//// ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret);
+//
+// // 新建一个Bucket
+// Bucket bucket = ossClient.createBucket(bucketName);
+// System.out.println(bucket.getName());
+// System.out.println(bucket.getCreationDate());
+// }
+//
+// public static void main(String[] args) {
+// OssUploadUtil.createBucket("ssfdfsd");
+// }
+}
diff --git a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/vo/VipSetVO.java b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/vo/VipSetVO.java
index ff9046b..348c306 100644
--- a/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/vo/VipSetVO.java
+++ b/ruoyi-service/ruoyi-management/src/main/java/com/ruoyi/management/vo/VipSetVO.java
@@ -17,11 +17,7 @@
*/
@Data
public class VipSetVO {
- /**
- * 会员说明
- */
- @ApiModelProperty(value = "会员说明")
- private String info;
+
@ApiModelProperty(value = "会员价格设置")
private List<TVipSet> list;
diff --git a/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/src/main/resources/mapper/TUseGuideMapper.xml b/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/src/main/resources/mapper/TUseGuideMapper.xml
index 3bec438..de30e7e 100644
--- a/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/src/main/resources/mapper/TUseGuideMapper.xml
+++ b/ruoyi-service/ruoyi-management/src/main/resources/mapper/management/src/main/resources/mapper/TUseGuideMapper.xml
@@ -7,14 +7,13 @@
<id column="id" property="id" />
<result column="title" property="title" />
<result column="sort" property="sort" />
- <result column="isDelete" property="isDelete" />
<result column="answer" property="answer" />
<result column="insertTime" property="insertTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
- id, title, sort, isDelete, answer, insertTime
+ id, title, sort, isDelete, answer
</sql>
</mapper>
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java
index 23e4d89..14f16cb 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/config/DataUpdateHandlerConfig.java
@@ -8,6 +8,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
+import java.util.Date;
+
/**
* @author xiaochen
* @ClassName DataUpdateInterceptor
@@ -34,7 +36,9 @@
public void insertFill(MetaObject metaObject) {
// 获取登录信息
LoginUser loginUser = tokenService.getLoginUser();
- String userName = loginUser.getUsername();
+ this.setFieldValByName("createTime", new Date(), metaObject);
+ this.setFieldValByName("updateTime", new Date(), metaObject);
+// String userName = loginUser.getUsername();
// if (StringUtils.hasLength(userName)) {
// this.setFieldValByName("createBy", userName, metaObject);
// this.setFieldValByName("createTime", new Date(), metaObject);
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java
index 907ff62..2ba4946 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TStoryController.java
@@ -121,6 +121,9 @@
TStory byId = service.getById(id);
byId.setState(state);
service.updateById(byId);
+ if (state == 3){
+ service.removeById(byId);
+ }
return R.ok("成功");
}
private R<Object> getObjectR(Integer id) {
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java
index a5d637e..32a9e8a 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TSubjectController.java
@@ -199,6 +199,9 @@
TSubject byId = subjectService.getById(id);
byId.setState(state);
subjectService.updateById(byId);
+ if (state == 3){
+ subjectService.removeById(byId);
+ }
return R.ok("编辑成功");
}
}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
index cc0d7d8..8fd56b1 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java
@@ -4,12 +4,19 @@
import com.alipay.api.AlipayApiException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.JwtUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.common.security.auth.AuthUtil;
import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.management.api.feignClient.ManagementClient;
+import com.ruoyi.management.api.model.TFeedback;
import com.ruoyi.management.api.model.TPage;
+import com.ruoyi.management.api.model.TUseGuide;
import com.ruoyi.management.api.model.TVipSet;
+import com.ruoyi.management.api.query.UseGuideQuery;
import com.ruoyi.study.domain.TUser;
import com.ruoyi.study.domain.TVipOrder;
import com.ruoyi.study.dto.AppUserQuery;
@@ -19,10 +26,17 @@
import com.ruoyi.study.utils.PayMoneyUtil;
import com.ruoyi.study.utils.UUIDUtil;
import com.ruoyi.study.vo.*;
+import com.ruoyi.system.api.domain.SysRole;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.LoginUserParent;
+import io.jsonwebtoken.Claims;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@@ -50,16 +64,34 @@
private IVipOrderService vipOrderService;
@Autowired
private ManagementClient managementClient;
+ @Autowired
+ private TokenService tokenService;
+
@PostMapping("/vipInfo")
@ApiOperation(value = "会员中心-获取会员说明、当前登录用户是否为会员、会员购买规格", tags = {"家长端-个人中心"})
public AjaxResult<List<VipInfoVO>> vipInfo() {
+ if (tokenService.getLoginUser1() == null){
+ return AjaxResult.tokenError("登录失效",new Object());
+ }
List<VipInfoVO> vipInfoVOS = new ArrayList<>();
List<TVipSet> data = managementClient.getVipSet1().getData();
for (TVipSet datum : data) {
VipInfoVO vipInfoVO = new VipInfoVO();
vipInfoVO.setInfo(datum.getInfo());
vipInfoVO.setId(datum.getId());
-// vipInfoVO.setIsVip();
+ Integer userid = tokenService.getLoginUser1().getUserid();
+ TUser byId = userService.getById(userid);
+ // 先判断vipEndTime
+ if (byId.getVipEndTime() == null){
+ vipInfoVO.setIsVip(0);
+ }else{
+ // 判断会员到期时间是否大于当前时间
+ if (byId.getVipEndTime().getTime() > new Date().getTime()){
+ vipInfoVO.setIsVip(1);
+ }else{
+ vipInfoVO.setIsVip(0);
+ }
+ }
vipInfoVO.setTime(datum.getTime());
vipInfoVO.setAmount(datum.getAmount());
}
@@ -76,6 +108,10 @@
@ApiImplicitParam(name = "id", value = "会员规格id", required = true),
})
public AjaxResult order(Integer payType,Integer id) throws Exception {
+ if (tokenService.getLoginUser1() == null){
+ return AjaxResult.tokenError("登录失效",new Object());
+ }
+ Integer userid = tokenService.getLoginUser1().getUserid();
TVipOrder tVipOrder = new TVipOrder();
List<TVipSet> data = managementClient.getVipSet1().getData();
Integer time = 0;
@@ -86,10 +122,7 @@
}
}
tVipOrder.setPayState(1);
-// tVipOrder.setUserId();
-// tVipOrder.setPayTime();
-// tVipOrder.setBackTime();
-// tVipOrder.setTime();
+ tVipOrder.setUserId(userid);
tVipOrder.setPayType(payType);
tVipOrder.setCount(time);
switch (payType){
@@ -137,19 +170,40 @@
byId.setTransactionId(trade_no);
byId.setOutTradeNo(out_trade_no);
byId.setPayTime(new Date());
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date());
- calendar.add(Calendar.MONTH, time);
- Date dateAfterOneMonth = calendar.getTime();
- byId.setTime(dateAfterOneMonth);
- // 修改订单状态
- vipOrderService.updateById(byId);
+
+
TUser byId1 = userService.getById(byId.getUserId());
if (byId1.getVipPayTime() == null){
// 是否是首次充值会员
byId1.setVipPayTime(new Date());
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ calendar.add(Calendar.MONTH, time);
+ Date dateAfterOneMonth = calendar.getTime();
+ byId.setTime(dateAfterOneMonth);
+ byId1.setVipEndTime(dateAfterOneMonth);
+ }else{
+ // 不是首次 判断vipEndTime 是否到期 如果没有 加指定月份时间 如果到期了 将会员到期时间从当前增加指定月份
+ if (byId1.getVipEndTime().getTime() < new Date().getTime()){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ calendar.add(Calendar.MONTH, time);
+ Date dateAfterOneMonth = calendar.getTime();
+ byId.setTime(dateAfterOneMonth);
+ byId1.setVipEndTime(dateAfterOneMonth);
+ }else{
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(byId1.getVipEndTime());
+ calendar.add(Calendar.MONTH, time);
+ Date dateAfterOneMonth = calendar.getTime();
+ byId.setTime(dateAfterOneMonth);
+ byId1.setVipEndTime(dateAfterOneMonth);
+ }
}
- byId1.setVipEndTime(dateAfterOneMonth);
+
+ // 修改订单状态
+ vipOrderService.updateById(byId);
+
// 修改用户会员续期信息
userService.updateById(byId1);
PrintWriter out = response.getWriter();
@@ -189,19 +243,38 @@
byId.setTransactionId(transaction_id);
byId.setOutTradeNo(out_trade_no);
byId.setPayTime(new Date());
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date());
- calendar.add(Calendar.MONTH, time);
- Date dateAfterOneMonth = calendar.getTime();
- byId.setTime(dateAfterOneMonth);
- // 修改订单状态
- vipOrderService.updateById(byId);
+
+
TUser byId1 = userService.getById(byId.getUserId());
if (byId1.getVipPayTime() == null){
// 是否是首次充值会员
byId1.setVipPayTime(new Date());
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ calendar.add(Calendar.MONTH, time);
+ Date dateAfterOneMonth = calendar.getTime();
+ byId.setTime(dateAfterOneMonth);
+ byId1.setVipEndTime(dateAfterOneMonth);
+ }else{
+ // 不是首次 判断vipEndTime 是否到期 如果没有 加指定月份时间 如果到期了 将会员到期时间从当前增加指定月份
+ if (byId1.getVipEndTime().getTime() < new Date().getTime()){
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ calendar.add(Calendar.MONTH, time);
+ Date dateAfterOneMonth = calendar.getTime();
+ byId.setTime(dateAfterOneMonth);
+ byId1.setVipEndTime(dateAfterOneMonth);
+ }else{
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(byId1.getVipEndTime());
+ calendar.add(Calendar.MONTH, time);
+ Date dateAfterOneMonth = calendar.getTime();
+ byId.setTime(dateAfterOneMonth);
+ byId1.setVipEndTime(dateAfterOneMonth);
+ }
}
- byId1.setVipEndTime(dateAfterOneMonth);
+ // 修改订单状态
+ vipOrderService.updateById(byId);
// 修改用户会员续期信息
userService.updateById(byId1);
PrintWriter out = response.getWriter();
@@ -215,66 +288,107 @@
}
@PostMapping("/getPage")
@ApiOperation(value = "获取注意事项", tags = {"家长端-注意事项"})
- public AjaxResult<TPage> getPage() {
+ public AjaxResult<String> getPage() {
List<TPage> data = managementClient.getPage1().getData();
for (TPage datum : data) {
if (datum.getType() == 4){
- return AjaxResult.success(datum);
+ return AjaxResult.success(datum.getImg());
}
}
return AjaxResult.success();
}
- @Autowired
- private TokenService tokenService;
-// @Autowired
-// private HWSendSms hwSendSms;
-// @ResponseBody
-// @PostMapping("/getSMSCode")
-// @ApiOperation(value = "获取短信验证码", tags = {"家长端-登录注册"})
-// @ApiImplicitParams({
-// @ApiImplicitParam(value = "类型(1:登录,2:注册,3:修改密码,4:忘记密码,5:修改绑定手机号)", name = "type", dataType = "int", required = true),
-// @ApiImplicitParam(value = "电话号码", name = "phone", dataType = "string", required = true)
-// })
-// public AjaxResult getSMSCode(Integer type, String phone) {
-// if (ToolUtil.isEmpty(phone)) {
-// return AjaxResult.paranErr("phone");
-// }
-// if (ToolUtil.isEmpty(type)) {
-// return AjaxResult.paranErr("type");
-// }
-// try {
-// if (type == 2) {
-// AppUser tAppUser = appUserService.selectOne(new EntityWrapper<AppUser>()
-// .eq("phone", phone).ne("state", 3));
-// if (null != tAppUser) {
-// return AjaxResult.error("账号已存在");
-// }
-// }
-// if (type == 5) {
-// AppUser tAppUser = appUserService.selectOne(new EntityWrapper<AppUser>()
-// .eq("phone", phone).ne("state", 3));
-// if (null != tAppUser) {
-// return AjaxResult.error("账号已存在");
-// }
-// }
-// String numberRandom = UUIDUtil.getNumberRandom(6);
-// String templateCode = "";
-// if (type == 1 || type == 2) {
-// templateCode = "SMS_161275250";
-// }
-// if (type == 3 || type == 4) {
-// templateCode = "SMS_160960014";
-// }
-//// aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + numberRandom + "\"}");
-// hwSendSms.sendSms(numberRandom,phone);
-// redisUtil.setStrValue(phone, numberRandom, 300);
-// return AjaxResult.success();
-// } catch (Exception e) {
-// e.printStackTrace();
-// return ResultUtil.runErr();
-// }
-// }
+ @PostMapping("/useGuide")
+ @ApiOperation(value = "使用指南", tags = {"家长端-使用指南"})
+ public AjaxResult<PageInfo<TUseGuide>> useGuide(@RequestBody UseGuideQuery query) {
+ PageInfo<TUseGuide> data = managementClient.useGuide1(query).getData();
+ return AjaxResult.success(data);
+ }
+ @PostMapping("/feedBack")
+ @ApiOperation(value = "反馈", tags = {"家长端-意见反馈"})
+ public AjaxResult feedBack(@RequestBody TFeedback dto) {
+ if (tokenService.getLoginUser1() == null){
+ return AjaxResult.tokenError("登录失效",new Object());
+ }
+ LoginUserParent loginUser1 = tokenService.getLoginUser1();
+ dto.setUserId(loginUser1.getUserid());
+ managementClient.addFeedBack(dto);
+ return AjaxResult.success("反馈成功");
+ }
+ @PostMapping("/parentLogin")
+ @ApiOperation(value = "登录", tags = {"家长端-登录"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true),
+ @ApiImplicitParam(value = "验证码", name = "phoneCode", dataType = "string", required = true)
+ })
+ public AjaxResult login(String phone, String phoneCode)
+ {
+ TUser tUser1 = userService.getOne(new QueryWrapper<TUser>()
+ .ne("state", 3)
+ .eq("phone",phone));
+ if (tUser1 != null){
+ if (tUser1.getState() == 2){
+ return AjaxResult.error("登录失败,您的账号已被冻结!");
+ }
+ }else{
+ // todo 验证码校验
+ tUser1 = new TUser();
+ // 注册
+ tUser1.setName(phone);
+ tUser1.setAccount(phone);
+ tUser1.setState(1);
+ tUser1.setInsertTime(new Date());
+ tUser1.setCreateTime(new Date());
+ tUser1.setPhone(phone);
+ userService.save(tUser1);
+ }
+ LoginUserParent loginUserParent = new LoginUserParent();
+ loginUserParent.setName(tUser1.getName());
+ loginUserParent.setUserid(tUser1.getId());
+ loginUserParent.setPhone(tUser1.getPhone());
+ loginUserParent.setLoginTime(new Date().getTime());
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("token",tokenService.createToken1(loginUserParent));
+ // 获取登录token
+ return AjaxResult.success(map);
+ }
+
+ @PostMapping("/deleteUser")
+ @ApiOperation(value = "注销当前帐号", tags = {"家长端-个人中心"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
+ })
+ public AjaxResult deleteUser() {
+ if (tokenService.getLoginUser1() == null){
+ return AjaxResult.tokenError("登录失效");
+ }
+ Integer userid = tokenService.getLoginUser1().getUserid();
+ TUser tUser = userService.getById(userid);
+
+ tUser.setState(3);
+ userService.updateById(tUser);
+
+ userService.removeById(tUser);
+ return AjaxResult.success("注销成功");
+ }
+ @PostMapping("/logout")
+ @ApiOperation(value = "退出登录", tags = {"家长端-个人中心"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
+ })
+ public AjaxResult logout(HttpServletRequest request) {
+ if (tokenService.getLoginUser1() == null){
+ return AjaxResult.tokenError("登录失效");
+ }
+ String token = SecurityUtils.getToken(request);
+ if (com.ruoyi.common.core.utils.StringUtils.isNotEmpty(token))
+ {
+ // 删除用户缓存记录
+ AuthUtil.logoutByToken1(token);
+ }
+ // todo 清除token
+ return AjaxResult.success("退出登录成功");
+ }
@PostMapping("/updateUserInfo")
@ApiOperation(value = "修改个人资料", tags = {"家长端-个人中心"})
@ApiImplicitParams({
@@ -284,9 +398,13 @@
@ApiImplicitParam(name = "headImg", value = "头像 改什么就只传什么"),
})
public AjaxResult updateUserInfo(String name, String phone,String headImg) {
+ if (tokenService.getLoginUser1() == null){
+ return AjaxResult.tokenError("登录失效",new Object());
+ }
// todo 获取用户id
- Long userid = tokenService.getLoginUser().getUserid();
+ Integer userid = tokenService.getLoginUser1().getUserid();
TUser byId = userService.getById(userid);
+
if (StringUtils.hasLength(name)){
byId.setName(name);
}
@@ -295,9 +413,16 @@
// if (byId == null){
// return AjaxResult.tokenError("登录失效");
// }
+
if (phone.equals(byId.getPhone())){
return AjaxResult.error("更换的手机号不能和原手机号相同");
}
+ List<TUser> list = userService.list(new QueryWrapper<TUser>()
+ .eq("phone", phone)
+ .ne("state", 3));
+ if (list.size() > 0){
+ return AjaxResult.error("更换的手机号已被使用",new Object());
+ }
byId.setPhone(phone);
}
if (StringUtils.hasLength(headImg)){
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStory.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStory.java
index bd166e2..b4a947c 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStory.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TStory.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.web.domain.BaseModel;
+import lombok.Data;
/**
* <p>
@@ -13,6 +14,7 @@
* @author 无关风月
* @since 2024-04-26
*/
+@Data
@TableName("t_story")
public class TStory extends BaseModel {
@@ -46,7 +48,7 @@
/**
* 正确语音
*/
- private String right;
+ private String correct;
/**
* 错误语音 要么没有 要么两个逗号隔开
*/
@@ -101,13 +103,6 @@
this.img = img;
}
- public String getRight() {
- return right;
- }
-
- public void setRight(String right) {
- this.right = right;
- }
public String getError() {
return error;
@@ -126,7 +121,7 @@
", type=" + type +
", state=" + state +
", img=" + img +
- ", right=" + right +
+ ", correct=" + correct +
", error=" + error +
"}";
}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserShare.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserShare.java
new file mode 100644
index 0000000..eef075e
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/domain/TUserShare.java
@@ -0,0 +1,34 @@
+package com.ruoyi.study.domain;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.web.domain.BaseModel;
+import lombok.Data;
+
+/**
+ * <p>
+ * 用户表
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+@Data
+@TableName("t_user_share")
+public class TUserShare extends BaseModel {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 用户id
+ */
+ private Integer userId;
+ /**
+ * 分享时 获得积分
+ */
+ private Integer integral;
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StoryDTO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StoryDTO.java
index d3966fe..ad7f414 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StoryDTO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/StoryDTO.java
@@ -19,7 +19,7 @@
@ApiModelProperty(value = "图片",required = true)
private String img;
@ApiModelProperty(value = "正确语音",required = true)
- private String right;
+ private String correct;
@ApiModelProperty(value = "错误语音 多个逗号拼接")
private String error;
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/SubjectDTO.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/SubjectDTO.java
index 9621251..83a1c93 100644
--- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/SubjectDTO.java
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/dto/SubjectDTO.java
@@ -19,7 +19,7 @@
@ApiModelProperty(value = "图片",required = true)
private String img;
@ApiModelProperty(value = "正确语音",required = true)
- private String right;
+ private String correct;
@ApiModelProperty(value = "错误语音 多个逗号拼接")
private String error;
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TUserShareMapper.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TUserShareMapper.java
new file mode 100644
index 0000000..cdd15c5
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/mapper/TUserShareMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.study.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.study.domain.TGame;
+import com.ruoyi.study.domain.TUserShare;
+
+/**
+ * <p>
+ * 自主游戏 Mapper 接口
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+public interface TUserShareMapper extends BaseMapper<TUserShare> {
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserShareService.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserShareService.java
new file mode 100644
index 0000000..7aad242
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/ITUserShareService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.study.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.study.domain.TGame;
+import com.ruoyi.study.domain.TUserShare;
+
+/**
+ * <p>
+ * 自主游戏 服务类
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+public interface ITUserShareService extends IService<TUserShare> {
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserShareServiceImpl.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserShareServiceImpl.java
new file mode 100644
index 0000000..2fc4eee
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/service/impl/TUserShareServiceImpl.java
@@ -0,0 +1,23 @@
+package com.ruoyi.study.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.study.domain.TGame;
+import com.ruoyi.study.domain.TUserShare;
+import com.ruoyi.study.mapper.TGameMapper;
+import com.ruoyi.study.mapper.TUserShareMapper;
+import com.ruoyi.study.service.ITGameService;
+import com.ruoyi.study.service.ITUserShareService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 自主游戏 服务实现类
+ * </p>
+ *
+ * @author 无关风月
+ * @since 2024-04-26
+ */
+@Service
+public class TUserShareServiceImpl extends ServiceImpl<TUserShareMapper, TUserShare> implements ITUserShareService {
+
+}
diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStoryMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStoryMapper.xml
index 76b4f4b..db3388e 100644
--- a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStoryMapper.xml
+++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TStoryMapper.xml
@@ -23,7 +23,7 @@
from t_story
where 1=1 and `state`!=3
<if test="req.name != null and req.name != ''">
- and name like concat('%',#{req.name},'%')
+ and `name` like concat('%',#{req.name},'%')
</if>
<if test="req.english != null and req.english != ''">
and english like concat('%',#{req.english},'%')
diff --git a/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TUserShareMapper.xml b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TUserShareMapper.xml
new file mode 100644
index 0000000..41f5319
--- /dev/null
+++ b/ruoyi-service/ruoyi-study/src/main/resources/mapper/sutdy/TUserShareMapper.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.study.mapper.TUserShareMapper">
+
+
+
+</mapper>
--
Gitblit v1.7.1