Browse Source

easemob ext message

albertshaw 8 years ago
parent
commit
ff5f7175ae

+ 1 - 1
src/main/java/com/goafanti/admin/controller/AdminApiController.java

@@ -2810,7 +2810,7 @@ public class AdminApiController extends CertifyApiController {
 		if (cog.getState() != null && !cog.getState().equals(o.getState())
 				&& cog.getState() <= OrgCognizanceStatus.CALLBACK.getCode()
 				&& cog.getState() >= OrgCognizanceStatus.PREPARE.getCode()) {
-			easemobUtils.sendMessage(EasemonSysUsers.DDDT.getUsername(),
+			easemobUtils.sendMessage(EasemonSysUsers.ADMIN_DDDT.getUsername(),
 					userService.selectNumberByPrimaryKey(o.getUid()), "您的科技项目申报订单:#%s,状态变更为%s", o.getSerialNumber(),
 					OrgCognizanceStatus.getStatus(cog.getState()).getDesc());
 		}

+ 1 - 1
src/main/java/com/goafanti/admin/controller/AdminCopyrightApiController.java

@@ -171,7 +171,7 @@ public class AdminCopyrightApiController extends CertifyApiController {
 		if (inputInfo.getStatus() != null && !inputInfo.getStatus().equals(oci.getStatus())
 				&& inputInfo.getStatus() <= CopyrightStatus.CALLBACK.getCode()
 				&& inputInfo.getStatus() >= CopyrightStatus.SUBMIT.getCode()) {
-			easemobUtils.sendMessage(EasemonSysUsers.DDDT.getUsername(),
+			easemobUtils.sendMessage(EasemonSysUsers.ADMIN_DDDT.getUsername(),
 					userService.selectNumberByPrimaryKey(oci.getUid()), "您的软著申请订单:#%s%s,状态变更为%s", oci.getSerialNumber(),
 					oci.getCopyrightName() == null ? "" : oci.getCopyrightName(),
 					CopyrightStatus.getStatus(inputInfo.getStatus()).getDesc());

+ 1 - 1
src/main/java/com/goafanti/admin/controller/AdminPatentApiController.java

@@ -310,7 +310,7 @@ public class AdminPatentApiController extends CertifyApiController {
 		if (patentInfo.getState() != null && !patentInfo.getState().equals(p.getPatentState())
 				&& patentInfo.getState() <= PatentInfoStatus.CALLBACK.getCode()
 				&& patentInfo.getState() >= PatentInfoStatus.COMPOSE.getCode()) {
-			easemobUtils.sendMessage(EasemonSysUsers.DDDT.getUsername(),
+			easemobUtils.sendMessage(EasemonSysUsers.ADMIN_DDDT.getUsername(),
 					userService.selectNumberByPrimaryKey(p.getUid()), "您的专利申请订单:#%s%s,状态变更为%s", p.getSerialNumber(),
 					p.getPatentName() == null ? "" : p.getPatentName(),
 					PatentInfoStatus.getStatus(patentInfo.getState()).getDesc());

+ 3 - 2
src/main/java/com/goafanti/admin/controller/AdminSystemController.java

@@ -3,6 +3,7 @@ package com.goafanti.admin.controller;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
@@ -39,14 +40,14 @@ public class AdminSystemController extends BaseApiController {
 		}
 		return res().data(false);
 	}
-	
+
 	/**
 	 * 测试发送消息
 	 */
 	@RequestMapping(value = "/sys/sendMsg", method = RequestMethod.GET)
 	public Result sendMsg(String from, String to, String msg) {
 		if (isSuperAdmin()) {
-			easemobUtils.sendMessage(from, to, msg, true);
+			easemobUtils.sendMessage(from, to, new ModelMap("nickname", EasemonSysUsers.getNickname(from)), msg, true);
 			return res().data(true);
 		}
 		return res().data(false);

+ 1 - 1
src/main/java/com/goafanti/admin/controller/AdminTechProjectApiController.java

@@ -284,7 +284,7 @@ public class AdminTechProjectApiController extends CertifyApiController {
 		if (techProject.getState() != null && !techProject.getState().equals(t.getState())
 				&& techProject.getState() <= TechProjectStatus.CALLBACK.getCode()
 				&& techProject.getState() >= TechProjectStatus.SUBMIT.getCode()) {
-			easemobUtils.sendMessage(EasemonSysUsers.DDDT.getUsername(),
+			easemobUtils.sendMessage(EasemonSysUsers.ADMIN_DDDT.getUsername(),
 					userService.selectNumberByPrimaryKey(t.getUid()), "您的科技项目申报订单:#%s%s,状态变更为%s", t.getSerialNumber(),
 					t.getProjectName() == null ? "" : t.getProjectName(),
 					TechProjectStatus.getStatus(techProject.getState()).getDesc());

+ 15 - 2
src/main/java/com/goafanti/easemob/EasemobUtils.java

@@ -162,15 +162,28 @@ public class EasemobUtils implements InitializingBean, DisposableBean {
 	}
 
 	public void sendMessage(String from, String to, String msg, Object... value) {
+		sendAsync(new EasemobInfo().uri("/messages").data(buildMessage(from, to, null, String.format(msg, value)))
+				.method(HttpMethod.POST));
+	}
+
+	public void sendMessage(String from, String to, Object ext, String msg, Object... value) {
+		sendAsync(new EasemobInfo().uri("/messages").data(buildMessage(from, to, ext, String.format(msg, value)))
+				.method(HttpMethod.POST));
+	}
+
+	private String buildMessage(String from, String to, Object ext, String msg) {
 		JSONObject message = new JSONObject();
 		message.put("type", "txt");
-		message.put("msg", String.format(msg, value));
+		message.put("msg", msg);
 		JSONObject jo = new JSONObject();
 		jo.put("target_type", "users");
 		jo.put("target", new String[] { to });
 		jo.put("msg", message);
 		jo.put("from", from);
-		sendAsync(new EasemobInfo().uri("/messages").data(jo.toJSONString()).method(HttpMethod.POST));
+		if (ext != null) {
+			jo.put("ext", ext);
+		}
+		return jo.toJSONString();
 	}
 
 	private Optional<Integer> getResCode(HttpResponse response) {

+ 30 - 1
src/main/java/com/goafanti/easemob/enums/EasemonSysUsers.java

@@ -1,7 +1,13 @@
 package com.goafanti.easemob.enums;
 
+import java.util.HashMap;
+import java.util.Map;
+
 public enum EasemonSysUsers {
-	DDDT("ADMIN_DDDT", "订单动态"), XQDT("ADMIN_XQDT", "需求动态"), CGDT("ADMIN_CGDT", "成果动态"), XTXX("ADMIN_XTXX", "系统消息");
+	ADMIN_DDDT("ADMIN_DDDT", "订单动态"),
+	ADMIN_XQDT("ADMIN_XQDT", "需求动态"),
+	ADMIN_CGDT("ADMIN_CGDT", "成果动态"),
+	ADMIN_XTXX("ADMIN_XTXX", "系统消息");
 
 	private EasemonSysUsers(String username, String nickname) {
 		this.username = username;
@@ -20,4 +26,27 @@ public enum EasemonSysUsers {
 		return nickname;
 	}
 
+	private static Map<String, EasemonSysUsers> users = new HashMap<String, EasemonSysUsers>();
+
+	static {
+		for (EasemonSysUsers value : EasemonSysUsers.values()) {
+			users.put(value.getUsername(), value);
+		}
+	}
+
+	public static EasemonSysUsers getField(String code) {
+		if (containsType(code)) {
+			return users.get(code);
+		}
+		return ADMIN_XTXX;
+	}
+
+	public static String getNickname(String code) {
+		return getField(code).getNickname();
+	}
+
+	public static boolean containsType(String code) {
+		return users.containsKey(code);
+	}
+
 }