Răsfoiți Sursa

删除TXiangmu相关代码

wangzhijun 3 zile în urmă
părinte
comite
62dd73980f

+ 0 - 204
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/TXiangmuController.java

@@ -1,204 +0,0 @@
-package com.ylx.web.controller.massage;
-
-import cn.hutool.core.collection.CollectionUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ylx.common.annotation.Log;
-import com.ylx.common.core.domain.R;
-import com.ylx.common.enums.BusinessType;
-import com.ylx.common.exception.ServiceException;
-import com.ylx.massage.domain.THighlights;
-import com.ylx.massage.domain.TJs;
-import com.ylx.massage.domain.TJsDay;
-import com.ylx.massage.domain.TXiangmu;
-import com.ylx.massage.domain.vo.TXiangmuDetailVo;
-import com.ylx.massage.mapper.TJsDayMapper;
-import com.ylx.massage.service.THighlightsService;
-import com.ylx.massage.service.TJsService;
-import com.ylx.massage.service.TXiangmuService;
-import com.ylx.massage.utils.DateTimeUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 项目管理Controller
- *
- * @author ylx
- * @date 2024-03-22
- */
-@RestController
-@RequestMapping("api/xiangmu/v1")
-@Slf4j
-@Api(tags = {"项目管理"})
-public class TXiangmuController {
-    @Resource
-    private TXiangmuService xiangmuService;
-
-
-    @Resource
-    private THighlightsService highlightsService;
-
-    @Resource
-    private TJsDayMapper jsDayMapper;
-
-    @Resource
-    private TJsService jsService;
-
-    /**
-     * 获取所有项目
-     *
-     * @param tXiangmu
-     * @return R<List<TXiangmu>>
-     */
-    @RequestMapping(value = "wx/getAll", method = RequestMethod.POST)
-    @ApiOperation("获取所有项目")
-    public R<List<TXiangmu>> geTXiangmu(@RequestBody TXiangmu tXiangmu) {
-        LambdaQueryWrapper<TXiangmu> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        objectLambdaQueryWrapper.eq(StringUtils.isNotBlank(tXiangmu.getcId()), TXiangmu::getcId, tXiangmu.getcId());
-        if (StringUtils.isNotBlank(tXiangmu.getcLdList())) {
-            objectLambdaQueryWrapper.apply("FIND_IN_SET({0}, c_ld_list)", tXiangmu.getcLdList());
-        }
-        objectLambdaQueryWrapper.orderByAsc(TXiangmu::getdPrice);
-        List<TXiangmu> list = xiangmuService.list(objectLambdaQueryWrapper);
-        return R.ok(list);
-    }
-
-
-    /**
-     * 查询指定技师的项目(H5端)
-     *
-     * @param openId
-     * @return R<List<TXiangmu>>
-     */
-    @GetMapping(value = "wx/getByJsId")
-    @ApiOperation("查询指定技师的项目")
-    public R<List<TXiangmu>> getByJsId(@RequestParam String openId) {
-        try {
-            log.info("查询指定技师的项目,openId:{}", openId);
-            //通过openId查询技师信息
-            TJs js = jsService.getOne(new LambdaQueryWrapper<TJs>().eq(TJs::getcOpenId, openId));
-            if (js == null) {
-                return R.fail("该技师不存在");
-            }
-            String bhList = js.getcBhList();
-            if (StringUtils.isBlank(bhList)) {
-                return R.fail("该技师没有项目");
-            }
-            LambdaQueryWrapper<TXiangmu> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            objectLambdaQueryWrapper.in(TXiangmu::getcId, bhList.split(","));
-            List<TXiangmu> list = xiangmuService.list(objectLambdaQueryWrapper);
-            return R.ok(list);
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw new RuntimeException(e);
-        }
-    }
-
-
-    /**
-     * 推荐技师
-     *
-     * @param deptName
-     * @return R<List<TJs>>
-     */
-    @RequestMapping(value = "wx/recommend", method = RequestMethod.GET)
-    @ApiOperation("推荐技师")
-    public R<List<TJs>> recommend(@RequestParam String deptName) {
-//        //推荐技师
-//        List<TJsDay> tJsDays = jsDayMapper.selectRanking(deptName, null,
-//                DateTimeUtils.formatDate(DateTimeUtils.addMonths(new Date(), -1)), DateTimeUtils.formatDate(new Date()));
-//        //查技师
-//        if (CollectionUtil.isEmpty(tJsDays)) {
-//            return null;
-//        }
-//        List<String> jsId = tJsDays.stream().map(TJsDay::getJsId).collect(Collectors.toList());
-
-        LambdaQueryWrapper<TJs> jsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        jsLambdaQueryWrapper.eq(TJs::getnB1, 1).last("limit 4");
-        return R.ok(jsService.list(jsLambdaQueryWrapper));
-    }
-
-    /**
-     * 添加或者更新项目
-     *
-     * @param xiangmu
-     * @return R
-     */
-    @Log(title = "项目管理", businessType = BusinessType.INSERT)
-    @RequestMapping(value = "/saveOrUpdate", method = RequestMethod.POST)
-    @ApiOperation("添加或者更新项目")
-    public R saveOrUpdate(@RequestBody TXiangmu xiangmu) {
-        try {
-            return R.ok(xiangmuService.addOrUpdate(xiangmu));
-        } catch (ServiceException s) {
-            log.error(s.toString());
-            return R.fail(s.getMessage());
-        } catch (Exception e) {
-            log.error(e.toString());
-            return R.fail("系统异常");
-        }
-    }
-
-
-    /**
-     * 分页查询项目数据
-     * @param page
-     * @param tXiangmu
-     * @return R<Page<TXiangmu>>
-     */
-    @RequestMapping(value = "/select", method = RequestMethod.GET)
-    @ApiOperation("分页查询项目数据")
-    public R<Page<TXiangmu>> selecTXiangmu(Page<TXiangmu> page, TXiangmu tXiangmu) {
-        LambdaQueryWrapper<TXiangmu> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        objectLambdaQueryWrapper.like(StringUtils.isNotBlank(tXiangmu.getcTitle()), TXiangmu::getcTitle, tXiangmu.getcTitle()).
-                orderByDesc(TXiangmu::getDtCreateTime);
-        // 获取查询返回结果
-        Page<TXiangmu> pageSelect = xiangmuService.page(page, objectLambdaQueryWrapper);
-        return R.ok(pageSelect);
-    }
-
-
-    /**
-     * 分页查询数据
-     */
-    @ApiOperation("根据id查询项目")
-    @RequestMapping(value = "/getByid", method = RequestMethod.POST)
-    public R getById(@RequestBody TXiangmu xiangmu) {
-        TXiangmuDetailVo details = xiangmuService.details(xiangmu);
-        return R.ok(details);
-    }
-
-    /**
-     * 删除项目
-     *
-     * @param xiangmu
-     * @return
-     */
-    @Log(title = "项目管理", businessType = BusinessType.DELETE)
-    @RequestMapping(value = "/del", method = RequestMethod.POST)
-    @ApiOperation("删除项目")
-    public R del(@RequestBody TXiangmu xiangmu) {
-        return R.ok(xiangmuService.removeById(xiangmu));
-    }
-
-    /**
-     * 项目亮点
-     *
-     * @return R<List<THighlights>>
-     */
-    @ApiOperation("项目亮点")
-    @Log(title = "项目亮点", businessType = BusinessType.OTHER)
-    @RequestMapping(value = "/highlights", method = RequestMethod.GET)
-    public R<List<THighlights>> getHighlights() {
-        return R.ok(highlightsService.list());
-    }
-
-}

