|
@@ -13,13 +13,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.ylx.common.core.domain.entity.SysDictData;
|
|
import com.ylx.common.core.domain.entity.SysDictData;
|
|
|
import com.ylx.common.exception.ServiceException;
|
|
import com.ylx.common.exception.ServiceException;
|
|
|
import com.ylx.common.utils.DateUtils;
|
|
import com.ylx.common.utils.DateUtils;
|
|
|
|
|
+import com.ylx.common.utils.DictUtils;
|
|
|
import com.ylx.common.utils.SecurityUtils;
|
|
import com.ylx.common.utils.SecurityUtils;
|
|
|
import com.ylx.home.hot.domain.vo.ProjectSalesVO;
|
|
import com.ylx.home.hot.domain.vo.ProjectSalesVO;
|
|
|
|
|
+import com.ylx.home.search.domain.dto.SearchProjectDTO;
|
|
|
import com.ylx.massage.domain.dto.OptionDTO;
|
|
import com.ylx.massage.domain.dto.OptionDTO;
|
|
|
import com.ylx.massage.domain.dto.ServiceOptionDTO;
|
|
import com.ylx.massage.domain.dto.ServiceOptionDTO;
|
|
|
import com.ylx.massage.domain.vo.ProductOptionVO;
|
|
import com.ylx.massage.domain.vo.ProductOptionVO;
|
|
|
import com.ylx.massage.domain.vo.ProductServiceOptionVO;
|
|
import com.ylx.massage.domain.vo.ProductServiceOptionVO;
|
|
|
import com.ylx.massage.service.IMaProjectService;
|
|
import com.ylx.massage.service.IMaProjectService;
|
|
|
|
|
+import com.ylx.merchant.domain.vo.MerchantListVO;
|
|
|
import com.ylx.project.domain.Project;
|
|
import com.ylx.project.domain.Project;
|
|
|
import com.ylx.project.domain.bookMerchant.dto.BookMerchantDTO;
|
|
import com.ylx.project.domain.bookMerchant.dto.BookMerchantDTO;
|
|
|
import com.ylx.project.domain.bookMerchant.vo.BookMerchantVO;
|
|
import com.ylx.project.domain.bookMerchant.vo.BookMerchantVO;
|
|
@@ -45,11 +48,11 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.Arrays;
|
|
|
|
|
-import java.util.Collections;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
+import static com.ylx.order.constant.OrderConstant.DICT_UNIT_TYPE;
|
|
|
|
|
+
|
|
|
@Slf4j
|
|
@Slf4j
|
|
|
@Service
|
|
@Service
|
|
|
public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
|
|
public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
|
|
@@ -63,6 +66,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
@Resource
|
|
@Resource
|
|
|
private RedisTemplate<String, String> redisTemplate;
|
|
private RedisTemplate<String, String> redisTemplate;
|
|
|
|
|
|
|
|
|
|
+ private static final Map<String, String> unitDictCache = new HashMap<>();
|
|
|
|
|
+
|
|
|
|
|
+ static {
|
|
|
|
|
+ List<SysDictData> dictList = DictUtils.getSortedDictCache(DICT_UNIT_TYPE);
|
|
|
|
|
+ if (CollUtil.isNotEmpty(dictList)) {
|
|
|
|
|
+ dictList.forEach(dict -> unitDictCache.put(dict.getDictValue(), dict.getDictLabel()));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.warn("项目计量单位字典未加载,请检查字典配置:{}", DICT_UNIT_TYPE);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public Page<ProjectPageVo> list(Page<Project> page, ProjectSearchDTO dto) {
|
|
public Page<ProjectPageVo> list(Page<Project> page, ProjectSearchDTO dto) {
|
|
|
LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
|
|
@@ -272,6 +286,22 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
return this.baseMapper.selectAllProjectSalesCount();
|
|
return this.baseMapper.selectAllProjectSalesCount();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public Page<ProjectInfoVO> homeSearchPage(SearchProjectDTO dto) {
|
|
|
|
|
+ Page<ProjectInfoVO> page = new Page<>(dto.getCurrent(), dto.getSize());
|
|
|
|
|
+ page = this.baseMapper.getProjectPage(page, dto);
|
|
|
|
|
+ List<ProjectInfoVO> records = page.getRecords();
|
|
|
|
|
+ if (CollUtil.isNotEmpty(records)) {
|
|
|
|
|
+ for (ProjectInfoVO record : records) {
|
|
|
|
|
+ Integer unitType = record.getUnitType();
|
|
|
|
|
+ String unitKey = ObjectUtil.isNotNull(unitType) ? unitType.toString() : "";
|
|
|
|
|
+ String unitTypeName = unitDictCache.getOrDefault(unitKey, "未知单位");
|
|
|
|
|
+ record.setUnitTypeName(unitTypeName);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return page;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private ProjectPageVo convertToVo(Project entity) {
|
|
private ProjectPageVo convertToVo(Project entity) {
|
|
|
ProjectPageVo vo = new ProjectPageVo();
|
|
ProjectPageVo vo = new ProjectPageVo();
|
|
|
// 属性拷贝(推荐)
|
|
// 属性拷贝(推荐)
|