刘韬 %!s(int64=6) %!d(string=hai) anos
pai
achega
731a4c3d48
Modificáronse 20 ficheiros con 224 adicións e 98 borrados
  1. 2 2
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/common/ZskkConfig.java
  2. 98 0
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WebBridgeController.java
  3. 2 2
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WeixinApiController.java
  4. 0 77
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WeixinWebController.java
  5. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Exams.java
  6. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Institution.java
  7. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Messages.java
  8. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/OpenApplication.java
  9. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Operating.java
  10. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/PatientInfos.java
  11. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/RemoteApplication.java
  12. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Report.java
  13. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/ReportRecord.java
  14. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/User.java
  15. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/UserBind.java
  16. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/WechatBind.java
  17. 2 4
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/ServiceFactory.java
  18. 86 0
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/UserService.java
  19. 21 0
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/WeixinService.java
  20. 1 1
      PacsOnline_Wechat_Patient/src/main/java/com/zskk/util/_JFinalDemoGenerator.java

+ 2 - 2
PacsOnline_Wechat_Patient/src/main/java/com/zskk/common/ZskkConfig.java

@@ -24,7 +24,7 @@ import com.jfinal.weixin.sdk.cache.RedisAccessTokenCache;
 import com.zskk.service.ServiceFactory;
 import com.zskk.controller.WeixinApiController;
 import com.zskk.controller.WeixinMsgController;