+ 0 - 30
nightFragrance-massage/src/main/java/com/ylx/massage/service/TXiangmuService.java

@@ -1,30 +0,0 @@
-package com.ylx.massage.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ylx.massage.domain.TXiangmu;
-import com.ylx.massage.domain.dto.OptionDTO;
-import com.ylx.massage.domain.dto.ServiceOptionDTO;
-import com.ylx.massage.domain.vo.ProductOptionVO;
-import com.ylx.massage.domain.vo.ProductServiceOptionVO;
-import com.ylx.massage.domain.vo.TXiangmuDetailVo;
-import org.apache.ibatis.annotations.Param;
-
-
-/**
- * 项目Service接口
- *
- * @author ylx
- * @date 2024-03-22
- */
-public interface TXiangmuService extends IService<TXiangmu> {
-
-    Boolean addOrUpdate(TXiangmu xiangmu);
-
-    TXiangmuDetailVo details(TXiangmu xiangmu);
-
-    IPage<ProductOptionVO> selectOptionUnionPage(Page page, OptionDTO dto);
-
-    Page<ProductServiceOptionVO> selectServiceOptionsPage(Page page, ServiceOptionDTO dto);
-}

+ 4 - 14
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TFareFreeRuleServiceImpl.java

@@ -4,19 +4,14 @@ import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ylx.common.exception.ServiceException;
-import com.ylx.common.utils.SecurityUtils;
 import com.ylx.common.utils.StringUtils;
 import com.ylx.massage.domain.MaTechnician;
 import com.ylx.massage.domain.TFareFreeRule;
