puhanshu
2022-01-17 0cecda00e8638f21d4acf1d9ede3b85c51d79216
商业街距离计算修改
7个文件已修改
144 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsMerchantVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsInformationDAO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsMerchantDAO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsInformationServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsInformationMapper.xml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsMerchantMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsMerchantVO.java
@@ -69,7 +69,7 @@
    private Integer idleTotal;
    @ApiModelProperty("距离")
    private Integer distance;
    private Double distance;
    @ApiModelProperty("客服电话")
    private String customPhone;
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsInformationDAO.java
@@ -2,13 +2,14 @@
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import com.panzhihua.service_community.entity.McsInformation;
/**
@@ -51,16 +52,10 @@
    /**
     * H5分页查询资讯
     * @param page
     * @param minX
     * @param maxX
     * @param minY
     * @param maxY
     * @param pageMcsInformationDTO
     * @return
     */
    IPage<McsInformationVO> pageH5McsInfo(@Param("page") Page page, @Param("minX") Double minX,
                                          @Param("maxX") Double maxX, @Param("minY") Double minY, @Param("maxY") Double maxY,
                                          @Param("pageMcsInformationDTO") PageMcsInformationDTO pageMcsInformationDTO);
    IPage<McsInformationVO> pageH5McsInfo(@Param("page") Page page, @Param("pageMcsInformationDTO") PageMcsInformationDTO pageMcsInformationDTO);
    /**
     * 通过商家id批量下架戳戳资讯
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsMerchantDAO.java
@@ -2,14 +2,15 @@
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.IndexTopStatisticsVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import com.panzhihua.service_community.entity.McsMerchant;
/**
@@ -72,15 +73,10 @@
    /**
     * H5分页查询数字商业街商家
     * @param page
     * @param minX
     * @param maxX
     * @param minY
     * @param maxY
     * @param pageMcsMerchantDTO
     * @return
     */
    IPage<McsMerchantVO> pageH5McsMerchant(@Param("page") Page page, @Param("minX") Double minX, @Param("maxX") Double maxX,
                                           @Param("minY") Double minY, @Param("maxY") Double maxY, @Param("pageMcsMerchantDTO") PageMcsMerchantDTO pageMcsMerchantDTO);
    IPage<McsMerchantVO> pageH5McsMerchant(@Param("page") Page page, @Param("pageMcsMerchantDTO") PageMcsMerchantDTO pageMcsMerchantDTO);
    /**
     * 查询需要处理的已到期商家
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsInformationServiceImpl.java
@@ -2,16 +2,11 @@
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
import java.util.Date;
import javax.annotation.Resource;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsInfoDTO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.service_community.util.NearbyUtil;
import com.spatial4j.core.shape.Rectangle;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -19,19 +14,20 @@
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.panzhihua.common.model.dtos.community.microCommercialStreet.McsInfoDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForInfoDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.TopStatisticsVO;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.service_community.dao.McsGameDAO;
import com.panzhihua.service_community.dao.McsInformationDAO;
import com.panzhihua.service_community.dao.McsMerchantDAO;
import com.panzhihua.service_community.entity.McsInformation;
import com.panzhihua.service_community.entity.McsMerchant;
import com.panzhihua.service_community.service.McsInformationService;
import java.util.Date;
/**
 * (McsInformation)表服务实现类
@@ -222,18 +218,7 @@
        Page page = new Page<>();
        page.setSize(pageMcsInformationDTO.getPageSize());
        page.setCurrent(pageMcsInformationDTO.getPageNum());
        String lat = pageMcsInformationDTO.getLat();
        String lon = pageMcsInformationDTO.getLon();
        Integer distance = pageMcsInformationDTO.getDistance();
        IPage<McsInformationVO> mcsInfos;
        if (isNotEmpty(lat) && isNotEmpty(lon) && nonNull(distance)) {
            Rectangle rectangle =new NearbyUtil().getRectangle(pageMcsInformationDTO.getDistance(),
                    Double.parseDouble(pageMcsInformationDTO.getLon()), Double.parseDouble(pageMcsInformationDTO.getLat()));
            mcsInfos = this.baseMapper.pageH5McsInfo(page, rectangle.getMinX(), rectangle.getMaxX(),
                    rectangle.getMinY(), rectangle.getMaxY(), pageMcsInformationDTO);
        } else {
            mcsInfos = this.baseMapper.pageH5McsInfo(page, null, null, null, null, pageMcsInformationDTO);
        }
        IPage<McsInformationVO> mcsInfos = this.baseMapper.pageH5McsInfo(page, pageMcsInformationDTO);
        return R.ok(mcsInfos);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java
@@ -3,27 +3,14 @@
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.UUID;
import javax.annotation.Resource;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.PutUserInfoDTO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.IndexTopStatisticsVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
import com.panzhihua.service_community.dao.McsInformationDAO;
import com.panzhihua.service_community.dao.McsOrderDao;
import com.panzhihua.service_community.entity.McsOrder;
import com.panzhihua.service_community.util.NearbyUtil;
import com.spatial4j.core.shape.Rectangle;
import org.springframework.beans.BeanUtils;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
@@ -37,18 +24,26 @@
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
import com.panzhihua.common.model.dtos.community.microCommercialStreet.PutUserInfoDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.microCommercialStreet.IndexTopStatisticsVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.service_community.dao.McsConfigDAO;
import com.panzhihua.service_community.dao.McsGameDAO;
import com.panzhihua.service_community.dao.McsInformationDAO;
import com.panzhihua.service_community.dao.McsMerchantDAO;
import com.panzhihua.service_community.dao.McsOrderDao;
import com.panzhihua.service_community.entity.McsConfig;
import com.panzhihua.service_community.entity.McsMerchant;
import com.panzhihua.service_community.entity.McsOrder;
import com.panzhihua.service_community.service.McsMerchantService;
/**
@@ -384,17 +379,7 @@
        Page page = new Page<>();
        page.setSize(pageMcsMerchantDTO.getPageSize());
        page.setCurrent(pageMcsMerchantDTO.getPageNum());
        String lat = pageMcsMerchantDTO.getLat();
        String lon = pageMcsMerchantDTO.getLon();
        Integer distance = pageMcsMerchantDTO.getDistance();
        IPage<McsMerchantVO> mcsMerchants;
        if (isNotEmpty(lat) && isNotEmpty(lon) && nonNull(distance)) {
            Rectangle rectangle = new NearbyUtil().getRectangle(distance, Double.parseDouble(lon), Double.parseDouble(lat));
            mcsMerchants = this.baseMapper.pageH5McsMerchant(page, rectangle.getMinX(), rectangle.getMaxX(),
                    rectangle.getMinY(), rectangle.getMaxY(), pageMcsMerchantDTO);
        } else {
            mcsMerchants = this.baseMapper.pageH5McsMerchant(page, null, null, null, null, pageMcsMerchantDTO);
        }
        IPage<McsMerchantVO> mcsMerchants = this.baseMapper.pageH5McsMerchant(page, pageMcsMerchantDTO);
        return R.ok(mcsMerchants);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsInformationMapper.xml
@@ -72,7 +72,13 @@
    </select>
    <select id="pageH5McsInfo"
            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO">
        SELECT t1.id, t1.`name`, t1.publish_at, t1.`status`, t1.merchant_id, t1.lat, t1.lon, t1.cover, t2.`name` AS merchantName
        SELECT * FROM (
            SELECT t1.id, t1.`name`, t1.publish_at, t1.`status`, t1.merchant_id, t1.lat, t1.lon, t1.cover, t2.`name` AS
            merchantName,
            ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((t1.lat * PI() / 180 - #{pageMcsInformationDTO.lat} * PI() / 180) / 2),2)
            +
            COS(t1.lat * PI() / 180) * COS(#{pageMcsInformationDTO.lat} * PI() / 180) * POW(SIN((t1.lon * PI() / 180 -
            #{pageMcsInformationDTO.lon} * PI() / 180) / 2),2))), 2) AS distance
        FROM mcs_information t1
        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
        LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
@@ -83,11 +89,16 @@
        <if test="pageMcsInformationDTO.merchantId != null">
            AND t1.merchant_id = #{pageMcsInformationDTO.merchantId}
        </if>
        <if test="maxX != null">
            AND (t1.lon BETWEEN #{minX} AND #{maxX})
            AND (t1.lat BETWEEN #{minY} AND #{maxY})
        </if>
        ORDER BY t1.created_at DESC
        ) temp WHERE 1=1
        <if test="pageMcsInformationDTO.distance != null">
            <if test="pageMcsInformationDTO.isMore != null and pageMcsInformationDTO.isMore ==1">
                AND distance &gt; #{pageMcsInformationDTO.distance}
            </if>
            <if test="pageMcsInformationDTO.isMore == null">
                AND distance &lt;= #{pageMcsInformationDTO.distance}
            </if>
        </if>
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsMerchantMapper.xml
@@ -126,33 +126,37 @@
    </select>
    <select id="pageH5McsMerchant"
            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO">
        SELECT t1.id, t1.`name`, t1.phone, t1.account, t1.`level`, t1.expire_at, t1.first_lit_at, t1.publish_limit, t1.introduction, t1.logo,
        (POWER(MOD(ABS(t1.lon - #{pageMcsMerchantDTO.lon}),360),2) + POWER(ABS(t1.lat - #{pageMcsMerchantDTO.lat}),2)) AS distance
        SELECT * FROM (
            SELECT t1.id, t1.`name`, t1.phone, t1.account, t1.`level`, t1.expire_at, t1.first_lit_at, t1.publish_limit,
            t1.introduction, t1.logo,
            ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((t1.lat * PI() / 180 - #{pageMcsMerchantDTO.lat} * PI() / 180) / 2),2) +
            COS(t1.lat * PI() / 180) * COS(#{pageMcsMerchantDTO.lat} * PI() / 180) * POW(SIN((t1.lon * PI() / 180 -
            #{pageMcsMerchantDTO.lon} * PI() / 180) / 2),2))), 2) AS distance
        FROM mcs_merchant t1
        LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
        <if test="pageMcsMerchantDTO.type != null and pageMcsMerchantDTO.type == 1">
            LEFT JOIN (SELECT * FROM mcs_game WHERE `status` = 2 GROUP BY merchant_id) t3 ON t1.id = t3.merchant_id
            <if test="pageMcsMerchantDTO.type != null and pageMcsMerchantDTO.type == 1">LEFT JOIN (SELECT * FROM mcs_game
            WHERE `status` = 2 GROUP BY merchant_id) t3 ON t1.id = t3.merchant_id
        </if>
        <if test="pageMcsMerchantDTO.type != null and pageMcsMerchantDTO.type == 2">
            LEFT JOIN (SELECT * FROM mcs_information WHERE `status` = 2 GROUP BY merchant_id) t3 ON t1.id = t3.merchant_id
            <if test="
            pageMcsMerchantDTO.type != null and pageMcsMerchantDTO.type == 2">LEFT JOIN (SELECT * FROM mcs_information WHERE
            `status` = 2 GROUP BY merchant_id) t3 ON t1.id = t3.merchant_id
        </if>
        WHERE t1.is_del = 0 AND t1.expire_at &gt; NOW() AND t2.`status` = 1
        <if test="pageMcsMerchantDTO.type != null">
            AND t3.id IS NOT NULL
        </if>
        <if test="minX != null">
            <if test="pageMcsMerchantDTO.isMore != null and pageMcsMerchantDTO.isMore ==1">
                AND t1.lon > #{maxX}
                AND t1.lat > #{maxY}
            </if>
            <if test="pageMcsMerchantDTO.isMore == null">
                AND (t1.lon BETWEEN #{minX} AND #{maxX})
                AND (t1.lat BETWEEN #{minY} AND #{maxY})
            </if>
        </if>
        <if test="pageMcsMerchantDTO.keyword != null and pageMcsMerchantDTO.keyword != &quot;&quot;">
            AND t1.`name` LIKE CONCAT(#{pageMcsMerchantDTO.keyword}, '%')
        </if>
        ) temp WHERE 1=1
        <if test="pageMcsMerchantDTO.distance != null">
            <if test="pageMcsMerchantDTO.isMore != null and pageMcsMerchantDTO.isMore ==1">
                AND distance &gt; #{pageMcsMerchantDTO.distance}
            </if>
            <if test="pageMcsMerchantDTO.isMore == null">
                AND distance &lt;= #{pageMcsMerchantDTO.distance}
            </if>
        </if>
        ORDER BY distance ASC
    </select>
    <select id="selectNeedDealExpiredMerchant" resultType="java.lang.Long">