Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppSiteMapper.xml
SheepHy 2 hari lalu
induk
melakukan
dfdc6f6290
32 mengubah file dengan 287 tambahan dan 110 penghapusan
  1. 2 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/AppDetailController.java
  2. 2 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/OrderController.java
  3. 9 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/commercial/CommercialController.java
  4. 7 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/my/AppEvaluateController.java
  5. 9 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/dto/AddFamilyMembersDTO.java
  6. 3 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/dto/AppOrderInfoDTO.java
  7. 28 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/dto/evaluate/FindEvaluateDTO.java
  8. 1 15
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/ClassPostponeForm.java
  9. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/CreateOrderForm.java
  10. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/IDetailService.java
  11. 2 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/AppHomeServiceImpl.java
  12. 37 17
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/DetailServiceImpl.java
  13. 21 14
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java
  14. 3 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/vo/CourseInfoVO.java
  15. 3 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/vo/PlaceInfoVO.java
  16. 25 4
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppCoursesController.java
  17. 7 6
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppSitePlaceController.java
  18. 9 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/AppSiteDTO.java
  19. 4 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/AppCoursesMapper.java
  20. 6 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/EvaluateMapper.java
  21. 7 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppCoursesMapper.xml
  22. 2 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppSiteMapper.xml
  23. 24 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/EvaluateMapper.xml
  24. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IAppSitePlaceService.java
  25. 3 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IEvaluateService.java
  26. 9 16
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppCoureseServiceImpl.java
  27. 10 5
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppSitePlaceServiceImpl.java
  28. 3 3
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppSiteServiceImpl.java
  29. 24 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/EvaluateServiceImpl.java
  30. 4 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDepartMapper.java
  31. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml
  32. 19 17
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java

+ 2 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/AppDetailController.java

@@ -60,8 +60,8 @@ public class AppDetailController {
      **/
     @GetMapping("/courseInfoVOList")
     @Operation(summary = "根据课程类型查询课程列表")
-    public Result<List<PlaceInfoVO.CourseInfoVO>> courseInfoVOList(@RequestParam @Schema(description="类目id")String categoryId, @RequestParam @Schema(description="店铺ID")String id){
-        return Result.ok(detailService.courseInfoVOList(categoryId,id));
+    public Result<List<PlaceInfoVO.CourseInfoVO>> courseInfoVOList(@RequestParam @Schema(description="类目id")String categoryId, @RequestParam @Schema(description="店铺ID")String id,@RequestParam @Schema(description="经度")double longitude,@RequestParam @Schema(description="纬度")double latitude){
+        return Result.ok(detailService.courseInfoVOList(categoryId,id,longitude,latitude));
     }
 
     /**

+ 2 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/OrderController.java

@@ -12,6 +12,7 @@ import org.jeecg.modules.app.form.UserPayForm;
 import org.jeecg.modules.app.service.IOrderService;
 import org.jeecg.modules.app.vo.OrderVO;
 import org.jeecg.modules.system.app.entity.AppCoursesVerificationRecord;
+import org.simpleframework.xml.core.Validate;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
 
@@ -117,7 +118,7 @@ public class OrderController {
      */
     @Operation(summary = "订单-创建")
     @PostMapping("/createOrder")
-    public Result<UserPayForm> createOrder(@RequestBody CreateOrderForm createOrderForm) {
+    public Result<UserPayForm> createOrder(@Validate @RequestBody CreateOrderForm createOrderForm) {
         return Result.ok(appOrderService.createOrder(createOrderForm));
     }
 

+ 9 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/commercial/CommercialController.java

@@ -9,7 +9,9 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.app.form.ClassPostponeForm;
 import org.jeecg.modules.app.form.CourseQueryUsersForm;
 import org.jeecg.modules.app.vo.FamilyUserVO;
@@ -177,9 +179,15 @@ public class CommercialController {
         return Result.OK(appOrderService.scanCodeVerification(orderProInfoIds));
     }
 
+    /**
+     * 查询补课课表
+     * @return
+     */
     @Operation(summary = "查询补课课表")
     @GetMapping("/queryMakeUpClassTable")
     public Result<List<AppCoursesPriceRules>> queryMakeUpClassTable() {
-        return Result.OK(appCoursesPriceRulesService.list(Wrappers.<AppCoursesPriceRules>lambdaQuery().eq(AppCoursesPriceRules::getCoursesType,1)));
+        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        List<AppCoursesPriceRules> list = appCoursesPriceRulesService.list(Wrappers.<AppCoursesPriceRules>lambdaQuery().eq(AppCoursesPriceRules::getCoursesType, 1).eq(AppCoursesPriceRules::getOrgCode, loginUser.getOrgCode()));
+        return Result.OK(list);
     }
 }

+ 7 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/controller/my/AppEvaluateController.java

@@ -11,6 +11,7 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.app.dto.PageDTO;
 import org.jeecg.modules.app.dto.evaluate.AddEvaluateDTO;
+import org.jeecg.modules.app.dto.evaluate.FindEvaluateDTO;
 import org.jeecg.modules.system.app.dto.evaluate.FindEvaluateResponseDTO;
 import org.jeecg.modules.system.app.entity.Evaluate;
 import org.jeecg.modules.system.app.service.IEvaluateService;
@@ -63,4 +64,10 @@ public class AppEvaluateController {
         }
         return Result.ok("提交成功");
     }
+    @GetMapping("/findByOrderPage")
+    @Operation(summary = "app订单相关评价分页查询")
+    public Result<IPage<FindEvaluateResponseDTO>> findByOrderPage(FindEvaluateDTO findEvaluateDTO) {
+        return Result.ok(evaluateService.findByOrderPage(findEvaluateDTO));
+    }
+
 }

+ 9 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/dto/AddFamilyMembersDTO.java

@@ -5,6 +5,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * 家庭成员
  */
