Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/AppCoureseMapper.java
SheepHy 3 недель назад
Родитель
Сommit
37e2c8de72
10 измененных файлов с 272 добавлено и 105 удалено
  1. 21 37
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppCoureseController.java
  2. 25 32
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppGameController.java
  3. 2 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/AppCoursesDTO.java
  4. 2 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppCourses.java
  5. 9 5
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppOrder.java
  6. 27 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IAppCoureseService.java
  7. 4 4
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IAppGameService.java
  8. 100 3
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppCoureseServiceImpl.java
  9. 59 4
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppGameServiceImpl.java
  10. 23 14
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppSiteServiceImpl.java

+ 21 - 37
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/AppCoureseController.java

@@ -1,20 +1,12 @@
 package org.jeecg.modules.system.app.controller;
 
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.system.query.QueryRuleEnum;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.system.app.entity.AppCourese;
+import org.jeecg.modules.system.app.dto.AppCoursesDTO;
+import org.jeecg.modules.system.app.entity.AppCourses;
 import org.jeecg.modules.system.app.service.IAppCoureseService;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -22,18 +14,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import org.jeecg.common.aspect.annotation.AutoLog;
@@ -48,7 +32,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 @RestController
 @RequestMapping("/org/jeecg/modules/app/appCourese")
 @Slf4j