-import com.ylx.massage.domain.TJs;
 import com.ylx.massage.domain.TXiangmu;
 import com.ylx.massage.domain.vo.FareFreeRuleVo;
-import com.ylx.massage.domain.vo.TimeRangeVo;
 import com.ylx.massage.mapper.TFareFreeRuleMapper;
 import com.ylx.massage.service.IMaTechnicianService;
 import com.ylx.massage.service.TFareFreeRuleService;
-import com.ylx.massage.service.TJsService;
-import com.ylx.massage.service.TXiangmuService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
@@ -24,10 +19,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
-import java.util.stream.Collectors;
 
 /**
  * 免车费规则服务实现类
@@ -39,9 +32,6 @@ import java.util.stream.Collectors;
 @Service
 public class TFareFreeRuleServiceImpl extends ServiceImpl<TFareFreeRuleMapper, TFareFreeRule> implements TFareFreeRuleService {
 
-    @Resource
-    private TXiangmuService xiangmuService;
-
     @Resource
     private IMaTechnicianService jsService;
 
@@ -208,10 +198,10 @@ public class TFareFreeRuleServiceImpl extends ServiceImpl<TFareFreeRuleMapper, T
             // 查询项目名称
             if (StringUtils.isNotBlank(rule.getProjectId())) {
                 String projectNames = "";
-                TXiangmu xiangmu = xiangmuService.getById(rule.getProjectId());
-                if (xiangmu != null && StringUtils.isNotBlank(xiangmu.getcTitle())) {
-                    projectNames = xiangmu.getcTitle();
-                }
+//                TXiangmu xiangmu = xiangmuService.getById(rule.getProjectId());
+//                if (xiangmu != null && StringUtils.isNotBlank(xiangmu.getcTitle())) {
+//                    projectNames = xiangmu.getcTitle();
+//                }
                 vo.setProjectNames(projectNames.isEmpty() ? null : projectNames);
             }
             return vo;

+ 13 - 22
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TJsServiceImpl.java

@@ -2,38 +2,38 @@ package com.ylx.massage.service.impl;
 
 
 import cn.hutool.core.collection.CollectionUtil;
-
 import cn.hutool.json.JSONException;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ylx.collect.service.CollectService;
 import com.ylx.common.config.WechatAccountConfig;
 import com.ylx.common.constant.MassageConstants;
 import com.ylx.common.exception.ServiceException;
 import com.ylx.common.utils.StringUtils;
-import com.ylx.massage.domain.*;
+import com.ylx.massage.domain.TComment;
+import com.ylx.massage.domain.TJs;
+import com.ylx.massage.domain.TSign;
+import com.ylx.massage.domain.TWxUser;
 import com.ylx.massage.domain.vo.TJsVo;
 import com.ylx.massage.enums.JsStatusEnum;
-
 import com.ylx.massage.mapper.TJsMapper;
-import com.ylx.massage.service.*;
+import com.ylx.massage.service.TCommentService;
+import com.ylx.massage.service.TJsService;
+import com.ylx.massage.service.TSignService;
+import com.ylx.massage.service.TWxUserService;
 import com.ylx.massage.utils.DateTimeUtils;
 import com.ylx.massage.utils.LocationUtil;
 import com.ylx.massage.utils.VirtualTechnicianNicknameGenerator;
 import com.ylx.massage.utils.WeChatUtil;
-import com.ylx.order.service.TOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * 技师表 服务实现类
@@ -50,12 +50,6 @@ public class TJsServiceImpl extends ServiceImpl<TJsMapper, TJs> implements TJsSe
     @Resource
     private LocationUtil locationUtil;
 
-    @Resource
-    private CollectService collectService;
-
-    @Resource
-    private TXiangmuService xiangmuService;
-
     @Resource
     private TCommentService commentService;
 
@@ -65,9 +59,6 @@ public class TJsServiceImpl extends ServiceImpl<TJsMapper, TJs> implements TJsSe
     @Resource
     private WeChatUtil weChatUtil;
 
-    @Resource
-    private TOrderService orderService;
-
     @Resource
     private TSignService signService;
 
@@ -484,11 +475,11 @@ public class TJsServiceImpl extends ServiceImpl<TJsMapper, TJs> implements TJsSe
             return js;
         }
         //查询项目
-        List<String> projectIds = Arrays.stream(js.getcBhList().split(",")).collect(Collectors.toList());
-        LambdaQueryWrapper<TXiangmu> xiangmuLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        xiangmuLambdaQueryWrapper.in(TXiangmu::getcId, projectIds).orderByAsc(TXiangmu::getdPrice);
-        List<TXiangmu> projects = xiangmuService.list(xiangmuLambdaQueryWrapper);
-        js.setProjects(projects);
+//        List<String> projectIds = Arrays.stream(js.getcBhList().split(",")).collect(Collectors.toList());
+//        LambdaQueryWrapper<TXiangmu> xiangmuLambdaQueryWrapper = new LambdaQueryWrapper<>();
+//        xiangmuLambdaQueryWrapper.in(TXiangmu::getcId, projectIds).orderByAsc(TXiangmu::getdPrice);
+//        List<TXiangmu> projects = xiangmuService.list(xiangmuLambdaQueryWrapper);
+//        js.setProjects(projects);
         //查询评论
         LambdaQueryWrapper<TComment> commentLambdaQueryWrapper = new LambdaQueryWrapper<>();
         commentLambdaQueryWrapper.eq(TComment::getcJsid, jsId);

+ 0 - 108
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/TXiangmuServiceImpl.java

@@ -1,108 +0,0 @@
-package com.ylx.massage.service.impl;
-
-
-import cn.hutool.core.collection.CollectionUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ylx.common.constant.MassageConstants;
-import com.ylx.common.exception.ServiceException;
-import com.ylx.common.utils.bean.BeanUtils;
-import com.ylx.massage.domain.TJs;
-import com.ylx.massage.domain.TJsDay;
-import com.ylx.massage.domain.TXiangmu;
-import com.ylx.massage.domain.dto.OptionDTO;
-import com.ylx.massage.domain.dto.ServiceOptionDTO;
-import com.ylx.massage.domain.vo.ProductOptionVO;
-import com.ylx.massage.domain.vo.ProductServiceOptionVO;
-import com.ylx.massage.domain.vo.TXiangmuDetailVo;
-import com.ylx.massage.mapper.TJsDayMapper;
-import com.ylx.massage.mapper.TXiangmuMapper;
-import com.ylx.massage.service.TJsService;
-import com.ylx.massage.service.TXiangmuService;
-import com.ylx.massage.utils.DateTimeUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-
-/**
- * 项目Service接口
- *
- * @author ylx
- * @date 2024-03-22
- */
-@Service
-public class TXiangmuServiceImpl extends ServiceImpl<TXiangmuMapper, TXiangmu> implements TXiangmuService {
-    @Resource
-    private TJsService jsService;
-
-    @Resource
-    private TJsDayMapper jsDayMapper;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Boolean addOrUpdate(TXiangmu xiangmu) {
-        if (StringUtils.isBlank(xiangmu.getcId())) {
-            if (StringUtils.isBlank(xiangmu.getcCover())) {
-                throw new ServiceException("封面图不能为空");
-            }
-            if (StringUtils.isBlank(xiangmu.getcTitle())) {
-                throw new ServiceException("标题不能为空");
-            }
-            if (null == xiangmu.getdPrice()) {
-                throw new ServiceException("标注价格(现价)不能为空");
-            }
-            if (null == xiangmu.getdYuanPrice()) {
-                throw new ServiceException("原价不能为空");
-            }
-            if (null == xiangmu.getnMinute()) {
-                throw new ServiceException("时长不能为空");
-            }
-            xiangmu.setnSaleNumber(MassageConstants.INTEGER_ZERO);
-            xiangmu.setDtCreateTime(LocalDateTime.now());
-        }
-        return this.saveOrUpdate(xiangmu);
-    }
-
-    @Override
-    public TXiangmuDetailVo details(TXiangmu xiangmu) {
-        TXiangmu byId = this.getById(xiangmu.getcId());
-        if (null != byId) {
-            TXiangmuDetailVo tXiangmuDetailVo = new TXiangmuDetailVo();
-            BeanUtils.copyBeanProp(tXiangmuDetailVo, byId);
-            //推荐技师
-            List<TJsDay> tJsDays = jsDayMapper.selectRanking(xiangmu.getDeptName(), null,
-                    DateTimeUtils.formatDate(DateTimeUtils.addMonths(new Date(), -1)), DateTimeUtils.formatDate(new Date()));
-            //查技师
-            if (CollectionUtil.isEmpty(tJsDays)) {
-                return tXiangmuDetailVo;
-            }
-            List<String> jsId = tJsDays.stream().map(TJsDay::getJsId).collect(Collectors.toList());
-            tXiangmuDetailVo.setRecommendTechnicianList(jsId);
-            LambdaQueryWrapper<TJs> jsLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            jsLambdaQueryWrapper.in(CollectionUtil.isNotEmpty(jsId), TJs::getId, jsId);
-            List<TJs> list = jsService.list(jsLambdaQueryWrapper);
-            tXiangmuDetailVo.setJsList(list);
-            return tXiangmuDetailVo;
-        }
-        return null;
-    }
-
-    @Override
-    public IPage<ProductOptionVO> selectOptionUnionPage(Page page, OptionDTO dto) {
-        return baseMapper.selectOptionUnionPage(page, dto);
-    }
-
-    @Override
-    public Page<ProductServiceOptionVO> selectServiceOptionsPage(Page page, ServiceOptionDTO dto) {
-        return baseMapper.selectServiceOptionsPage(page, dto);
-    }
-}