@@ -18,27 +20,34 @@ public class AddFamilyMembersDTO {
     @Schema(description = "id")
     private String id;
     /**姓名*/
+    @NotNull(message = "姓名不允许为空")
     @Schema(description = "姓名")
     private String fullName;
     /**用户编号*/
+    @NotNull(message = "用户编号不允许为空")
     @Schema(description = "用户编号")
     private String userId;
     /**身份证号*/
+    @NotNull(message = "身份证号不允许为空")
     @Schema(description = "身份证号")
     private String identityCard;
     /**身份证正面照*/
+    @NotNull(message = "身份证正面照不允许为空")
     @Schema(description = "身份证正面照")
     private String idCardFrontImg;
     /**身份证反面照*/
+    @NotNull(message = "身份证反面照不允许为空")
     @Schema(description = "身份证反面照")
     private String idCardBackImg;
     /**手机号*/
+    @NotNull(message = "手机号不允许为空")
     @Schema(description = "手机号")
     private String phone;
     /**实名状态 0-未实名 ;1-已实名*/
     @Schema(description = "实名状态 0-未实名 ;1-已实名,默认未实名")
     private Integer realNameStatus;
     /**身份证反面照*/
+    @NotNull(message = "实名认证照片不允许为空")
     @Schema(description = "实名认证照片")
     private String realNameImg;
 

+ 3 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/dto/AppOrderInfoDTO.java

@@ -49,6 +49,9 @@ public class AppOrderInfoDTO implements Serializable {
     @Schema(description = "经营状态 0-营业 1-休息")
     private Integer runStatus;
 
+    @Schema(description = "上课地址ID")
+    private String addressSiteId;
+
     @Schema(description = "上课地址")
     private String courseSiteAddress;
 

+ 28 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/dto/evaluate/FindEvaluateDTO.java

@@ -0,0 +1,28 @@
+package org.jeecg.modules.app.dto.evaluate;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.modules.app.dto.PageDTO;
+
+/**
+ * 评论
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@Schema(description="APP商品评论请求入参")
+public class FindEvaluateDTO extends PageDTO  {
+
+    /**教练id*/
+    @Schema(description = "教练id")
+    private String instructorId;
+    /**教练id*/
+    @Schema(description = "场地id")
+    private String siteId;
+    /**教练id*/
+    @Schema(description = "课程id")
+    private String coursesId;
+
+}

+ 1 - 15
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/ClassPostponeForm.java

@@ -1,15 +1,12 @@
 package org.jeecg.modules.app.form;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.jeecg.modules.app.vo.FamilyUserVO;
-import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.util.Date;
 import java.util.List;
 
 @Data
@@ -22,20 +19,9 @@ public class ClassPostponeForm implements Serializable {
     @Schema(description = "订单ID")
     private String orderId;
 
-    @Schema(description = "所选课时ID")
+    @Schema(description = "所选补课课时ID")
     private String coursePriceRulesId;
 
-    //补课课时
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Schema(description = "开始时间")
-    private Date startTime;
-
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Schema(description = "结束时间")
-    private Date endTime;
-
     @Schema(description = "用户列表")
     private List<FamilyUserVO> familyUserVOList;
 

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/form/CreateOrderForm.java

@@ -22,7 +22,7 @@ public class CreateOrderForm implements Serializable {
     @NotNull(message = "订单类型不能为空")
     public Integer type;
 
-    @Schema(description = "订单子类型;0-学校 1-包场 2-无固定场 3-个人赛 4-团队赛")
+    @Schema(description = "订单子类型;0-学校 1-包场 2-无固定场 3-个人赛 4-团队赛 5-课程")
     //订单子类型;0-学校 1-包场 2-无固定场 3-个人赛 4-团队赛
     public Integer orderType;
 

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/IDetailService.java

@@ -37,7 +37,7 @@ public interface IDetailService {
      * @Param type 课程类型
      * @return List<PlaceInfoVO.CourseInfoVO>
      **/
-    List<PlaceInfoVO.CourseInfoVO> courseInfoVOList(String categoryId,String id);
+    List<PlaceInfoVO.CourseInfoVO> courseInfoVOList(String categoryId,String id,double longitude,double latitude);
     
     /** 
      * @Author SheepHy

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

@@ -1,5 +1,6 @@
 package org.jeecg.modules.app.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.commons.lang3.ObjectUtils;
@@ -162,7 +163,7 @@ public class AppHomeServiceImpl implements IAppHomeService {
     public Page<PlaceVO> getPlaceList(GetPlaceListDTO getPlaceListDTO) {
         Page<PlaceVO> page = new Page<>(getPlaceListDTO.getCurrent(), getPlaceListDTO.getSize());
         Page<PlaceVO> placeList = appSiteMapper.getPlaceList(page, getPlaceListDTO.getVenueType());
-        if (placeList.getRecords()!=null&&placeList.getRecords().isEmpty()){
+        if (ObjectUtil.isNotEmpty(placeList)) {
             placeList.getRecords().forEach(placeVO -> {
                 boolean ticketWhether = false;
                 List<AppSitePriceRules> appSitePriceRules = new ArrayList<>();

+ 37 - 17
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/DetailServiceImpl.java

@@ -2,9 +2,11 @@ package org.jeecg.modules.app.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.DictModel;
@@ -30,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -48,6 +51,9 @@ public class DetailServiceImpl implements IDetailService {
     private AppCoursesMapper appCoursesMapper;
     @Resource
     private AppOrderProductMapper appOrderProductMapper;
+
+    @Autowired
+    private AppOrderProInfoMapper appOrderProInfoMapper;
     @Resource
     private AppSitePriceRulesMapper appSitePriceRulesMapper;
     @Resource
@@ -139,8 +145,10 @@ public class DetailServiceImpl implements IDetailService {
     @Override
     public CourseInfoVO getCourseInfo(String id, double latitude, double longitude) {
         CourseInfoVO courseInfoVO = appCoursesMapper.getCourseInfo(id);
-        AppSite appSite = appSiteMapper.selectById(courseInfoVO.getSiteId());
-        courseInfoVO.setKm(PositionUtil.calculateDistance(latitude, longitude, appSite.getLatitude().doubleValue(), appSite.getLongitude().doubleValue()));
+        AppSite appSite = appSiteMapper.selectById(courseInfoVO.getAddressSiteId());
+        if (appSite!=null&& ObjectUtils.isNotEmpty(appSite.getLatitude())&& ObjectUtils.isNotEmpty(appSite.getLongitude())){
+            courseInfoVO.setKm(PositionUtil.calculateDistance(latitude, longitude, appSite.getLatitude().doubleValue(), appSite.getLongitude().doubleValue()));
+        }
         courseInfoVO.setSales(getCourseSales(id));
         List<CourseInfoVO.CourseDetailVO> courseDetailVOList = new ArrayList<>();
         appCoursesPriceRulesMapper.selectList(Wrappers.<AppCoursesPriceRules>lambdaQuery()
@@ -155,7 +163,7 @@ public class DetailServiceImpl implements IDetailService {
     }
 
     @Override
-    public List<PlaceInfoVO.CourseInfoVO> courseInfoVOList(String categoryId,String id) {
+    public List<PlaceInfoVO.CourseInfoVO> courseInfoVOList(String categoryId,String id,double longitude,double latitude) {
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         List<PlaceInfoVO.CourseInfoVO> courseInfoVOList = new ArrayList<>();
         appCoursesMapper.selectList(Wrappers.<AppCourses>lambdaQuery()
@@ -170,9 +178,11 @@ public class DetailServiceImpl implements IDetailService {
             courseInfoVO.setSalesYear(getCourseSales(appCourses.getId()));
             courseInfoVO.setPriceType(isFirstPurchase(user.getId()));
             courseInfoVO.setCover(list.get(0));
-            AppSite appSite = appSiteMapper.selectById(appCourses.getSiteId());
+            AppSite appSite = appSiteMapper.selectById(appCourses.getAddressSiteId());
             if (appSite!=null){
                 courseInfoVO.setAddress(appSite.getAddress());
+                double km = PositionUtil.calculateDistance(latitude, longitude, appSite.getLatitude().doubleValue(), appSite.getLongitude().doubleValue());
+                courseInfoVO.setKm(new BigDecimal(String.valueOf(km)));
             }
 
             courseInfoVOList.add(courseInfoVO);
@@ -229,9 +239,19 @@ public class DetailServiceImpl implements IDetailService {
     @Override
     public List<AppCategory> getAllCategory(String id) {
         AppSite appSite = appSiteMapper.selectById(id);
-        return appCategoryMapper.selectList(Wrappers.<AppCategory>lambdaQuery()
-                .eq(AppCategory::getStatus,0).eq(AppCategory::getOrgCode,appSite.getOrgCode())
-                .eq(AppCategory::getDelFlag,0));
+        List<AppCategory> appCategories = new ArrayList<>();
+        if (appSite!=null &&StringUtils.isNotBlank(appSite.getCategoryId())){
+            List<String> strings = new ArrayList<>();
+            if (appSite.getCategoryId().indexOf(",")>0){
+                strings = Arrays.asList(appSite.getCategoryId().split(","));
+            }else {
+                strings.add(appSite.getCategoryId());
+            }
+            appCategories = appCategoryMapper.selectList(Wrappers.<AppCategory>lambdaQuery()
+                    .eq(AppCategory::getStatus, 0).in(AppCategory::getId,strings)
+                    .eq(AppCategory::getDelFlag, 0));
+        }
+        return appCategories;
     }
 
     /**
@@ -292,13 +312,13 @@ public class DetailServiceImpl implements IDetailService {
         LocalDateTime startOfYear = now.withDayOfYear(1).atStartOfDay(); // 当前年份第一天
         LocalDateTime endOfYear = startOfYear.plusYears(1); // 下一年第一天
 
-        return Math.toIntExact(appOrderProductMapper.selectCount(
-                Wrappers.<AppOrderProduct>lambdaQuery()
-                        .eq(AppOrderProduct::getProductId, id)
-                        .eq(AppOrderProduct::getStatus,0)
-                        .eq(AppOrderProduct::getDelFlag,0)
-                        .ge(AppOrderProduct::getCreateTime, Date.from(startOfYear.atZone(ZoneId.systemDefault()).toInstant())) // >= 2025-01-01
-                        .lt(AppOrderProduct::getCreateTime, Date.from(endOfYear.atZone(ZoneId.systemDefault()).toInstant())) // < 2026-01-01
+        return Math.toIntExact(appOrderProInfoMapper.selectCount(
+                Wrappers.<AppOrderProInfo>lambdaQuery()
+                        .eq(AppOrderProInfo::getProductId, id)
+                        .eq(AppOrderProInfo::getStatus,0)
+                        .eq(AppOrderProInfo::getDelFlag,0)
+                        .ge(AppOrderProInfo::getCreateTime, Date.from(startOfYear.atZone(ZoneId.systemDefault()).toInstant())) // >= 2025-01-01
+                        .lt(AppOrderProInfo::getCreateTime, Date.from(endOfYear.atZone(ZoneId.systemDefault()).toInstant())) // < 2026-01-01
         ));
     }
 
@@ -310,9 +330,9 @@ public class DetailServiceImpl implements IDetailService {
      * @return int 课程年销售数
      **/
     private int getCourseSalesCount(String id) {
-        return Math.toIntExact(appOrderProductMapper.selectCount(
-                Wrappers.<AppOrderProduct>lambdaQuery()
-                        .eq(AppOrderProduct::getProductId, id)
+        return Math.toIntExact(appOrderProInfoMapper.selectCount(
+                Wrappers.<AppOrderProInfo>lambdaQuery()
+                        .eq(AppOrderProInfo::getProductId, id)
         ));
     }
 

+ 21 - 14
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/OrderServiceImpl.java

@@ -1,6 +1,8 @@
 package org.jeecg.modules.app.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -504,7 +506,9 @@ public class OrderServiceImpl implements IOrderService {
                 //合同编号
                 AppContractInfo appContractInfo = appContractInfoMapper.selectOne(Wrappers.<AppContractInfo>lambdaQuery()
                         .eq(AppContractInfo::getOrgCode, appOrder.getOrgCode()).eq(AppContractInfo::getDelFlag,0));
-                appOrder.setContractNo(appContractInfo.getId());
+                if (ObjectUtil.isNotEmpty(appContractInfo)) {
+                    appOrder.setContractNo(appContractInfo.getId());
+                }
 
                 //订单总价(商品的售价总和)
                 BigDecimal sumCoursePrice = new BigDecimal(0);
@@ -534,19 +538,21 @@ public class OrderServiceImpl implements IOrderService {
                     appOrderProInfo.setDelFlag(CommonConstant.DEL_FLAG_0);
 
                     //创建核销记录
-                    for (AppCoursesPriceRules appCoursesPriceRules : priceRulesList) {
-                        AppCoursesVerificationRecord appCoursesVerificationRecord = new AppCoursesVerificationRecord();
-                        appCoursesVerificationRecord.setCoursesId(appCourse.getId());
-                        appCoursesVerificationRecord.setCoursesPriceRuleId(appCoursesPriceRules.getId());
-                        appCoursesVerificationRecord.setCoursesName(appCourse.getName());
-                        appCoursesVerificationRecord.setCoursesStartTime(appCoursesPriceRules.getStartTime());
-                        appCoursesVerificationRecord.setCoursesEndTime(appCoursesPriceRules.getEndTime());
-                        appCoursesVerificationRecord.setUseUserId(familyUserId);
-                        appCoursesVerificationRecord.setUseUserName(familyMembers.getFullName());
-                        appCoursesVerificationRecord.setVerifyStatus(0);
-                        appCoursesVerificationRecord.setOrPostpone(0);
-                        appCoursesVerificationRecord.setCoursesType(0);
-                        appCoursesVerificationRecordList.add(appCoursesVerificationRecord);
+                    if (CollUtil.isNotEmpty(priceRulesList)) {
+                        for (AppCoursesPriceRules appCoursesPriceRules : priceRulesList) {
+                            AppCoursesVerificationRecord appCoursesVerificationRecord = new AppCoursesVerificationRecord();
+                            appCoursesVerificationRecord.setCoursesId(appCourse.getId());
+                            appCoursesVerificationRecord.setCoursesPriceRuleId(appCoursesPriceRules.getId());
+                            appCoursesVerificationRecord.setCoursesName(appCourse.getName());
+                            appCoursesVerificationRecord.setCoursesStartTime(appCoursesPriceRules.getStartTime());
+                            appCoursesVerificationRecord.setCoursesEndTime(appCoursesPriceRules.getEndTime());
+                            appCoursesVerificationRecord.setUseUserId(familyUserId);
+                            appCoursesVerificationRecord.setUseUserName(familyMembers.getFullName());
+                            appCoursesVerificationRecord.setVerifyStatus(0);
+                            appCoursesVerificationRecord.setOrPostpone(0);
+                            appCoursesVerificationRecord.setCoursesType(0);
+                            appCoursesVerificationRecordList.add(appCoursesVerificationRecord);
+                        }
                     }
 
                     if (createOrderForm.getOrFreeOrder() == 1) {
@@ -737,6 +743,7 @@ public class OrderServiceImpl implements IOrderService {
         appOrderInfoDTO.setLatitude(courseSite.getLatitude());
         appOrderInfoDTO.setLongitude(courseSite.getLongitude());
         appOrderInfoDTO.setPhone(courseSite.getPhone());
+        appOrderInfoDTO.setAddressSiteId(courseSite.getId());
 
         return appOrderInfoDTO;
     }

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

@@ -4,7 +4,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
-import org.jeecg.modules.system.app.entity.AppInsure;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -64,6 +63,9 @@ public class CourseInfoVO {
     @Schema(description ="纬度")
     private BigDecimal latitude;
 
+    @Schema(description = "上课地点id")
+    private String  addressSiteId;
+
 
     @Data
     @Accessors(chain = true)

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

@@ -47,6 +47,8 @@ public class PlaceInfoVO {
     private BigDecimal longitude;
     @Schema(description ="纬度")
     private BigDecimal latitude;
+    @Schema(description ="vr")
+    private String  vr;
     @Schema(description = "教练简约返回参数")
     private List<InstructorVO> instructorVOList;
     @Data
@@ -65,7 +67,7 @@ public class PlaceInfoVO {
         @Schema(description = "销售数量")
         private int sales;
         @Schema(description = "退款类型;0可退/到期自动退 1限时退 2不可退")
-        private int refundType;
+        private Integer refundType;
         @Schema(description = "类目")
         private List<String> category;
         @Schema(description = "原价")

+ 25 - 4
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppCoursesController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.system.app.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.extern.slf4j.Slf4j;
@@ -8,7 +9,10 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.modules.system.app.dto.*;
+import org.jeecg.modules.system.app.dto.AppCoursesDTO;
+import org.jeecg.modules.system.app.dto.AppCoursesInfoPageDTO;
+import org.jeecg.modules.system.app.dto.AppCoursesPageDTO;
+import org.jeecg.modules.system.app.dto.AppSiteAddressDTO;
 import org.jeecg.modules.system.app.entity.AppCourses;
 import org.jeecg.modules.system.app.service.IAppCoureseService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,7 +58,7 @@ public class AppCoursesController extends JeecgController<AppCourses, IAppCoures
 	 */
 	@AutoLog(value = "课程/培训表-添加")
 	@Operation(summary="课程/培训表-添加")
-//	@RequiresPermissions("org.jeecg.modules.app:nm_courese:add")
+	@RequiresPermissions("app:appCourese:add")
 	@PostMapping(value = "/add")
 	public Result<String> add(@RequestBody AppCoursesDTO appCoursesDTO) {
 		return appCoursesService.saveWitchPriceRules(appCoursesDTO)?Result.OK("添加成功!"):Result.error("添加失败!");
@@ -68,11 +72,28 @@ public class AppCoursesController extends JeecgController<AppCourses, IAppCoures
 	 */
 	@AutoLog(value = "课程/培训表-编辑")
 	@Operation(summary="课程/培训表-编辑")
-//	@RequiresPermissions("org.jeecg.modules.app:nm_courese:edit")
+	@RequiresPermissions("app:appCourese:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
 	public Result<String> edit(@RequestBody AppCoursesDTO appCoursesDTO) {
 		return appCoursesService.editWitchPriceRules(appCoursesDTO)?Result.OK("操作成功!"):Result.error("操作失败!");
 	}
+	/**
+	 *  编辑-上下架状态
+	 *
+	 * @param
+	 * @return
+	 */
+	@AutoLog(value = "课程/培训表-编辑-上下架状态")
+	@Operation(summary="课程/培训表-编辑-上下架状态")
+	@RequiresPermissions("app:appCourese:edit")
+	@PutMapping(value = "/editRackingStatus")
+	public Result<String> editRackingStatus(@RequestParam String appCourseId,@RequestParam Integer rackingStatus) {
+		boolean flag = appCoursesService.update(Wrappers.<AppCourses>lambdaUpdate(AppCourses.class).eq(AppCourses::getId, appCourseId).set(AppCourses::getRackingStatus, rackingStatus));
+		if(!flag){
+			return Result.OK("修改失败!");
+		}
+		return Result.OK("修改成功!");
+	}
 	
 	/**
 	 *   通过id删除
@@ -82,7 +103,7 @@ public class AppCoursesController extends JeecgController<AppCourses, IAppCoures
 	 */
 	@AutoLog(value = "课程/培训表-通过id删除")
 	@Operation(summary="课程/培训表-通过id删除")
-//	@RequiresPermissions("org.jeecg.modules.app:nm_courese:delete")
+	@RequiresPermissions("app:appCourese:delete")
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
 		return appCoursesService.deleteWitchPriceRulesById(id)?Result.OK("操作成功!"):Result.error("操作失败!");

+ 7 - 6
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppSitePlaceController.java

@@ -81,7 +81,7 @@ public class AppSitePlaceController extends JeecgController<AppSitePlace, IAppSi
      */
     @AutoLog(value = "商户无固定场所-添加")
     @Operation(summary = "商户无固定场所-添加")
-//	@RequiresPermissions("org.jeecg.modules.system.app:nm_site_place:add")
+	@RequiresPermissions("app:appSitePlace:addUnfixed")
     @PostMapping(value = "/addUnfixed")
     public Result<String> addUnfixed(@RequestBody
                                      AppSitePlaceUnfixedDTO unfixedDTO) {
@@ -160,13 +160,14 @@ public class AppSitePlaceController extends JeecgController<AppSitePlace, IAppSi
      * 根据orgCode查询site列表
      *
      * @param orgCode
+     * @param type
      * @return
      */
     @AutoLog(value = "根据orgCode查询商户信息列表")
     @Operation(summary = "根据orgCode查询site列表")
-    @GetMapping(value = "/queryByOrgCode/{orgCode}")
-    public Result<List<AppSite>> queryByOrgCode(@PathVariable(name = "orgCode") String orgCode) {
-        List<AppSite> appSites = appSitePlaceService.queryByOrgCode(orgCode);
+    @GetMapping(value = "/queryByOrgCode")
+    public Result<List<AppSite>> queryByOrgCode(@RequestParam(name = "orgCode", required = true) String orgCode,@RequestParam(name = "type") Integer type) {
+        List<AppSite> appSites = appSitePlaceService.queryByOrgCode(orgCode,type);
         return Result.OK(appSites);
     }
 
@@ -178,7 +179,7 @@ public class AppSitePlaceController extends JeecgController<AppSitePlace, IAppSi
      */
     @AutoLog(value = "c-编辑")
     @Operation(summary = "商户无固定场所-编辑")
-//	@RequiresPermissions("org.jeecg.modules.system.app:nm_site_place:edit")
+	@RequiresPermissions("app:appSitePlace:updateUnfixed")
     @RequestMapping(value = "/updateUnfixed", method = {RequestMethod.PUT, RequestMethod.POST})
     public Result<String> updateUnfixed(@RequestBody AppSitePlaceUnfixedDTO unfixedDTO) {
         Boolean b = appSitePlaceService.updateUnfixed(unfixedDTO);
@@ -208,7 +209,7 @@ public class AppSitePlaceController extends JeecgController<AppSitePlace, IAppSi
      */
     @AutoLog(value = "商户无固定场所-通过id删除")
     @Operation(summary = "商户无固定场所-通过id删除")
-//	@RequiresPermissions("org.jeecg.modules.system.app:nm_site_place:delete")
+	@RequiresPermissions("app:appSitePlace:deleteUnfixed")
     @DeleteMapping(value = "/deleteUnfixed")
     public Result<String> deleteUnfixed(@RequestParam(name = "id", required = true) String id) {
         appSitePlaceService.deleteUnfixed(id);

+ 9 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/AppSiteDTO.java

@@ -1,6 +1,8 @@
 package org.jeecg.modules.system.app.dto;
 
+import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -119,4 +121,11 @@ public class AppSiteDTO {
     @Schema(description = "vr图JSON数据")
     private String vr;
 
+
+    @JsonCreator
+    public AppSiteDTO(@JsonProperty("latitude") String latitude,@JsonProperty("longitude") String longitude) {
+        this.latitude = new BigDecimal(latitude); // 显式转换
+        this.longitude = new BigDecimal(longitude); // 显式转换
+    }
+
 }

+ 4 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/AppCoursesMapper.java

@@ -14,6 +14,8 @@ import org.jeecg.modules.system.app.dto.AppCoursesInfoPageDTO;
 import org.jeecg.modules.system.app.dto.AppCoursesPageDTO;
 import org.jeecg.modules.system.app.entity.AppCourses;
 
+import java.util.List;
+
 /**
  * @Description: 课程/培训表
  * @Author: jeecg-boot
@@ -47,4 +49,6 @@ public interface AppCoursesMapper extends BaseMapper<AppCourses> {
     IPage<CourseResponseVo> findByList(@Param("page") Page<CourseResponseVo> page,@Param("courseRequestVo") CourseRequestVo courseRequestVo);
 
     IPage<AppCoursesInfoPageDTO> queryWitchPriceRulesPage(Page<AppCourses> page, @Param("dto") AppCoursesPageDTO dto);
+
+    List<String> findByInstructorId( @Param("instructorId") String instructorId);
 }

+ 6 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/EvaluateMapper.java

@@ -8,6 +8,8 @@ import org.jeecg.modules.system.app.dto.evaluate.FindEvaluateRequestDTO;
 import org.jeecg.modules.system.app.dto.evaluate.FindEvaluateResponseDTO;
 import org.jeecg.modules.system.app.entity.Evaluate;
 
+import java.util.List;
+
 /**
  * @Description: 评价管理
  * @Author: jeecg-boot
@@ -17,4 +19,8 @@ import org.jeecg.modules.system.app.entity.Evaluate;
 public interface EvaluateMapper extends BaseMapper<Evaluate> {
 
     IPage<FindEvaluateResponseDTO> findPage(@Param("page") Page<FindEvaluateResponseDTO> page,@Param("findEvaluateRequestDTO") FindEvaluateRequestDTO findEvaluateRequestDTO);
+
+    IPage<FindEvaluateResponseDTO> findBySiteId(@Param("page")  Page<FindEvaluateResponseDTO> page,@Param("siteId")  String siteId);
+
+    IPage<FindEvaluateResponseDTO> findByCoursesId(@Param("page") Page<FindEvaluateResponseDTO> page,@Param("coursesIds") List<String> coursesIds);
 }

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

@@ -54,6 +54,7 @@
             COUNT( c.id ) AS classHour,
             a.limit_num,
             a.reminder,
+            a.address_site_id,
             a.user_id AS instructorId,
             d.username AS instructorName,
             d.avatar AS instructorAvatar,
@@ -181,7 +182,7 @@
             left JOIN nm_site s ON c.address_site_id = s.id
         WHERE 1=1 and c.del_flag = '0'
         <if test="dto.orgCode != null and dto.orgCode != ''">
-            AND c.org_code = #{ dto.orgCode }
+            AND c.org_code LIKE CONCAT(#{ dto.orgCode },'%')
         </if>
         <if test="dto.name != null and dto.name != ''">
             AND c.name LIKE CONCAT('%',#{ dto.name },'%')
@@ -197,5 +198,10 @@
         </if>
         ORDER BY c.create_time DESC
     </select>
+    <select id="findByInstructorId" resultType="java.lang.String">
+        select  b.id  from nm_instructor a
+         left join  nm_courses  b   on a.user_id =b.user_id and a.del_flag =0
+         where a.id =#{instructorId}
+    </select>
 
 </mapper>

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

@@ -80,7 +80,8 @@
             b.mobile AS phone,
             a.video,
             a.longitude,
-            a.latitude
+            a.latitude,
+            a.vr
         FROM
             nm_site a
                 LEFT JOIN sys_depart b ON a.tenant_id = b.id

+ 24 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/EvaluateMapper.xml

@@ -35,4 +35,28 @@
         </if>
         order by ne.create_time desc
     </select>
+    <select id="findBySiteId" resultType="org.jeecg.modules.system.app.dto.evaluate.FindEvaluateResponseDTO">
+        select ne.id,
+               ne.score,ne.evaluate_content,su.avatar,ne.images,ne.check_status,ne.reply_status,ne.reply_content,ne.reply_time,ne.type,ne.create_time,sd.depart_name,ns.address,su.username,su.phone
+        from nm_evaluate ne
+        left join  sys_depart sd on  ne.dept_id = sd.id
+        LEFT JOIN nm_site ns on  ne.site_id =ns.id
+        LEFT JOIN sys_user su on  ne.user_id =su.id
+        where 1=1 and ne.site_id =#{siteId}
+
+
+    </select>
+    <select id="findByCoursesId"
+            resultType="org.jeecg.modules.system.app.dto.evaluate.FindEvaluateResponseDTO">
+        select ne.id,
+               ne.score,ne.evaluate_content,su.avatar,ne.images,ne.check_status,ne.reply_status,ne.reply_content,ne.reply_time,ne.type,ne.create_time,sd.depart_name,su.username,su.phone
+        from nm_evaluate ne
+        left join  sys_depart sd on  ne.dept_id = sd.id
+        LEFT JOIN sys_user su on  ne.user_id =su.id
+        left join  nm_order o on ne.order_id = o.id
+        where o.product_ids in
+        <foreach collection="coursesIds" item="coursesId" open="(" separator="," close=")">
+            #{coursesId}
+        </foreach>
+    </select>
 </mapper>

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IAppSitePlaceService.java

@@ -117,5 +117,5 @@ public interface IAppSitePlaceService extends IService<AppSitePlace> {
 
     AppSitePlaceParkDTO queryPack(String siteId);
 
-    List<AppSite> queryByOrgCode(String orgCode);
+    List<AppSite> queryByOrgCode(String orgCode,Integer type);
 }

+ 3 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IEvaluateService.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.system.app.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.app.dto.evaluate.FindEvaluateDTO;
 import org.jeecg.modules.system.app.dto.evaluate.FindEvaluateRequestDTO;
 import org.jeecg.modules.system.app.dto.evaluate.FindEvaluateResponseDTO;
 import org.jeecg.modules.system.app.entity.Evaluate;
@@ -17,4 +18,6 @@ public interface IEvaluateService extends IService<Evaluate> {
 
 
     IPage<FindEvaluateResponseDTO> findPage(Integer pageNo, Integer pageSize, FindEvaluateRequestDTO findEvaluateRequestDTO);
+
+    IPage<FindEvaluateResponseDTO> findByOrderPage(FindEvaluateDTO findEvaluateDTO);
 }

+ 9 - 16
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppCoureseServiceImpl.java

@@ -59,10 +59,13 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
         if (null == coursesCuDTO.getCategoryId()) throw new JeecgBootException("请选择课程类别");
         AppSite site = siteMapper.selectOne(Wrappers.<AppSite>lambdaQuery().eq(AppSite::getOrgCode, coursesCuDTO.getOrgCode()));
         AppCourses appCourses = new AppCourses();
-        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         BeanUtils.copyProperties(coursesCuDTO, appCourses);
-        appCourses.setOrgCode(site.getOrgCode());
-        appCourses.setTenantId(site.getTenantId());
+        if (ObjUtil.isNotEmpty(site)){
+            appCourses.setOrgCode(site.getOrgCode());
+            appCourses.setTenantId(site.getTenantId());
+            appCourses.setSiteId(site.getId());
+        }
+
         appCourses.setUserId(coursesCuDTO.getUserId());
         appCourses.setAddressSiteId(coursesCuDTO.getAddressSiteId());
         List<AppCoursesRuleDTO> coursesRuleDTOS = appCoursesDTO.getPriceRulesList();
@@ -377,7 +380,7 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
     public Boolean classPostpone(ClassPostponeForm form) {
 
         AppOrder appOrder = appOrderMapper.selectById(form.getOrderId());
-        //课时
+        //补课课时
         AppCoursesPriceRules appCoursesPriceRules = priceRulesMapper.selectById(form.getCoursePriceRulesId());
         //设置为延期状态
         appCoursesPriceRules.setClassStatus(CommonConstant.STATUS_1_INT);
@@ -389,16 +392,6 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
                     .setPostponeReason(form.getPostponeReason());
             appCoursesVerificationRecordMapper.updateById(appCoursesVerificationRecord);
         }
-        //补课新课时
-        AppCoursesPriceRules priceRules = new AppCoursesPriceRules();
-        priceRules.setOrgCode(appCoursesPriceRules.getOrgCode());
-        priceRules.setTenantId(appCoursesPriceRules.getTenantId());
-        priceRules.setCoursesId(appCoursesPriceRules.getCoursesId());
-        priceRules.setName("(补课)" + appCoursesPriceRules.getName());
-        priceRules.setStartTime(form.getStartTime());
-        priceRules.setEndTime(form.getEndTime());
-        priceRules.setCoursesType(CommonConstant.STATUS_1_INT);
-        priceRulesMapper.insert(priceRules);
 
         for (FamilyUserVO familyUserVO : form.getFamilyUserVOList()) {
             AppCoursesVerificationRecord verificationRecord = new AppCoursesVerificationRecord();
@@ -407,8 +400,8 @@ public class AppCoureseServiceImpl extends ServiceImpl<AppCoursesMapper, AppCour
             verificationRecord.setCoursesId(appOrder.getProductIds());
             verificationRecord.setCoursesPriceRuleId(appCoursesPriceRules.getId());
             verificationRecord.setCoursesName(appCoursesPriceRules.getName());
-            verificationRecord.setCoursesStartTime(form.getStartTime());
-            verificationRecord.setCoursesEndTime(form.getEndTime());
+            verificationRecord.setCoursesStartTime(appCoursesPriceRules.getStartTime());
+            verificationRecord.setCoursesEndTime(appCoursesPriceRules.getEndTime());
             verificationRecord.setUseUserId(familyUserVO.getFamilyUserId());
             verificationRecord.setUseUserName(familyUserVO.getFamilyUserName());
             verificationRecord.setUseUserImage(familyUserVO.getFamilyUserImage());

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

@@ -1,6 +1,7 @@
 package org.jeecg.modules.system.app.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -331,7 +332,7 @@ public class AppSitePlaceServiceImpl extends ServiceImpl<AppSitePlaceMapper, App
         Page<AppSitePlace> page = new Page<>(dto.getPageNum(), dto.getPageSize());
         LambdaQueryWrapper<AppSitePlace> wrapper = Wrappers.<AppSitePlace>lambdaQuery().eq(AppSitePlace::getType, SitePlaceTypeEnum.UNFIXED.getCode())
 //                .eq(AppSitePlace::getSiteId, dto.getSiteId())
-                .eq(AppSitePlace::getOrgCode, loginUser.getOrgCode())
+                .likeRight(AppSitePlace::getOrgCode, loginUser.getOrgCode())
                 .eq(AppSitePlace::getType, SitePlaceTypeEnum.UNFIXED.getCode())
                 .like(StringUtils.isNotBlank(dto.getName()), AppSitePlace::getName, dto.getName()).orderByDesc(AppSitePlace::getCreateTime);
 
@@ -838,9 +839,11 @@ public class AppSitePlaceServiceImpl extends ServiceImpl<AppSitePlaceMapper, App
 
         if (ObjectUtils.isNotEmpty(appSitePlace)) {
             schoolPlaceAddDTO
-                    .setCover(appSitePlace.getCover().split( ",")[0])
                     .setInsureIds(appSitePlace.getInsureIds())
                     .setReminder(appSitePlace.getReminder());
+            if (ObjectUtil.isNotEmpty(appSitePlace.getCover())) {
+                schoolPlaceAddDTO.setCover(appSitePlace.getCover().split( ",")[0]);
+            }
         }
 
         if ("admin".equals(loginUser.getRoleCode())) {
@@ -855,7 +858,7 @@ public class AppSitePlaceServiceImpl extends ServiceImpl<AppSitePlaceMapper, App
     public AppSitePlaceParkDTO queryPack(String siteId) {
         AppSitePlaceParkDTO appSitePlaceParkDTO = new AppSitePlaceParkDTO();
         AppSite site = appSiteMapper.selectById(siteId);
-        List<AppSitePlace> appSitePlaceList = this.baseMapper.selectList(Wrappers.<AppSitePlace>lambdaQuery().eq(AppSitePlace::getSiteId, site.getId()));
+        List<AppSitePlace> appSitePlaceList = this.baseMapper.selectList(Wrappers.<AppSitePlace>lambdaQuery().eq(AppSitePlace::getSiteId, site.getId()).eq(AppSitePlace::getType, SitePlaceTypeEnum.PACKAGE.getCode()));
         if (ObjectUtils.isNotEmpty(appSitePlaceList)) {
             List<AppSiteCategoryRuleDTO> appSiteCategoryRuleDTOS = new ArrayList<>();
             if (CollUtil.isNotEmpty(appSitePlaceList)) {
@@ -919,8 +922,10 @@ public class AppSitePlaceServiceImpl extends ServiceImpl<AppSitePlaceMapper, App
     }
 
     @Override
-    public List<AppSite> queryByOrgCode(String orgCode) {
-        return appSiteMapper.selectList(Wrappers.<AppSite>lambdaQuery().eq(AppSite::getOrgCode, orgCode));
+    public List<AppSite> queryByOrgCode(String orgCode,Integer type) {
+        return appSiteMapper.selectList(Wrappers.<AppSite>lambdaQuery()
+                        .eq(ObjectUtil.isNotEmpty(type), AppSite::getType, type)
+                .likeRight(AppSite::getOrgCode, orgCode));
     }
 
     /**

+ 3 - 3
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppSiteServiceImpl.java

@@ -49,7 +49,7 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
         //根据当前登录的orgcode去查询所属部门id
         SysDepart departById = sysDepartMapper.findByOrgCode(sysUser.getOrgCode());
         if (null == departById) throw new JeecgBootException("商户部门不存在", SC_INTERNAL_SERVER_ERROR_500);
-        if (!(departById.getOrgCategory().equals("30")||departById.getOrgCategory().equals("20"))) throw new JeecgBootException("商户部门类型错误", SC_INTERNAL_SERVER_ERROR_500);
+        if (!(departById.getOrgCategory().equals("21")||departById.getOrgCategory().equals("20"))) throw new JeecgBootException("商户部门类型错误", SC_INTERNAL_SERVER_ERROR_500);
         BeanUtils.copyProperties(siteCuDTO, site);
         if (null == departById.getOrgCode())
             throw new JeecgBootException("商户部门编码不能为空", SC_INTERNAL_SERVER_ERROR_500);
@@ -57,7 +57,7 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
             throw new JeecgBootException("商户部门id不能为空", SC_INTERNAL_SERVER_ERROR_500);
 
         site.setOrgCode(departById.getOrgCode());
-        site.setTenantId(departById.getTenantId()+"");
+        site.setTenantId(departById.getId());
         int saveSiteResult = baseMapper.insert(site);
         // 如果插入失败,抛出自定义异常提示“场地信息保存失败”
         if (saveSiteResult < 1) {
@@ -72,6 +72,7 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
     public Boolean editSite(AppSiteDTO siteCuDTO) {
         AppSite site = new AppSite();
         BeanUtils.copyProperties(siteCuDTO, site);
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (null == site.getType()) throw new JeecgBootException("场地类型不能为空", SC_INTERNAL_SERVER_ERROR_500);
         AppSite dbSite = baseMapper.selectById(site.getId());
         if (null == dbSite) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
@@ -113,7 +114,6 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
     public Boolean deleteSiteById(String id) {
         AppSite dbSite = baseMapper.selectById(id);
         if (null == dbSite) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
-        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 //        checkPermission(dbSite,sysUser);
         int deleteSiteResult = baseMapper.deleteById(id);
         if (deleteSiteResult < 1) {

+ 24 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/EvaluateServiceImpl.java

@@ -4,14 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.jeecg.modules.app.dto.evaluate.FindEvaluateDTO;
 import org.jeecg.modules.system.app.dto.evaluate.FindEvaluateRequestDTO;
 import org.jeecg.modules.system.app.dto.evaluate.FindEvaluateResponseDTO;
 import org.jeecg.modules.system.app.entity.Evaluate;
+import org.jeecg.modules.system.app.mapper.AppCoursesMapper;
 import org.jeecg.modules.system.app.mapper.EvaluateMapper;
 import org.jeecg.modules.system.app.service.IEvaluateService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -27,6 +30,9 @@ public class EvaluateServiceImpl extends ServiceImpl<EvaluateMapper, Evaluate> i
 
     @Autowired
     EvaluateMapper evaluateMapper;
+    @Autowired
+    private AppCoursesMapper appCoursesMapper;
+
 
     @Override
     public IPage<FindEvaluateResponseDTO> findPage(Integer pageNo, Integer pageSize, FindEvaluateRequestDTO findEvaluateRequestDTO) {
@@ -45,4 +51,22 @@ public class EvaluateServiceImpl extends ServiceImpl<EvaluateMapper, Evaluate> i
         }
         return findEvaluateResponseDTOIPage;
     }
+
+    @Override
+    public IPage<FindEvaluateResponseDTO> findByOrderPage(FindEvaluateDTO findEvaluateDTO) {
+        Page<FindEvaluateResponseDTO> page = new Page<FindEvaluateResponseDTO>(findEvaluateDTO.getPageNo(), findEvaluateDTO.getPageSize());
+        IPage<FindEvaluateResponseDTO> findEvaluateResponseDTOIPage=null;
+        List<String> coursesIds = new ArrayList<>();
+        if (StringUtils.isNotEmpty(findEvaluateDTO.getSiteId())){
+            findEvaluateResponseDTOIPage = evaluateMapper.findBySiteId(page,findEvaluateDTO.getSiteId());
+        } else if (StringUtils.isNotEmpty(findEvaluateDTO.getInstructorId())) {
+            coursesIds = appCoursesMapper.findByInstructorId(findEvaluateDTO.getInstructorId());
+        } else if (StringUtils.isNotEmpty(findEvaluateDTO.getCoursesId())) {
+            coursesIds.add(findEvaluateDTO.getCoursesId());
+        }
+        if (coursesIds!=null&&!coursesIds.isEmpty()){
+            findEvaluateResponseDTOIPage = evaluateMapper.findByCoursesId(page,coursesIds);
+        }
+        return findEvaluateResponseDTOIPage;
+    }
 }

+ 4 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDepartMapper.java

@@ -209,4 +209,8 @@ public interface SysDepartMapper extends BaseMapper<SysDepart> {
 
 	@Select("select * from sys_depart where del_flag = '0' and org_code= #{orgCode}")
 	SysDepart findByOrgCode(@Param("orgCode") String orgCode);
+
+	@Select("select * from sys_depart where del_flag=0 and org_category ='10' and depart_name =#{merchantName}")
+	SysDepart findByDepartName(@Param("merchantName") String merchantName);
+
 }

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

@@ -221,7 +221,7 @@
     <select id="findMerchantPage"  resultType="org.jeecg.modules.system.app.dto.merchant.FindMerchantResponseDTO">
         select sd.id, sd.depart_name as merchantName, su.realname,su.phone,sd.create_time from  sys_depart  sd
         left join  sys_user su on sd.id = su.depart_ids
-        where sd.del_flag=0 and sd.org_category =1 and su.del_flag=0
+        where sd.del_flag=0 and sd.org_category =10 and su.del_flag=0
         <if test="orgCode!=null and orgCode!=''">
             and sd.org_code like CONCAT('',#{orgCode},'%')
         </if>

+ 19 - 17
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java

@@ -236,29 +236,29 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
             this.save(sysDepart);
 
             //若为学校或体育馆
-            if (Objects.equals(sysDepart.getOrgCategory(), "2") || Objects.equals(sysDepart.getOrgCategory(), "3")) {
+            if (Objects.equals(sysDepart.getOrgCategory(), "20") || Objects.equals(sysDepart.getOrgCategory(), "21")) {
                 //创建学校或体育馆的扩展信息内容
                 AppSite site = new AppSite();
                 site
                         .setTenantId(sysDepart.getId())
                         .setOrgCode(sysDepart.getOrgCode())
                         .setName(sysDepart.getDepartName())
-                        .setType(sysDepart.getOrgCategory().equals("2") ? 0 : 1);
+                        .setType(sysDepart.getOrgCategory().equals("20") ? 0 : 1);
                 appSiteMapper.insert(site);
                 //若为包场
-                if (Objects.equals(sysDepart.getOrgCategory(), "4")) {
-                    //常见默认类目
-                    List<String> categoryNames = List.of("篮球","足球","羽毛球","乒乓球","排球");
-                    for (int i = 0; i < categoryNames.size(); i++) {
-                        AppCategory category = new AppCategory();
-                        category.setOrgCode(site.getOrgCode());
-                        category.setTenantId(site.getTenantId());
-                        category.setName(categoryNames.get(i));
-                        category.setSort(i);
-                    }
-                }
+//                if (Objects.equals(sysDepart.getOrgCategory(), "4")) {
+//                    //常见默认类目
+//                    List<String> categoryNames = List.of("篮球","足球","羽毛球","乒乓球","排球");
+//                    for (int i = 0; i < categoryNames.size(); i++) {
+//                        AppCategory category = new AppCategory();
+//                        category.setOrgCode(site.getOrgCode());
+//                        category.setTenantId(site.getTenantId());
+//                        category.setName(categoryNames.get(i));
+//                        category.setSort(i);
+//                    }
+//                }
                 //创建学校场地表
-                if (Objects.equals(sysDepart.getOrgCategory(), "2")){
+                if (Objects.equals(sysDepart.getOrgCategory(), "20")){
                     AppSitePlace place = new AppSitePlace();
                     place
                             .setTenantId(sysDepart.getId())
@@ -1592,15 +1592,17 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
         if (sysUserMapper.insert(sysUser) < 1) {
             return Result.error("添加商户信息失败");
         }
-        SysDepart sysDepart = new SysDepart();
         String deptId = departMapper.queryDepartIdByOrgCode(loginUser.getOrgCode());
-
+        SysDepart sysDepart = departMapper.findByDepartName(addMerchantRequestDTO.getMerchantName());
+        if (sysDepart==null){
+            sysDepart = new SysDepart();
+        }
         if (StringUtils.isNotEmpty(deptId)) {
             sysDepart.setParentId(deptId);
         }
         sysDepart.setDirectorUserIds(sysUser.getId());
         sysDepart.setDepartName(addMerchantRequestDTO.getMerchantName());
-        sysDepart.setOrgCategory("1");//创建商户类型
+        sysDepart.setOrgCategory("10");//创建商户类型
         this.saveDepartData(sysDepart, addMerchantRequestDTO.getPhone());
         sysUser.setOrgCode(sysDepart.getOrgCode());
         if (sysUserMapper.updateById(sysUser) < 1) {