-import com.zskk.controller.WeixinWebController;
+import com.zskk.controller.WebBridgeController;
 
 public class ZskkConfig extends JFinalConfig {
 	// 本地开发模式
@@ -64,7 +64,7 @@ public class ZskkConfig extends JFinalConfig {
 
 		me.add("/msg", WeixinMsgController.class);
 		me.add("/api", WeixinApiController.class, "/api");
-        me.add("/web", WeixinWebController.class);
+        me.add("/web", WebBridgeController.class);
 	}
 
 	public void configPlugin(Plugins me) {

+ 98 - 0
PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WebBridgeController.java

@@ -0,0 +1,98 @@
+package com.zskk.controller;
+
+import java.net.URLEncoder;
+import java.util.List;
+import com.jfinal.core.Controller;
+import com.jfinal.kit.PropKit;
+import com.jfinal.plugin.redis.Redis;
+import com.jfinal.weixin.sdk.api.SnsAccessToken;
+import com.zskk.model.User;
+import com.zskk.service.ServiceFactory;
+import com.zskk.service.UserService;
+import com.zskk.service.WeixinService;
+
+public class WebBridgeController extends Controller {
+
+	private static String WEB_BASR_URL = "http://wechat.client.pacsonline.cn/#";
+	
+	public void addBinding() {
+		this.process(WEB_BASR_URL+"/bind");
+	}
+	
+	public void examList() {
+		this.process(WEB_BASR_URL+"/reportList");
+	}
+
+	public void aboutUs() {
+		this.redirect("http://wechat.pacsonline.cn/pacs_online/html/aboutAs_zskk.html");
+	}
+	
+	private void process(String toUrl) {
+		try {
+			Object sessionObj = this.getRequest().getSession().getAttribute("pwpSessionObj");
+			WeixinService wService = ServiceFactory.getService(WeixinService.class);
+			if (sessionObj == null) {
+				String code = this.getPara("code");
+				if (code == null) {
+					String url = wService.getCodeUrl("wxee1c68f8944d357b", toUrl);
+					this.redirect(url);
+					return;
+				}
+				SnsAccessToken snsAccessToken = wService.getWebAccessToken("wxee1c68f8944d357b", "1bc0128b6bbb3907c3bcf4a1704f2a1f", code);
+				
+//				UserService uService = ServiceFactory.getService(UserService.class);
+//				String openId = uService.getOpenId(code);
+//				User userWechats = User.dao.findFirst("select * from user where wx_openid=?",openId);
+//				if (userWechats == null && openId != null) {
+//					userWechats = uService.createWxUser(openId);
+//				}
+//				if (userWechats != null && userWechats.getWxIcon().isEmpty()) {
+//					uService.getUserInfo(userWechats.getWxOpenid());
+//				}
+//				this.getRequest().getSession().setAttribute("pwpSessionObj", userWechats);
+////
+//				String uidStr = toUrl.contains("?") ? "&openid=" : "?openid=";
+//				this.redirect(toUrl + uidStr + openId);
+			} else {
+//				UserService uService = ServiceFactory.getService(UserService.class);
+//				User userWechats = (User) sessionObj;
+//				User users = User.dao.findById(userWechats.getId());
+//				String uidStr = toUrl.contains("?") ? "&openid=" : "?openid=";
+//				if (users == null) {
+//					uService.createWxUser(userWechats.getWxOpenid());
+//				}
+//				User users2 = User.dao.findFirst("select * from user where wx_openid=?",userWechats.getWxOpenid());
+//				if (users2 != null && users2.getWxIcon().isEmpty()) {
+//					uService.getUserInfo(userWechats.getWxOpenid());
+//				}
+//				
+//				this.getRequest().getSession().setAttribute("pwpSessionObj", users2);
+//
+//				this.redirect(toUrl + uidStr + userWechats.getWxOpenid());
+
+				
+			}
+		} catch (Exception e) {
+			// nothing
+			this.redirect("http://www.pacsonline.cn");
+			//this.renderText(e.toString());
+		}
+		
+	}
+
+	// 跳转到微信认证
+	public void redirectToWX() {
+//		String url = getRequest().getRequestURL().toString();
+//		if (getPara("type") !=null) {
+//			url = url + "?type=" + getPara("type");
+//		}
+//		try {
+//			url = URLEncoder.encode(url, "UTF-8");
+//		} catch (Exception e) {
+//			// nothing
+//		}
+//		String redirect = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo#wechat_redirect";
+//		redirect(String.format(redirect, PropKit.get("appId"), url));
+	}
+	
+}

+ 2 - 2
PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WeixinApiController.java

@@ -61,12 +61,12 @@ public class WeixinApiController extends ApiController {
                 "            \"sub_button\": [\n" +
                 "        {\n" +
                 "\t    \"name\": \"我的检查列表\",\n" +
-                "\t    \"url\": \"http://www.pacsonline.cn\",\n" +
+                "\t    \"url\": \"http://wechat.pacsonline.cn/wx_patient/web/examList\",\n" +
                 "\t    \"type\": \"view\"\n" +
                 "        },\n" +
                 "        {\n" +
                 "\t    \"name\": \"添加绑定\",\n" +
-                "\t    \"url\": \"http://www.pacsonline.cn\",\n" +
+                "\t    \"url\": \"http://wechat.pacsonline.cn/wx_patient/web/addBinding\",\n" +
                 "\t    \"type\": \"view\"\n" +
                 "        }\n" +
                 "    ]\n" +

+ 0 - 77
PacsOnline_Wechat_Patient/src/main/java/com/zskk/controller/WeixinWebController.java

@@ -1,77 +0,0 @@
-package com.zskk.controller;
-
-import java.net.URLEncoder;
-import java.util.List;
-import com.jfinal.core.Controller;
-import com.jfinal.kit.PropKit;
-import com.jfinal.plugin.redis.Redis;
-
-public class WeixinWebController extends Controller {
-
-	private static String WEB_BASR_URL = "http://wechat.client.pacsonline.cn/#";
-	
-	public void addBinding() {
-		this.process(WEB_BASR_URL+"bind");
-	}
-	
-	public void examList() {
-		this.process(WEB_BASR_URL+"/reportList");
-	}
-
-	public void aboutUs() {
-		this.redirect("http://wechat.pacsonline.cn/pacs_online/html/aboutAs_zskk.html");
-	}
-	
-	private void process(String toUrl) {
-		try {
-			String encodeUrl = URLEncoder.encode(toUrl, "UTF-8");
-			Object sessionObj = this.getRequest().getSession().getAttribute("pwpInfo");
-			if (sessionObj == null) {
-				String code = this.getPara("code");
-				if (code == null) {
-					this.redirectToWX();
-					return;
-				}
-//				WeixinService wService = ServiceFactory.getService(WeixinService.class);
-//				String openId = wService.getOpenId(code);
-//				UserWechats userWechats = UserWechats.dao.findById(openId);
-//				if (userWechats == null) {
-//					AccountService aService = ServiceFactory.getService(AccountService.class);
-//	                aService.createWxUser(openId);
-//	                userWechats = UserWechats.dao.findById(openId);
-//				}
-//				Users users = Users.dao.findById(userWechats.getUid());
-//				this.getRequest().getSession().setAttribute("pwpInfo", userWechats);
-
-				String uidStr = toUrl.contains("?") ? "&uid=" : "?uid=";
-//				this.redirect(toUrl + uidStr + userWechats.getUid());
-			} else {
-//				UserWechats userWechats = (UserWechats) sessionObj;
-//				Users users = Users.dao.findById(userWechats.getUid());
-//				this.getRequest().getSession().setAttribute("pwpInfo", userWechats);
-
-				String uidStr = toUrl.contains("?") ? "&uid=" : "?uid=";
-//				this.redirect(toUrl + uidStr + userWechats.getUid());
-			}
-		} catch (Exception e) {
-			// nothing
-		}
-		
-	}
-
-	// 跳转到微信认证
-	public void redirectToWX() {
-//		String url = getRequest().getRequestURL().toString();
-//		if (getPara("type") !=null) {
-//			url = url + "?type=" + getPara("type");
-//		}
-//		try {
-//			url = URLEncoder.encode(url, "UTF-8");
-//		} catch (Exception e) {
-//			// nothing
-//		}
-//		String redirect = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo#wechat_redirect";
-//		redirect(String.format(redirect, PropKit.get("appId"), url));
-	}
-	
-}

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Exams.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseExams;
  */
 @SuppressWarnings("serial")
 public class Exams extends BaseExams<Exams> {
-	
+	public static final Exams dao = new Exams().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Institution.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseInstitution;
  */
 @SuppressWarnings("serial")
 public class Institution extends BaseInstitution<Institution> {
-	
+	public static final Institution dao = new Institution().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Messages.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseMessages;
  */
 @SuppressWarnings("serial")
 public class Messages extends BaseMessages<Messages> {
-	
+	public static final Messages dao = new Messages().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/OpenApplication.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseOpenApplication;
  */
 @SuppressWarnings("serial")
 public class OpenApplication extends BaseOpenApplication<OpenApplication> {
-	
+	public static final OpenApplication dao = new OpenApplication().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Operating.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseOperating;
  */
 @SuppressWarnings("serial")
 public class Operating extends BaseOperating<Operating> {
-	
+	public static final Operating dao = new Operating().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/PatientInfos.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BasePatientInfos;
  */
 @SuppressWarnings("serial")
 public class PatientInfos extends BasePatientInfos<PatientInfos> {
-	
+	public static final PatientInfos dao = new PatientInfos().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/RemoteApplication.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseRemoteApplication;
  */
 @SuppressWarnings("serial")
 public class RemoteApplication extends BaseRemoteApplication<RemoteApplication> {
-	
+	public static final RemoteApplication dao = new RemoteApplication().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/Report.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseReport;
  */
 @SuppressWarnings("serial")
 public class Report extends BaseReport<Report> {
-	
+	public static final Report dao = new Report().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/ReportRecord.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseReportRecord;
  */
 @SuppressWarnings("serial")
 public class ReportRecord extends BaseReportRecord<ReportRecord> {
-	
+	public static final ReportRecord dao = new ReportRecord().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/User.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseUser;
  */
 @SuppressWarnings("serial")
 public class User extends BaseUser<User> {
-	
+	public static final User dao = new User().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/UserBind.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseUserBind;
  */
 @SuppressWarnings("serial")
 public class UserBind extends BaseUserBind<UserBind> {
-	
+	public static final UserBind dao = new UserBind().dao();
 }

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/model/WechatBind.java

@@ -7,5 +7,5 @@ import com.zskk.model.base.BaseWechatBind;
  */
 @SuppressWarnings("serial")
 public class WechatBind extends BaseWechatBind<WechatBind> {
-	
+	public static final WechatBind dao = new WechatBind().dao();
 }

+ 2 - 4
PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/ServiceFactory.java

@@ -18,10 +18,8 @@ public class ServiceFactory {
 	 */
 	public static void init(){
 		CLASS_MAP.put(ThreadPoolService.class, 	        Duang.duang(ThreadPoolService.class));
-//		CLASS_MAP.put(WeixinService.class, 	            Duang.duang(WeixinService .class));
-//		CLASS_MAP.put(AccountService.class, 	        Duang.duang(AccountService.class));
-//		CLASS_MAP.put(SmsService.class, 				Duang.duang(SmsService.class));
-//		CLASS_MAP.put(PayService.class, 				Duang.duang(PayService.class));
+		CLASS_MAP.put(UserService.class, 	            Duang.duang(UserService .class));
+		CLASS_MAP.put(WeixinService.class, 	            Duang.duang(WeixinService .class));
 
 	}
 	

+ 86 - 0
PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/UserService.java

@@ -0,0 +1,86 @@
+package com.zskk.service;
+
+import java.util.UUID;
+import com.jfinal.kit.PropKit;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+
+public class UserService {
+	
+	private static final OkHttpClient OKHTTP_CLIENT = new OkHttpClient();
+
+	private static final String CAHR_CODE = "UTF-8";
+	
+	//业务逻辑请求
+	private static final String BASE_URL = PropKit.get("wx_base_url");
+
+	/*
+	 * 获取用户信息
+	 */
+	public void getUserInfo(String openid) {
+//		ApiConfigKit.setThreadLocalApiConfig(getApiConfig());
+//		String url = String.format(GET_USERINFO, AccessTokenApi.getAccessTokenStr(), openid);
+//		String content = doGet(url);
+//		JSONObject obj = JSON.parseObject(content);
+//		if (obj.containsKey("errcode")) {
+//		} else {
+//			System.out.println(obj);
+//			User account = User.dao.findFirst("select * from user where wx_openid=?",openid);
+//			account.setWxIcon(obj.getString("headimgurl"));
+//			account.setWxNickname(obj.getString("nickname"));
+//			account.update();
+//		}
+	}
+	
+	private String doGet(String url) {
+		Request request = new Request.Builder().url(url).build();
+
+		return url;
+
+	}
+
+	/*
+	 * 发送模板消息
+	 */
+	public void sendTemplateMsg(String openid,String url,String event,String userName) {
+//		if (PropKit.getBoolean("devMode") == true) {
+//			ApiConfigKit.setThreadLocalApiConfig(getApiConfig());
+//			SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
+//			String time = sdf.format(new Date());
+//			String json = TemplateData.New().setTouser(openid)
+//					.setTemplate_id("eNs4B9rKo_0N-sF1NRmW6PESmTLm8zi_5Vl6ujeFngA").setTopcolor("#743A3A")
+//					.setUrl(url)
+//					.add("keyword1", time  , "#743A3A")
+//					.add("keyword2", event , "#743A3A")
+//					.add("keyword3", "用药了吗?用药后感觉怎么样?快来说说吧,我们不会将您的资料泄露,完成赢积分!", "#743A3A")
+//					.build();
+//			System.out.println(json);
+//			ApiResult result = TemplateMsgApi.send(json);
+//			System.out.println(result.getJson());
+//		}else{
+//			ApiConfigKit.setThreadLocalApiConfig(getApiConfig());
+//			SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH:mm:ss");
+//			String time = sdf.format(new Date());
+//			String json = TemplateData.New().setTouser(openid)
+//					.setTemplate_id("U4cjem6T4heIpO6gS92XE2au9ZTr0mJcgutgEoDIpRI").setTopcolor("#743A3A")
+//					.setUrl(url)
+//					.add("first"   , event      , "#0DB0EB")
+//					.add("keyword1", userName         , "")
+//					.add("keyword2", ""         , "")
+//					.add("keyword3", time       , "")
+//					.add("remark"  , "请按时记录哦", "#BBBBBB")
+//					.build();
+//			System.out.println(json);
+//			ApiResult result = TemplateMsgApi.send(json);
+//			System.out.println(result.getJson());
+//		}
+	}
+	
+	private String create_timestamp() {
+		return Long.toString(System.currentTimeMillis() / 1000);
+	}
+
+	private String create_nonce_str() {
+		return UUID.randomUUID().toString();
+	}
+}

+ 21 - 0
PacsOnline_Wechat_Patient/src/main/java/com/zskk/service/WeixinService.java

@@ -0,0 +1,21 @@
+package com.zskk.service;
+
+import com.jfinal.weixin.sdk.api.SnsAccessToken;
+import com.jfinal.weixin.sdk.api.SnsAccessTokenApi;
+
+public class WeixinService {
+	
+	/**
+	 * 用户同意授权,获取带code的url
+	 * @return
+	 */
+	public String getCodeUrl(String appId, String redirect_uri) {
+		String url = SnsAccessTokenApi.getAuthorizeURL(appId, redirect_uri, false);
+		return url;
+	}
+
+	public SnsAccessToken getWebAccessToken(String appId, String secret, String code) {
+		SnsAccessToken snsAccessToken = SnsAccessTokenApi.getSnsAccessToken(appId, secret, code);
+		return snsAccessToken;
+	}
+}

+ 1 - 1
PacsOnline_Wechat_Patient/src/main/java/com/zskk/util/_JFinalDemoGenerator.java

@@ -49,7 +49,7 @@ public class _JFinalDemoGenerator {
 		generator.addExcludedTable("bbs","sys_logs","bodypart","constant","department","device","doctor_class","doctors","dr_cla_permission","exam_class","exam_project","exam_subclass","images","manager","menu","templates","studies","series","oss_callbacks","version","sys_menus");
 		
 		// 设置是否在 Model 中生成 dao 对象
-		generator.setGenerateDaoInModel(false);
+		generator.setGenerateDaoInModel(true);
 		
 		// 设置是否生成字典文件
 		generator.setGenerateDataDictionary(false);