add operator info

This commit is contained in:
Sola
2015-12-28 01:16:58 +08:00
parent d45cbebd15
commit b28364f160
7 changed files with 65 additions and 4 deletions

View File

@@ -2,6 +2,7 @@ package love.sola.netsupport.api.stuff;
import com.google.gson.Gson;
import love.sola.netsupport.api.Response;
import love.sola.netsupport.enums.Access;
import love.sola.netsupport.enums.Attribute;
import love.sola.netsupport.pojo.Operator;
import love.sola.netsupport.pojo.Ticket;
@@ -60,6 +61,9 @@ public class TicketLookup extends HttpServlet {
} else {
block = op.getBlock();
}
if (block == 0 && op.getAccess() > Access.LEADER) {
return new Response(Response.ResponseCode.PERMISSION_DENIED);
}
List<Ticket> list = TableTicket.unsolvedByBlock(block);
return new Response(Response.ResponseCode.OK, list);
} catch (NumberFormatException e) {

View File

@@ -1,6 +1,8 @@
package love.sola.netsupport.wechat;
import love.sola.netsupport.wechat.handler.*;
import love.sola.netsupport.wechat.handler.admin.LoginHandler;
import love.sola.netsupport.wechat.handler.admin.OperatorInfoHandler;
import me.chanjar.weixin.mp.api.WxMpMessageHandler;
import java.util.HashMap;
@@ -22,6 +24,7 @@ public enum Command {
CANCEL(3, CancelHandler.class),
PROFILE(4, ProfileHandler.class),
LOGIN(10, LoginHandler.class),
OPERATOR_INFO(11, OperatorInfoHandler.class),
;
private static final Map<Integer, Command> ID_MAP = new HashMap<>();

View File

@@ -2,7 +2,6 @@ package love.sola.netsupport.wechat;
import love.sola.netsupport.config.Settings;
import love.sola.netsupport.wechat.handler.RegisterHandler;
import love.sola.netsupport.wechat.handler.SignHandler;
import love.sola.netsupport.wechat.handler.SubscribeHandler;
import love.sola.netsupport.wechat.matcher.CheckSpamMatcher;
import love.sola.netsupport.wechat.matcher.RegisterMatcher;
@@ -81,7 +80,6 @@ public class WxMpServlet extends HttpServlet {
} catch (IllegalAccessException | InstantiationException e) {
throw new ServletException(e);
}
wxMpMessageRouter.rule().async(false).msgType("text").rContent("(?i)^Auth \\d{4}").handler(new SignHandler()).end();
}
public static void registerCommands(WxMpMessageRouter router) throws IllegalAccessException, InstantiationException {

View File

@@ -1,4 +1,4 @@
package love.sola.netsupport.wechat.handler;
package love.sola.netsupport.wechat.handler.admin;
import love.sola.netsupport.enums.Access;
import love.sola.netsupport.enums.Attribute;

View File

@@ -0,0 +1,46 @@
package love.sola.netsupport.wechat.handler.admin;
import love.sola.netsupport.enums.Access;
import love.sola.netsupport.pojo.Operator;
import love.sola.netsupport.sql.TableOperator;
import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpMessageHandler;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.WxMpXmlOutMessage;
import me.chanjar.weixin.mp.bean.outxmlbuilder.TextBuilder;
import java.util.Map;
import static love.sola.netsupport.config.Lang.format;
import static love.sola.netsupport.config.Lang.lang;
/**
* ***********************************************
* Created by Sola on 2015/12/28.
* Don't modify this source without my agreement
* ***********************************************
*/
public class OperatorInfoHandler implements WxMpMessageHandler {
@Override
public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, WxMpService wxMpService, WxSessionManager sessionManager) throws WxErrorException {
TextBuilder out = WxMpXmlOutMessage.TEXT().fromUser(wxMessage.getToUserName()).toUser(wxMessage.getFromUserName());
try {
Operator op = TableOperator.get(wxMessage.getFromUserName());
if (op == null)
out.content(lang("Not_Operator"));
else if (op.getAccess() == Access.NOLOGIN) {
out.content(lang("No_Login"));
} else {
out.content(format("Operator_Info", op.getId(), op.getName(), op.getAccess(), op.getBlock(), op.getWeek()));
}
} catch (Exception e) {
e.printStackTrace();
out.content(lang("Login_Error"));
}
return out.build();
}
}

View File

@@ -1,4 +1,4 @@
package love.sola.netsupport.wechat.handler;
package love.sola.netsupport.wechat.handler.admin;
import love.sola.netsupport.sql.SQLCore;
import me.chanjar.weixin.common.exception.WxErrorException;