From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 01 四月 2025 16:03:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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