|  | @@ -2,29 +2,26 @@ package org.jeecg.modules.system.app.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
	
		
			
				|  |  |  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 org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  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.AppCategoryDTO;
 | 
	
		
			
				|  |  | -import org.jeecg.modules.system.app.dto.AppSiteDTO;
 | 
	
		
			
				|  |  | -import org.jeecg.modules.system.app.entity.AppCategory;
 | 
	
		
			
				|  |  | +import org.jeecg.modules.system.app.dto.*;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.app.entity.AppSite;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.app.entity.AppSitePriceRules;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.app.mapper.AppSiteMapper;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.app.mapper.AppSitePriceRulesMapper;
 | 
	
		
			
				|  |  |  import org.jeecg.modules.system.app.service.IAppSiteService;
 | 
	
		
			
				|  |  | -import org.jeecg.modules.system.app.vo.AppCategoryVO;
 | 
	
		
			
				|  |  |  import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  | -import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  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.ArrayList;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static org.jeecg.common.constant.CommonConstant.SC_INTERNAL_SERVER_ERROR_500;
 | 
	
	
		
			
				|  | @@ -43,9 +40,11 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public Boolean saveWitchPriceRules(AppSiteDTO appSiteDTO) {
 | 
	
		
			
				|  |  | -        AppSite site = appSiteDTO.getSite();
 | 
	
		
			
				|  |  | -        if (null == site.getType()) throw new JeecgBootException("场地类型不能为空", SC_INTERNAL_SERVER_ERROR_500);
 | 
	
		
			
				|  |  | +        AppSiteCuDTO siteCuDTO = appSiteDTO.getSite();
 | 
	
		
			
				|  |  | +        if (null == siteCuDTO.getType()) throw new JeecgBootException("场地类型不能为空", SC_INTERNAL_SERVER_ERROR_500);
 | 
	
		
			
				|  |  |          LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 | 
	
		
			
				|  |  | +        AppSite site = new AppSite();
 | 
	
		
			
				|  |  | +        BeanUtils.copyProperties(siteCuDTO, site);
 | 
	
		
			
				|  |  |          site.setOrgCode(sysUser.getOrgCode());//部门默认登录用户部门
 | 
	
		
			
				|  |  |          site.setTenantId(sysUser.getOrgId());
 | 
	
		
			
				|  |  |          int saveSiteResult = baseMapper.insert(site);
 | 
	
	
		
			
				|  | @@ -55,14 +54,15 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 获取价格规则列表
 | 
	
		
			
				|  |  | -        List<AppSitePriceRules> priceRulesList = appSiteDTO.getPriceRulesList();
 | 
	
		
			
				|  |  | -        for (AppSitePriceRules rule : priceRulesList) {
 | 
	
		
			
				|  |  | +        List<AppSiteRuleDTO> priceRulesList = appSiteDTO.getPriceRulesList();
 | 
	
		
			
				|  |  | +        for (AppSiteRuleDTO rule : priceRulesList) {
 | 
	
		
			
				|  |  |              // 设置当前规则对应的场地 ID
 | 
	
		
			
				|  |  | -            rule.setSiteId(site.getId());
 | 
	
		
			
				|  |  | -            rule.setOrgCode(site.getOrgCode());
 | 
	
		
			
				|  |  | -            rule.setTenantId(site.getTenantId());
 | 
	
		
			
				|  |  | +            AppSitePriceRules appSitePriceRules = new AppSitePriceRules();
 | 
	
		
			
				|  |  | +            appSitePriceRules.setSiteId(site.getId());
 | 
	
		
			
				|  |  | +            appSitePriceRules.setOrgCode(site.getOrgCode());
 | 
	
		
			
				|  |  | +            appSitePriceRules.setTenantId(site.getTenantId());
 | 
	
		
			
				|  |  |              // 调用 priceRulesMapper 插入价格规则
 | 
	
		
			
				|  |  | -            int savePriceResult = priceRulesMapper.insert(rule);
 | 
	
		
			
				|  |  | +            int savePriceResult = priceRulesMapper.insert(appSitePriceRules);
 | 
	
		
			
				|  |  |              // 如果插入失败,抛出自定义异常提示“场地价格规则保存失败”
 | 
	
		
			
				|  |  |              if (savePriceResult < 1) {
 | 
	
		
			
				|  |  |                  throw new JeecgBootException("场地价格规则保存失败", SC_INTERNAL_SERVER_ERROR_500);
 | 
	
	
		
			
				|  | @@ -76,12 +76,14 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |      public Boolean editWitchPriceRules(AppSiteDTO appSiteDTO) {
 | 
	
		
			
				|  |  | -        AppSite site = appSiteDTO.getSite();
 | 
	
		
			
				|  |  | +        AppSiteCuDTO siteCuDTO = appSiteDTO.getSite();
 | 
	
		
			
				|  |  | +        AppSite site = new AppSite();
 | 
	
		
			
				|  |  | +        BeanUtils.copyProperties(siteCuDTO, site);
 | 
	
		
			
				|  |  |          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);
 | 
	
		
			
				|  |  |          LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 | 
	
		
			
				|  |  | -        checkPermission(dbSite,sysUser);
 | 
	
		
			
				|  |  | +//        checkPermission(dbSite,sysUser);
 | 
	
		
			
				|  |  |          site.setOrgCode(sysUser.getOrgCode());//部门默认登录用户部门
 | 
	
		
			
				|  |  |          site.setTenantId(sysUser.getOrgId());
 | 
	
		
			
				|  |  |          int updateSiteResult = baseMapper.updateById(site);
 | 
	
	
		
			
				|  | @@ -89,12 +91,14 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
 | 
	
		
			
				|  |  |              throw new JeecgBootException("场地信息保存失败", SC_INTERNAL_SERVER_ERROR_500);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        List<AppSitePriceRules> priceRulesList = appSiteDTO.getPriceRulesList();
 | 
	
		
			
				|  |  | -        for (AppSitePriceRules rule : priceRulesList) {
 | 
	
		
			
				|  |  | -            rule.setSiteId(site.getId());
 | 
	
		
			
				|  |  | -            rule.setOrgCode(site.getOrgCode());
 | 
	
		
			
				|  |  | -            rule.setTenantId(site.getTenantId());
 | 
	
		
			
				|  |  | -            int savePriceResult = priceRulesMapper.updateById(rule); // 保证每个操作都在事务中
 | 
	
		
			
				|  |  | +        List<AppSiteRuleDTO> priceRulesList = appSiteDTO.getPriceRulesList();
 | 
	
		
			
				|  |  | +        for (AppSiteRuleDTO rule : priceRulesList) {
 | 
	
		
			
				|  |  | +            AppSitePriceRules appSitePriceRules = new AppSitePriceRules();
 | 
	
		
			
				|  |  | +            BeanUtils.copyProperties(rule, appSitePriceRules);
 | 
	
		
			
				|  |  | +            appSitePriceRules.setSiteId(site.getId());
 | 
	
		
			
				|  |  | +            appSitePriceRules.setOrgCode(site.getOrgCode());
 | 
	
		
			
				|  |  | +            appSitePriceRules.setTenantId(site.getTenantId());
 | 
	
		
			
				|  |  | +            int savePriceResult = priceRulesMapper.updateById(appSitePriceRules); // 保证每个操作都在事务中
 | 
	
		
			
				|  |  |              if (savePriceResult < 1) {
 | 
	
		
			
				|  |  |                  throw new JeecgBootException("场地价格规则保存失败", SC_INTERNAL_SERVER_ERROR_500);
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -107,10 +111,18 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
 | 
	
		
			
				|  |  |      public AppSiteDTO queryWitchPriceRulesById(String id) {
 | 
	
		
			
				|  |  |          AppSite dbSite = baseMapper.selectById(id);
 | 
	
		
			
				|  |  |          if (null==dbSite) throw new JeecgBootException("未找到对应数据", SC_INTERNAL_SERVER_ERROR_500);
 | 
	
		
			
				|  |  | +        AppSiteCuDTO appSiteCuDTO = new AppSiteCuDTO();
 | 
	
		
			
				|  |  | +        BeanUtils.copyProperties(dbSite, appSiteCuDTO);
 | 
	
		
			
				|  |  |          LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
 | 
	
		
			
				|  |  | -        checkPermission(dbSite,sysUser);
 | 
	
		
			
				|  |  | +//        checkPermission(dbSite,sysUser);
 | 
	
		
			
				|  |  |          List<AppSitePriceRules> priceRulesList = priceRulesMapper.selectList(Wrappers.<AppSitePriceRules>lambdaQuery().eq(AppSitePriceRules::getSiteId, id));
 | 
	
		
			
				|  |  | -        return new AppSiteDTO(dbSite,priceRulesList);
 | 
	
		
			
				|  |  | +        List<AppSiteRuleDTO> priceRulesDTOList = new ArrayList<>();
 | 
	
		
			
				|  |  | +        priceRulesList.forEach(rule-> {
 | 
	
		
			
				|  |  | +            AppSiteRuleDTO appSiteRuleDTO = new AppSiteRuleDTO();
 | 
	
		
			
				|  |  | +            BeanUtils.copyProperties(rule, appSiteRuleDTO);
 | 
	
		
			
				|  |  | +            priceRulesDTOList.add(appSiteRuleDTO);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        return new AppSiteDTO(appSiteCuDTO,priceRulesDTOList);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
	
		
			
				|  | @@ -119,7 +131,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();
 | 
	
		
			
				|  |  | -        checkPermission(dbSite,sysUser);
 | 
	
		
			
				|  |  | +//        checkPermission(dbSite,sysUser);
 | 
	
		
			
				|  |  |          int deleteSiteResult = baseMapper.deleteById(id);
 | 
	
		
			
				|  |  |          if (deleteSiteResult>0){
 | 
	
		
			
				|  |  |              int deletePriceResult = priceRulesMapper.delete(Wrappers.<AppSitePriceRules>lambdaQuery().eq(AppSitePriceRules::getSiteId, id));
 | 
	
	
		
			
				|  | @@ -131,17 +143,26 @@ public class AppSiteServiceImpl extends ServiceImpl<AppSiteMapper, AppSite> impl
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    public IPage<AppSite> querySiteList(AppSiteDTO dto) {
 | 
	
		
			
				|  |  | -//        Page<AppSite> page = new Page<>(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | -//        LambdaQueryWrapper<AppSite> wrapper = Wrappers.<AppSite>lambdaQuery()
 | 
	
		
			
				|  |  | -//                .like(StringUtils.isNotBlank(dto.getName()), AppSite::getName, dto.getName());
 | 
	
		
			
				|  |  | -//        IPage<AppSite> resultPage = baseMapper.selectPage(page, wrapper);
 | 
	
		
			
				|  |  | -//        return resultPage.convert(record -> {
 | 
	
		
			
				|  |  | -//            AppSiteVO vo = new AppCategoryVO();
 | 
	
		
			
				|  |  | -//            BeanUtils.copyProperties(record, vo);
 | 
	
		
			
				|  |  | -//            return vo;
 | 
	
		
			
				|  |  | -//        });
 | 
	
		
			
				|  |  | -        return null;
 | 
	
		
			
				|  |  | +    public IPage<AppSiteDTO> querySiteList(AppSitePageDTO dto) {
 | 
	
		
			
				|  |  | +        Page<AppSite> page = new Page<>(dto.getPageNum(), dto.getPageSize());
 | 
	
		
			
				|  |  | +        LambdaQueryWrapper<AppSite> wrapper = Wrappers.<AppSite>lambdaQuery()
 | 
	
		
			
				|  |  | +                .like(StringUtils.isNotBlank(dto.getName()), AppSite::getName, dto.getName());
 | 
	
		
			
				|  |  | +        IPage<AppSite> resultPage = baseMapper.selectPage(page, wrapper);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return resultPage.convert(record -> {
 | 
	
		
			
				|  |  | +            AppSiteCuDTO cuDTO = new AppSiteCuDTO();
 | 
	
		
			
				|  |  | +            BeanUtils.copyProperties(record, cuDTO);
 | 
	
		
			
				|  |  | +            List<AppSitePriceRules> priceRulesList = priceRulesMapper.selectList(
 | 
	
		
			
				|  |  | +                    Wrappers.<AppSitePriceRules>lambdaQuery().eq(AppSitePriceRules::getSiteId, record.getId()));
 | 
	
		
			
				|  |  | +            List<AppSiteRuleDTO> priceRulesDTOList = new ArrayList<>();
 | 
	
		
			
				|  |  | +            priceRulesList.forEach(rule-> {
 | 
	
		
			
				|  |  | +                AppSiteRuleDTO appSiteRuleDTO = new AppSiteRuleDTO();
 | 
	
		
			
				|  |  | +                BeanUtils.copyProperties(rule, appSiteRuleDTO);
 | 
	
		
			
				|  |  | +                priceRulesDTOList.add(appSiteRuleDTO);
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            return new AppSiteDTO(cuDTO, priceRulesDTOList);
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      /**
 |