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 | 320 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 294 insertions(+), 26 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 0ea858e..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,10 +1,20 @@ 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.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; @@ -15,13 +25,11 @@ 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.MgtCustomConfigVo; import com.ruoyi.system.domain.vo.MgtOperLogPageVo; import com.ruoyi.system.mapper.config.CustomConfigMapper; -import com.ruoyi.system.service.config.ActivenessService; -import com.ruoyi.system.service.config.AdvertService; -import com.ruoyi.system.service.config.CustomConfigService; -import com.ruoyi.system.service.config.RecommendCooperationService; +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; @@ -64,6 +72,18 @@ @Resource private RemoteActivityService remoteActivityService; + @Resource + private StaffSuggestService staffSuggestService; + + @Resource + private RedisService redisService; + + @Autowired + private ISysUserService sysUserService; + + + + /** * @param key * @return CustomConfig @@ -101,6 +121,61 @@ 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()); } /** @@ -144,6 +219,9 @@ 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; @@ -168,6 +246,12 @@ 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; } @@ -180,6 +264,7 @@ 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()); @@ -219,6 +304,41 @@ // 新建配置 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 @@ -256,27 +376,43 @@ 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; } @@ -313,23 +449,51 @@ 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; } - customConfig.setConfigValue(newValue); - customConfig.setUpdateTime(updateTime); - handleChangeConfig(oldValue, newValue, key); - updatedCustomConfigs.add(customConfig); + } this.saveOrUpdateBatch(updatedCustomConfigs); } else { @@ -338,6 +502,7 @@ 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); } } @@ -370,26 +535,52 @@ 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; } - customConfig.setConfigValue(newValue); - customConfig.setUpdateTime(updateTime); - handleChangeConfig(oldValue, newValue, key); - updatedCustomConfigs.add(customConfig); } this.saveOrUpdateBatch(updatedCustomConfigs); } else { @@ -478,6 +669,30 @@ } /** + * @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 @@ -485,14 +700,13 @@ * @return MgtCustomConfigVo */ @Override - public MgtCustomConfigVo getCustomConfig(MgtCustomConfigDto mgtCustomConfigDto){ + public List<String> getCustomConfig(MgtCustomConfigDto mgtCustomConfigDto){ CustomConfig customConfig = this.getByKey(mgtCustomConfigDto.getConfigType()); - MgtCustomConfigVo mgtCustomConfigVo = new MgtCustomConfigVo(); - if(customConfig!=null){ - mgtCustomConfigVo.setCustomConfig(customConfig.getConfigValue()); - mgtCustomConfigVo.setConfigType(mgtCustomConfigDto.getConfigType()); + List<String> list = new ArrayList<>(); + if(customConfig!=null&&StringUtils.isNotBlank(customConfig.getConfigValue())){ + list = Arrays.asList(customConfig.getConfigValue().split(",")); } - return mgtCustomConfigVo; + return list; } /** @@ -504,33 +718,87 @@ */ @Override public MgtBulletinBoardVo getBulletinBoard(){ + List<Long> userIds = sysUserService.getScopeOfAuthorityUserId(); // 创建 MgtBulletinBoardVo 对象 MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); // 获取会员信息 - MgtBulletinBoardVo mgtBulletinBoardVoMember = remoteMemberService.boardMemberTotal().getData(); + 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(); + MgtBulletinBoardVo mgtBulletinBoardVoCustom = recommendCooperationService.boardMemberTotal(userIds); mgtBulletinBoardVo.setCustomTotal(mgtBulletinBoardVoCustom.getCustomTotal()); mgtBulletinBoardVo.setCustomToday(mgtBulletinBoardVoCustom.getCustomToday()); + mgtBulletinBoardVo.setFollowUserToday(mgtBulletinBoardVoCustom.getFollowUserToday()); // 获取店铺信息 - MgtBulletinBoardVo mgtBulletinBoardVoShop = remoteShopService.boardShopTotal().getData(); + MgtBulletinBoardVo mgtBulletinBoardVoShop = remoteShopService.boardShopTotal(boardMemberTotalDto).getData(); mgtBulletinBoardVo.setShopTotal(mgtBulletinBoardVoShop.getShopTotal()); mgtBulletinBoardVo.setAgencyTotal(mgtBulletinBoardVoShop.getAgencyTotal()); mgtBulletinBoardVo.setDealerTotal(mgtBulletinBoardVoShop.getDealerTotal()); mgtBulletinBoardVo.setFollowShopToday(mgtBulletinBoardVoShop.getFollowShopToday()); - mgtBulletinBoardVo.setFollowUserToday(0); // 获取订单信息 - MgtBulletinBoardVo mgtBulletinBoardVoOrder = remoteOrderService.boardOrderTotal().getData(); + 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(); - mgtBulletinBoardVo.setActivityUserTotal(mgtBulletinBoardVoActivity.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