Ver código fonte

feat(app): 优化首页接口并添加新功能

- 重构 AppHomeServiceImpl 中的代码,优化数据处理逻辑
- 在 InstructorVO 中添加新字段,用于展示培训项目和课程数量
- 更新 ShiroConfig,允许匿名访问新的首页接口
- 修复 SysUserMapper.xml 中的 SQL 查询
- 优化 UserServiceImpl 中的 getMsg 方法,增加用户非空校验
SheepHy 2 semanas atrás
pai
commit
15041bca8c

+ 3 - 2
national-motion-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

@@ -100,9 +100,10 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/auth/2step-code", "anon");//登录验证码
         filterChainDefinitionMap.put("/sys/common/static/**", "anon");//图片预览 &下载文件不限制token
         filterChainDefinitionMap.put("/sys/common/pdf/**", "anon");//pdf预览
-        filterChainDefinitionMap.put("/app/home/**", "anon");//APP首页接口
+        filterChainDefinitionMap.put("/app/home/homeInfo", "anon");//APP首页接口
+        filterChainDefinitionMap.put("/app/home/getMsg", "anon");//APP首页接口
 
-        filterChainDefinitionMap.put("/app/user/**", "anon");//小程序相关
+//        filterChainDefinitionMap.put("/app/user/**", "anon");//小程序相关
 
         //filterChainDefinitionMap.put("/sys/common/view/**", "anon");//图片预览不限制token
         //filterChainDefinitionMap.put("/sys/common/download/**", "anon");//文件下载不限制token

+ 12 - 4
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/AppHomeServiceImpl.java

@@ -87,11 +87,16 @@ public class AppHomeServiceImpl implements IAppHomeService {
                     Wrappers.<AppInstructor>lambdaQuery().eq(AppInstructor::getUserId, userId));
 
             InstructorVO instructorVO = new InstructorVO();
-            BeanUtils.copyProperties(instructorVO, appInstructor);
-
+            BeanUtils.copyProperties(appInstructor,instructorVO);
+            List<String> list = new ArrayList<>();
+                    List.of(appInstructor.getTrainingPrograms().split(",")).forEach(item -> {
+                        String str = appCategoryMapper.selectById(item).getName();
+                        list.add(str);
+                    });
             instructorVO.setId(sysUser.getId())
                     .setAvatar(sysUser.getAvatar())
-                    .setName(sysUser.getRealname())
+                    .setName(sysUser.getRealname()).setList(list)
+                    .setTeachingCount(appInstructor.getClassesNumber())
                     .setOrgName(sysDepartMapper.selectOne(Wrappers.<SysDepart>lambdaQuery()
                             .eq(SysDepart::getOrgCode, sysUser.getOrgCode())).getDepartName());
 
@@ -102,7 +107,10 @@ public class AppHomeServiceImpl implements IAppHomeService {
             List<InstructorVO.CourseInfoVO> courseInfoVOS = courses.stream()
                     .map(course -> {
                         InstructorVO.CourseInfoVO vo = new InstructorVO.CourseInfoVO();
-                        BeanUtils.copyProperties(vo, course);
+                        BeanUtils.copyProperties(course,vo);
+                        //todo 教练订单统计
+                        vo.setCount(6666);
+                        vo.setSellingPrice(course.getSellingPrice());
                         return vo;
                     })
                     .collect(Collectors.toList());

+ 13 - 10
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/UserServiceImpl.java

@@ -93,16 +93,19 @@ public class UserServiceImpl implements IUserService {
     public List<MsgVO> getMsg() {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         List<MsgVO> msgVOList = new ArrayList<>();
-        sysAnnouncementSendMapper.selectList(Wrappers.<SysAnnouncementSend>lambdaQuery()
-                .eq(SysAnnouncementSend::getUserId, user.getId())).forEach(sysAnnouncementSend -> {
-            SysAnnouncement sysAnnouncement = sysAnnouncementMapper.selectById(sysAnnouncementSend.getAnntId());
-            MsgVO msgVO = new MsgVO()
-                    .setReadFlag(sysAnnouncementSend.getReadFlag())
-                    .setTitile(sysAnnouncement.getTitile())
-                    .setSendTime(sysAnnouncement.getSendTime())
-                    .setImgUrl(sysAnnouncement.getImgUrl()).setSender(sysAnnouncement.getSender());
-            msgVOList.add(msgVO);
-        });
+        if(null != user){
+            sysAnnouncementSendMapper.selectList(Wrappers.<SysAnnouncementSend>lambdaQuery()
+                    .eq(SysAnnouncementSend::getUserId, user.getId())).forEach(sysAnnouncementSend -> {
+                SysAnnouncement sysAnnouncement = sysAnnouncementMapper.selectById(sysAnnouncementSend.getAnntId());
+                MsgVO msgVO = new MsgVO()
+                        .setReadFlag(sysAnnouncementSend.getReadFlag())
+                        .setTitile(sysAnnouncement.getTitile())
+                        .setSendTime(sysAnnouncement.getSendTime())
+                        .setImgUrl(sysAnnouncement.getImgUrl()).setSender(sysAnnouncement.getSender());
+                msgVOList.add(msgVO);
+            });
+            return msgVOList;
+        }
         return msgVOList;
     }
 

+ 9 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/vo/InstructorVO.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 @Data
@@ -23,13 +24,16 @@ public class InstructorVO {
     @Schema(description = "教学理念")
     private String teachingPhilosophy;
     @Schema(description = "好评率")
-    private String goodRate;
+    private BigDecimal goodRate;
     @Schema(description = "订单数")
     private String orderCount;
     @Schema(description = "授课人数")
-    private String teachingCount;
+    private Integer teachingCount;
     @Schema(description = "擅长说明")
     private String excelMsg;
+    @Schema(description = "培训项目")
+    private String trainingPrograms;
+    private List<String> list;
     @Schema(description = "课程列表")
     private List<CourseInfoVO> courseList;
 
@@ -43,11 +47,13 @@ public class InstructorVO {
         @Schema(description = "课程名称")
         private String name;
         @Schema(description = "课程价格")
-        private String sellingPrice;
+        private BigDecimal sellingPrice;
         @Schema(description = "课程类型")
         private String type;
         @Schema(description = "课程简介")
         private String intro;
+        @Schema(description = "课程数量")
+        private int count;
     }
 
 }

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml

@@ -300,7 +300,7 @@
 	</select>
 
 	<select id="getUserIdListByRoleId" resultType="string" parameterType="string">
-		SELECT b.id FROM `sys_role` a LEFT JOIN sys_user_role b ON a.id = b.role_id
+		SELECT b.user_id FROM `sys_role` a LEFT JOIN sys_user_role b ON a.id = b.role_id
 		WHERE a.role_code = #{roleCode}
 	</select>
     <select id="findPage" resultType="org.jeecg.modules.system.app.dto.FindPageCUserInfoResponseDTO">