|
...
|
...
|
@@ -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));
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|