This commit is contained in:
van
2026-03-11 21:25:58 +08:00
parent 465e0993d6
commit 4407487fbf
3 changed files with 82 additions and 0 deletions

View File

@@ -155,5 +155,26 @@ public class SocialMediaController extends BaseController
return AjaxResult.error("删除失败: " + e.getMessage()); return AjaxResult.error("删除失败: " + e.getMessage());
} }
} }
/**
* 闲鱼文案(手动):根据标题+可选型号生成代下单、教你下单文案不依赖JD接口
*/
@Log(title = "闲鱼文案(手动)生成", businessType = BusinessType.OTHER)
@PostMapping("/xianyu-wenan/generate")
public AjaxResult generateXianyuWenan(@RequestBody Map<String, Object> request)
{
try {
String title = (String) request.get("title");
String remark = (String) request.get("remark");
Map<String, Object> result = socialMediaService.generateXianyuWenan(title, remark);
if (Boolean.TRUE.equals(result.get("success"))) {
return AjaxResult.success(result);
}
return AjaxResult.error((String) result.get("error"));
} catch (Exception e) {
logger.error("闲鱼文案生成失败", e);
return AjaxResult.error("生成失败: " + e.getMessage());
}
}
} }

View File

@@ -63,5 +63,14 @@ public interface ISocialMediaService
* 删除提示词模板(恢复默认) * 删除提示词模板(恢复默认)
*/ */
com.ruoyi.common.core.domain.AjaxResult deletePromptTemplate(String key); com.ruoyi.common.core.domain.AjaxResult deletePromptTemplate(String key);
/**
* 根据标题(+可选型号备注生成闲鱼文案代下单、教你下单不依赖JD接口
*
* @param title 商品标题(必填)
* @param remark 型号/备注(可选)
* @return 包含代下单、教你下单两种文案的 Map
*/
Map<String, Object> generateXianyuWenan(String title, String remark);
} }

View File

@@ -52,6 +52,23 @@ public class SocialMediaServiceImpl implements ISocialMediaService
put("content:both", "通用文案生成提示词模板\n占位符%s - 商品名称,%s - 价格信息,%s - 关键词信息"); put("content:both", "通用文案生成提示词模板\n占位符%s - 商品名称,%s - 价格信息,%s - 关键词信息");
}}; }};
/** 闲鱼文案-代下单(一键代下)固定正文 */
private static final String WENAN_ZCXS =
"\n\n 购买后,两小时内出库,物流会电话联系您,同时生成京东官方安装单。送装一体,无需担心。\n\n\n"
+ " 1:全新正品,原包装未拆封(京东商城代购,就近直发)\n"
+ " 2:可提供下单运单号与电子发票(发票在收到货后找我要)。\n"
+ " 3:收货时查看是否有质量或运损问题。可拍照让京东免费申请换新。\n"
+ " 4:价格有浮动,不支持补差价,谢谢理解。\n"
+ " 5:全国联保,全国统一安装标准。支持官方 400服务号查询假一赔十。\n ";
/** 闲鱼文案-教你下单固定正文(含“信息更新日期:”占位,生成时替换为当前日期) */
private static final String WENAN_FANAN_BX = "本人提供免费指导下单服务,一台也是团购价,细心指导\n" + "\n"
+ "【质量】官旗下单,包正的\n" + "【物流】您自己账户可跟踪24小时发货\n" + "【售后】您自己账户直接联系,无忧售后\n"
+ "【安装】专业人员安装,全程无需您操心\n" + "【价格】标价就是到手价,骑共享单车去酒吧,该省省该花花\n"
+ "【服务】手把手教您下单,有问题随时咨询\n" + "【体验】所有服务都是官旗提供,价格有内部渠道优惠,同品质更优惠!\n" + "\n"
+ "信息更新日期:\n" + "\n" + "捡漏价格不定时有变动,优惠不等人,发「省份+型号」免费咨询当日最低价!";
/** 标题/型号清洗:去掉营销敏感词 */
private static final String TITLE_CLEAN_REGEX = "以旧|政府|换新|领取|国家|补贴|15%|20%|国补|立减|【|】";
/** /**
* 提取商品标题关键词 * 提取商品标题关键词
*/ */
@@ -418,5 +435,40 @@ public class SocialMediaServiceImpl implements ISocialMediaService
return null; return null;
} }
} }
/**
* 根据标题(+可选型号备注生成闲鱼文案代下单、教你下单不依赖JD接口
*/
@Override
public Map<String, Object> generateXianyuWenan(String title, String remark) {
Map<String, Object> result = new HashMap<>();
if (StringUtils.isEmpty(title) || StringUtils.isEmpty(title.trim())) {
result.put("success", false);
result.put("error", "商品标题不能为空");
return result;
}
String cleanTitle = cleanTitleOrRemark(title.trim());
String cleanRemark = StringUtils.isNotEmpty(remark) ? cleanTitleOrRemark(remark.trim()) : "";
String displayTitle = cleanTitle + cleanRemark;
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
String format = sdf.format(new java.util.Date());
String wenanJiaonixiadan = WENAN_FANAN_BX.replace("信息更新日期:", "信息更新日期:" + format);
result.put("success", true);
result.put("daixiadan", "(一键代下) " + displayTitle + "\n" + WENAN_ZCXS);
result.put("jiaonixiadan", "【教你下单】 " + displayTitle + "\n" + wenanJiaonixiadan);
return result;
}
/**
* 清洗标题/型号中的敏感词
*/
private static String cleanTitleOrRemark(String text) {
if (text == null) {
return "";
}
return text.replaceAll(TITLE_CLEAN_REGEX, "");
}
} }