146 lines
4.5 KiB
Java
146 lines
4.5 KiB
Java
package com.yutou.tools.services;
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.yutou.tools.mybatis.dao.BangumiItemDao;
|
|
import com.yutou.tools.mybatis.dao.BangumiListDao;
|
|
import com.yutou.tools.mybatis.model.BangumiItem;
|
|
import com.yutou.tools.mybatis.model.BangumiItemExample;
|
|
import com.yutou.tools.mybatis.model.BangumiList;
|
|
import com.yutou.tools.mybatis.model.BangumiListExample;
|
|
import com.yutou.tools.services.interfaces.BangumiService;
|
|
import com.yutou.tools.utils.BangumiTools;
|
|
import com.yutou.tools.utils.RedisTools;
|
|
import com.yutou.tools.utils.Tools;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
@Service("BangumiService")
|
|
public class BangumiServiceImpl implements BangumiService {
|
|
@Resource
|
|
BangumiListDao listDao;
|
|
@Resource
|
|
BangumiItemDao itemDao;
|
|
|
|
@Override
|
|
public int addBangumiList(BangumiList... list) {
|
|
for (BangumiList bangumiList : list) {
|
|
if (listDao.insert(bangumiList) <= 0) {
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
@Override
|
|
public int addBangumiItem(BangumiItem... list) {
|
|
for (BangumiItem item : list) {
|
|
if (item.getId() != null&&item.getId().equals(-1)) {
|
|
RedisTools.list_add("anim_tmp_rss", JSON.toJSON(item).toString());
|
|
} else if (itemDao.insert(item) <= 0) {
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
@Override
|
|
public int updateBangumiItem(BangumiItem item) {
|
|
return itemDao.updateByPrimaryKey(item);
|
|
}
|
|
|
|
@Override
|
|
public int removeBangumiItem(int id) {
|
|
return itemDao.deleteByPrimaryKey(id);
|
|
}
|
|
|
|
@Override
|
|
public int removeBangumiType(int id) {
|
|
BangumiItemExample example = new BangumiItemExample();
|
|
example.createCriteria().andBidEqualTo(id + "");
|
|
itemDao.deleteByExample(example);
|
|
return listDao.deleteByPrimaryKey(id);
|
|
}
|
|
|
|
@Override
|
|
public BangumiItem getBangumiItem(int id) {
|
|
return itemDao.selectByPrimaryKey(id);
|
|
}
|
|
|
|
@Override
|
|
public List<BangumiItem> getBangumiItemList(String type) {
|
|
List<BangumiItem> items;
|
|
if ("-1".equals(type)) {
|
|
Set<String> strings = RedisTools.list_get("anim_tmp_rss");
|
|
items=new ArrayList<>();
|
|
for (String string : strings) {
|
|
BangumiItem item=JSON.parseObject(string, BangumiItem.class);
|
|
items.add(item);
|
|
}
|
|
return items;
|
|
}
|
|
BangumiItemExample example = new BangumiItemExample();
|
|
example.createCriteria().andBidEqualTo(type);
|
|
items = itemDao.selectByExample(example);
|
|
for (BangumiItem item : items) {
|
|
if (item.getEnable() == 0 || item.getBgmid() == 0) {
|
|
continue;
|
|
}
|
|
String tmp = RedisTools.get(item.getBgmid() + "", 1);
|
|
JSONObject bangumi = tmp == null ? BangumiTools.getBangumiInfoSmall(item.getBgmid()) : JSONObject.parseObject(tmp);
|
|
RedisTools.set(1, 2592000, item.getBgmid() + "", bangumi.toJSONString());
|
|
if (bangumi.containsKey("code") && bangumi.getInteger("code") == 404) {
|
|
continue;
|
|
}
|
|
int day = Tools.getWeekDay();
|
|
if (day == 0) {
|
|
day = 7;
|
|
}
|
|
if (bangumi.getInteger("air_weekday") == day) {
|
|
item.setUpdateDay("今天更新");
|
|
} else {
|
|
item.setUpdateDay("周" + getDay(bangumi.getInteger("air_weekday")) + "更新");
|
|
}
|
|
}
|
|
return items;
|
|
}
|
|
|
|
private String getDay(int day) {
|
|
switch (day) {
|
|
case 1:
|
|
return "一";
|
|
case 2:
|
|
return "二";
|
|
case 3:
|
|
return "三";
|
|
case 4:
|
|
return "四";
|
|
case 5:
|
|
return "五";
|
|
case 6:
|
|
return "六";
|
|
default:
|
|
return "日";
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public List<BangumiItem> getAllBangumiItemList() {
|
|
return itemDao.selectByExample(new BangumiItemExample());
|
|
}
|
|
|
|
@Override
|
|
public List<BangumiList> getAllBangumiList() {
|
|
List<BangumiList> list = listDao.selectByExample(new BangumiListExample());
|
|
BangumiList bangumi = new BangumiList();
|
|
bangumi.setTitle("临时RSS");
|
|
bangumi.setId(-1);
|
|
list.add(bangumi);
|
|
return list;
|
|
}
|
|
}
|