From d6a0c57043e8cc20694a3c678bf8e3a8f28f6499 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 29 五月 2025 11:20:14 +0800
Subject: [PATCH] 新增加用户端接口
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java | 772 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 755 insertions(+), 17 deletions(-)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
index 4c4c2f8..6ddda72 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
@@ -1,15 +1,41 @@
package com.ruoyi.system.service.impl.config;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ibm.icu.util.LocaleData;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.constant.ConfigEnum;
-import com.ruoyi.system.domain.dto.MgtServiceMobileEditDto;
+import com.ruoyi.system.api.constant.SecurityConstant;
+import com.ruoyi.system.api.domain.dto.BoardMemberTotalDto;
+import com.ruoyi.system.api.domain.poji.config.Activeness;
+import com.ruoyi.system.api.domain.poji.sys.SysUser;
+import com.ruoyi.system.api.domain.vo.AppOtherConfigGetVo;
+import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
+import com.ruoyi.system.api.service.RemoteActivityService;
+import com.ruoyi.system.api.service.RemoteMemberService;
+import com.ruoyi.system.api.service.RemoteOrderService;
+import com.ruoyi.system.api.service.RemoteShopService;
+import com.ruoyi.system.domain.dto.*;
+import com.ruoyi.system.domain.pojo.config.Advert;
import com.ruoyi.system.domain.pojo.config.CustomConfig;
+import com.ruoyi.system.domain.vo.MgtActivenessVo;
+import com.ruoyi.system.domain.vo.MgtAllCustomConfigVo;
+import com.ruoyi.system.domain.vo.MgtOperLogPageVo;
import com.ruoyi.system.mapper.config.CustomConfigMapper;
-import com.ruoyi.system.service.config.CustomConfigService;
+import com.ruoyi.system.service.config.*;
+import com.ruoyi.system.service.sys.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.util.Date;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
/**
* <p>
@@ -25,25 +51,57 @@
@Resource
private CustomConfigMapper customConfigMapper;
+ @Resource
+ private AdvertService advertService;
+
+ @Resource
+ private ActivenessService activenessService;
+
+ @Resource
+ private RemoteMemberService remoteMemberService;
+
+ @Resource
+ private RecommendCooperationService recommendCooperationService;
+
+ @Resource
+ private RemoteShopService remoteShopService;
+
+ @Resource
+ private RemoteOrderService remoteOrderService;
+
+ @Resource
+ private RemoteActivityService remoteActivityService;
+
+ @Resource
+ private StaffSuggestService staffSuggestService;
+
+ @Resource
+ private RedisService redisService;
+
+ @Autowired
+ private ISysUserService sysUserService;
+
+
+
+
/**
- * @description 通过key获取系统自定义配置
- * @author jqs
- * @date 2023/6/6 11:55
* @param key
- * @return CustomConfig
+ * @return CustomConfig
+ * @description 通过key获取系统自定义配置
+ * @author jqs
+ * @date 2023/6/6 11:55
*/
@Override
- public CustomConfig getByKey(String key){
+ public CustomConfig getByKey(String key) {
return customConfigMapper.getByKey(key);
}
-
/**
- * @description 修改客服号码
- * @author jqs
- * @date 2023/6/6 11:53
* @param mgtServiceMobileEditDto
- * @return void
+ * @return void
+ * @description 修改客服号码
+ * @author jqs
+ * @date 2023/6/6 11:53
*/
@Override
public void editServiceMobile(MgtServiceMobileEditDto mgtServiceMobileEditDto) {
@@ -53,14 +111,694 @@
if (customConfig == null) {
customConfig = new CustomConfig();
customConfig.setCreateTime(new Date());
+ customConfig.setDelFlag(0);
}
// 设置配置的类型、键、名称、值和更新时间
- customConfig.setType(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyType());
- customConfig.setKey(ConfigEnum.PLATFORM_SERVICE_PHONE.getKey());
- customConfig.setName(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyName());
- customConfig.setValue(mgtServiceMobileEditDto.getServiceMobile());
+ customConfig.setConfigType(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyType());
+ customConfig.setConfigKey(ConfigEnum.PLATFORM_SERVICE_PHONE.getKey());
+ customConfig.setConfigName(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyName());
+ customConfig.setConfigValue(mgtServiceMobileEditDto.getServiceMobile());
customConfig.setUpdateTime(new Date());
// 保存或更新配置
this.saveOrUpdate(customConfig);
}
+
+ /**
+ * @description 修改客服二维码
+ * @author jqs
+ * @date 2023/7/25 16:17
+ * @param mgtServiceCodeEditDto
+ * @return void
+ */
+ @Override
+ public void editServiceCode(MgtServiceCodeEditDto mgtServiceCodeEditDto){
+ // 获取平台服务电话的配置
+ CustomConfig customConfig = getByKey(ConfigEnum.PLATFORM_SERVICE_CODE.getKey());
+ // 如果配置不存在,则创建一个新的配置
+ if (customConfig == null) {
+ customConfig = new CustomConfig();
+ customConfig.setCreateTime(new Date());
+ customConfig.setDelFlag(0);
+ }
+ // 设置配置的类型、键、名称、值和更新时间
+ customConfig.setConfigType(ConfigEnum.PLATFORM_SERVICE_CODE.getKeyType());
+ customConfig.setConfigKey(ConfigEnum.PLATFORM_SERVICE_CODE.getKey());
+ customConfig.setConfigName(ConfigEnum.PLATFORM_SERVICE_CODE.getKeyName());
+ customConfig.setConfigValue(mgtServiceCodeEditDto.getServiceCodeUrl());
+ customConfig.setUpdateTime(new Date());
+ // 保存或更新配置
+ this.saveOrUpdate(customConfig);
+ }
+
+ /**
+ * @description 修改统一分成
+ * @author jqs
+ * @date 2023/9/4 18:05
+ * @param mgtShopCommonProportionEditDto
+ * @return void
+ */
+ @Override
+ public void editShopProportion(MgtShopCommonProportionEditDto mgtShopCommonProportionEditDto){
+ // 获取平台统一分成的配置
+ CustomConfig customConfig = getByKey(ConfigEnum.SHOP_COMMON_PROPORTION.getKey());
+ // 如果配置不存在,则创建一个新的配置
+ if (customConfig == null) {
+ customConfig = new CustomConfig();
+ customConfig.setCreateTime(new Date());
+ customConfig.setDelFlag(0);
+ }
+ // 设置配置的类型、键、名称、值和更新时间
+ customConfig.setConfigType(ConfigEnum.SHOP_COMMON_PROPORTION.getKeyType());
+ customConfig.setConfigKey(ConfigEnum.SHOP_COMMON_PROPORTION.getKey());
+ customConfig.setConfigName(ConfigEnum.SHOP_COMMON_PROPORTION.getKeyName());
+ customConfig.setConfigValue(mgtShopCommonProportionEditDto.getShopCommonProportion());
+ customConfig.setUpdateTime(new Date());
+ // 保存或更新配置
+ this.saveOrUpdate(customConfig);
+ redisService.setCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION,mgtShopCommonProportionEditDto.getShopCommonProportion());
+ }
+
+ /**
+ * @param
+ * @return MgtCustomConfigVo
+ * @description 平台获取自定义配置
+ * @author jqs
+ * @date 2023/6/7 15:02
+ */
+ @Override
+ public MgtAllCustomConfigVo getAllCustomConfig() {
+ MgtAllCustomConfigVo mgtAllCustomConfigVo = new MgtAllCustomConfigVo();
+ //获取自定义配置
+ List<CustomConfig> customConfigList = customConfigMapper.selectList(new LambdaQueryWrapper<CustomConfig>().eq(CustomConfig::getDelFlag, 0));
+ Optional.ofNullable(customConfigList).ifPresent(list -> {
+ Map<String, CustomConfig> configMap = list.stream().collect(Collectors.toMap(CustomConfig::getConfigKey, Function.identity()));
+ // 遍历配置映射,设置相应的属性值
+ configMap.forEach((key, value) -> {
+ switch (key) {
+ case "SHARE_INTEGRAL":
+ mgtAllCustomConfigVo.setShareIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "SUGGEST_PLATFORM_INTEGRAL":
+ mgtAllCustomConfigVo.setSuggestPlatformIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "SIGN_IN_INTEGRAL":
+ mgtAllCustomConfigVo.setSignInIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "SUGGEST_SHOP_INTEGRAL":
+ mgtAllCustomConfigVo.setSuggestShopIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "PAY_MONEY_INTEGRAL":
+ mgtAllCustomConfigVo.setPayMoneyIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "ORDER_AUTO_CANCEL_TIME":
+ mgtAllCustomConfigVo.setOrderAutoCancelTime(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "HOME_STYLE":
+ mgtAllCustomConfigVo.setHomeStyle(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "SHOP_EMERGENCY_DEGREE":
+ mgtAllCustomConfigVo.setShopEmergencyDegree(value.getConfigValue());
+ break;
+ case "SHOP_COMMON_PROPORTION":
+ mgtAllCustomConfigVo.setShopCommonProportion(value.getConfigValue());
+ break;
+ case "SHOP_FOLLOW_TYPE":
+ mgtAllCustomConfigVo.setShopFollowType(value.getConfigValue());
+ break;
+ case "SHOP_CUSTOM_STATUS":
+ mgtAllCustomConfigVo.setShopCustomStatus(value.getConfigValue());
+ break;
+ case "SHOP_SOURCE_CHANNEL":
+ mgtAllCustomConfigVo.setShopSourceChannel(value.getConfigValue());
+ break;
+ case "MEMBER_SOURCE_CHANNEL":
+ mgtAllCustomConfigVo.setMemberSourceChannel(value.getConfigValue());
+ break;
+ case "MEMBER_CHARACTER":
+ mgtAllCustomConfigVo.setMemberCharacter(value.getConfigValue());
+ break;
+ case "MEMBER_LEVEL":
+ mgtAllCustomConfigVo.setMemberLevel(value.getConfigValue());
+ break;
+ case "MEMBER_TYPE":
+ mgtAllCustomConfigVo.setMemberType(value.getConfigValue());
+ break;
+ case "NURSE_PROBLEM":
+ mgtAllCustomConfigVo.setNurseProblem(value.getConfigValue());
+ break;
+ case "STORE_COURSE_DISPLAY_NAME":
+ mgtAllCustomConfigVo.setStoreCourseDisplayName(value.getConfigValue());
+ break;
+ case "STORE_COURSE_DISPLAY_PASSWORD":
+ mgtAllCustomConfigVo.setStoreCourseDisplayPassword(value.getConfigValue());
+ break;
+ default:
+ break;
+ }
+ });
+ });
+ //获取广告配置
+ Advert advert = advertService.getAdvert();
+ if (advert != null) {
+ mgtAllCustomConfigVo.setHomeSlogan(advert.getAdContent());
+ mgtAllCustomConfigVo.setHomeLogo(advert.getLogoUrl());
+ mgtAllCustomConfigVo.setAdUrl(advert.getAdUrl());
+ mgtAllCustomConfigVo.setTargetType(advert.getTargetType());
+ mgtAllCustomConfigVo.setLinkType(advert.getLinkType());
+ mgtAllCustomConfigVo.setLinkUrl(advert.getLinkUrl());
+ mgtAllCustomConfigVo.setJumpType(advert.getJumpType());
+ mgtAllCustomConfigVo.setJumpId(advert.getJumpId());
+ }
+ //获取活跃度配置
+ List<Activeness> activenessList = activenessService.listActiveness();
+ if (activenessList != null && !activenessList.isEmpty()) {
+ List<MgtActivenessVo> mgtActivenessVoList = activenessList.stream()
+ .map(activeness -> {
+ MgtActivenessVo mgtActivenessVo = new MgtActivenessVo();
+ mgtActivenessVo.setActivenessId(activeness.getActivenessId());
+ mgtActivenessVo.setActivenessName(activeness.getActivenessName());
+ mgtActivenessVo.setStartDay(activeness.getStartDay());
+ mgtActivenessVo.setEndDay(activeness.getEndDay());
+ return mgtActivenessVo;
+ })
+ .collect(Collectors.toList());
+ mgtAllCustomConfigVo.setMgtActivenessVoList(mgtActivenessVoList);
+ }
+ return mgtAllCustomConfigVo;
+ }
+
+
+ /**
+ * @param mgtOtherConfigEditDto
+ * @return void
+ * @description 修改其他设置
+ * @author jqs
+ * @date 2023/6/7 16:07
+ */
+ @Override
+ public void editOtherConfig(MgtOtherConfigEditDto mgtOtherConfigEditDto) {
+ // 获取当前时间
+ Date updateTime = new Date();
+ // 删除历史配置
+ deletePastConfig(updateTime);
+ // 新建配置
+ createNewConfig(mgtOtherConfigEditDto, updateTime);
+ }
+
+
+ /**
+ * 修改门店课程配置
+ * @param mgtStoreCurriculumEditDto
+ */
+ @Override
+ public void editStoreCurriculum(MgtStoreCurriculumEditDto mgtStoreCurriculumEditDto) {
+ customConfigMapper.delete(new QueryWrapper<CustomConfig>().eq("config_type", ConfigEnum.STORE_COURSE_DISPLAY_NAME.getKeyType())
+ .eq("config_key", ConfigEnum.STORE_COURSE_DISPLAY_NAME.getKey()));
+ customConfigMapper.delete(new QueryWrapper<CustomConfig>().eq("config_type", ConfigEnum.STORE_COURSE_DISPLAY_PASSWORD.getKeyType())
+ .eq("config_key", ConfigEnum.STORE_COURSE_DISPLAY_PASSWORD.getKey()));
+
+ CustomConfig customConfig = new CustomConfig();
+ customConfig.setDelFlag(0);
+ customConfig.setConfigType(2);
+ customConfig.setConfigKey(ConfigEnum.STORE_COURSE_DISPLAY_NAME.getKey());
+ customConfig.setConfigName(ConfigEnum.STORE_COURSE_DISPLAY_NAME.getKeyName());
+ customConfig.setCreateTime(new Date());
+ customConfig.setUpdateTime(new Date());
+ customConfig.setConfigValue(mgtStoreCurriculumEditDto.getStoreCourseDisplayName());
+ this.saveOrUpdate(customConfig);
+
+ customConfig = new CustomConfig();
+ customConfig.setDelFlag(0);
+ customConfig.setConfigType(2);
+ customConfig.setConfigKey(ConfigEnum.STORE_COURSE_DISPLAY_PASSWORD.getKey());
+ customConfig.setConfigName(ConfigEnum.STORE_COURSE_DISPLAY_PASSWORD.getKeyName());
+ customConfig.setCreateTime(new Date());
+ customConfig.setUpdateTime(new Date());
+ customConfig.setConfigValue(mgtStoreCurriculumEditDto.getStoreCourseDisplayPassword());
+ this.saveOrUpdate(customConfig);
+ }
+
+
+
+ /**
+ * @param updateTime
+ * @return void
+ * @description 删除历史配置
+ * @author jqs
+ * @date 2023/6/7 16:37
+ */
+ private void deletePastConfig(Date updateTime) {
+ List<CustomConfig> customConfigList = customConfigMapper.selectList(new LambdaQueryWrapper<CustomConfig>()
+ .eq(CustomConfig::getDelFlag, 0)
+ .eq(CustomConfig::getConfigType, 2));
+ for (CustomConfig customConfig : customConfigList) {
+ customConfig.setDelFlag(1);
+ customConfig.setUpdateTime(updateTime);
+ }
+ this.saveOrUpdateBatch(customConfigList);
+ }
+
+ /**
+ * @param mgtOtherConfigEditDto
+ * @param updateTime
+ * @return void
+ * @description 新建配置
+ * @author jqs
+ * @date 2023/6/7 16:37
+ */
+ private void createNewConfig(MgtOtherConfigEditDto mgtOtherConfigEditDto, Date updateTime) {
+ for (ConfigEnum configEnum : ConfigEnum.values()) {
+ CustomConfig customConfig = new CustomConfig();
+ customConfig.setDelFlag(0);
+ customConfig.setConfigType(configEnum.getKeyType());
+ customConfig.setConfigKey(configEnum.getKey());
+ customConfig.setConfigName(configEnum.getKeyName());
+ customConfig.setCreateTime(updateTime);
+ customConfig.setUpdateTime(updateTime);
+ switch (configEnum) {
+ //分享小程序可获得积分
+ case SHARE_INTEGRAL:
+ customConfig.setConfigValue(mgtOtherConfigEditDto.getShareIntegral().toString());
+ this.saveOrUpdate(customConfig);
+ break;
+ //平台建议可获得积分
+ case SUGGEST_PLATFORM_INTEGRAL:
+ customConfig.setConfigValue(mgtOtherConfigEditDto.getSuggestPlatformIntegral().toString());
+ this.saveOrUpdate(customConfig);
+ break;
+ //每日签到可获得积分
+ case SIGN_IN_INTEGRAL:
+ customConfig.setConfigValue(mgtOtherConfigEditDto.getSignInIntegral().toString());
+ this.saveOrUpdate(customConfig);
+ break;
+ //门店建议可获得积分
+ case SUGGEST_SHOP_INTEGRAL:
+ customConfig.setConfigValue(mgtOtherConfigEditDto.getSuggestShopIntegral().toString());
+ this.saveOrUpdate(customConfig);
+ break;
+ //C端订单自动取消时间
+ case ORDER_AUTO_CANCEL_TIME:
+ customConfig.setConfigValue(mgtOtherConfigEditDto.getOrderAutoCancelTime().toString());
+ redisService.setCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME,mgtOtherConfigEditDto.getOrderAutoCancelTime());
+ this.saveOrUpdate(customConfig);
+ break;
+ //购物满1元可获得积分
+ case PAY_MONEY_INTEGRAL:
+ customConfig.setConfigValue(mgtOtherConfigEditDto.getPayMoneyIntegral().toString());
+ redisService.setCacheObject(SecurityConstant.PAY_MONEY_INTEGRAL,mgtOtherConfigEditDto.getPayMoneyIntegral());
+ this.saveOrUpdate(customConfig);
+ break;
+ //首页风格
+ case HOME_STYLE:
+ customConfig.setConfigValue(mgtOtherConfigEditDto.getHomeStyle().toString());
+ this.saveOrUpdate(customConfig);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+
+ /**
+ * @param mgtShopConfigEditDto
+ * @return void
+ * @description 修改合作商配置
+ * @author jqs
+ * @date 2023/6/7 16:41
+ */
+ @Override
+ public void editShopConfig(MgtShopConfigEditDto mgtShopConfigEditDto) {
+ // 获取当前时间
+ Date updateTime = new Date();
+ // 查询所有未删除、类型为3的自定义配置
+ List<CustomConfig> customConfigList = customConfigMapper.selectList(
+ new LambdaQueryWrapper<CustomConfig>()
+ .eq(CustomConfig::getDelFlag, 0)
+ .eq(CustomConfig::getConfigType, 3)
+ );
+ if (customConfigList != null && !customConfigList.isEmpty()) {
+ String key;
+ String oldValue;
+ String newValue = null;
+ List<CustomConfig> updatedCustomConfigs = new ArrayList<>();
+ // 遍历配置列表,根据 key 更新配置值
+ for (CustomConfig customConfig : customConfigList) {
+ key = customConfig.getConfigKey();
+ oldValue = customConfig.getConfigValue();
+ switch (key) {
+ case "SHOP_EMERGENCY_DEGREE":
+ newValue = mgtShopConfigEditDto.getShopEmergencyDegree();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "SHOP_FOLLOW_TYPE":
+ newValue = mgtShopConfigEditDto.getShopFollowType();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "SHOP_CUSTOM_STATUS":
+ newValue = mgtShopConfigEditDto.getShopCustomStatus();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "SHOP_SOURCE_CHANNEL":
+ newValue = mgtShopConfigEditDto.getShopSourceChannel();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "SHOP_COMMON_PROPORTION":
+ newValue = mgtShopConfigEditDto.getShopCommonProportion();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ updatedCustomConfigs.add(customConfig);
+ redisService.setCacheObject(SecurityConstant.SHOP_COMMON_PROPORTION,mgtShopConfigEditDto.getShopCommonProportion());
+ break;
+ default:
+ break;
+ }
+
+ }
+ this.saveOrUpdateBatch(updatedCustomConfigs);
+ } else {
+ // 如果没有配置,则创建新配置
+ createNewConfig(ConfigEnum.SHOP_EMERGENCY_DEGREE, mgtShopConfigEditDto.getShopEmergencyDegree(), updateTime);
+ createNewConfig(ConfigEnum.SHOP_FOLLOW_TYPE, mgtShopConfigEditDto.getShopFollowType(), updateTime);
+ createNewConfig(ConfigEnum.SHOP_CUSTOM_STATUS, mgtShopConfigEditDto.getShopCustomStatus(), updateTime);
+ createNewConfig(ConfigEnum.SHOP_SOURCE_CHANNEL, mgtShopConfigEditDto.getShopSourceChannel(), updateTime);
+ createNewConfig(ConfigEnum.SHOP_COMMON_PROPORTION, mgtShopConfigEditDto.getShopCommonProportion(), updateTime);
+ }
+ }
+
+ /**
+ * @description 修改会员配置
+ * @author jqs
+ * @date 2023/6/7 17:16
+ * @param mgtMemberConfigEditDto
+ * @return void
+ */
+ @Override
+ public void editMemberConfig(MgtMemberConfigEditDto mgtMemberConfigEditDto){
+ // 获取当前时间
+ Date updateTime = new Date();
+ // 查询所有未删除、类型为3的自定义配置
+ List<CustomConfig> customConfigList = customConfigMapper.selectList(
+ new LambdaQueryWrapper<CustomConfig>()
+ .eq(CustomConfig::getDelFlag, 0)
+ .eq(CustomConfig::getConfigType, 4)
+ );
+ if (customConfigList != null && !customConfigList.isEmpty()) {
+ String key;
+ String oldValue;
+ String newValue = null;
+ List<CustomConfig> updatedCustomConfigs = new ArrayList<>();
+ // 遍历配置列表,根据 key 更新配置值
+ for (CustomConfig customConfig : customConfigList) {
+ key = customConfig.getConfigKey();
+ oldValue = customConfig.getConfigValue();
+ switch (key) {
+ case "MEMBER_SOURCE_CHANNEL":
+ newValue = mgtMemberConfigEditDto.getMemberSourceChannel();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "MEMBER_CHARACTER":
+ newValue = mgtMemberConfigEditDto.getMemberCharacter();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "MEMBER_LEVEL":
+ newValue = mgtMemberConfigEditDto.getMemberLevel();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "MEMBER_TYPE":
+ newValue = mgtMemberConfigEditDto.getMemberType();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ case "NURSE_PROBLEM":
+ newValue = mgtMemberConfigEditDto.getNurseProblem();
+ customConfig.setConfigValue(newValue);
+ customConfig.setUpdateTime(updateTime);
+ if(oldValue!=null&&!oldValue.isEmpty()){
+ handleChangeConfig(oldValue, newValue, key);
+ }
+ updatedCustomConfigs.add(customConfig);
+ break;
+ default:
+ break;
+ }
+ }
+ this.saveOrUpdateBatch(updatedCustomConfigs);
+ } else {
+ // 如果没有配置,则创建新配置
+ createNewConfig(ConfigEnum.MEMBER_SOURCE_CHANNEL, mgtMemberConfigEditDto.getMemberSourceChannel(), updateTime);
+ createNewConfig(ConfigEnum.MEMBER_CHARACTER, mgtMemberConfigEditDto.getMemberCharacter(), updateTime);
+ createNewConfig(ConfigEnum.MEMBER_LEVEL, mgtMemberConfigEditDto.getMemberLevel(), updateTime);
+ createNewConfig(ConfigEnum.MEMBER_TYPE, mgtMemberConfigEditDto.getMemberType(), updateTime);
+ createNewConfig(ConfigEnum.NURSE_PROBLEM, mgtMemberConfigEditDto.getNurseProblem(), updateTime);
+ }
+ }
+
+ /**
+ * @description 新建配置
+ * @author jqs
+ * @date 2023/6/7 17:06
+ * @param configEnum
+ * @param value
+ * @param updateTime
+ * @return void
+ */
+ private void createNewConfig(ConfigEnum configEnum, String value, Date updateTime) {
+ CustomConfig customConfig = new CustomConfig();
+ customConfig.setDelFlag(0);
+ customConfig.setConfigType(configEnum.getKeyType());
+ customConfig.setConfigKey(configEnum.getKey());
+ customConfig.setConfigName(configEnum.getKeyName());
+ customConfig.setConfigValue(value);
+ customConfig.setCreateTime(updateTime);
+ customConfig.setUpdateTime(updateTime);
+ this.saveOrUpdate(customConfig);
+ }
+
+ /**
+ * @description 处理变动
+ * @author jqs
+ * @date 2023/6/7 17:06
+ * @param oldValue
+ * @param newValue
+ * @param key
+ * @return void
+ */
+ private void handleChangeConfig(String oldValue, String newValue, String key) {
+ Set<String> oldSet = new HashSet<>(Arrays.asList(oldValue.split(",")));
+ Set<String> newSet = new HashSet<>(Arrays.asList(newValue.split(",")));
+ List<String> changeList = new ArrayList<>(oldSet);
+ changeList.removeAll(newSet);
+ if(changeList!=null&&!changeList.isEmpty()){
+ switch(key){
+ case "SHOP_EMERGENCY_DEGREE":
+ break;
+ case "SHOP_FOLLOW_TYPE":
+ break;
+ case "SHOP_CUSTOM_STATUS":
+ break;
+ case "SHOP_SOURCE_CHANNEL":
+ break;
+ case "MEMBER_SOURCE_CHANNEL":
+ break;
+ case "MEMBER_CHARACTER":
+ break;
+ case "MEMBER_LEVEL":
+ break;
+ case "MEMBER_TYPE":
+ break;
+ case "NURSE_PROBLEM":
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+
+ /**
+ * @description 分页获取操作日志
+ * @author jqs
+ * @date 2023/6/8 11:52
+ * @param page
+ * @param mgtOperLogPageDto
+ * @return List<MgtOperLogPageVo>
+ */
+ @Override
+ public List<MgtOperLogPageVo> pageOperLog(Page page, MgtOperLogPageDto mgtOperLogPageDto){
+ return customConfigMapper.pageOperLog(page, mgtOperLogPageDto);
+ }
+
+ /**
+ * @description 删除日志
+ * @author jqs
+ * @date 2023/8/1 19:39
+ * @param
+ * @return void
+ */
+ @Override
+ public void deleteOperlog(){
+ customConfigMapper.deleteOperlog();
+ }
+
+ /**
+ * @description
+ * @author jqs
+ * @date 2023/7/13 15:52
+ * @param
+ * @return List<String>
+ */
+ @Override
+ public List<String> listOperTitle(){
+ return customConfigMapper.listOperTitle();
+ }
+
+ /**
+ * @description 获取单个自定义配置
+ * @author jqs
+ * @date 2023/6/9 15:40
+ * @param mgtCustomConfigDto
+ * @return MgtCustomConfigVo
+ */
+ @Override
+ public List<String> getCustomConfig(MgtCustomConfigDto mgtCustomConfigDto){
+ CustomConfig customConfig = this.getByKey(mgtCustomConfigDto.getConfigType());
+ List<String> list = new ArrayList<>();
+ if(customConfig!=null&&StringUtils.isNotBlank(customConfig.getConfigValue())){
+ list = Arrays.asList(customConfig.getConfigValue().split(","));
+ }
+ return list;
+ }
+
+ /**
+ * @description getBulletinBoard
+ * @param
+ * @return MgtBulletinBoardVo
+ * @author jqs34
+ * @date 2023/6/18 16:41
+ */
+ @Override
+ public MgtBulletinBoardVo getBulletinBoard(){
+ List<Long> userIds = sysUserService.getScopeOfAuthorityUserId();
+ // 创建 MgtBulletinBoardVo 对象
+ MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo();
+ // 获取会员信息
+ BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto();
+ boardMemberTotalDto.setUserIds(userIds);
+
+ MgtBulletinBoardVo mgtBulletinBoardVoMember = remoteMemberService.boardMemberTotal(boardMemberTotalDto).getData();
+ mgtBulletinBoardVo.setMemberTotal(mgtBulletinBoardVoMember.getMemberTotal());
+ mgtBulletinBoardVo.setMemberToday(mgtBulletinBoardVoMember.getMemberToday());
+ // 获取推荐合作信息
+ MgtBulletinBoardVo mgtBulletinBoardVoCustom = recommendCooperationService.boardMemberTotal(userIds);
+ mgtBulletinBoardVo.setCustomTotal(mgtBulletinBoardVoCustom.getCustomTotal());
+ mgtBulletinBoardVo.setCustomToday(mgtBulletinBoardVoCustom.getCustomToday());
+ mgtBulletinBoardVo.setFollowUserToday(mgtBulletinBoardVoCustom.getFollowUserToday());
+ // 获取店铺信息
+ MgtBulletinBoardVo mgtBulletinBoardVoShop = remoteShopService.boardShopTotal(boardMemberTotalDto).getData();
+ mgtBulletinBoardVo.setShopTotal(mgtBulletinBoardVoShop.getShopTotal());
+ mgtBulletinBoardVo.setAgencyTotal(mgtBulletinBoardVoShop.getAgencyTotal());
+ mgtBulletinBoardVo.setDealerTotal(mgtBulletinBoardVoShop.getDealerTotal());
+ mgtBulletinBoardVo.setFollowShopToday(mgtBulletinBoardVoShop.getFollowShopToday());
+ // 获取订单信息
+ MgtBulletinBoardVo mgtBulletinBoardVoOrder = remoteOrderService.boardOrderTotal(boardMemberTotalDto).getData();
+ mgtBulletinBoardVo.setSalesTotal(mgtBulletinBoardVoOrder.getSalesTotal());
+ mgtBulletinBoardVo.setUnUseOrderTotal(mgtBulletinBoardVoOrder.getUnUseOrderTotal());
+ mgtBulletinBoardVo.setActivityOrderTotal(mgtBulletinBoardVoOrder.getActivityOrderTotal());
+ mgtBulletinBoardVo.setActivityUserTotal(mgtBulletinBoardVoOrder.getActivityUserTotal());
+ // 获取活动信息
+ //MgtBulletinBoardVo mgtBulletinBoardVoActivity = remoteActivityService.boardActivityTotal().getData();
+ //待回复建议数量
+ Integer countA = remoteMemberService.getUnReplaySuggestVo().getData();
+ Integer countB = remoteShopService.getUnReplaySuggestVo().getData();
+ Integer countC = staffSuggestService.getUnReplaySuggestVo();
+ mgtBulletinBoardVo.setUnReplaySuggestTotal(countA+countB+countC);
+ // 返回 MgtBulletinBoardVo 对象
+ return mgtBulletinBoardVo;
+ }
+
+ /**
+ * @description 获取其他设置
+ * @author jqs
+ * @date 2023/7/12 15:28
+ * @param
+ * @return AppOtherConfigGetVo
+ */
+ @Override
+ public AppOtherConfigGetVo getAppOtherConfigGetVo(){
+ AppOtherConfigGetVo appOtherConfigGetVo = new AppOtherConfigGetVo();
+ //获取自定义配置
+ List<CustomConfig> customConfigList = customConfigMapper.selectList(new LambdaQueryWrapper<CustomConfig>().eq(CustomConfig::getDelFlag, 0));
+ Optional.ofNullable(customConfigList).ifPresent(list -> {
+ Map<String, CustomConfig> configMap = list.stream().collect(Collectors.toMap(CustomConfig::getConfigKey, Function.identity()));
+ // 遍历配置映射,设置相应的属性值
+ configMap.forEach((key, value) -> {
+ switch (key) {
+ case "SHARE_INTEGRAL":
+ appOtherConfigGetVo.setShareIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "SUGGEST_PLATFORM_INTEGRAL":
+ appOtherConfigGetVo.setSuggestPlatformIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "SIGN_IN_INTEGRAL":
+ appOtherConfigGetVo.setSignInIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "SUGGEST_SHOP_INTEGRAL":
+ appOtherConfigGetVo.setSuggestShopIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "PAY_MONEY_INTEGRAL":
+ appOtherConfigGetVo.setPayMoneyIntegral(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "ORDER_AUTO_CANCEL_TIME":
+ appOtherConfigGetVo.setOrderAutoCancelTime(Integer.valueOf(value.getConfigValue()));
+ break;
+ case "HOME_STYLE":
+ appOtherConfigGetVo.setHomeStyle(Integer.valueOf(value.getConfigValue()));
+ break;
+ default:
+ break;
+ }
+ });
+ });
+ return appOtherConfigGetVo;
+ }
}
--
Gitblit v1.7.1