mystyle-cloud-parent/mystyle-cloud-fiction/src/main/java/com/zhangmeng/fiction/controller/FictionCollectionController...

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