From e350ed7ffc3a57387186c602d99443d6f936d549 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 05 七月 2023 08:31:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-other/src/main/java/com/dsh/other/feignclient/model/UserBenefitImage.java                  |   22 
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java                |   16 
 cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StuMedalVo.java                        |   28 +
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java     |   31 +
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/BillingDetailsVo.java     |   32 +
 cloud-server-other/src/main/java/com/dsh/other/web/HonorRulesController.java                            |   21 
 cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java              |   16 
 cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java                          |   65 ++
 cloud-server-account/src/main/java/com/dsh/account/mapper/StudentHonorMapper.java                       |   16 
 cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java                         |    6 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                |   34 +
 cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java               |   21 
 cloud-server-other/src/main/java/com/dsh/other/feignclient/HonorDeClient.java                           |   16 
 cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java                     |   24 +
 cloud-server-account/src/main/resources/mapper/StudentHonorMapper.xml                                   |    5 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java               |    4 
 cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java                                   |   51 ++
 cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java                  |   17 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/UserBenefitImage.java        |   22 
 cloud-server-other/src/main/java/com/dsh/other/mapper/HonorRulesMapper.java                             |   16 
 cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java                |  104 ++++
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java                 |   17 
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/xml/PointsMerchandiseMapper.xml             |    6 
 cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java               |  113 ++++
 cloud-server-other/src/main/java/com/dsh/other/feignclient/ImgConfigClient.java                         |    6 
 cloud-server-other/src/main/resources/mapper/HonorRulesMapper.xml                                       |    6 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/ImgConfigClient.java               |    5 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/IntegralCommodity.java    |   24 +
 cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java                 |    6 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java            |   46 ++
 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java                 |   16 
 cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java                      |  135 +++++
 cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java                             |   59 ++
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/IntegralCommodity.java           |   24 +
 cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java                      |   34 +
 /dev/null                                                                                               |   20 
 cloud-server-other/src/main/java/com/dsh/other/service/HonorRulesService.java                           |   16 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java |   34 +
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                |   31 +
 cloud-server-other/src/main/java/com/dsh/other/service/impl/HonorRulesServiceImpl.java                  |   20 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java          |   17 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/GongVo.java                     |   15 
 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java                         |   20 
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java     |   20 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java            |   71 +++
 45 files changed, 1,272 insertions(+), 56 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
index 2f7c1ea..1a213c9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
@@ -6,11 +6,13 @@
 import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
 import com.dsh.account.model.vo.classDetails.classInsVo.*;
 import com.dsh.account.model.vo.commentDetail.StuCommentsVo;
+import com.dsh.account.model.vo.medalDetail.GongVo;
 import com.dsh.account.model.vo.medalDetail.StuMedalVo;
 import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo;
 import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp;
 import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest;
 import com.dsh.account.service.EvaluateStudentService;
+import com.dsh.account.service.StudentHonorService;
 import com.dsh.account.service.TAppUserService;
 import com.dsh.account.service.TStudentService;
 import com.dsh.account.util.DateUtil;
@@ -51,12 +53,15 @@
     private EvaluateStudentService evalstuService;
 
     @Autowired
+    private StudentHonorService honorService;
+
+    @Autowired
     private TokenUtil tokenUtil;
 
 
 
     @ResponseBody
-    @PostMapping("/base/startCource/queryStudentData")
+    @PostMapping("/api/startCource/queryStudentData")
     @ApiOperation(value = "上课首页", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "经度值", name = "longitude", required = true, dataType = "String"),
@@ -78,7 +83,7 @@
 
 
     @ResponseBody
-    @PostMapping("/base/startCource/queryPhysical")
+    @PostMapping("/api/startCource/queryPhysical")
     @ApiOperation(value = "获取学员测试报告", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "学员id", name = "id", required = true, dataType = "int"),
@@ -100,7 +105,7 @@
      * 添加学员信息
      */
     @ResponseBody
-    @PostMapping("/base/startCource/addData")
+    @PostMapping("/api/startCource/addData")
     @ApiOperation(value = "添加学员信息", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(value = "学员信息", name = "stu", required = true, dataType = "int"),
@@ -124,7 +129,7 @@
      * 该APP用户下的学员列表
      */
     @ResponseBody
-    @PostMapping("/base/startCource/listOfStu")
+    @PostMapping("/api/startCource/listOfStu")
     @ApiOperation(value = "学员列表", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -149,6 +154,7 @@
                     vo.setStuHeight(sts.getHeight());
                     vo.setStuWeight(sts.getWeight());
                     vo.setIsNot(sts.getIsDefault());
+                    stuListVos.add(vo);
                 });
             }
             return ResultUtil.success(stuListVos);
@@ -157,11 +163,37 @@
         }
     }
 
+
+    /**
+     * 切换学员
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/switchStu")
+    @ApiOperation(value = "切换学员", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<List<StuListVo>> dealSwitchStudents(@RequestBody Integer stuId){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(istuService.switchStudentActions(userIdFormRedis,stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+
+
+    }
+
+
     /**
      * 课时详情
      */
     @ResponseBody
