From 7d0310cafba32916c055ac0d04fef6b6c02c6eb7 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期二, 11 十月 2022 11:27:33 +0800
Subject: [PATCH] update
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java | 263 +++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 247 insertions(+), 16 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 83ea7a6..03e4a76 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
@@ -5,11 +5,14 @@
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;
@@ -23,22 +26,36 @@
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.model.vos.community.convenient.ExportMerchantVO;
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 lombok.extern.slf4j.Slf4j;
/**
* @title: ConvenientMerchantServiceImpl
@@ -48,6 +65,7 @@
* @date: 2021/09/16 16:14
*/
@Service
+@Slf4j
public class ConvenientMerchantServiceImpl extends ServiceImpl<ConvenientMerchantDAO, ConvenientMerchantDO> implements ConvenientMerchantService {
@Resource
@@ -56,15 +74,35 @@
private ConvenientServiceCategoryDAO convenientServiceCategoryDAO;
@Resource
private ComActDAO comActDAO;
+ @Resource
+ private ConvenientProductDAO convenientProductDAO;
+ @Resource
+ private ConvenientConsultationStatisticsDAO convenientConsultationStatisticsDAO;
+ @Resource
+ private ConvenientViewStatisticsDAO convenientViewStatisticsDAO;
+
+ private static final String DQ="510402";
+ private static final String RHQ="510411";
@Override
@Transactional(rollbackFor = Exception.class)
public R addMerchant(ConvenientMerchantDTO convenientMerchantDTO) {
- ComActDO comActDO = comActDAO.selectById(convenientMerchantDTO.getCommunityId());
ConvenientMerchantDO convenientMerchantDO = new ConvenientMerchantDO();
BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
+ if(convenientMerchantDTO.getCommunityId()==0){
+ if(DQ.equals(convenientMerchantDTO.getAreaCode())){
+ convenientMerchantDO.setCommunityName("东区社区");
+ }else if(RHQ.equals(convenientMerchantDTO.getAreaCode())){
+ convenientMerchantDO.setCommunityName("仁和区社区");
+ }else{
+ convenientMerchantDO.setCommunityName("西区社区");
+ }
+ }
+ else {
+ ComActDO comActDO = comActDAO.selectById(convenientMerchantDTO.getCommunityId());
+ convenientMerchantDO.setCommunityName(comActDO.getName());
+ }
convenientMerchantDO.setUserId(0L);
- convenientMerchantDO.setCommunityName(comActDO.getName());
convenientMerchantDO.setCreatedAt(new Date());
int insertResult = this.baseMapper.insert(convenientMerchantDO);
if (insertResult > 0) {
@@ -74,7 +112,7 @@
List<Long> serviceIds = convenientMerchantDTO.getServiceIds();
serviceIds.forEach(serviceId -> {
ConvenientServiceCategoryDO convenientServiceCategoryDO = convenientServiceCategoryDAO.selectById(serviceId);
- convenientServiceCategoryDAO.createMerchantServiceRelation(merchantId, serviceId,
+ convenientServiceCategoryDAO.createMerchantServiceRelation(Snowflake.getId(),merchantId, serviceId,
convenientServiceCategoryDO.getName(), convenientMerchantDTO.getCreatedBy());
});
}
@@ -82,7 +120,7 @@
//添加user
R addUserResult = userService.addConvenientMerchantUser(convenientMerchantDTO);
if (R.isOk(addUserResult)) {
- Long merchantUserId = ((Integer) addUserResult.getData()).longValue();
+ Long merchantUserId = Long.parseLong(addUserResult.getData().toString());
convenientMerchantDO.setUserId(merchantUserId);
this.baseMapper.updateById(convenientMerchantDO);
} else {
@@ -102,7 +140,12 @@
Long communityId = convenientMerchantDTO.getCommunityId();
if (nonNull(communityId)) {
ComActDO comActDO = comActDAO.selectById(communityId);
- convenientMerchantDO.setCommunityName(comActDO.getName());
+ if(comActDO!=null){
+ convenientMerchantDO.setCommunityName(comActDO.getName());
+ }
+ else {
+ convenientMerchantDO.setCommunityName("西区社区");
+ }
}
String account = convenientMerchantDTO.getAccount();
if (isNotBlank(account)) {
@@ -117,10 +160,12 @@
convenientServiceCategoryDAO.deleteMerchantServiceRelation(merchantId);
serviceIds.forEach(serviceId -> {
ConvenientServiceCategoryDO convenientServiceCategoryDO = convenientServiceCategoryDAO.selectById(serviceId);
- convenientServiceCategoryDAO.createMerchantServiceRelation(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();
}
@@ -140,13 +185,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);
}
@@ -161,7 +207,15 @@
@Override
public R disableOrEnableMerchant(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
+ List<ConvenientMerchantDO> convenientMerchantDOList = this.baseMapper.selectList(new QueryWrapper<ConvenientMerchantDO>()
+ .lambda().in(ConvenientMerchantDO::getId, disableOrEnableConvenientMerchantDTO.getIds()));
+ List<Long> userIds = convenientMerchantDOList.stream().map(ConvenientMerchantDO::getUserId).collect(Collectors.toList());
+ disableOrEnableConvenientMerchantDTO.setUserIds(userIds);
R result = userService.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO);
+ int type = disableOrEnableConvenientMerchantDTO.getType().intValue();
+ if (type == 2) {
+ this.baseMapper.batchUpdateBusinessStatus(convenientMerchantDOList, 0);
+ }
if (R.isOk(result)) {
return R.ok();
}
@@ -170,9 +224,12 @@
@Override
public R resetPasswordMerchant(ResetPasswordConvenientMerchantDTO resetPasswordConvenientMerchantDTO) {
+ List<ConvenientMerchantDO> convenientMerchantDOList = this.baseMapper.selectList(new QueryWrapper<ConvenientMerchantDO>()
+ .lambda().in(ConvenientMerchantDO::getId, resetPasswordConvenientMerchantDTO.getIds()));
+ List<Long> userIds = convenientMerchantDOList.stream().map(ConvenientMerchantDO::getUserId).collect(Collectors.toList());
EventGridMemberPassResetDTO eventGridMemberPassResetDTO = new EventGridMemberPassResetDTO();
eventGridMemberPassResetDTO.setPassword(resetPasswordConvenientMerchantDTO.getPassword());
- eventGridMemberPassResetDTO.setIds(resetPasswordConvenientMerchantDTO.getIds());
+ eventGridMemberPassResetDTO.setIds(userIds);
return userService.gridMemberPassReset(eventGridMemberPassResetDTO);
}
@@ -208,10 +265,28 @@
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 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);
}
@@ -223,7 +298,27 @@
Page page = new Page<>();
page.setSize(pagePopularMerchantDTO.getPageSize());
page.setCurrent(pagePopularMerchantDTO.getPageNum());
- IPage<ConvenientMerchantVO> merchantVOList = this.baseMapper.getPopularMerchants(page, pagePopularMerchantDTO.getCommunityId(), currentMon);
+ 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();
+ merchantVO.setName("金沙江智慧物流商贸城");
+ merchantVO.setLogo("https://www.psciio.com//idcard/0694d975ed4d4c49bcfb728a678518f2.jpg");
+ merchantVO.setIntroduction("农产直销、综合商贸、冷链储运、中央厨房、检验检疫、农博会展、总部商务、综合服务。");
+ merchantVO.setServiceScope("");
+ merchantVO.setConsultationVolume(0);
+ merchantVO.setMonthConsultationVolume(0);
+ merchantVOS.add(merchantVO);
+ //第一页默认把犇师傅维修中心加载到第一个
+ List<ConvenientMerchantVO> merchantList = this.baseMapper.selectMerchantByName(pagePopularMerchantDTO.getCommunityId(), currentMon);
+ if(merchantList != null && merchantList.size() > 0){
+ merchantVOS.addAll(merchantList);
+ merchantVOS.addAll(merchantVOList.getRecords());
+ merchantVOList.setRecords(merchantVOS);
+ }
+
+ }
return R.ok(merchantVOList);
}
@@ -236,6 +331,142 @@
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);
}
+
+ /**
+ * 小程序获取商家详情
+ * @param merchantId
+ * @return
+ */
+ @Override
+ public R getMerchantDetail(Long merchantId) {
+ Date nowDate = new Date();
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
+ 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();
+ }
+
+ /**
+ * check商家/店铺是否有效
+ * @param userId
+ * @return
+ */
+ @Override
+ public Boolean checkStoreIsValid(Long userId) {
+ R<LoginUserInfoVO> loginUserInfo = userService.getUserInfoByUserId(userId.toString());
+ LoginUserInfoVO loginUserInfoVO =
+ JSONObject.parseObject(JSONObject.toJSONString(loginUserInfo.getData()), LoginUserInfoVO.class);
+ if (isNull(loginUserInfoVO) || !loginUserInfoVO.getType().equals(10) || loginUserInfoVO.getStatus() != 1) {
+ return false;
+ }
+ return true;
+ }
}
--
Gitblit v1.7.1