-public class AppCoureseController extends JeecgController<AppCourese, IAppCoureseService> {
+public class AppCoureseController extends JeecgController<AppCourses, IAppCoureseService> {
 	@Autowired
 	private IAppCoureseService appCoureseService;
 	
@@ -64,30 +48,30 @@ public class AppCoureseController extends JeecgController<AppCourese, IAppCoures
 	//@AutoLog(value = "课程/培训表-分页列表查询")
 	@Operation(summary="课程/培训表-分页列表查询")
 	@GetMapping(value = "/list")
-	public Result<IPage<AppCourese>> queryPageList(AppCourese appCourese,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
+	public Result<IPage<AppCourses>> queryPageList(AppCourses appCourese,
+												   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+												   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+												   HttpServletRequest req) {
 
 
-        QueryWrapper<AppCourese> queryWrapper = QueryGenerator.initQueryWrapper(appCourese, req.getParameterMap());
-		Page<AppCourese> page = new Page<AppCourese>(pageNo, pageSize);
-		IPage<AppCourese> pageList = appCoureseService.page(page, queryWrapper);
+        QueryWrapper<AppCourses> queryWrapper = QueryGenerator.initQueryWrapper(appCourese, req.getParameterMap());
+		Page<AppCourses> page = new Page<AppCourses>(pageNo, pageSize);
+		IPage<AppCourses> pageList = appCoureseService.page(page, queryWrapper);
 		return Result.OK(pageList);
 	}
 	
 	/**
 	 *   添加
 	 *
-	 * @param appCourese
+	 * @param appCoursesDTO
 	 * @return
 	 */
 	@AutoLog(value = "课程/培训表-添加")
 	@Operation(summary="课程/培训表-添加")
 	@RequiresPermissions("org.jeecg.modules.app:nm_courese:add")
 	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody AppCourese appCourese) {
-		appCoureseService.save(appCourese);
+	public Result<String> add(@RequestBody AppCoursesDTO appCoursesDTO) {
+
 
 		return Result.OK("添加成功!");
 	}
@@ -95,15 +79,15 @@ public class AppCoureseController extends JeecgController<AppCourese, IAppCoures
 	/**
 	 *  编辑
 	 *
-	 * @param appCourese
+	 * @param appCoursesDTO
 	 * @return
 	 */
 	@AutoLog(value = "课程/培训表-编辑")
 	@Operation(summary="课程/培训表-编辑")
 	@RequiresPermissions("org.jeecg.modules.app:nm_courese:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody AppCourese appCourese) {
-		appCoureseService.updateById(appCourese);
+	public Result<String> edit(@RequestBody AppCoursesDTO appCoursesDTO) {
+		appCoureseService.editWitchPriceRules(appCoursesDTO);
 		return Result.OK("编辑成功!");
 	}
 	
@@ -146,8 +130,8 @@ public class AppCoureseController extends JeecgController<AppCourese, IAppCoures
 	//@AutoLog(value = "课程/培训表-通过id查询")
 	@Operation(summary="课程/培训表-通过id查询")
 	@GetMapping(value = "/queryById")
-	public Result<AppCourese> queryById(@RequestParam(name="id",required=true) String id) {
-		AppCourese appCourese = appCoureseService.getById(id);
+	public Result<AppCourses> queryById(@RequestParam(name="id",required=true) String id) {
+		AppCourses appCourese = appCoureseService.getById(id);
 		if(appCourese==null) {
 			return Result.error("未找到对应数据");
 		}
@@ -162,8 +146,8 @@ public class AppCoureseController extends JeecgController<AppCourese, IAppCoures
     */
     @RequiresPermissions("org.jeecg.modules.app:nm_courese:exportXls")
     @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, AppCourese appCourese) {
-        return super.exportXls(request, appCourese, AppCourese.class, "课程/培训表");
+    public ModelAndView exportXls(HttpServletRequest request, AppCourses appCourese) {
+        return super.exportXls(request, appCourese, AppCourses.class, "课程/培训表");
     }
 
     /**
@@ -176,7 +160,7 @@ public class AppCoureseController extends JeecgController<AppCourese, IAppCoures
     @RequiresPermissions("org.jeecg.modules.app:nm_courese:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, AppCourese.class);
+        return super.importExcel(request, response, AppCourses.class);
     }
 
 }

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

@@ -14,6 +14,7 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.query.QueryRuleEnum;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.system.app.dto.AppGameDTO;
 import org.jeecg.modules.system.app.entity.AppGame;
 import org.jeecg.modules.system.app.service.IAppGameService;
 
@@ -46,7 +47,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
  */
 @Tag(name="赛事表")
 @RestController
-@RequestMapping("/org/jeecg/modules/app/appGame")
+@RequestMapping("/app/appGame")
 @Slf4j
 public class AppGameController extends JeecgController<AppGame, IAppGameService> {
 	@Autowired
@@ -79,32 +80,29 @@ public class AppGameController extends JeecgController<AppGame, IAppGameService>
 	/**
 	 *   添加
 	 *
-	 * @param appGame
+	 * @param gameDTO
 	 * @return
 	 */
 	@AutoLog(value = "赛事表-添加")
 	@Operation(summary="赛事表-添加")
 	@RequiresPermissions("org.jeecg.modules.app:nm_game:add")
 	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody AppGame appGame) {
-		appGameService.save(appGame);
-
-		return Result.OK("添加成功!");
+	public Result<String> add(@RequestBody AppGameDTO gameDTO) {
+		return appGameService.saveWitchPriceRules(gameDTO)? Result.OK("操作成功!"): Result.error("操作失败!");
 	}
 	
 	/**
 	 *  编辑
 	 *
-	 * @param appGame
+	 * @param gameDTO
 	 * @return
 	 */
 	@AutoLog(value = "赛事表-编辑")
 	@Operation(summary="赛事表-编辑")
 	@RequiresPermissions("org.jeecg.modules.app:nm_game:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody AppGame appGame) {
-		appGameService.updateById(appGame);
-		return Result.OK("编辑成功!");
+	public Result<String> edit(@RequestBody AppGameDTO gameDTO) {
+		return appGameService.editWitchPriceRules(gameDTO)? Result.OK("操作成功!"): Result.error("操作失败!");
 	}
 	
 	/**
@@ -118,24 +116,23 @@ public class AppGameController extends JeecgController<AppGame, IAppGameService>
 	@RequiresPermissions("org.jeecg.modules.app:nm_game:delete")
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		appGameService.removeById(id);
-		return Result.OK("删除成功!");
+		return appGameService.deleteWitchPriceRulesById(id)? Result.OK("操作成功!"): Result.error("操作失败!");
 	}
 	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "赛事表-批量删除")
-	@Operation(summary="赛事表-批量删除")
-	@RequiresPermissions("org.jeecg.modules.app:nm_game:deleteBatch")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.appGameService.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
+//	/**
+//	 *  批量删除
+//	 *
+//	 * @param ids
+//	 * @return
+//	 */
+//	@AutoLog(value = "赛事表-批量删除")
+//	@Operation(summary="赛事表-批量删除")
+//	@RequiresPermissions("org.jeecg.modules.app:nm_game:deleteBatch")
+//	@DeleteMapping(value = "/deleteBatch")
+//	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+//		this.appGameService.removeByIds(Arrays.asList(ids.split(",")));
+//		return Result.OK("批量删除成功!");
+//	}
 	
 	/**
 	 * 通过id查询
@@ -146,12 +143,8 @@ public class AppGameController extends JeecgController<AppGame, IAppGameService>
 	//@AutoLog(value = "赛事表-通过id查询")
 	@Operation(summary="赛事表-通过id查询")
 	@GetMapping(value = "/queryById")
-	public Result<AppGame> queryById(@RequestParam(name="id",required=true) String id) {
-		AppGame appGame = appGameService.getById(id);
-		if(appGame==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(appGame);
+	public Result<AppGameDTO> queryById(@RequestParam(name="id",required=true) String id) {
+		return Result.OK(appGameService.queryWitchPriceRulesById(id));
 	}
 
     /**

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

@@ -7,7 +7,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
-import org.jeecg.modules.system.app.entity.AppCourese;
+import org.jeecg.modules.system.app.entity.AppCourses;
 import org.jeecg.modules.system.app.entity.AppCoursesPriceRules;
 
 import java.util.List;
@@ -23,7 +23,7 @@ import java.util.List;
 @AllArgsConstructor
 @NoArgsConstructor
 public class AppCoursesDTO {
-    private AppCourese  course;
+    private AppCourses course;
     @ArraySchema(schema = @Schema(implementation = AppCoursesPriceRules.class), minItems = 1)
     private List<AppCoursesPriceRules> priceRulesList;
 }

+ 2 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppCourese.java → national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppCourses.java

@@ -23,11 +23,11 @@ import java.util.Date;
  * @Version: V1.0
  */
 @Data
-@TableName("nm_courese")
+@TableName("nm_courses")
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = false)
 @Schema(description="课程/培训表")
-public class AppCourese implements Serializable {
+public class AppCourses implements Serializable {
     private static final long serialVersionUID = 1L;
 
 	/**id*/

+ 9 - 5
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppOrder.java

@@ -37,7 +37,11 @@ public class AppOrder implements Serializable {
 	@TableId(type = IdType.ASSIGN_ID)
     @Schema(description = "id")
     private String id;
-	/**部门id*/
+	/**订单号*/
+	@Excel(name = "订单号", width = 15)
+    @Schema(description = "订单号")
+    private String order_id;
+    /**部门id*/
 	@Excel(name = "部门id", width = 15)
     @Schema(description = "部门id")
     private String orgCode;
@@ -53,10 +57,10 @@ public class AppOrder implements Serializable {
 	@Excel(name = "用户id", width = 15)
     @Schema(description = "用户id")
     private String userId;
-	/**成员*/
-	@Excel(name = "成员", width = 15)
-    @Schema(description = "员")
-    private String people;
+    /**订单人员*/
+    @Excel(name = "订单人员", width = 15)
+    @Schema(description = "订单人员")
+    private String peoples;
 	/**原订单总价*/
 	@Excel(name = "原订单总价", width = 15)
     @Schema(description = "原订单总价")

+ 27 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IAppCoureseService.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.system.app.service;
 
-import org.jeecg.modules.system.app.entity.AppCourese;
+import org.jeecg.modules.system.app.dto.AppCoursesDTO;
+import org.jeecg.modules.system.app.entity.AppCourses;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -9,6 +10,30 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @Date:   2025-07-03
  * @Version: V1.0
  */
-public interface IAppCoureseService extends IService<AppCourese> {
+public interface IAppCoureseService extends IService<AppCourses> {
+    /**
+     * 保存课程
+     * @param appCoursesDTO
+     * @return
+     */
+    Boolean saveWitchPriceRules(AppCoursesDTO appCoursesDTO);
+    /**
+     * 修改课程
+     * @param appCoursesDTO
+     * @return
+     */
+    Boolean editWitchPriceRules(AppCoursesDTO appCoursesDTO);
+    /**
+     * 通过id查询课程
+     * @param id
+     * @return
+     */
+    AppCoursesDTO queryWitchPriceRulesById(String id);
+    /**
+     * 删除课程
+     * @param id
+     * @return
+     */
+    Boolean deleteWitchPriceRulesById(String id);
 
 }

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

@@ -13,25 +13,25 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IAppGameService extends IService<AppGame> {
     /**
-     * 保存场地
+     * 保存赛事
      * @param gameDTO
      * @return
      */
     Boolean saveWitchPriceRules(AppGameDTO gameDTO);
     /**
-     * 修改场地
+     * 修改赛事
      * @param gameDTO
      * @return
      */
         Boolean editWitchPriceRules(AppGameDTO gameDTO);
     /**
-     * 通过id查询场地
+     * 通过id查询赛事
      * @param id
      * @return
      */
     AppGameDTO queryWitchPriceRulesById(String id);
     /**
-     * 删除场地
+     * 删除赛事
      * @param id
      * @return
      */

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

@@ -1,19 +1,116 @@
 package org.jeecg.modules.system.app.service.impl;
 
-import org.jeecg.modules.system.app.entity.AppCourese;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.system.app.dto.AppCoursesDTO;
+import org.jeecg.modules.system.app.entity.AppCourses;
+import org.jeecg.modules.system.app.entity.AppCoursesPriceRules;
 import org.jeecg.modules.system.app.mapper.AppCoureseMapper;
+import org.jeecg.modules.system.app.mapper.AppCoursesPriceRulesMapper;
 import org.jeecg.modules.system.app.service.IAppCoureseService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import javax.annotation.Resource;
+import java.util.List;
+
+import static org.jeecg.common.constant.CommonConstant.SC_INTERNAL_SERVER_ERROR_500;
+
 /**
  * @Description: 课程/培训表
  * @Author: jeecg-boot
- * @Date:   2025-07-03
+ * @Date: 2025-07-03
  * @Version: V1.0
  */
 @Service
-public class AppCoureseServiceImpl extends ServiceImpl<AppCoureseMapper, AppCourese> implements IAppCoureseService {
+public class AppCoureseServiceImpl extends ServiceImpl<AppCoureseMapper, AppCourses> implements IAppCoureseService {
+    @Resource
+    AppCoursesPriceRulesMapper coursesPriceRulesMapper;
+
+    @Override
+    public Boolean saveWitchPriceRules(AppCoursesDTO appCoursesDTO) {
+        AppCourses course = appCoursesDTO.getCourse();
+        if (null == course.getCategoryId()) throw new JeecgBootException("请选择课程类别");
+        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        course.setOrgCode(loginUser.getOrgCode());
+        course.setTenantId(loginUser.getOrgId());
+        int saveCourseResult = baseMapper.insert(course);
+        if (saveCourseResult < 1) {
+            throw new JeecgBootException("课程信息保存失败");
+        }
+        List<AppCoursesPriceRules> priceRulesList = appCoursesDTO.getPriceRulesList();
+        for (AppCoursesPriceRules rule : priceRulesList) {
+            rule.setCoursesId(course.getId());
+            rule.setOrgCode(course.getOrgCode());
+            rule.setTenantId(course.getTenantId());
+            int savePriceResult = coursesPriceRulesMapper.insert(rule); // 保证每个操作都在事务中
+            if (savePriceResult < 1) {
+                throw new JeecgBootException("课程价格规则保存失败");
+            }
+        }
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public Boolean editWitchPriceRules(AppCoursesDTO appCoursesDTO) {
+        AppCourses course = appCoursesDTO.getCourse();
+        if (null == course.getCategoryId()) throw new JeecgBootException("请选择课程类别");
+        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        AppCourses dbCourse = baseMapper.selectById(course.getId());
+        checkPermission(loginUser, dbCourse);
+        course.setOrgCode(loginUser.getOrgCode());
+        course.setTenantId(loginUser.getOrgId());
+        int updateCourseResult = baseMapper.updateById(course);
+        if (updateCourseResult < 1) {
+            throw new JeecgBootException("课程信息保存失败");
+        }
+        List<AppCoursesPriceRules> priceRulesList = appCoursesDTO.getPriceRulesList();
+        for (AppCoursesPriceRules rule : priceRulesList) {
+            rule.setCoursesId(course.getId());
+            rule.setOrgCode(course.getOrgCode());
+            rule.setTenantId(course.getTenantId());
+            int savePriceResult = coursesPriceRulesMapper.updateById(rule);
+            if (savePriceResult < 1) {
+                throw new JeecgBootException("课程价格规则保存失败");
+            }
+        }
+        return Boolean.TRUE;
+    }
+
+    @Override
+    public AppCoursesDTO queryWitchPriceRulesById(String id) {
+        AppCourses dbCourse = baseMapper.selectById(id);
+        if (null==dbCourse) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        checkPermission(sysUser,dbCourse);
+        List<AppCoursesPriceRules> priceRulesList = coursesPriceRulesMapper.selectList(Wrappers.<AppCoursesPriceRules>lambdaQuery().eq(AppCoursesPriceRules::getCoursesId, id));
+        return new AppCoursesDTO(dbCourse, priceRulesList);
+    }
+
+    @Override
+    public Boolean deleteWitchPriceRulesById(String id) {
+        AppCourses dbCourse = baseMapper.selectById(id);
+        if (null==dbCourse) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        checkPermission(sysUser,dbCourse);
+        int deleteCourseResult = baseMapper.deleteById(id);
+        if (deleteCourseResult < 1) {
+            throw new JeecgBootException("课程信息删除失败", SC_INTERNAL_SERVER_ERROR_500);
+        }
+        int deletePriceResult = coursesPriceRulesMapper.delete(Wrappers.<AppCoursesPriceRules>lambdaQuery().eq(AppCoursesPriceRules::getCoursesId, id));
+        if (deletePriceResult<1) throw new JeecgBootException("课程价格规则删除失败", SC_INTERNAL_SERVER_ERROR_500);
+        return Boolean.TRUE;
+    }
 
+    /**
+     *  校验权限
+     * @param loginUser
+     * @param course
+     */
+    private void checkPermission(LoginUser loginUser, AppCourses course) {
+        if (!loginUser.getOrgCode().equals(course.getOrgCode())) throw new JeecgBootException("无权限修改", SC_INTERNAL_SERVER_ERROR_500);
+    }
 }

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

@@ -1,6 +1,11 @@
 package org.jeecg.modules.system.app.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.Setter;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.system.app.dto.AppGameDTO;
 import org.jeecg.modules.system.app.entity.AppGame;
 import org.jeecg.modules.system.app.entity.AppGamePriceRules;
@@ -10,10 +15,13 @@ import org.jeecg.modules.system.app.service.IAppGameService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
 
+import static org.jeecg.common.constant.CommonConstant.SC_INTERNAL_SERVER_ERROR_500;
+
 /**
  * @Description: 赛事表
  * @Author: jeecg-boot
@@ -26,40 +34,87 @@ public class AppGameServiceImpl extends ServiceImpl<AppGameMapper, AppGame> impl
     private AppGamePriceRulesMapper rulesMapper;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean saveWitchPriceRules(AppGameDTO gameDTO) {
         AppGame game=gameDTO.getGame();
         if (null==game.getType()) throw new JeecgBootException("请选择赛事类型");
-        if (null==game.getOrgCode()) throw new JeecgBootException("部门不能为空");
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        game.setOrgCode(sysUser.getOrgCode());
+        game.setTenantId(sysUser.getOrgId());
         int saveGameResult = baseMapper.insert(game);
         if (saveGameResult<1) {
-            throw new RuntimeException("赛事信息保存失败");
+            throw new JeecgBootException("赛事信息保存失败");
         }
         List<AppGamePriceRules> priceRulesList = gameDTO.getGamePriceRules();
         for (AppGamePriceRules rule : priceRulesList) {
             rule.setGameId(game.getId());
             rule.setOrgCode(game.getOrgCode());
+            rule.setTenantId(game.getTenantId());
             int savePriceResult = rulesMapper.insert(rule); // 保证每个操作都在事务中
             if (savePriceResult<1) {
-                throw new RuntimeException("赛事价格规则保存失败");
+                throw new JeecgBootException("赛事价格规则保存失败");
             }
         }
         return Boolean.TRUE;
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean editWitchPriceRules(AppGameDTO gameDTO) {
         AppGame game=gameDTO.getGame();
         if (null==game.getType()) throw new JeecgBootException("请选择赛事类型");
+        AppGame dbGame = baseMapper.selectById(game.getId());
+        if (null==dbGame) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        checkPermission(sysUser,dbGame);
+        game.setOrgCode(sysUser.getOrgCode());
+        game.setTenantId(sysUser.getOrgId());
+        int updateGameResult = baseMapper.updateById(game);
+        if (updateGameResult<1) {
+            throw new JeecgBootException("赛事信息保存失败");
+        }
+        List<AppGamePriceRules> priceRulesList = gameDTO.getGamePriceRules();
+        for (AppGamePriceRules rule : priceRulesList) {
+            rule.setGameId(game.getId());
+            rule.setOrgCode(game.getOrgCode());
+            rule.setTenantId(game.getTenantId());
+            int savePriceResult = rulesMapper.updateById(rule);
+            if (savePriceResult<1) {
+                throw new JeecgBootException("赛事价格规则保存失败");
+            }
+        }
         return Boolean.TRUE;
     }
 
     @Override
     public AppGameDTO queryWitchPriceRulesById(String id) {
-        return null;
+        AppGame dbGame = baseMapper.selectById(id);
+        if (null==dbGame) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        checkPermission(sysUser,dbGame);
+        List<AppGamePriceRules> priceRulesList = rulesMapper.selectList(Wrappers.<AppGamePriceRules>lambdaQuery().eq(AppGamePriceRules::getGameId, id));
+        return new AppGameDTO(dbGame,priceRulesList);
     }
 
     @Override
     public Boolean deleteWitchPriceRulesById(String id) {
+        AppGame dbGame = baseMapper.selectById(id);
+        if (null==dbGame) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        checkPermission(sysUser,dbGame);
+        int deleteGameResult = baseMapper.deleteById(id);
+        if (deleteGameResult<1) {
+            throw new JeecgBootException("赛事信息删除失败");
+        }
         return Boolean.TRUE;
     }
+
+    /**
+     *  校验权限
+     * @param sysUser
+     * @param game
+     */
+    private void checkPermission(LoginUser sysUser, AppGame game) {
+        if (!sysUser.getOrgCode().equals(game.getOrgCode())) throw new JeecgBootException("无权限修改", SC_INTERNAL_SERVER_ERROR_500);
+    }
 }

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

@@ -37,11 +37,10 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
     @Transactional(rollbackFor = Exception.class)
     public Boolean saveWitchPriceRules(AppSiteDTO appSiteDTO) {
         AppSite site = appSiteDTO.getSite();
-        // 校验场地类型是否为空,若为空则返回 false
         if (null == site.getType()) throw new JeecgBootException("场地类型不能为空", SC_INTERNAL_SERVER_ERROR_500);
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        site.setOrgCode(sysUser.getOrgCode());
-        // 通过注入的 baseMapper 插入场地信息
+        site.setOrgCode(sysUser.getOrgCode());//部门默认登录用户部门
+        site.setTenantId(sysUser.getOrgId());
         int saveSiteResult = baseMapper.insert(site);
         // 如果插入失败,抛出自定义异常提示“场地信息保存失败”
         if (saveSiteResult < 1) {
@@ -50,11 +49,11 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
 
         // 获取价格规则列表
         List<AppSitePriceRules> priceRulesList = appSiteDTO.getPriceRulesList();
-        // 遍历价格规则列表并逐一保存
         for (AppSitePriceRules rule : priceRulesList) {
             // 设置当前规则对应的场地 ID
             rule.setSiteId(site.getId());
             rule.setOrgCode(site.getOrgCode());
+            rule.setTenantId(site.getTenantId());
             // 调用 priceRulesMapper 插入价格规则
             int savePriceResult = priceRulesMapper.insert(rule);
             // 如果插入失败,抛出自定义异常提示“场地价格规则保存失败”
@@ -72,21 +71,22 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
     public Boolean editWitchPriceRules(AppSiteDTO appSiteDTO) {
         AppSite site = appSiteDTO.getSite();
         if (null == site.getType()) throw new JeecgBootException("场地类型不能为空", SC_INTERNAL_SERVER_ERROR_500);
-        if (null == site.getOrgCode()) 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);
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        if (!sysUser.getOrgCode().equals(dbSite.getOrgCode())) throw new JeecgBootException("无权限修改", SC_INTERNAL_SERVER_ERROR_500);
-        // 通过注入的服务调用,保证事务生效
-        int saveSiteResult = baseMapper.updateById(site);
-        if (saveSiteResult < 1) {
+        checkPermission(dbSite,sysUser);
+        site.setOrgCode(sysUser.getOrgCode());//部门默认登录用户部门
+        site.setTenantId(sysUser.getOrgId());
+        int updateSiteResult = baseMapper.updateById(site);
+        if (updateSiteResult < 1) {
             throw new JeecgBootException("场地信息保存失败", SC_INTERNAL_SERVER_ERROR_500);
         }
 
         List<AppSitePriceRules> priceRulesList = appSiteDTO.getPriceRulesList();
         for (AppSitePriceRules rule : priceRulesList) {
-            rule.setSiteId(dbSite.getId());
+            rule.setSiteId(site.getId());
             rule.setOrgCode(site.getOrgCode());
+            rule.setTenantId(site.getTenantId());
             int savePriceResult = priceRulesMapper.updateById(rule); // 保证每个操作都在事务中
             if (savePriceResult < 1) {
                 throw new JeecgBootException("场地价格规则保存失败", SC_INTERNAL_SERVER_ERROR_500);
@@ -101,9 +101,9 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
         AppSite dbSite = baseMapper.selectById(id);
         if (null==dbSite) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        if (!sysUser.getOrgCode().equals(dbSite.getOrgCode())) throw new JeecgBootException("无权限查看", SC_INTERNAL_SERVER_ERROR_500);
-        List<AppSitePriceRules> priceRulesList = priceRulesMapper.selectList(new LambdaQueryWrapper<AppSitePriceRules>().eq(AppSitePriceRules::getSiteId, id));
-        return new AppSiteDTO().setSite(dbSite).setPriceRulesList(priceRulesList);
+        checkPermission(dbSite,sysUser);
+        List<AppSitePriceRules> priceRulesList = priceRulesMapper.selectList(Wrappers.<AppSitePriceRules>lambdaQuery().eq(AppSitePriceRules::getSiteId, id));
+        return new AppSiteDTO(dbSite,priceRulesList);
     }
 
     @Override
@@ -112,7 +112,7 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
         AppSite dbSite = baseMapper.selectById(id);
         if (null==dbSite) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        if (!sysUser.getOrgCode().equals(dbSite.getOrgCode())) throw new JeecgBootException("无权限操作", SC_INTERNAL_SERVER_ERROR_500);
+        checkPermission(dbSite,sysUser);
         int deleteSiteResult = baseMapper.deleteById(id);
         if (deleteSiteResult>0){
             int deletePriceResult = priceRulesMapper.delete(Wrappers.<AppSitePriceRules>lambdaQuery().eq(AppSitePriceRules::getSiteId, id));
@@ -122,4 +122,13 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
         }
         return Boolean.TRUE;
     }
+
+    /**
+     * 权限校验
+     * @param site
+     * @param sysUser
+     */
+    private void checkPermission(AppSite site,LoginUser sysUser ){
+        if (!sysUser.getOrgCode().equals(site.getOrgCode())) throw new JeecgBootException("无权限操作", SC_INTERNAL_SERVER_ERROR_500);
+    }
 }