+ 0 - 141
nightFragrance-massage/src/main/resources/mapper/massage/TXiangmuMapper.xml

@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ylx.massage.mapper.TXiangmuMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.ylx.massage.domain.TXiangmu">
-        <id column="c_id" property="cId" />
-        <result column="c_title" property="cTitle" />
-        <result column="c_cover" property="cCover" />
-        <result column="d_yuan_price" property="dYuanPrice" />
-        <result column="d_price" property="dPrice" />
-        <result column="n_minute" property="nMinute" />
-        <result column="c_ld_list" property="cLdList" />
-        <result column="n_sex_limit" property="nSexLimit" />
-        <result column="c_syrq" property="cSyrq" />
-        <result column="c_detail" property="cDetail" />
-        <result column="n_sale_number" property="nSaleNumber" />
-        <result column="dt_create_time" property="dtCreateTime" />
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        c_id, c_title, c_cover, d_yuan_price, d_price, n_minute, c_ld_list, n_sex_limit, c_syrq, c_detail, n_sale_number, dt_create_time
-    </sql>
-
-    <!-- 结果集映射 -->
-    <resultMap id="OptionVOMap" type="com.ylx.massage.domain.vo.ProductOptionVO">
-        <result column="id" property="id"/>
-        <result column="title" property="title"/>
-        <result column="productType" property="productType"/>
-    </resultMap>
-
-    <!-- 核心 SQL:UNION ALL 分页查询 -->
-    <select id="selectOptionUnionPage" resultMap="OptionVOMap">
-        SELECT * FROM (
-        <!-- 第一部分:积分商品 -->
-        SELECT
-        CAST(id AS CHAR) as id,
-        name as title,
-        1 as productType
-        FROM product
-        WHERE status = 1 AND deleted = 0
-        <if test="dto.title != null and dto.title != ''">
-            AND name LIKE CONCAT('%', #{dto.title}, '%')
-        </if>
-        UNION ALL
-        <!-- 第二部分:项目商品 -->
-        SELECT
-        c_id as id,
-        c_title as title,
-        0 as productType
-        FROM t_xiangmu
-        WHERE is_delete = 0
-        <if test="dto.title != null and dto.title != ''">
-            AND c_title LIKE CONCAT('%', #{dto.title}, '%')
-        </if>
-        ) as temp_table
-    </select>
-
-    <!-- 结果集映射保持不变 -->
-    <resultMap id="ServiceOptionsVOMap" type="com.ylx.massage.domain.vo.ProductServiceOptionVO">
-        <result column="id" property="id"/>
-        <result column="title" property="title"/>
-        <result column="productType" property="productType"/>
-        <result column="serviceAreaCode" property="areaCode"/>
-        <result column="serviceAreaName" property="areaName"/>
-        <result column="price" property="price"/>
-        <result column="merchantName" property="merchantName"/>
-        <result column="merchantId" property="merchantId"/>
-    </resultMap>
-
-    <select id="selectServiceOptionsPage" resultMap="ServiceOptionsVOMap">
-        SELECT
-            p.c_id AS id,
-            ANY_VALUE(p.c_title) AS title,
-            CASE WHEN p.project_type = '1' THEN 0 ELSE 0 END AS productType,
-            ANY_VALUE(p.d_price) AS price,
-            '广誉源' AS merchantName,
-            '10000' AS merchantId,
-            ANY_VALUE(
-                CASE
-                    WHEN #{dto.areaCode} IS NOT NULL THEN (SELECT name FROM area WHERE code = #{dto.areaCode})
-                    ELSE agg.area_names
-                END
-            ) AS serviceAreaName,
-            ANY_VALUE(
-                CASE
-                    WHEN #{dto.areaCode} IS NOT NULL THEN #{dto.areaCode}
-                    ELSE agg.area_codes
-                END
-            ) AS serviceAreaCode
-        FROM t_xiangmu p
-                 INNER JOIN (
-            SELECT
-                j_inner.c_bh_list,
-                GROUP_CONCAT(DISTINCT a.code SEPARATOR ',') AS area_codes,  -- code拼接
-                GROUP_CONCAT(DISTINCT a.name SEPARATOR ',') AS area_names  -- 名称拼接
-            FROM t_js j_inner
-                     JOIN area a ON FIND_IN_SET(a.code, j_inner.service_area_codes)
-            WHERE j_inner.is_delete = 0
-              AND j_inner.n_tong = 1
-            GROUP BY j_inner.c_bh_list
-        ) agg ON FIND_IN_SET(p.c_id, agg.c_bh_list)
-        WHERE
-            p.is_delete = 0
-            <if test="dto.productType != null and dto.productType == 0">
-                AND p.project_type = 1
-            </if>
-            <if test="dto.productType != null and dto.productType == 1">
-                AND 1 = 0
-            </if>
-            <if test="dto.productType != null and dto.productType != 0 and dto.productType != 1">
-                AND p.project_type = #{dto.productType}
-            </if>
-            <if test="dto.productType == null">
-                AND p.project_type = 1
-            </if>
-            <if test="dto.title != null and dto.title != ''">
-                AND p.c_title LIKE CONCAT('%', #{dto.title}, '%')
-            </if>
-            <if test="dto.ids != null and dto.ids.size() > 0">
-                AND p.c_id IN
-                <foreach collection="dto.ids" item="id" open="(" separator="," close=")">
-                    #{id}
-                </foreach>
-            </if>
-          AND EXISTS (
-            SELECT 1
-            FROM t_js j
-            WHERE j.is_delete = 0
-              AND j.n_tong = 1
-              AND (#{dto.areaCode} IS NULL OR FIND_IN_SET(#{dto.areaCode}, j.service_area_codes))
-              AND FIND_IN_SET(p.c_id, j.c_bh_list)
-        )
-        GROUP BY
-            p.c_id
-        ORDER BY
-            p.create_time DESC
-    </select>
-
-</mapper>