package com.ks.push.controller.admin;
|
|
import com.google.gson.*;
|
import com.ks.push.dao.BPushAppInfoDao;
|
import com.ks.push.dao.BPushPlatformAppInfoDao;
|
import com.ks.push.manager.BPushPlatformAppInfoManager;
|
import com.ks.push.pojo.DO.BPushAppInfo;
|
import com.ks.push.pojo.DO.BPushPlatformAppInfo;
|
import com.ks.push.pojo.DO.PushPlatform;
|
import net.sf.json.JSONArray;
|
import net.sf.json.JSONObject;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.validation.BindingResult;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.yeshi.utils.JsonUtil;
|
import org.yeshi.utils.TimeUtil;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpSession;
|
import javax.validation.Valid;
|
import java.lang.reflect.Type;
|
import java.util.Date;
|
import java.util.List;
|
|
@Controller
|
@RequestMapping("/admin/api/pushplatform-app")
|
public class AdminPushPlatformAppController {
|
|
@Resource
|
private BPushPlatformAppInfoManager bPushPlatformAppInfoManager;
|
|
@Resource
|
private BPushPlatformAppInfoDao bPushPlatformAppInfoDao;
|
|
@ResponseBody
|
@RequestMapping("list")
|
public String list(String key, String appCode, int page, int limit) {
|
|
Query query = new Query();
|
query.skip((page - 1) * limit);
|
query.limit(limit);
|
if (appCode != null) {
|
query.addCriteria(Criteria.where("appCode").is(appCode));
|
}
|
|
|
List<BPushPlatformAppInfo> list = bPushPlatformAppInfoDao.findList(query);
|
long count = bPushPlatformAppInfoDao.count(query);
|
|
|
JSONObject data = new JSONObject();
|
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
|
|
@Override
|
public JsonElement serialize(Date date, Type type, JsonSerializationContext jsonSerializationContext) {
|
return date == null ? new JsonPrimitive("") : new JsonPrimitive(TimeUtil.getGernalTime(date.getTime(), "yyyy.MM.dd HH:mm"));
|
}
|
}).registerTypeAdapter(PushPlatform.class, new JsonSerializer<PushPlatform>() {
|
|
@Override
|
public JsonElement serialize(PushPlatform platform, Type type, JsonSerializationContext jsonSerializationContext) {
|
return platform == null ? new JsonPrimitive("") : new JsonPrimitive(platform.getName());
|
}
|
}).create();
|
|
data.put("list", gson.toJson(list));
|
data.put("count", count);
|
return JsonUtil.loadTrueResult(data);
|
}
|
|
@ResponseBody
|
@RequestMapping("delete")
|
public String delete(String ids) {
|
JSONArray array = JSONArray.fromObject(ids);
|
for (int i = 0; i < array.size(); i++) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("id").is(array.optString(i)));
|
bPushPlatformAppInfoDao.delete(query);
|
}
|
return JsonUtil.loadTrueResult("");
|
}
|
|
|
@ResponseBody
|
@RequestMapping("update")
|
public String update(@RequestBody BPushPlatformAppInfo app, HttpSession session) {
|
if (app.getId() == null) {
|
return JsonUtil.loadFalseResult("ID不能为空");
|
}
|
bPushPlatformAppInfoDao.updateSelective(app);
|
return JsonUtil.loadTrueResult("");
|
}
|
|
|
@ResponseBody
|
@RequestMapping("add")
|
public String add(@RequestBody @Valid BPushPlatformAppInfo app, BindingResult bindingResult) {
|
if (bindingResult.hasErrors()) {
|
return JsonUtil.loadFalseResult(bindingResult.getFieldError().getDefaultMessage());
|
}
|
if (app.getAppCode() == null) {
|
return JsonUtil.loadFalseResult("appCode不能为空");
|
}
|
|
BPushPlatformAppInfo appInfo = bPushPlatformAppInfoManager.selectByAppCodeAndPlatform(app.getAppCode(), app.getPlatform());
|
if (appInfo != null) {
|
return JsonUtil.loadFalseResult("推送平台信息已存在");
|
}
|
|
if (app.getCreateTime() == null) {
|
app.setCreateTime(new Date());
|
}
|
app.setId(BPushPlatformAppInfo.createId(app.getAppCode(), app.getPlatform()));
|
|
bPushPlatformAppInfoDao.save(app);
|
return JsonUtil.loadTrueResult("");
|
}
|
|
|
}
|