Merge branch 'develop' into feature/easter_eggs

This commit is contained in:
Sola
2015-12-16 16:56:48 +08:00
3 changed files with 77 additions and 10 deletions

View File

@@ -0,0 +1,76 @@
package love.sola.netsupport.api.admin;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.pojo.Operator;
import love.sola.netsupport.pojo.Ticket;
import love.sola.netsupport.sql.SQLCore;
import love.sola.netsupport.sql.TableTicket;
import love.sola.netsupport.util.Checker;
import love.sola.netsupport.util.ParseUtil;
import love.sola.netsupport.wechat.Command;
import me.chanjar.weixin.common.session.WxSession;
import org.hibernate.HibernateException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
/**
* ***********************************************
* Created by Sola on 2015/12/13.
* Don't modify this source without my agreement
* ***********************************************
*/
@WebServlet(name = "TicketLookup", urlPatterns = "/api/admin/ticketlookup", loadOnStartup = 24)
public class TicketLookup extends HttpServlet {
private Gson gson = SQLCore.gson;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.addHeader("Content-type", "application/json;charset=utf-8");
PrintWriter out = response.getWriter();
String json = gson.toJson(lookup(request));
out.println(ParseUtil.parseJsonP(request, json));
out.close();
}
private Response lookup(HttpServletRequest request) {
WxSession session = Checker.isAuthorized(request, Command.LOGIN);
if (session == null) {
return new Response(Response.ResponseCode.UNAUTHORIZED);
}
try {
Operator op = (Operator) session.getAttribute(Attribute.OPERATOR);
int block;
if (request.getParameter("block") != null) {
block = Integer.parseInt(request.getParameter("block"));
} else {
block = op.getBlock();
}
List<Ticket> list = TableTicket.unsolvedByBlock(block);
return new Response(Response.ResponseCode.OK, list);
} catch (NumberFormatException e) {
return new Response(Response.ResponseCode.ILLEGAL_PARAMETER);
} catch (HibernateException e) {
e.printStackTrace();
return new Response(Response.ResponseCode.DATABASE_ERROR, e.getMessage());
} catch (Exception e) {
e.printStackTrace();
return new Response(Response.ResponseCode.INTERNAL_ERROR, e.getMessage());
}
}
}

View File

@@ -1,10 +0,0 @@
package love.sola.netsupport.api.admin;
/**
* ***********************************************
* Created by Sola on 2015/12/13.
* Don't modify this source without my agreement
* ***********************************************
*/
public class TicketQuery {
}

View File

@@ -63,6 +63,7 @@ public class TableTicket extends SQLCore {
public static List<Ticket> unsolvedByBlock(int b) {
try (Session s = SQLCore.sf.openSession()) {
return s.createCriteria(Ticket.class)
.add(Restrictions.ne(Ticket.PROPERTY_STATUS, Status.SOLVED))
.createCriteria(Ticket.PROPERTY_USER)
.add(Restrictions.between(User.PROPERTY_BLOCK, b * 10, (b + 1) * 10 - 1))
.list();