diff --git a/src/main/java/cn/van/business/controller/SocialMediaPromptController.java b/src/main/java/cn/van/business/controller/SocialMediaPromptController.java index 5ba7a36..1d58dd9 100644 --- a/src/main/java/cn/van/business/controller/SocialMediaPromptController.java +++ b/src/main/java/cn/van/business/controller/SocialMediaPromptController.java @@ -9,6 +9,8 @@ import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; /** * 小红书/抖音提示词模板配置Controller @@ -31,7 +33,10 @@ public class SocialMediaPromptController { "keywords", "content:xhs", "content:douyin", - "content:both" + "content:both", + "xianyu:wenan_base", + "xianyu:jiaonixiadan_extra", + "xianyu:title_clean_regex" }; // 模板说明 @@ -40,6 +45,9 @@ public class SocialMediaPromptController { put("content:xhs", "小红书文案生成提示词模板\n占位符:%s - 商品名称,%s - 价格信息,%s - 关键词信息"); put("content:douyin", "抖音文案生成提示词模板\n占位符:%s - 商品名称,%s - 价格信息,%s - 关键词信息"); put("content:both", "通用文案生成提示词模板\n占位符:%s - 商品名称,%s - 价格信息,%s - 关键词信息"); + put("xianyu:wenan_base", "闲鱼文案·正文基础说明\n用于「一键代下」与「教你下单」两版文案中,紧接在标题/型号行之后(纯文本,无占位符)"); + put("xianyu:jiaonixiadan_extra", "闲鱼文案·教你下单版尾部附加说明\n接在「更新日期:yyyy-MM-dd」之后(纯文本)"); + put("xianyu:title_clean_regex", "闲鱼文案·标题/型号清洗正则\n从标题与型号备注中移除营销敏感片段;须为 Java 正则,匹配到的内容会被删除"); }}; /** @@ -145,6 +153,16 @@ public class SocialMediaPromptController { response.put("msg", "Redis未配置,无法保存模板"); return response; } + + if ("xianyu:title_clean_regex".equals(key)) { + try { + Pattern.compile(template.trim()); + } catch (PatternSyntaxException e) { + response.put("code", 400); + response.put("msg", "正则表达式无效: " + e.getMessage()); + return response; + } + } String redisKey = REDIS_KEY_PREFIX + key; redisTemplate.opsForValue().set(redisKey, template);