From 09e41d546b030b47661877d4b8141c88584d7598 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期五, 24 九月 2021 16:03:52 +0800
Subject: [PATCH] Merge branch 'test' into 'four_member'
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java | 184 +++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 164 insertions(+), 20 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..f9576b7 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,21 @@
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 com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO;
+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 +25,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 +69,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 +140,7 @@
convenientServiceCategoryDO.getName(), convenientMerchantDTO.getCreatedBy());
});
}
+ BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
this.baseMapper.updateById(convenientMerchantDO);
return R.ok();
}
@@ -138,13 +160,14 @@
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);
- });
+ if (nonNull(pageConvenientMerchantDTO.getServiceId())) {
+ 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 +229,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);
}
@@ -234,6 +271,13 @@
page.setSize(pageClassifyMerchantDTO.getPageSize());
page.setCurrent(pageClassifyMerchantDTO.getPageNum());
IPage<ConvenientMerchantVO> merchantVOList = this.baseMapper.getClassifyMerchants(page, pageClassifyMerchantDTO, currentMon);
+ List<ConvenientMerchantVO> records = merchantVOList.getRecords();
+ if (!records.isEmpty()) {
+ records.forEach(record -> {
+ String serviceScope = convenientServiceCategoryDAO.selectServiceScopeByMerchantId(record.getId());
+ record.setServiceScope(serviceScope);
+ });
+ }
return R.ok(merchantVOList);
}
@@ -249,4 +293,104 @@
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) {
+ ConvenientMerchantDO merchantDO = this.baseMapper.selectById(merchantId);
+ if (isNull(merchantDO)) {
+ return R.fail("商家不存在");
+ }
+ 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) {
+ ConvenientMerchantDO merchantDO = this.baseMapper.selectById(merchantId);
+ if (isNull(merchantDO)) {
+ return R.fail("商家不存在");
+ }
+ 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) {
+ List<Long> needExportIds = exportMerchantDTO.getIds();
+ if (nonNull(needExportIds) && !needExportIds.isEmpty()) {
+ //根据id导出
+ return R.ok(this.baseMapper.exportMerchantByIds(needExportIds));
+ }
+ List<ExportMerchantVO> exportMerchantVOList = this.baseMapper.exportMerchantBySearch(exportMerchantDTO);
+ if (nonNull(exportMerchantDTO.getServiceId()) && !exportMerchantVOList.isEmpty()) {
+ exportMerchantVOList.forEach(merchant -> {
+ String serviceScope = convenientServiceCategoryDAO.selectServiceScopeByMerchantId(merchant.getId());
+ merchant.setServiceScope(serviceScope);
+ });
+ }
+ return R.ok(exportMerchantVOList);
+ }
+
+ /**
+ * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
+ * @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