web_toolset/src/main/java/com/yutou/tools/services/BangumiServiceImpl.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;
}
}