From d5bd38ef60044ef056a0525a6c5adff155ee55cd Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期四, 23 九月 2021 18:23:16 +0800 Subject: [PATCH] 便民服务小程序 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java | 149 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 128 insertions(+), 21 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java index 31ba566..a5e3fa5 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java @@ -1,5 +1,20 @@ 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 javax.annotation.Resource; + +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; @@ -9,34 +24,33 @@ 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.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.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.service_community.service.ConvenientMerchantService; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; - -import static java.util.Objects.isNull; -import static java.util.Objects.nonNull; -import static org.apache.commons.lang3.StringUtils.isNotBlank; /** * @title: ConvenientMerchantServiceImpl @@ -54,6 +68,12 @@ private ConvenientServiceCategoryDAO convenientServiceCategoryDAO; @Resource private ComActDAO comActDAO; + @Resource + private ConvenientProductDAO convenientProductDAO; + @Resource + private ConvenientConsultationStatisticsDAO convenientConsultationStatisticsDAO; + @Resource + private ConvenientViewStatisticsDAO convenientViewStatisticsDAO; @Override @Transactional(rollbackFor = Exception.class) @@ -119,6 +139,7 @@ convenientServiceCategoryDO.getName(), convenientMerchantDTO.getCreatedBy()); }); } + BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO); this.baseMapper.updateById(convenientMerchantDO); return R.ok(); } @@ -138,14 +159,6 @@ page.setSize(pageConvenientMerchantDTO.getPageSize()); page.setCurrent(pageConvenientMerchantDTO.getPageNum()); IPage<ConvenientMerchantVO> iPage = this.baseMapper.pageMerchant(page, pageConvenientMerchantDTO); - //填充服务范围 - List<ConvenientMerchantVO> records = iPage.getRecords(); - if (!records.isEmpty()) { - records.forEach(record -> { - String serviceScope = convenientServiceCategoryDAO.selectServiceScopeByMerchantId(record.getId()); - record.setServiceScope(serviceScope); - }); - } return R.ok(iPage); } @@ -206,10 +219,24 @@ if (isNull(merchantDO)) { return R.fail("商家不存在"); } + Long merchantId = merchantDO.getId(); ConvenientMerchantVO convenientMerchantVO = new ConvenientMerchantVO(); BeanUtils.copyProperties(merchantDO, convenientMerchantVO); - List<Long> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantDO.getId()); + List<Long> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId); convenientMerchantVO.setServiceIds(serviceIds); + 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 monthConsultationVolume = convenientConsultationStatisticsDAO.selectMonthConsultationVolume(merchantId, moth); + int dayConsultationVolume = convenientConsultationStatisticsDAO.selectDayConsultationVolume(merchantId, day); + int monthViewNum = convenientViewStatisticsDAO.selectMonthViewNum(merchantId, moth); + int dayViewNum = convenientViewStatisticsDAO.selectDayViewNum(merchantId, day); + convenientMerchantVO.setMonthConsultationVolume(monthConsultationVolume); + convenientMerchantVO.setDayConsultationVolume(dayConsultationVolume); + convenientMerchantVO.setMonthViewNum(monthViewNum); + convenientMerchantVO.setDayViewNum(dayViewNum); return R.ok(convenientMerchantVO); } @@ -249,4 +276,84 @@ String currentMon = simpleDateFormat.format(nowDate).concat("%"); return R.ok(this.baseMapper.getMerchantDetail(merchantId, currentMon)); } + + @Override + public R pageSearchMerchant(PageSearchDTO pageSearchDTO) { + Date nowDate = new Date(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM"); + String currentMon = simpleDateFormat.format(nowDate).concat("%"); + Page page = new Page<>(); + page.setSize(pageSearchDTO.getPageSize()); + page.setCurrent(pageSearchDTO.getPageNum()); + IPage<ConvenientMerchantVO> merchantVOIPage = this.baseMapper.pageSearchMerchant(page, pageSearchDTO, currentMon); + List<ConvenientMerchantVO> records = merchantVOIPage.getRecords(); + if (!records.isEmpty()) { + records.forEach(record -> { + List<ConvenientProductVO> merchantProduct = convenientProductDAO.getMerchantProduct(record.getId()); + List<ConvenientProductSpecificationVO> productSpecifications = convenientProductDAO.getProductSpecifications(record.getId()); + if (!merchantProduct.isEmpty()) { + if (merchantProduct.size() > 2) { + merchantProduct = merchantProduct.subList(0, 2); + } + merchantProduct.forEach(product -> { + List<ConvenientProductSpecificationVO> list = new ArrayList<>(); + productSpecifications.forEach(specification -> { + if (product.getId().equals(specification.getProductId())) { + list.add(specification); + } + }); + product.setProductSpecificationVOList(list); + }); + } + record.setProductVOList(merchantProduct); + }); + } + return R.ok(merchantVOIPage); + } + + @Override + public R consultMerchant(Long merchantId) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String nowDate = simpleDateFormat.format(new Date()); + ConvenientConsultationStatisticsDO statisticsDO = convenientConsultationStatisticsDAO.selectOne(new LambdaQueryWrapper<ConvenientConsultationStatisticsDO>() + .eq(ConvenientConsultationStatisticsDO::getMerchantId, merchantId).eq(ConvenientConsultationStatisticsDO::getStatisticDate, nowDate)); + if (isNull(statisticsDO)) { + convenientConsultationStatisticsDAO.createTodayStatistic(merchantId); + } else { + convenientConsultationStatisticsDAO.incrConsultationNum(merchantId, nowDate); + } + return R.ok(); + } + + @Override + public R incrMerchantView(Long merchantId) { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String nowDate = simpleDateFormat.format(new Date()); + ConvenientViewStatisticsDO statisticsDO = convenientViewStatisticsDAO.selectOne(new LambdaQueryWrapper<ConvenientViewStatisticsDO>() + .eq(ConvenientViewStatisticsDO::getMerchantId, merchantId).eq(ConvenientViewStatisticsDO::getStatisticDate, nowDate)); + if (isNull(statisticsDO)) { + convenientViewStatisticsDAO.createTodayStatistic(merchantId); + } else { + convenientViewStatisticsDAO.incrViewNum(merchantId, nowDate); + } + return R.ok(); + } + + @Override + public R exportMerchant(ExportMerchantDTO exportMerchantDTO) { + return R.ok(this.baseMapper.exportMerchant(exportMerchantDTO)); + } + + /** + * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中 + * @return + */ + @Override + public R timedTaskWriteDataToMerchantJobHandler() { + List<ConvenientConsultationStatisticsVO> consultationVOList = convenientConsultationStatisticsDAO.selectSumForConsultationNum(); + List<ConvenientViewStatisticsVO> viewVOList = convenientViewStatisticsDAO.selectSumForViewNum(); + this.baseMapper.batchUpdateMerchantConsultationNum(consultationVOList); + this.baseMapper.batchUpdateMerchantViewNum(viewVOList); + return R.ok(); + } } -- Gitblit v1.7.1