-    @PostMapping("/base/startCource/lessonDetails")
+    @PostMapping("/api/startCource/lessonDetails")
     @ApiOperation(value = "课时详情", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@@ -188,7 +220,7 @@
      * 课时详情-记录列表
      */
     @ResponseBody
-    @PostMapping("/base/startCource/recordDetails")
+    @PostMapping("/api/startCource/recordDetails")
     @ApiOperation(value = "课时详情-记录列表", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@@ -210,7 +242,7 @@
      * 课时详情-续课课包详情
      */
     @ResponseBody
-    @PostMapping("/base/startCource/renewal")
+    @PostMapping("/api/startCource/renewal")
     @ApiOperation(value = "课时详情-续课课包详情", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -233,7 +265,7 @@
      * 课时详情-选择优惠券
      */
     @ResponseBody
-    @PostMapping("/base/startCource/conponList")
+    @PostMapping("/api/startCource/conponList")
     @ApiOperation(value = "课时详情-选择优惠券", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -257,7 +289,7 @@
      * 课时详情-支付
      */
     @ResponseBody
-    @PostMapping("/base/startCource/payment")
+    @PostMapping("/api/startCource/payment")
     @ApiOperation(value = "课时详情-支付", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -277,10 +309,11 @@
      * 学员评语
      */
     @ResponseBody
-    @PostMapping("/base/startCource/stuComment")
+    @PostMapping("/api/startCource/stuComment")
     @ApiOperation(value = "学员评语", tags = {"APP-开始上课"})
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
     })
     public ResultUtil<List<StuCommentsVo>> queryStuComment(@RequestParam("stuId") Integer stuId){
         try {
@@ -292,25 +325,73 @@
 
 
     /**
-     * 学员勋章
+     * 学员勋章详情
      */
     @ResponseBody
-    @PostMapping("/base/startCource/stuMedal")
-    @ApiOperation(value = "学员勋章", tags = {"APP-开始上课"})
+    @PostMapping("/api/startCource/stuMedal")
+    @ApiOperation(value = "学员勋章详情", tags = {"APP-开始上课"})
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
     })
-    public ResultUtil<StuMedalVo> queryStuMedal(@RequestParam("stuId") Integer stuId){
+    public ResultUtil<List<StuMedalVo>> queryStuMedal(@RequestParam("stuId") Integer stuId){
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if(null == appUserId){
                 return ResultUtil.tokenErr();
             }
+            return ResultUtil.success(honorService.queryHonorDetails(stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
 
+
+    /**
+     * 学员勋章
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/stuGoog")
+    @ApiOperation(value = "学员勋章", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<List<GongVo>> queryStuGoog(@RequestParam("stuId") Integer stuId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(honorService.queryStuOfMedalData(stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 课后视频课表
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/afterSourceDetails")
+    @ApiOperation(value = "学员勋章", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil queryAfterSourceDetails(@RequestParam("stuId") Integer stuId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            // TODO: 2023/7/4  
             return ResultUtil.success();
         }catch (Exception e){
             return ResultUtil.runErr();
         }
+
+
     }
 
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
index cd8aaf7..aee00e1 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
@@ -28,7 +28,7 @@
     private TStudentService tsService;
 
     @ResponseBody
-    @PostMapping("/base/exploreWP/noticeList")
+    @PostMapping("/api/exploreWP/noticeList")
     @ApiOperation(value = "联系客服-探索首页", tags = {"APP-探索玩湃"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
@@ -46,9 +46,6 @@
     @ResponseBody
     @PostMapping("/base/exploreWP/noticeList")
     @ApiOperation(value = "联系客服-公告列表", tags = {"APP-探索玩湃"})
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
     public ResultUtil<List<SysNotice>> queryNoticeListDatas(){
         try {
             return ResultUtil.success(tsService.querySystemNoticeDetails());
@@ -61,9 +58,6 @@
     @ResponseBody
     @PostMapping("/base/exploreWP/noticeList")
     @ApiOperation(value = "联系客服-公告详情", tags = {"APP-探索玩湃"})
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
     public ResultUtil<SysNotice> queryNotice(@RequestBody Integer noId){
         try {
             return ResultUtil.success(tsService.queryNoticeData(noId));
@@ -76,9 +70,6 @@
     @ResponseBody
     @PostMapping("/base/exploreWP/noticeList")
     @ApiOperation(value = "联系客服-常见问题列表", tags = {"APP-探索玩湃"})
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
     public ResultUtil<QuestionDetailsVo> queryFrequentlyAskedQuestionDetails(){
         try {
             return ResultUtil.success(tsService.queryQuestionData());
@@ -91,9 +82,6 @@
     @ResponseBody
     @PostMapping("/base/exploreWP/noticeList")
     @ApiOperation(value = "联系客服-常见问题详情", tags = {"APP-探索玩湃"})
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
     public ResultUtil<QuestionIns> queryQuestionData(@RequestBody Integer quesId){
         try {
             return ResultUtil.success(tsService.queryQuestionDataInfo(quesId));
@@ -105,9 +93,6 @@
     @ResponseBody
     @PostMapping("/base/exploreWP/noticeList")
     @ApiOperation(value = "联系客服-客服电话列表", tags = {"APP-探索玩湃"})
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
-    })
     public ResultUtil<List<String>> queryCustomerData(){
         try {
             return ResultUtil.success(tsService.queryCustomerDetails());
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
new file mode 100644
index 0000000..6e0c8ec
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -0,0 +1,104 @@
+package com.dsh.account.controller;
+
+
+import com.dsh.account.entity.TAppUser;
+import com.dsh.account.model.vo.userBenefitDetail.AppUserDetailsVo;
+import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo;
+import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo;
+import com.dsh.account.service.TAppUserService;
+import com.dsh.account.util.ResultUtil;
+import com.dsh.account.util.TokenUtil;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.SimpleDateFormat;
+
+@RestController
+@RequestMapping("")
+public class UseBenefitsController {
+
+
+    @Autowired
+    private TAppUserService tauService;
+
+    @Autowired
+    private TokenUtil tokenUtil;
+
+    private final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
+
+
+    @ResponseBody
+    @PostMapping("/api/useBenefit/indexOfAppUser")
+    @ApiOperation(value = "福利主页", tags = {"APP-使用福利"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    public ResultUtil<IndexOfUserBenefirVo> queryAppUserUser(){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(tauService.queryBenefitDetails(appUserId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/useBenefit/userDetails")
+    @ApiOperation(value = "用户个人信息", tags = {"APP-使用福利"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    public ResultUtil<AppUserDetailsVo> queryAppUserDetails(){
+        try {
+            AppUserDetailsVo detailsVo = new AppUserDetailsVo();
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            TAppUser tAppUser = tauService.getBaseMapper().selectById(appUserId);
+            if (null != tAppUser){
+                detailsVo.setUserImage(tAppUser.getHeadImg());
+                detailsVo.setUserName(tAppUser.getName());
+                detailsVo.setUserPhone(tAppUser.getPhone());
+                detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女");
+                detailsVo.setBirthday(format1.format(tAppUser.getBirthday()));
+                detailsVo.setAddress(tAppUser.getProvince()+tAppUser.getCity());
+                detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime()));
+            }
+            return ResultUtil.success(detailsVo);
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/api/useBenefit/userBilling")
+    @ApiOperation(value = "账单", tags = {"APP-使用福利"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "记录id", name = "recordId", required = true, dataType = "int"),
+    })
+    public ResultUtil<BillingDetailsVo> getUserBillingDetails(@RequestBody String yearMonth,@RequestBody Integer recordId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(tauService.queryUserBillingDetails(yearMonth,recordId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java b/cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java
new file mode 100644
index 0000000..3964f61
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/StudentHonor.java
@@ -0,0 +1,59 @@
+package com.dsh.account.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 学员-荣耀中间表
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_student_honor")
+public class StudentHonor extends Model<StudentHonor> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer id;
+    /**
+     * 学员id
+     */
+    private Integer stuId;
+    /**
+     * 荣耀规则id
+     */
+    private Integer honorRuleId;
+    /**
+     * 荣耀类型
+     */
+    private Integer honorType;
+    /**
+     * 荣耀等级
+     */
+    private Integer honorLevel;
+    /**
+     * 添加时间
+     */
+    private Date insertTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
new file mode 100644
index 0000000..d77e5e2
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
@@ -0,0 +1,17 @@
+package com.dsh.account.feignclient.activity;
+
+
+import com.dsh.account.feignclient.activity.model.IntegralCommodity;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface MerChandiseClient {
+
+    @PostMapping("/pointMerchars/convertGoods")
+    public List<IntegralCommodity> getConvertibleGoods();
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/IntegralCommodity.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/IntegralCommodity.java
new file mode 100644
index 0000000..4ca5b4f
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/IntegralCommodity.java
@@ -0,0 +1,24 @@
+package com.dsh.account.feignclient.activity.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+@Data
+public class IntegralCommodity {
+
+    @ApiModelProperty(value = "商品id")
+    private Integer commodityId;
+
+    @ApiModelProperty(value = "商品图片")
+    private String commodityImg;
+
+    @ApiModelProperty(value = "商品名称")
+    private String commodityName;
+
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal commodityPrice;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java
new file mode 100644
index 0000000..4bbd241
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java
@@ -0,0 +1,16 @@
+package com.dsh.account.feignclient.other;
+
+import com.dsh.account.model.vo.medalDetail.StuMedalVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-other")
+public interface HonorDeClient {
+
+    @PostMapping("/honor/stuHonors")
+    public List<StuMedalVo> getStuHonors(@RequestBody List<Integer> honorIds);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/ImgConfigClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/ImgConfigClient.java
index c310ffd..1a400a0 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/ImgConfigClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/ImgConfigClient.java
@@ -1,6 +1,7 @@
 package com.dsh.account.feignclient.other;
 
 import com.dsh.account.feignclient.other.model.TImgConfig;
+import com.dsh.account.feignclient.other.model.UserBenefitImage;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 
@@ -11,4 +12,8 @@
 
     @PostMapping("/imgConfig/getNoneStu")
     List<TImgConfig> getNoneStuImgs();
+
+
+    @PostMapping("/imgConfig/getBenefitImage")
+    public UserBenefitImage getImageConfig();
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/UserBenefitImage.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/UserBenefitImage.java
new file mode 100644
index 0000000..7b5adc3
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/UserBenefitImage.java
@@ -0,0 +1,22 @@
+package com.dsh.account.feignclient.other.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class UserBenefitImage {
+
+    @ApiModelProperty(value = "我的券包pic")
+    private String myConpons;
+
+    @ApiModelProperty(value = "线上商城pic")
+    private String onlineShop;
+
+    @ApiModelProperty(value = "本周福利pic")
+    private String weeksBenefit;
+
+    @ApiModelProperty(value = "今日免费pic")
+    private String todayFree;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/StudentHonorMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/StudentHonorMapper.java
new file mode 100644
index 0000000..d064fab
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/StudentHonorMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.account.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.account.entity.StudentHonor;
+
+/**
+ * <p>
+ * 学员-荣耀中间表 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+public interface StudentHonorMapper extends BaseMapper<StudentHonor> {
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/GongVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/GongVo.java
new file mode 100644
index 0000000..00a021b
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/GongVo.java
@@ -0,0 +1,15 @@
+package com.dsh.account.model.vo.medalDetail;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class GongVo {
+
+    @ApiModelProperty(value = "勋章类型(1=俱乐部之星,2=运动达人,3=社区之王,4=深度玩家)")
+    private Integer medalType;
+
+    @ApiModelProperty(value = "勋章名称 例如:俱乐部之星")
+    private String medalName;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java
index 1e863f3..589da68 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/medalDetail/StuMedalVo.java
@@ -19,4 +19,10 @@
     @ApiModelProperty(value = "升级条件")
     private String upgradeConditions;
 
+    @ApiModelProperty(value = "下一等级")
+    private Integer nextLevel;
+
+    @ApiModelProperty(value = "是否顶级 1是 2不是")
+    private Integer isTopLevel;
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java
new file mode 100644
index 0000000..1b7c970
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java
@@ -0,0 +1,31 @@
+package com.dsh.account.model.vo.userBenefitDetail;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AppUserDetailsVo {
+
+    @ApiModelProperty(value = "用户头像")
+    private String userImage;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @ApiModelProperty(value = "用户手机号")
+    private String userPhone;
+
+    @ApiModelProperty(value = "用户性别")
+    private String sex;
+
+    @ApiModelProperty(value = "用户生日")
+    private String birthday;
+
+    @ApiModelProperty(value = "用户地址")
+    private String address;
+
+    @ApiModelProperty(value = "会员有效期")
+    private String memberLifespan;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/BillingDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/BillingDetailsVo.java
new file mode 100644
index 0000000..3f590f4
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/BillingDetailsVo.java
@@ -0,0 +1,32 @@
+package com.dsh.account.model.vo.userBenefitDetail;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BillingDetailsVo {
+
+    @ApiModelProperty(value = "记录列表")
+    List<ConsumeDetail> details;
+
+
+
+    @Data
+    public static class ConsumeDetail{
+
+        @ApiModelProperty(value = "名称")
+        private String consumeName;
+
+        @ApiModelProperty(value = "时间")
+        private String consumeTime;
+
+        @ApiModelProperty(value = "金额 例如 -90 ")
+        private String consumeAmount;
+
+    }
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java
new file mode 100644
index 0000000..a766f2f
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java
@@ -0,0 +1,34 @@
+package com.dsh.account.model.vo.userBenefitDetail;
+
+import com.dsh.account.feignclient.activity.model.IntegralCommodity;
+import com.dsh.account.feignclient.other.model.UserBenefitImage;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class IndexOfUserBenefirVo {
+
+    @ApiModelProperty(value = "用户头像")
+    private String userHeadImg;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @ApiModelProperty(value = "是否年度会员")
+    private String isMember;
+
+    @ApiModelProperty(value = "玩湃币")
+    private double wpCoin;
+
+    @ApiModelProperty(value = "用户积分")
+    private Integer userIntegral;
+
+    @ApiModelProperty(value = "商品列表")
+    private List<IntegralCommodity>  commodities;
+
+    @ApiModelProperty(value = "banners")
+    private UserBenefitImage image;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java b/cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java
new file mode 100644
index 0000000..d14ca47
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/StudentHonorService.java
@@ -0,0 +1,24 @@
+package com.dsh.account.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.account.entity.StudentHonor;
+import com.dsh.account.model.vo.medalDetail.GongVo;
+import com.dsh.account.model.vo.medalDetail.StuMedalVo;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 学员-荣耀中间表 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+public interface StudentHonorService extends IService<StudentHonor> {
+
+    List<GongVo> queryStuOfMedalData(Integer stuId);
+
+    List<StuMedalVo> queryHonorDetails(Integer stuId);
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
index 58f08bf..22f4e1b 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -1,13 +1,15 @@
 package com.dsh.account.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.model.AddAppUserVo;
 import com.dsh.account.model.JoinPlayPaiVo;
 import com.dsh.account.model.LoginSMSCodeVo;
 import com.dsh.account.model.LoginWeChatVo;
 import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo;
+import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo;
+import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo;
 import com.dsh.account.util.ResultUtil;
-import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * <p>
@@ -91,4 +93,20 @@
      * @throws Exception
      */
     JoinPlayPaiVo queryJoinPlayPai(Integer uid, String lon, String lat) throws Exception;
+
+    /**
+     * 获取使用福利首页数据
+     * @param appUserId
+     * @return
+     */
+    IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId);
+
+    /**
+     * 获取用户账单列表
+     * @param yearMonth 年月
+     * @param recordId 记录id
+     * @return
+     */
+    BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId);
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
index e121355..5601534 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -6,6 +6,7 @@
 import com.dsh.account.feignclient.other.model.SysNotice;
 import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo;
 import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
+import com.dsh.account.model.vo.classDetails.classInsVo.StuListVo;
 import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo;
 import com.dsh.account.model.vo.exploreDetail.LonLatRequest;
 import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo;
@@ -63,4 +64,9 @@
      */
     ExploreDatasVo queryIndexOfExplores(LonLatRequest llrequest);
 
+    /**
+     * 切换学员
+     */
+    List<StuListVo> switchStudentActions(Integer appUserId, Integer stuId);
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java
new file mode 100644
index 0000000..6052364
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java
@@ -0,0 +1,71 @@
+package com.dsh.account.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.account.entity.StudentHonor;
+import com.dsh.account.feignclient.other.HonorDeClient;
+import com.dsh.account.mapper.StudentHonorMapper;
+import com.dsh.account.model.vo.medalDetail.GongVo;
+import com.dsh.account.model.vo.medalDetail.StuMedalVo;
+import com.dsh.account.service.StudentHonorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 学员-荣耀中间表 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@Service
+public class StudentHonorServiceImpl extends ServiceImpl<StudentHonorMapper, StudentHonor> implements StudentHonorService {
+
+
+    @Autowired
+    private HonorDeClient honorDeClient;
+
+    @Override
+    public List<GongVo> queryStuOfMedalData(Integer stuId) {
+        List<GongVo> voList = new ArrayList<>();
+        List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>()
+                .eq("stuId", stuId));
+        if (studentHonors.size() > 0){
+            studentHonors.forEach( stuoHo -> {
+                GongVo vo = new GongVo();
+                vo.setMedalType(stuoHo.getHonorType());
+                switch (stuoHo.getHonorType()){
+                    case 1:
+                        vo.setMedalName("俱乐部之星");
+                        break;
+                    case 2:
+                        vo.setMedalName("运动达人");
+                        break;
+                    case 3:
+                        vo.setMedalName("社区之王");
+                        break;
+                    case 4:
+                        vo.setMedalName("深度玩家");
+                        break;
+                    default:
+                        break;
+                }
+                voList.add(vo);
+            });
+        }
+        return voList;
+    }
+
+    @Override
+    public List<StuMedalVo> queryHonorDetails(Integer stuId) {
+        List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>()
+                .in("stuId",stuId));
+        List<Integer> collect = studentHonors.stream().map(StudentHonor::getStuId).collect(Collectors.toList());
+        return honorDeClient.getStuHonors(collect);
+    }
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 0f0c56f..cc2833a 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.entity.TStudent;
+import com.dsh.account.feignclient.activity.MerChandiseClient;
 import com.dsh.account.feignclient.course.CoursePaymentClient;
 import com.dsh.account.feignclient.course.model.CourseOfStoreVo;
 import com.dsh.account.feignclient.course.model.QueryStoreList;
@@ -24,6 +25,8 @@
 import com.dsh.account.model.vo.classDetails.RegisteredCourse;
 import com.dsh.account.model.vo.classDetails.WeekedCourse;
 import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo;
+import com.dsh.account.model.vo.userBenefitDetail.BillingDetailsVo;
+import com.dsh.account.model.vo.userBenefitDetail.IndexOfUserBenefirVo;
 import com.dsh.account.service.TAppUserService;
 import com.dsh.account.util.*;
 import com.dsh.account.util.akeylogin.Md5Util;
@@ -74,8 +77,12 @@
     @Resource
     private StoreClient storeClient;
 
+    @Autowired
+    private MerChandiseClient mcClient;
 
 
+    @Autowired
+    private ImgConfigClient icfgClient;
 
     @Override
     public ClassInfoVo queryUserOfStus(Integer id,String latitude,String longitude) {
@@ -450,4 +457,28 @@
         }
         return joinPlayPaiVo;
     }
+
+    @Override
+    public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId) {
+        IndexOfUserBenefirVo benefirVo = new IndexOfUserBenefirVo();
+
+        TAppUser appUser = this.getById(appUserId);
+        benefirVo.setUserHeadImg(appUser.getHeadImg());
+        benefirVo.setUserName(appUser.getName());
+        if (appUser.getIsVip() == 1){
+            benefirVo.setIsMember("年度会员");
+        }else {
+            benefirVo.setIsMember("普通用户");
+        }
+        benefirVo.setCommodities(mcClient.getConvertibleGoods());
+        benefirVo.setImage(icfgClient.getImageConfig());
+        return benefirVo;
+    }
+
+    @Override
+    public BillingDetailsVo queryUserBillingDetails(String yearMonth, Integer recordId) {
+        System.out.println("账单传参:yearMonth"+yearMonth+"|"+"recordId"+recordId);
+        // TODO: 2023/7/4
+        return null;
+    }
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index dc7cee2..515f5bc 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -26,6 +26,7 @@
 import com.dsh.account.mapper.TStudentMapper;
 import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo;
 import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
+import com.dsh.account.model.vo.classDetails.classInsVo.StuListVo;
 import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo;
 import com.dsh.account.model.vo.exploreDetail.LonLatRequest;
 import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo;
@@ -35,6 +36,7 @@
 import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest;
 import com.dsh.account.service.TStudentService;
 import com.dsh.account.util.DateTimeHelper;
+import com.dsh.account.util.DateUtil;
 import com.dsh.account.util.ToolUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -163,7 +165,7 @@
         purchaseRecordVoList.addAll(purchaseRecordVos);
         List<TAppUser> tAppUsers = tauMapper.selectList(new QueryWrapper<TAppUser>()
                 .eq("referralUserId",appUserId )
-                .between("insertTime",timeRequest.getStartTime() ,timeRequest.getEndTime()));
+                .between("insertTime",startTime ,endTime));
         List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList());
         List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(startTime, endTime, userIds);
         purchaseRecordVoList.addAll(purchaseRecordVos1);
@@ -225,6 +227,36 @@
         return datasVo;
     }
 
+    @Override
+    public List<StuListVo> switchStudentActions(Integer appUserId, Integer stuId) {
+        List<StuListVo> stuListVos = new ArrayList<>();
+        List<TStudent> tStudents = this.baseMapper.selectList(new QueryWrapper<TStudent>()
+                .eq("appUserId", appUserId)
+                .eq("state",1));
+        if (tStudents.size() > 0) {
+            tStudents.forEach(sts -> {
+                if (Objects.equals(sts.getId(), stuId)) {
+                    sts.setIsDefault(1);
+                } else {
+                    sts.setIsDefault(2);
+                }
+                this.baseMapper.updateById(sts);
+
+                StuListVo vo = new StuListVo();
+                vo.setStuId(sts.getId());
+                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                vo.setBirthday(simpleDateFormat.format(sts.getBirthday()));
+                vo.setStuName(sts.getName());
+                vo.setStuAge(DateUtil.age(sts.getBirthday()));
+                vo.setStuHeight(sts.getHeight());
+                vo.setStuWeight(sts.getWeight());
+                vo.setIsNot(sts.getIsDefault());
+                stuListVos.add(vo);
+            });
+        }
+        return stuListVos;
+    }
+
 
     public static List<PurchaseRecordVo> dealDataOfTime(List<PurchaseRecordVo> purchaseRecords) {
         Collections.sort(purchaseRecords, new Comparator<PurchaseRecordVo>() {
diff --git a/cloud-server-account/src/main/resources/mapper/StudentHonorMapper.xml b/cloud-server-account/src/main/resources/mapper/StudentHonorMapper.xml
new file mode 100644
index 0000000..de2ab8e
--- /dev/null
+++ b/cloud-server-account/src/main/resources/mapper/StudentHonorMapper.xml
@@ -0,0 +1,5 @@
+<?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.dsh.account.mapper.StudentHonorMapper">
+
+</mapper>
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
new file mode 100644
index 0000000..b3a73c4
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -0,0 +1,46 @@
+package com.dsh.activity.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.activity.entity.PointsMerchandise;
+import com.dsh.activity.feignclient.model.IntegralCommodity;
+import com.dsh.activity.service.PointsMerchandiseService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@RestController
+@RequestMapping("")
+public class PointMercharsController {
+
+
+    @Autowired
+    private PointsMerchandiseService pmdsService;
+
+
+
+    @PostMapping("/pointMerchars/convertGoods")
+    public List<IntegralCommodity> getConvertibleGoods(){
+        List<IntegralCommodity> commodity = new ArrayList<>();
+        List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>()
+                .eq("state",1)
+                .lt("endTime",new Date()));
+        if (merchandises.size() > 0){
+            for (PointsMerchandise merchandise : merchandises) {
+                IntegralCommodity integralCommodity = new IntegralCommodity();
+                integralCommodity.setCommodityId(merchandise.getId());
+                integralCommodity.setCommodityImg(merchandise.getProductImages());
+                integralCommodity.setCommodityName(merchandise.getName());
+                integralCommodity.setCommodityPrice(merchandise.getPrice());
+                commodity.add(integralCommodity);
+            }
+        }
+        return commodity;
+    }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java
index f988de1..2978d06 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserConponController.java
@@ -4,7 +4,7 @@
 import com.dsh.activity.entity.Coupon;
 import com.dsh.activity.entity.UserCoupon;
 import com.dsh.activity.feignclient.model.CouponStuAvailableVo;
-import com.dsh.activity.service.CouponService;
+import com.dsh.activity.service.ICouponService;
 import com.dsh.activity.service.UserCouponService;
 import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,7 +26,7 @@
     private UserCouponService uconService;
 
     @Autowired
-    private CouponService cService;
+    private ICouponService cService;
 
     private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
 
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
new file mode 100644
index 0000000..1eb90d6
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
@@ -0,0 +1,135 @@
+package com.dsh.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 积分商品
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_points_merchandise")
+public class PointsMerchandise extends Model<PointsMerchandise> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 类型(1=实体商品,2=课包商品,3=门票商品)
+     */
+    private Integer type;
+    /**
+     * 商品名称
+     */
+    private String name;
+    /**
+     * 课包id
+     */
+    private Integer coursePackageId;
+    /**
+     * 原价
+     */
+    private BigDecimal price;
+    /**
+     * 兑换方式(1=积分,2=现金+积分)
+     */
+    private Integer redemptionMethod;
+    /**
+     * 所需现金
+     */
+    private BigDecimal cash;
+    /**
+     * 所属积分
+     */
+    private BigDecimal integral;
+    /**
+     * 商品封面
+     */
+    private String cover;
+    /**
+     * 商品图片
+     */
+    private String productImages;
+    /**
+     * 用户人群(1=全部用户,2=年度会员,3=已有学员用户)
+     */
+    private Integer userPopulation;
+    /**
+     * 发放数量
+     */
+    private Integer quantityIssued;
+    /**
+     * 限领数量
+     */
+    private Integer pickUpQuantity;
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+    /**
+     * 使用范围(1=全国,2=指定城市,3=指定门店)
+     */
+    private Integer useScope;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 省编号
+     */
+    private String provinceCode;
+    /**
+     * 市
+     */
+    private String city;
+    /**
+     * 市编号
+     */
+    private String cityCode;
+    /**
+     * 兑换说明
+     */
+    private String redemptionInstructions;
+    /**
+     * 排序
+     */
+    private Integer sort;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    private Date insertTime;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
new file mode 100644
index 0000000..75b0415
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
@@ -0,0 +1,17 @@
+package com.dsh.activity.feignclient;
+
+
+import com.dsh.activity.feignclient.model.IntegralCommodity;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-activity")
+public interface MerChandiseClient {
+
+    @PostMapping("/pointMerchars/convertGoods")
+    public List<IntegralCommodity> getConvertibleGoods();
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/IntegralCommodity.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/IntegralCommodity.java
new file mode 100644
index 0000000..f8b2f2b
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/IntegralCommodity.java
@@ -0,0 +1,24 @@
+package com.dsh.activity.feignclient.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+@Data
+public class IntegralCommodity {
+
+    @ApiModelProperty(value = "商品id")
+    private Integer commodityId;
+
+    @ApiModelProperty(value = "商品图片")
+    private String commodityImg;
+
+    @ApiModelProperty(value = "商品名称")
+    private String commodityName;
+
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal commodityPrice;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
new file mode 100644
index 0000000..4e3fe33
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.PointsMerchandise;
+
+/**
+ * <p>
+ * 积分商品 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+public interface PointsMerchandiseMapper extends BaseMapper<PointsMerchandise> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/xml/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/xml/PointsMerchandiseMapper.xml
new file mode 100644
index 0000000..8e05102
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/xml/PointsMerchandiseMapper.xml
@@ -0,0 +1,6 @@
+<?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.dsh.activity.mapper.PointsMerchandiseMapper">
+
+
+</mapper>
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java
deleted file mode 100644
index cb92505..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/CouponService.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.dsh.activity.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.dsh.activity.entity.Coupon;
-
-import java.util.Map;
-
-/**
- * <p>
- * 优惠券 服务类
- * </p>
- *
- * @author jqs
- * @since 2023-06-29
- */
-public interface CouponService extends IService<Coupon> {
-
-    Map<String, Object> queryConponRuleOfJson(Integer id);
-
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
new file mode 100644
index 0000000..c658be5
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.PointsMerchandise;
+
+/**
+ * <p>
+ * 积分商品 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+public interface PointsMerchandiseService extends IService<PointsMerchandise> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
new file mode 100644
index 0000000..4809c45
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.PointsMerchandise;
+import com.dsh.activity.mapper.PointsMerchandiseMapper;
+import com.dsh.activity.service.PointsMerchandiseService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 积分商品 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@Service
+public class PointsMerchandiseServiceImpl extends ServiceImpl<PointsMerchandiseMapper, PointsMerchandise> implements PointsMerchandiseService {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java b/cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java
new file mode 100644
index 0000000..df6ec49
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/web/PointsMerchandiseController.java
@@ -0,0 +1,21 @@
+package com.dsh.activity.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 积分商品 前端控制器
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@RestController
+@RequestMapping("/points-merchandise")
+public class PointsMerchandiseController {
+
+}
+
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java
new file mode 100644
index 0000000..f7b218a
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java
@@ -0,0 +1,65 @@
+package com.dsh.other.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.other.entity.HonorRules;
+import com.dsh.other.feignclient.model.StuMedalVo;
+import com.dsh.other.service.HonorRulesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+@RestController
+@RequestMapping("")
+public class HonorController {
+
+    @Autowired
+    private HonorRulesService hrService;
+
+
+    @PostMapping("/honor/stuHonors")
+    public List<StuMedalVo> getStuHonors(@RequestBody List<Integer> honorIds){
+        List<StuMedalVo> stuMedalVos = new ArrayList<>();
+        List<HonorRules> honorRules = hrService.list(new QueryWrapper<HonorRules>()
+                .in("id", honorIds));
+        if (honorRules.size() > 0){
+            honorRules.forEach(hrs -> {
+                StuMedalVo stuMedalVo = new StuMedalVo();
+                stuMedalVo.setLevelNum(Integer.getInteger(hrs.getLevel()));
+                switch (hrs.getType()){
+                    case 1:
+                        stuMedalVo.setMedalName("俱乐部之星");
+                        break;
+                    case 2:
+                        stuMedalVo.setMedalName("运动达人");
+                        break;
+                    case 3:
+                        stuMedalVo.setMedalName("社区之王");
+                        break;
+                    case 4:
+                        stuMedalVo.setMedalName("深度玩家");
+                        break;
+                    default:
+                        break;
+                }
+                if (!Objects.equals(hrs.getLevel(), "10")){
+                    stuMedalVo.setNextLevel(Integer.parseInt(hrs.getLevel())+1);
+                    stuMedalVo.setUpgradeConditions(hrs.getCondition());
+                    stuMedalVo.setIsTopLevel(2);
+                }else {
+                    stuMedalVo.setIsTopLevel(1);
+                }
+                stuMedalVos.add(stuMedalVo);
+            });
+        }
+
+        return stuMedalVos;
+    }
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java
index e01dfd5..f7c9582 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.other.entity.TImgConfig;
+import com.dsh.other.feignclient.model.UserBenefitImage;
 import com.dsh.other.service.TImgConfigService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -12,6 +13,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -56,4 +58,36 @@
         return imgConfig.getContent();
     }
 
+
+    @PostMapping("/imgConfig/getBenefitImage")
+    public UserBenefitImage getImageConfig(){
+        UserBenefitImage image = new UserBenefitImage();
+        ArrayList<Integer> integers = new ArrayList<>();
+        integers.add(1);
+        integers.add(2);
+        List<TImgConfig> tImgConfigs = imgConfigService.getBaseMapper().selectList(new QueryWrapper<TImgConfig>()
+                .notIn("position", integers));
+        if (tImgConfigs.size() > 0){
+            tImgConfigs.forEach(imgCg -> {
+                switch (imgCg.getPosition()){
+                    case 3:
+                        image.setMyConpons(imgCg.getContent());
+                        break;
+                    case 4:
+                        image.setOnlineShop(imgCg.getContent());
+                        break;
+                    case 5:
+                        image.setWeeksBenefit(imgCg.getContent());
+                        break;
+                    case 6:
+                        image.setTodayFree(imgCg.getContent());
+                        break;
+                    default:
+                        break;
+                }
+            });
+        }
+        return image;
+    }
+
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java b/cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java
new file mode 100644
index 0000000..a098a05
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java
@@ -0,0 +1,51 @@
+package com.dsh.other.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 荣誉规则
+ * </p>
+ *
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_honor_rules")
+public class HonorRules extends Model<HonorRules> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 数据类型(1=俱乐部之星,2=运动达人,3=社区之王,4=深度玩家)
+     */
+    private Integer type;
+    /**
+     * 等级
+     */
+    private String level;
+    /**
+     * 满足条件值
+     */
+    private String condition;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/HonorDeClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/HonorDeClient.java
new file mode 100644
index 0000000..05f5d00
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/HonorDeClient.java
@@ -0,0 +1,16 @@
+package com.dsh.other.feignclient;
+
+import com.dsh.other.feignclient.model.StuMedalVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(value = "mb-cloud-other")
+public interface HonorDeClient {
+
+    @PostMapping("/honor/stuHonors")
+    public List<StuMedalVo> getStuHonors(@RequestBody List<Integer> honorIds);
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/ImgConfigClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/ImgConfigClient.java
index b79bacd..5ab9163 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/feignclient/ImgConfigClient.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/ImgConfigClient.java
@@ -1,6 +1,7 @@
 package com.dsh.other.feignclient;
 
 import com.dsh.other.entity.TImgConfig;
+import com.dsh.other.feignclient.model.UserBenefitImage;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 
@@ -11,4 +12,9 @@
 
     @PostMapping("/imgConfig/getNoneStu")
     List<TImgConfig> getNoneStuImgs();
+
+
+    @PostMapping("/imgConfig/getBenefitImage")
+    public UserBenefitImage getImageConfig();
+
 }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StuMedalVo.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StuMedalVo.java
new file mode 100644
index 0000000..b56ad1c
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StuMedalVo.java
@@ -0,0 +1,28 @@
+package com.dsh.other.feignclient.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StuMedalVo {
+
+    @ApiModelProperty(value = "勋章类型(1=俱乐部之星,2=运动达人,3=社区之王,4=深度玩家)")
+    private Integer medalType;
+
+    @ApiModelProperty(value = "勋章名称 例如:俱乐部之星")
+    private String medalName;
+
+    @ApiModelProperty(value = "当前等级")
+    private Integer levelNum;
+
+    @ApiModelProperty(value = "升级条件")
+    private String upgradeConditions;
+
+    @ApiModelProperty(value = "下一等级")
+    private Integer nextLevel;
+
+    @ApiModelProperty(value = "是否顶级 1是 2不是")
+    private Integer isTopLevel;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/UserBenefitImage.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/UserBenefitImage.java
new file mode 100644
index 0000000..b5b7d75
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/model/UserBenefitImage.java
@@ -0,0 +1,22 @@
+package com.dsh.other.feignclient.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class UserBenefitImage {
+
+    @ApiModelProperty(value = "我的券包pic")
+    private String myConpons;
+
+    @ApiModelProperty(value = "线上商城pic")
+    private String onlineShop;
+
+    @ApiModelProperty(value = "本周福利pic")
+    private String weeksBenefit;
+
+    @ApiModelProperty(value = "今日免费pic")
+    private String todayFree;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/HonorRulesMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/HonorRulesMapper.java
new file mode 100644
index 0000000..a25b7fd
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/HonorRulesMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.other.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.other.entity.HonorRules;
+
+/**
+ * <p>
+ * 荣誉规则 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+public interface HonorRulesMapper extends BaseMapper<HonorRules> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/HonorRulesService.java b/cloud-server-other/src/main/java/com/dsh/other/service/HonorRulesService.java
new file mode 100644
index 0000000..da53155
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/HonorRulesService.java
@@ -0,0 +1,16 @@
+package com.dsh.other.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.entity.HonorRules;
+
+/**
+ * <p>
+ * 荣誉规则 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+public interface HonorRulesService extends IService<HonorRules> {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/HonorRulesServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/HonorRulesServiceImpl.java
new file mode 100644
index 0000000..6efd351
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/HonorRulesServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.other.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.entity.HonorRules;
+import com.dsh.other.mapper.HonorRulesMapper;
+import com.dsh.other.service.HonorRulesService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 荣誉规则 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@Service
+public class HonorRulesServiceImpl extends ServiceImpl<HonorRulesMapper, HonorRules> implements HonorRulesService {
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/web/HonorRulesController.java b/cloud-server-other/src/main/java/com/dsh/other/web/HonorRulesController.java
new file mode 100644
index 0000000..93874b3
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/web/HonorRulesController.java
@@ -0,0 +1,21 @@
+package com.dsh.other.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 荣誉规则 前端控制器
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@RestController
+@RequestMapping("/honor-rules")
+public class HonorRulesController {
+
+}
+
diff --git a/cloud-server-other/src/main/resources/mapper/HonorRulesMapper.xml b/cloud-server-other/src/main/resources/mapper/HonorRulesMapper.xml
new file mode 100644
index 0000000..847444c
--- /dev/null
+++ b/cloud-server-other/src/main/resources/mapper/HonorRulesMapper.xml
@@ -0,0 +1,6 @@
+<?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.dsh.other.mapper.HonorRulesMapper">
+
+
+</mapper>

--
Gitblit v1.7.1