lidongdong
2022-12-06 2a212f983f35e1c569dfec3a172fb5f0c9f85fac
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java
@@ -1,22 +1,7 @@
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.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.panzhihua.common.utlis.Snowflake;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -24,38 +9,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.dao.ComActDAO;
import com.panzhihua.service_community.dao.ConvenientConsultationStatisticsDAO;
import com.panzhihua.service_community.dao.ConvenientMerchantDAO;
import com.panzhihua.service_community.dao.ConvenientProductDAO;
import com.panzhihua.service_community.dao.ConvenientServiceCategoryDAO;
import com.panzhihua.service_community.dao.ConvenientViewStatisticsDAO;
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,25 +59,32 @@
    private ConvenientConsultationStatisticsDAO convenientConsultationStatisticsDAO;
    @Resource
    private ConvenientViewStatisticsDAO convenientViewStatisticsDAO;
    @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());
        }
@@ -112,7 +98,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());
                });
            }
@@ -133,17 +119,22 @@
    @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("商家不存在");
        }
        BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
        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("西区社区");
            }
        }
@@ -160,11 +151,11 @@
            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());
            });
        }
        BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
        convenientMerchantDO.setIntroduction(convenientMerchantDTO.getIntroduction());
        this.baseMapper.updateById(convenientMerchantDO);
        return R.ok();
@@ -200,7 +191,7 @@
    @Override
    public R getMerchant(Long merchantId) {
        ConvenientMerchantVO convenientMerchantVO = this.baseMapper.selectMerchantById(merchantId);
        List<Long> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
        List<String> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
        convenientMerchantVO.setServiceIds(serviceIds);
        return R.ok(convenientMerchantVO);
    }
@@ -236,7 +227,7 @@
    @Override
    public R<ConvenientMerchantVO> getUserMerchantInfoByAccount(String account) {
        try {
            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfo(account + "_10");
            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfo(account + "_5");
            LoginUserInfoVO loginUserInfoVO =
                    JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
@@ -259,6 +250,20 @@
    }
    @Override
    public R<ConvenientMerchantVO> getMerchantInfoByAccount(String account) {
        try {
            List<ConvenientMerchantVO> merchantDetailByAccount = this.baseMapper.getMerchantDetailByAccount(account);
            if (CollUtil.isEmpty(merchantDetailByAccount)) {
                return R.fail(500, "该账号不存在");
            }
            ConvenientMerchantVO convenientMerchantVO = merchantDetailByAccount.get(0);
            return R.ok(convenientMerchantVO);
        } catch (Exception e) {
            return R.fail();
        }
    }
    @Override
    public R<ConvenientMerchantVO> getUserConvenientMerchantInfo(Long userId) {
        ConvenientMerchantDO merchantDO = this.baseMapper.selectOne(new QueryWrapper<ConvenientMerchantDO>()
                .lambda().eq(ConvenientMerchantDO::getUserId, userId));
@@ -268,7 +273,7 @@
        Long merchantId = merchantDO.getId();
        ConvenientMerchantVO convenientMerchantVO = new ConvenientMerchantVO();
        BeanUtils.copyProperties(merchantDO, convenientMerchantVO);
        List<Long> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
        List<String> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
        convenientMerchantVO.setServiceIds(serviceIds);
        Date nowDate = new Date();
        SimpleDateFormat mothFormat = new SimpleDateFormat("yyyy-MM");
@@ -298,11 +303,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("农产直销、综合商贸、冷链储运、中央厨房、检验检疫、农博会展、总部商务、综合服务。");
@@ -312,7 +317,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);
@@ -343,6 +348,7 @@
    /**
     * 小程序获取商家详情
     *
     * @param merchantId
     * @return
     */
@@ -443,6 +449,7 @@
    /**
     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
     *
     * @return
     */
    @Override
@@ -456,6 +463,7 @@
    /**
     * check商家/店铺是否有效
     *
     * @param userId
     * @return
     */
@@ -473,10 +481,31 @@
    @Override
    public R getMerchantByUserId(Long userId) {
        ConvenientMerchantVO convenientMerchantVO = this.baseMapper.selectMerchantByUserId(userId);
        if (nonNull(convenientMerchantVO)){
            List<Long> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(convenientMerchantVO.getId());
            convenientMerchantVO.setServiceIds(serviceIds);
        if (isNull(convenientMerchantVO)) {
            return R.fail("商家不存在");
        }
        Long merchantId = convenientMerchantVO.getId();
        List<String> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
        convenientMerchantVO.setServiceIds(serviceIds);
        BigDecimal score = comShopFlowerEvaluateDAO.statisticsScore(merchantId);
        convenientMerchantVO.setScore(null == score ? BigDecimal.ZERO : NumberUtil.round(score, 1));
        Date nowDate = new Date();
        SimpleDateFormat mothFormat = new SimpleDateFormat("yyyy-MM");
        SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd");
        String moth = mothFormat.format(nowDate);
        String day = dayFormat.format(nowDate);
        int consultationCount = convenientConsultationStatisticsDAO.selectTotalConsultationVolume(merchantId);
        int monthConsultationVolume = convenientConsultationStatisticsDAO.selectMonthConsultationVolume(merchantId, moth);
        int dayConsultationVolume = convenientConsultationStatisticsDAO.selectDayConsultationVolume(merchantId, day);
        Integer viewCount = convenientViewStatisticsDAO.selectTotalViewNum(merchantId);
        int monthViewNum = convenientViewStatisticsDAO.selectMonthViewNum(merchantId, moth);
        int dayViewNum = convenientViewStatisticsDAO.selectDayViewNum(merchantId, day);
        convenientMerchantVO.setConsultationVolume(consultationCount);
        convenientMerchantVO.setViewNum(viewCount);
        convenientMerchantVO.setMonthConsultationVolume(monthConsultationVolume);
        convenientMerchantVO.setDayConsultationVolume(dayConsultationVolume);
        convenientMerchantVO.setMonthViewNum(monthViewNum);
        convenientMerchantVO.setDayViewNum(dayViewNum);
        return R.ok(convenientMerchantVO);
    }
}