作者 钟来

修改 接口返回格式

... ... @@ -21,7 +21,24 @@ public class ApplicationLkFortuneTelling {
{
System.setProperty("xml-dbPath",args[0]);
}
if(checkRunInIDEA())
{
System.setProperty("xml-dbPath","E:\\work\\idea\\Luhui\\zl-modules\\lk-fortune-telling\\target\\classes\\Yiching-database-CN-1.3.xlsx");
}
SpringApplication.run(ApplicationLkFortuneTelling.class,args);
System.out.println("启动成功");
}
/**
* 判断是否是idea里面启动
* @return true:是 false:否
*/
private static boolean checkRunInIDEA() {
try {
Class.forName("com.intellij.rt.execution.application.AppMainV2");
return true;
} catch (ClassNotFoundException ignored) {
return false;
}
}
}
... ...
... ... @@ -18,8 +18,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Api(tags = "算命")
@RestController
... ... @@ -71,7 +74,7 @@ public class FortuneTellingController extends BaseController {
"\n" +
"当问题里没有多个选择项时:,输出格式如下:\n" +
"1.标题为“爻辞: ”,输出爻辞,然后换行。\n" +
"2.标题为“结论: ”, 然后换行。\n" +
"2.标题为“结论: ”,输出结论, 然后换行。\n" +
"3.输出用户提问的占卜结果(例如:凶; 中; 吉; 大吉)\n" +
"4.根据变爻的文本和占卜结果,提炼出对用户问题的关键占卜结论,并进行详细解释。\n" +
"5.提供变爻内容的深入、全面的专家级解释,分析并回答用户的问题。\n" +
... ... @@ -91,7 +94,9 @@ public class FortuneTellingController extends BaseController {
fortuneTellingLog.setAnswer(str);
fortuneTellingLog.setCreate_time(DateUtils.getTime());
fortuneTellingLog.setUser_id(Integer.parseInt(getLoginToken().getId()));
return AjaxResult.success("成功",str);
//加工返回值
return toReturn(str);
}
@ApiOperation("随机三个数")
... ... @@ -131,4 +136,44 @@ public class FortuneTellingController extends BaseController {
Integer[] nums = YiJiFortuneTellingService.randomNums();
return meiHuaYiShu(question,nums);
}
private AjaxResult toReturn(String str)
{
String[] ss = str.split("\\n\\n");
Map<String,String> map = new HashMap<>();
map.put("divination",str.substring(str.indexOf("爻辞: ")+4,findNthOccurrence(str,"\n\n",1)));
map.put("conclusion",str.substring(str.indexOf("结论: ")+4,findNthOccurrence(str,"\n\n",2)));
map.put("analysis",str.substring(findNthOccurrence(str,"\n\n",2)+2));
return AjaxResult.success("成功",map);
}
private static int findNthOccurrence(String str, String patt, int number) {
if (str == null || patt == null || number < 1) {
throw new IllegalArgumentException("Invalid input");
}
Pattern pattern = Pattern.compile(Pattern.quote(patt));
Matcher matcher = pattern.matcher(str);
int count = 0;
int start = -1;
while (matcher.find()) {
count++;
if (count == number) {
start = matcher.start();
break;
}
}
return start;
}
public static void main(String[] args) {
String str = "爻辞: 见舆曳,其牛掣,其人天且劓,无初有终。\n\n结论: 中\n\n根据变爻的文本和占卜结果,对您今天的运势进行占卜可以划分为中等级别。这表示您在今天可能会遇到一些困难或挑战,但通过坚定的信念和努力,最终可以克服难关。\n\n深入解释: 这个爻辞描绘了一种困难对抗的场景,但也强调了坚持到底的重要性。牛掣车辐,虽然曳力增大,但只要坚持不懈,最终会有所收获。劓本义是割耳,表示可能会有一些牺牲或损失,但这也是通向成功的必经之路。\n\n其他方面分析:\n财务: 今天可能会有一些额外支出或投资,需要谨慎对待财务安排,以避免不必要的损失。\n生活: 坚持自己的原则和信念,相信自己的选择,即使面临逆境也要勇往直前,生活会逐渐好转。\n工作: 遇到挑战时不要放弃,坚持努力并寻求他人帮助,解决问题的方式会逐渐清晰。";
System.out.println(">>>>>"+str.substring(str.indexOf("爻辞: ")+4,findNthOccurrence(str,"\n\n",1)));
System.out.println(">>>>>"+str.substring(str.indexOf("结论: ")+4,findNthOccurrence(str,"\n\n",2)));
System.out.println(">>>>>"+str.substring(findNthOccurrence(str,"\n\n",2)+2));
}
}
... ...