91 lines
3.6 KiB
Java
91 lines
3.6 KiB
Java
package com.zhangmeng.fiction.controller;
|
|
|
|
import com.zhangmeng.api.service.fiction.FictionCollectionControllerApi;
|
|
import com.zhangmeng.fiction.service.FictionCollectionService;
|
|
import com.zhangmeng.fiction.service.TianYuXiaoShuoJsoupService;
|
|
import com.zhangmeng.model.base.baseController.BaseController;
|
|
import com.zhangmeng.model.base.baseUtil.CommonUtil;
|
|
import com.zhangmeng.model.dto.query.QueryParams;
|
|
import com.zhangmeng.model.entity.FictionCollection;
|
|
import com.zhangmeng.model.vo.Result;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.jsoup.nodes.Element;
|
|
import org.jsoup.select.Elements;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
import springfox.documentation.annotations.ApiIgnore;
|
|
import tk.mybatis.mapper.entity.Condition;
|
|
import tk.mybatis.mapper.entity.Example;
|
|
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
@RequestMapping("/fictionCollection")
|
|
public class FictionCollectionController extends BaseController implements FictionCollectionControllerApi {
|
|
|
|
@Autowired
|
|
private FictionCollectionService fictionCollectionService;
|
|
|
|
@Autowired
|
|
private TianYuXiaoShuoJsoupService tianYuXiaoShuoJsoupService;
|
|
|
|
@Override
|
|
@GetMapping("/gen")
|
|
public Result gen() {
|
|
Elements li = tianYuXiaoShuoJsoupService.fiction_collection();
|
|
if (li != null) {
|
|
for (Element element : li) {
|
|
Elements a = element.getElementsByTag("a");
|
|
String href = a.attr("href");
|
|
String title = a.text();
|
|
FictionCollection fictionCollection = new FictionCollection();
|
|
fictionCollection.setHref(href);
|
|
fictionCollection.setTitle(title);
|
|
fictionCollection.setGenStatus(0);
|
|
this.fictionCollectionService.save(fictionCollection);
|
|
}
|
|
}
|
|
return this.success();
|
|
}
|
|
|
|
@Override
|
|
@GetMapping("/list")
|
|
public Result list(String title, Integer pageNum, Integer pageSize) {
|
|
Condition condition = new Condition(FictionCollection.class);
|
|
Example.Criteria criteria = condition.createCriteria();
|
|
if (CommonUtil.isNotNull(title)) {
|
|
criteria.andLike("title", "%" + title + "%");
|
|
}
|
|
return this.fictionCollectionService.findByByConditionWithResult(new QueryParams(pageNum, pageSize, condition, "addTime desc"));
|
|
}
|
|
|
|
@Override
|
|
@GetMapping("/genFiction")
|
|
public Result genFiction(String url) {
|
|
if (url != null) {
|
|
Condition condition = new Condition(FictionCollection.class);
|
|
Example.Criteria criteria = condition.createCriteria();
|
|
criteria.andEqualTo("href", url);
|
|
List<FictionCollection> fictionCollections = this.fictionCollectionService.findByCondition(condition);
|
|
if (fictionCollections.size() > 0) {
|
|
FictionCollection fictionCollection = fictionCollections.get(0);
|
|
if (fictionCollection.getGenStatus() == 0) {
|
|
this.tianYuXiaoShuoJsoupService.gen_fiction(url);
|
|
}
|
|
}
|
|
}
|
|
return this.success("生成成功");
|
|
}
|
|
|
|
@Override
|
|
@GetMapping("/findFictionCollectionById")
|
|
public FictionCollection findFictionCollectionById(@RequestParam("fiction_id") Long fiction_id){
|
|
return this.fictionCollectionService.findById(fiction_id);
|
|
}
|
|
}
|