yanghui
2022-11-24 db048fa114cbad7708c17c1d75639d9e06271011
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java
@@ -1,25 +1,6 @@
package com.panzhihua.service_community.service.impl;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import cn.hutool.core.util.NumberUtil;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.service_community.dao.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -27,32 +8,32 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.exceptions.ServiceException;
import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.ExportMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.PageClassifyMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
import com.panzhihua.common.model.dtos.community.convenient.ResetPasswordConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.*;
import com.panzhihua.common.model.dtos.grid.EventGridMemberPassResetDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.convenient.ConvenientConsultationStatisticsVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientProductSpecificationVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientViewStatisticsVO;
import com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO;
import com.panzhihua.common.model.vos.community.convenient.*;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ConvenientConsultationStatisticsDO;
import com.panzhihua.service_community.model.dos.ConvenientMerchantDO;
import com.panzhihua.service_community.model.dos.ConvenientServiceCategoryDO;
import com.panzhihua.service_community.model.dos.ConvenientViewStatisticsDO;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ConvenientMerchantService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
/**
 * @title: ConvenientMerchantServiceImpl
@@ -80,24 +61,29 @@
    @Resource
    private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO;
    private static final String DQ="510402";
    private static final String RHQ="510411";
    private static final String DQ = "510402";
    private static final String RHQ = "510411";
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addMerchant(ConvenientMerchantDTO convenientMerchantDTO) {
        //校验微信手机号是否已使用
        String mobilePhone = convenientMerchantDTO.getMobilePhone();
        Integer count = this.baseMapper.selectCount(new LambdaQueryWrapper<ConvenientMerchantDO>().eq(ConvenientMerchantDO::getMobilePhone, mobilePhone));
        if (count > 0) {
            R.fail("该微信手机号:" + mobilePhone + "已被使用!请更换");
        }
        ConvenientMerchantDO convenientMerchantDO = new ConvenientMerchantDO();
        BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
        if(convenientMerchantDTO.getCommunityId()==0){
            if(DQ.equals(convenientMerchantDTO.getAreaCode())){
        if (convenientMerchantDTO.getCommunityId() == 0) {
            if (DQ.equals(convenientMerchantDTO.getAreaCode())) {
                convenientMerchantDO.setCommunityName("东区社区");
            }else if(RHQ.equals(convenientMerchantDTO.getAreaCode())){
            } else if (RHQ.equals(convenientMerchantDTO.getAreaCode())) {
                convenientMerchantDO.setCommunityName("仁和区社区");
            }else{
            } else {
                convenientMerchantDO.setCommunityName("西区社区");
            }
        }
        else {
        } else {
            ComActDO comActDO = comActDAO.selectById(convenientMerchantDTO.getCommunityId());
            convenientMerchantDO.setCommunityName(comActDO.getName());
        }
@@ -111,7 +97,7 @@
                List<Long> serviceIds = convenientMerchantDTO.getServiceIds();
                serviceIds.forEach(serviceId -> {
                    ConvenientServiceCategoryDO convenientServiceCategoryDO = convenientServiceCategoryDAO.selectById(serviceId);
                    convenientServiceCategoryDAO.createMerchantServiceRelation(Snowflake.getId(),merchantId, serviceId,
                    convenientServiceCategoryDAO.createMerchantServiceRelation(Snowflake.getId(), merchantId, serviceId,
                            convenientServiceCategoryDO.getName(), convenientMerchantDTO.getCreatedBy());
                });
            }
@@ -132,17 +118,21 @@
    @Transactional(rollbackFor = Exception.class)
    public R putMerchant(ConvenientMerchantDTO convenientMerchantDTO) {
        Long merchantId = convenientMerchantDTO.getId();
        String mobilePhone = convenientMerchantDTO.getMobilePhone();
        ConvenientMerchantDO merchantDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ConvenientMerchantDO>().eq(ConvenientMerchantDO::getMobilePhone, mobilePhone));
        ConvenientMerchantDO convenientMerchantDO = this.baseMapper.selectById(merchantId);
        if (isNull(convenientMerchantDO)) {
            return R.fail("商家不存在");
        }
        if (nonNull(merchantDO)&&!merchantDO.getId().equals(convenientMerchantDO.getId())) {
            R.fail("该微信手机号:" + mobilePhone + "已被使用!请更换");
        }
        Long communityId = convenientMerchantDTO.getCommunityId();
        if (nonNull(communityId)) {
            ComActDO comActDO = comActDAO.selectById(communityId);
            if(comActDO!=null){
            if (comActDO != null) {
                convenientMerchantDO.setCommunityName(comActDO.getName());
            }
            else {
            } else {
                convenientMerchantDO.setCommunityName("西区社区");
            }
        }
@@ -159,7 +149,7 @@
            convenientServiceCategoryDAO.deleteMerchantServiceRelation(merchantId);
            serviceIds.forEach(serviceId -> {
                ConvenientServiceCategoryDO convenientServiceCategoryDO = convenientServiceCategoryDAO.selectById(serviceId);
                convenientServiceCategoryDAO.createMerchantServiceRelation(Snowflake.getId(),merchantId, serviceId,
                convenientServiceCategoryDAO.createMerchantServiceRelation(Snowflake.getId(), merchantId, serviceId,
                        convenientServiceCategoryDO.getName(), convenientMerchantDTO.getCreatedBy());
            });
        }
@@ -297,11 +287,11 @@
        Page page = new Page<>();
        page.setSize(pagePopularMerchantDTO.getPageSize());
        page.setCurrent(pagePopularMerchantDTO.getPageNum());
        IPage<ConvenientMerchantVO> merchantVOList = this.baseMapper.getPopularMerchants(page, pagePopularMerchantDTO.getCommunityId(), currentMon,pagePopularMerchantDTO.getAreaCode());
        if(pagePopularMerchantDTO.getPageNum().equals(1L)){
        IPage<ConvenientMerchantVO> merchantVOList = this.baseMapper.getPopularMerchants(page, pagePopularMerchantDTO.getCommunityId(), currentMon, pagePopularMerchantDTO.getAreaCode());
        if (pagePopularMerchantDTO.getPageNum().equals(1L)) {
            //金沙江默认第一个
            List<ConvenientMerchantVO> merchantVOS=new ArrayList<>();
            ConvenientMerchantVO merchantVO=new ConvenientMerchantVO();
            List<ConvenientMerchantVO> merchantVOS = new ArrayList<>();
            ConvenientMerchantVO merchantVO = new ConvenientMerchantVO();
            merchantVO.setName("金沙江智慧物流商贸城");
            merchantVO.setLogo("https://www.psciio.com//idcard/0694d975ed4d4c49bcfb728a678518f2.jpg");
            merchantVO.setIntroduction("农产直销、综合商贸、冷链储运、中央厨房、检验检疫、农博会展、总部商务、综合服务。");
@@ -311,7 +301,7 @@
            merchantVOS.add(merchantVO);
            //第一页默认把犇师傅维修中心加载到第一个
            List<ConvenientMerchantVO> merchantList = this.baseMapper.selectMerchantByName(pagePopularMerchantDTO.getCommunityId(), currentMon);
            if(merchantList != null && merchantList.size() > 0){
            if (merchantList != null && merchantList.size() > 0) {
                merchantVOS.addAll(merchantList);
                merchantVOS.addAll(merchantVOList.getRecords());
                merchantVOList.setRecords(merchantVOS);
@@ -342,6 +332,7 @@
    /**
     * 小程序获取商家详情
     *
     * @param merchantId
     * @return
     */
@@ -442,6 +433,7 @@
    /**
     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
     *
     * @return
     */
    @Override
@@ -455,6 +447,7 @@
    /**
     * check商家/店铺是否有效
     *
     * @param userId
     * @return
     */
@@ -472,12 +465,12 @@
    @Override
    public R getMerchantByUserId(Long userId) {
        ConvenientMerchantVO convenientMerchantVO = this.baseMapper.selectMerchantByUserId(userId);
        if (nonNull(convenientMerchantVO)){
        if (nonNull(convenientMerchantVO)) {
            List<Long> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(convenientMerchantVO.getId());
            convenientMerchantVO.setServiceIds(serviceIds);
        }
        BigDecimal score = comShopFlowerEvaluateDAO.statisticsScore(convenientMerchantVO.getId());
        convenientMerchantVO.setScore(null==score ?BigDecimal.ZERO: NumberUtil.round(score, 1));
        convenientMerchantVO.setScore(null == score ? BigDecimal.ZERO : NumberUtil.round(score, 1));
        return R.ok(convenientMerchantVO);
    }
}