ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/ConfigEnum.java
@@ -18,23 +18,25 @@ @Getter public enum ConfigEnum { PLATFORM_SERVICE_PHONE("PLATFORM_SERVICE_PHONE", 2,"客服电话"), SHOP_EMERGENCY_DEGREE("SHOP_EMERGENCY_DEGREE", 2,"合作商任务紧急程度"), SHOP_FOLLOW_TYPE("SHOP_FOLLOW_TYPE", 2,"合作商跟进类型"), SHOP_CUSTOM_STATUS("SHOP_CUSTOM_STATUS", 2,"合作商状态"), SHOP_SOURCE_CHANNEL("SHOP_SOURCE_CHANNEL", 2,"来源渠道"), PLATFORM_SERVICE_PHONE("PLATFORM_SERVICE_PHONE", 1,"客服电话"), SHOP_EMERGENCY_DEGREE("SHOP_EMERGENCY_DEGREE", 3,"合作商任务紧急程度"), SHOP_FOLLOW_TYPE("SHOP_FOLLOW_TYPE", 3,"合作商跟进类型"), SHOP_CUSTOM_STATUS("SHOP_CUSTOM_STATUS", 3,"合作商状态"), SHOP_SOURCE_CHANNEL("SHOP_SOURCE_CHANNEL", 3,"来源渠道"), SHARE_INTEGRAL("SHARE_INTEGRAL", 2,"分享小程序可获得积分"), SUGGEST_PLATFORM_INTEGRAL("SUGGEST_PLATFORM_INTEGRAL", 2,"平台建议可获得积分"), SIGN_IN_INTEGRAL("SIGN_IN_INTEGRAL", 2,"每日签到可获得积分"), SUGGEST_SHOP_INTEGRAL("SUGGEST_SHOP_INTEGRAL", 2,"门店建议可获得积分"), ORDER_AUTO_CANCEL_TIME("ORDER_AUTO_CANCEL_TIME", 2,"C端订单自动取消时间"), PAY_MONEY_INTEGRAL("PAY_MONEY_INTEGRAL", 2,"购物满1元可获得积分"), MEMBER_SOURCE_CHANNEL("MEMBER_SOURCE_CHANNEL", 2,"会员来源"), MEMBER_CHARACTER("MEMBER_CHARACTER", 2,"会员性格"), MEMBER_LEVEL("MEMBER_LEVEL", 2,"会员等级"), MEMBER_TYPE("MEMBER_TYPE", 2,"会员类型"), NURSE_PROBLEM("NURSE_PROBLEM", 2,"调理问题"), HOME_SLOGAN("HOME_SLOGAN", 2,"首页广告语"); MEMBER_SOURCE_CHANNEL("MEMBER_SOURCE_CHANNEL", 4,"会员来源"), MEMBER_CHARACTER("MEMBER_CHARACTER", 4,"会员性格"), MEMBER_LEVEL("MEMBER_LEVEL", 4,"会员等级"), MEMBER_TYPE("MEMBER_TYPE", 4,"会员类型"), NURSE_PROBLEM("NURSE_PROBLEM", 4,"调理问题"), HOME_STYLE("HOME_STYLE", 2,"首页风格"), HOME_SLOGAN("HOME_SLOGAN", 1,"首页广告语"), HOME_LOGO("HOME_LOGO", 1,"首页logo"); ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
@@ -48,6 +48,7 @@ @Resource private QuickEntryService quickEntryService; @RequestMapping(value = "/editCooperation", method = RequestMethod.POST) @ApiOperation(value = "修改申请合作") public R editCooperation(@RequestBody MgtCooperationEditDto mgtCooperationEditDto) { @@ -191,4 +192,32 @@ quickEntryService.deleteMgtQuickEntry(mgtBaseGetDto); return R.ok(); } @RequestMapping(value = "/getCustomConfig", method = RequestMethod.POST) @ApiOperation(value = "获取自定义设置") public R<MgtCustomConfigVo> getCustomConfig() { MgtCustomConfigVo mgtCustomConfigVo = customConfigService.getCustomConfig(); return R.ok(mgtCustomConfigVo); } @RequestMapping(value = "/editOtherConfig", method = RequestMethod.POST) @ApiOperation(value = "修改其它设置") public R editOtherConfig(@RequestBody MgtOtherConfigEditDto mgtOtherConfigEditDto) { customConfigService.editOtherConfig(mgtOtherConfigEditDto); return R.ok(); } @RequestMapping(value = "/editShopConfig", method = RequestMethod.POST) @ApiOperation(value = "修改合作商配置") public R editShopConfig(@RequestBody MgtShopConfigEditDto mgtShopConfigEditDto) { customConfigService.editShopConfig(mgtShopConfigEditDto); return R.ok(); } @RequestMapping(value = "/editMemberConfig", method = RequestMethod.POST) @ApiOperation(value = "修改会员配置") public R editMemberConfig(@RequestBody MgtMemberConfigEditDto mgtMemberConfigEditDto) { customConfigService.editMemberConfig(mgtMemberConfigEditDto); return R.ok(); } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtMemberConfigEditDto.java
New file @@ -0,0 +1,31 @@ package com.ruoyi.system.domain.dto; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtMemberConfigEditDto * @Description TODO * @Author jqs * @Date 2023/6/7 17:15 * @Version 1.0 */ @Data public class MgtMemberConfigEditDto extends MgtBaseDto { @ApiModelProperty(value = "会员来源") private String memberSourceChannel; @ApiModelProperty(value = "会员性格") private String memberCharacter; @ApiModelProperty(value = "会员等级") private String memberLevel; @ApiModelProperty(value = "会员类型") private String memberType; @ApiModelProperty(value = "调理问题") private String nurseProblem; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtOtherConfigEditDto.java
New file @@ -0,0 +1,37 @@ package com.ruoyi.system.domain.dto; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtOtherConfigEditDto * @Description TODO * @Author jqs * @Date 2023/6/7 16:04 * @Version 1.0 */ @Data public class MgtOtherConfigEditDto extends MgtBaseDto { @ApiModelProperty(value = "分享小程序可获得积分") private Integer shareIntegral; @ApiModelProperty(value = "平台建议可获得积分") private Integer suggestPlatformIntegral; @ApiModelProperty(value = "每日签到可获得积分") private Integer signInIntegral; @ApiModelProperty(value = "门店建议可获得积分") private Integer suggestShopIntegral; @ApiModelProperty(value = "购物满1元可获得积分") private Integer payMoneyIntegral; @ApiModelProperty(value = "C端订单自动取消时间") private Integer orderAutoCancelTime; @ApiModelProperty(value = "首页风格1.鸿瑞堂2.古引坊") private Integer homeStyle; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtShopConfigEditDto.java
New file @@ -0,0 +1,28 @@ package com.ruoyi.system.domain.dto; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtOtherConfigEditDto * @Description TODO * @Author jqs * @Date 2023/6/7 16:04 * @Version 1.0 */ @Data public class MgtShopConfigEditDto extends MgtBaseDto { @ApiModelProperty(value = "合作商任务紧急程度") private String shopEmergencyDegree; @ApiModelProperty(value = "合作商跟进类型") private String shopFollowType; @ApiModelProperty(value = "合作商状态") private String shopCustomStatus; @ApiModelProperty(value = "来源渠道") private String shopSourceChannel; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Advert.java
@@ -1,16 +1,16 @@ package com.ruoyi.system.domain.pojo.config; import com.baomidou.mybatisplus.annotation.IdType; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> @@ -58,6 +58,12 @@ */ @TableField("link_url") private String linkUrl; /** * 跳转类型1.门店详情2.秒杀活动3领券中心4.商城列表5.关于洪瑞堂 */ @TableField("jump_type") private Integer jumpType; /** * 跳转活动id */ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtActivenessVo.java
New file @@ -0,0 +1,28 @@ package com.ruoyi.system.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtActivenessVo * @Description TODO * @Author jqs * @Date 2023/6/7 14:59 * @Version 1.0 */ @Data public class MgtActivenessVo { @ApiModelProperty(value = "活跃度id") private Long activenessId; @ApiModelProperty(value = "活跃度名称") private String activenessName; @ApiModelProperty(value = "开始天数") private Integer startDay; @ApiModelProperty(value = "结束天数") private Integer endDay; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtCustomConfigVo.java
New file @@ -0,0 +1,89 @@ package com.ruoyi.system.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @ClassName MgtOtherConfigVo * @Description TODO * @Author jqs * @Date 2023/6/7 13:58 * @Version 1.0 */ @Data public class MgtCustomConfigVo { @ApiModelProperty(value = "分享小程序可获得积分") private Integer shareIntegral; @ApiModelProperty(value = "平台建议可获得积分") private Integer suggestPlatformIntegral; @ApiModelProperty(value = "每日签到可获得积分") private Integer signInIntegral; @ApiModelProperty(value = "门店建议可获得积分") private Integer suggestShopIntegral; @ApiModelProperty(value = "购物满1元可获得积分") private Integer payMoneyIntegral; @ApiModelProperty(value = "C端订单自动取消时间") private Integer orderAutoCancelTime; @ApiModelProperty(value = "首页风格1.鸿瑞堂2.古引坊") private Integer homeStyle; @ApiModelProperty(value = "合作商任务紧急程度") private String shopEmergencyDegree; @ApiModelProperty(value = "合作商跟进类型") private String shopFollowType; @ApiModelProperty(value = "合作商状态") private String shopCustomStatus; @ApiModelProperty(value = "来源渠道") private String shopSourceChannel; @ApiModelProperty(value = "会员来源") private String memberSourceChannel; @ApiModelProperty(value = "会员性格") private String memberCharacter; @ApiModelProperty(value = "会员等级") private String memberLevel; @ApiModelProperty(value = "会员类型") private String memberType; @ApiModelProperty(value = "调理问题") private String nurseProblem; @ApiModelProperty(value = "首页广告语") private String homeSlogan; @ApiModelProperty(value = "首页logo") private String homeLogo; @ApiModelProperty(value = "广告图片") private String adUrl; @ApiModelProperty(value = "链接类型1.外部2.内部3.无") private Integer targetType; @ApiModelProperty(value = "链接地址") private String linkUrl; @ApiModelProperty(value = "跳转类型1.门店详情2.秒杀活动3领券中心4.商城列表5.关于洪瑞堂") private Integer jumpType; @ApiModelProperty(value = "跳转id") private String jumpId; @ApiModelProperty(value = "活跃度list") private List<MgtActivenessVo> mgtActivenessVoList; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java
@@ -2,6 +2,7 @@ import com.ruoyi.system.api.domain.poji.config.Activeness; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.domain.vo.MgtActivenessVo; import java.util.List; @@ -21,4 +22,12 @@ */ List<Activeness> listActiveness(); /** * @description * @author jqs * @date 2023/6/7 16:04 * @param * @return List<MgtActivenessVo> */ List<MgtActivenessVo> listVo(); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/AdvertService.java
@@ -19,4 +19,13 @@ * @return */ AppAdvertVo getAdvertVo(); /** * @description 获取广告配置 * @author jqs * @date 2023/6/7 15:43 * @param * @return Advert */ Advert getAdvert(); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/CustomConfigService.java
@@ -1,16 +1,19 @@ package com.ruoyi.system.service.config; import com.ruoyi.system.domain.dto.MgtServiceMobileEditDto; import com.ruoyi.system.domain.pojo.config.CustomConfig; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.domain.dto.MgtMemberConfigEditDto; import com.ruoyi.system.domain.dto.MgtOtherConfigEditDto; import com.ruoyi.system.domain.dto.MgtServiceMobileEditDto; import com.ruoyi.system.domain.dto.MgtShopConfigEditDto; import com.ruoyi.system.domain.pojo.config.CustomConfig; import com.ruoyi.system.domain.vo.MgtCustomConfigVo; /** * <p> * 系统配置 服务类 * </p> * * @author jqs * @since 2023-04-25 * @ClassName CustomConfigService * @Description TODO * @Author jqs * @Date 2023/6/7 16:32 * @Version 1.0 */ public interface CustomConfigService extends IService<CustomConfig> { @@ -24,7 +27,7 @@ CustomConfig getByKey(String key); /** /** * @description 修改客服号码 * @author jqs * @date 2023/6/6 11:53 @@ -33,5 +36,39 @@ */ void editServiceMobile( MgtServiceMobileEditDto mgtServiceMobileEditDto); /** * @description 平台获取自定义配置 * @author jqs * @date 2023/6/7 15:02 * @param * @return MgtCustomConfigVo */ MgtCustomConfigVo getCustomConfig(); /** * @description 修改其他设置 * @author jqs * @date 2023/6/7 16:07 * @param mgtOtherConfigEditDto * @return void */ void editOtherConfig(MgtOtherConfigEditDto mgtOtherConfigEditDto); /** * @description 修改合作商配置 * @author jqs * @date 2023/6/7 16:41 * @param mgtShopConfigEditDto * @return void */ void editShopConfig(MgtShopConfigEditDto mgtShopConfigEditDto); /** * @description 修改会员配置 * @author jqs * @date 2023/6/7 17:16 * @param mgtMemberConfigEditDto * @return void */ void editMemberConfig(MgtMemberConfigEditDto mgtMemberConfigEditDto); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/AdvertServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl.config; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.system.domain.pojo.config.Advert; import com.ruoyi.system.domain.vo.AppAdvertVo; import com.ruoyi.system.mapper.config.AdvertMapper; @@ -31,4 +32,17 @@ public AppAdvertVo getAdvertVo(){ return advertMapper.getAdvertVo(); } /** * @description 获取广告配置 * @author jqs * @date 2023/6/7 15:43 * @param * @return Advert */ @Override public Advert getAdvert(){ Advert advert = this.getOne(new LambdaQueryWrapper<Advert>().eq(Advert::getDelFlag,0),false); return advert; } } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
@@ -1,15 +1,27 @@ package com.ruoyi.system.service.impl.config; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.api.constant.ConfigEnum; import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.domain.dto.MgtMemberConfigEditDto; import com.ruoyi.system.domain.dto.MgtOtherConfigEditDto; import com.ruoyi.system.domain.dto.MgtServiceMobileEditDto; import com.ruoyi.system.domain.dto.MgtShopConfigEditDto; 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.MgtCustomConfigVo; 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 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 +37,31 @@ @Resource private CustomConfigMapper customConfigMapper; @Resource private AdvertService advertService; @Resource private ActivenessService activenessService; /** * @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) { @@ -63,4 +81,371 @@ // 保存或更新配置 this.saveOrUpdate(customConfig); } /** * @param * @return MgtCustomConfigVo * @description 平台获取自定义配置 * @author jqs * @date 2023/6/7 15:02 */ @Override public MgtCustomConfigVo getCustomConfig() { MgtCustomConfigVo mgtCustomConfigVo = new MgtCustomConfigVo(); //获取自定义配置 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::getKey, Function.identity())); // 遍历配置映射,设置相应的属性值 configMap.forEach((key, value) -> { switch (key) { case "SHARE_INTEGRAL": mgtCustomConfigVo.setShareIntegral(Integer.valueOf(value.getValue())); break; case "SUGGEST_PLATFORM_INTEGRAL": mgtCustomConfigVo.setSuggestPlatformIntegral(Integer.valueOf(value.getValue())); break; case "SIGN_IN_INTEGRAL": mgtCustomConfigVo.setSignInIntegral(Integer.valueOf(value.getValue())); break; case "SUGGEST_SHOP_INTEGRAL": mgtCustomConfigVo.setSuggestShopIntegral(Integer.valueOf(value.getValue())); break; case "PAY_MONEY_INTEGRAL": mgtCustomConfigVo.setPayMoneyIntegral(Integer.valueOf(value.getValue())); break; case "ORDER_AUTO_CANCEL_TIME": mgtCustomConfigVo.setOrderAutoCancelTime(Integer.valueOf(value.getValue())); break; case "HOME_STYLE": mgtCustomConfigVo.setHomeStyle(Integer.valueOf(value.getValue())); break; case "SHOP_EMERGENCY_DEGREE": mgtCustomConfigVo.setShopEmergencyDegree(value.getValue()); break; case "SHOP_FOLLOW_TYPE": mgtCustomConfigVo.setShopFollowType(value.getValue()); break; case "SHOP_CUSTOM_STATUS": mgtCustomConfigVo.setShopCustomStatus(value.getValue()); break; case "SHOP_SOURCE_CHANNEL": mgtCustomConfigVo.setShopSourceChannel(value.getValue()); break; case "MEMBER_SOURCE_CHANNEL": mgtCustomConfigVo.setMemberSourceChannel(value.getValue()); break; case "MEMBER_CHARACTER": mgtCustomConfigVo.setMemberCharacter(value.getValue()); break; case "MEMBER_LEVEL": mgtCustomConfigVo.setMemberLevel(value.getValue()); break; case "MEMBER_TYPE": mgtCustomConfigVo.setMemberType(value.getValue()); break; case "NURSE_PROBLEM": mgtCustomConfigVo.setNurseProblem(value.getValue()); break; default: break; } }); }); //获取广告配置 Advert advert = advertService.getAdvert(); if (advert != null) { mgtCustomConfigVo.setHomeSlogan(advert.getAdContent()); mgtCustomConfigVo.setHomeLogo(advert.getLogoUrl()); mgtCustomConfigVo.setAdUrl(advert.getAdUrl()); mgtCustomConfigVo.setTargetType(advert.getTargetType()); mgtCustomConfigVo.setLinkUrl(advert.getLinkUrl()); mgtCustomConfigVo.setJumpType(advert.getJumpType()); mgtCustomConfigVo.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()); mgtCustomConfigVo.setMgtActivenessVoList(mgtActivenessVoList); } return mgtCustomConfigVo; } /** * @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 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::getType, 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.setType(configEnum.getKeyType()); customConfig.setKey(configEnum.getKey()); customConfig.setName(configEnum.getKeyName()); customConfig.setValue(getConfigValue(configEnum, mgtOtherConfigEditDto)); customConfig.setCreateTime(updateTime); customConfig.setUpdateTime(updateTime); this.saveOrUpdate(customConfig); } } /** * @param configEnum * @param mgtOtherConfigEditDto * @return String * @description 获取配置参数 * @author jqs * @date 2023/6/7 16:37 */ private String getConfigValue(ConfigEnum configEnum, MgtOtherConfigEditDto mgtOtherConfigEditDto) { switch (configEnum) { case SHARE_INTEGRAL: return mgtOtherConfigEditDto.getShareIntegral().toString(); case SUGGEST_PLATFORM_INTEGRAL: return mgtOtherConfigEditDto.getSuggestPlatformIntegral().toString(); case SIGN_IN_INTEGRAL: return mgtOtherConfigEditDto.getSignInIntegral().toString(); case SUGGEST_SHOP_INTEGRAL: return mgtOtherConfigEditDto.getSuggestShopIntegral().toString(); case ORDER_AUTO_CANCEL_TIME: return mgtOtherConfigEditDto.getOrderAutoCancelTime().toString(); case PAY_MONEY_INTEGRAL: return mgtOtherConfigEditDto.getPayMoneyIntegral().toString(); case HOME_STYLE: return mgtOtherConfigEditDto.getHomeStyle().toString(); default: throw new IllegalArgumentException("Invalid ConfigEnum"); } } /** * @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::getType, 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.getKey(); oldValue = customConfig.getValue(); switch (key) { case "SHOP_EMERGENCY_DEGREE": newValue = mgtShopConfigEditDto.getShopEmergencyDegree(); break; case "SHOP_FOLLOW_TYPE": newValue = mgtShopConfigEditDto.getShopFollowType(); break; case "SHOP_CUSTOM_STATUS": newValue = mgtShopConfigEditDto.getShopCustomStatus(); break; case "SHOP_SOURCE_CHANNEL": newValue = mgtShopConfigEditDto.getShopSourceChannel(); break; default: break; } customConfig.setValue(newValue); customConfig.setUpdateTime(updateTime); handleChangeConfig(oldValue, newValue, key); updatedCustomConfigs.add(customConfig); } 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); } } /** * @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::getType, 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.getKey(); oldValue = customConfig.getValue(); switch (key) { case "MEMBER_SOURCE_CHANNEL": newValue = mgtMemberConfigEditDto.getMemberSourceChannel(); break; case "MEMBER_CHARACTER": newValue = mgtMemberConfigEditDto.getMemberCharacter(); break; case "MEMBER_LEVEL": newValue = mgtMemberConfigEditDto.getMemberLevel(); break; case "MEMBER_TYPE": newValue = mgtMemberConfigEditDto.getMemberType(); break; case "NURSE_PROBLEM": newValue = mgtMemberConfigEditDto.getNurseProblem(); break; default: break; } customConfig.setValue(newValue); customConfig.setUpdateTime(updateTime); handleChangeConfig(oldValue, newValue, key); updatedCustomConfigs.add(customConfig); } 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.setType(configEnum.getKeyType()); customConfig.setKey(configEnum.getKey()); customConfig.setName(configEnum.getKeyName()); customConfig.setValue(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; } } } }