Compare commits

...

3 Commits

Author SHA1 Message Date
zsy 2cbe7af36c test
1 year ago
zsy 0f2470694f test
1 year ago
zsy fcdb659453 test
1 year ago

@ -1,31 +1,16 @@
/* // test
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.annotation;
import java.lang.annotation.*; package com.hyc.wechat.controller.annotation; // 定义注解所在的包名
/** import java.lang.annotation.*; // 导入Java标准注解库
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description ActionProviderurl // 定义一个名为ControllerConfig的注解
* @date 2019-05-02 11:28 @Retention(value = RetentionPolicy.RUNTIME) // 指定注解的生命周期RUNTIME表示注解将被保留到运行时可以通过反射读取
*/ @Target(value = ElementType.TYPE) // 指定注解可以应用的目标类型TYPE表示注解可以用于类、接口或枚举声明
@Documented public @interface ControllerConfig { // 使用@interface关键字定义注解
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = ElementType.TYPE) // 定义一个名为path的属性方法默认值为空字符串
public @interface ControllerConfig { // 该属性用于配置控制器类的路径
String path() default ""; String path() default "";
} }

@ -1,31 +1,11 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.constant; package com.hyc.wechat.controller.constant;
// 定义一个名为ControllerMessage的枚举类用于存储控制器相关的消息常量
/**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description
* @date 2019-05-03 13:11
*/
public enum ControllerMessage { public enum ControllerMessage {
/** /**
* *
*/ */
//枚举常量,表示用户当前处于游客身份
YOU_ARE_VISITOR("您现在处于游客身份,该服务并未对游客开放,如需使用请先注册一个账号"), YOU_ARE_VISITOR("您现在处于游客身份,该服务并未对游客开放,如需使用请先注册一个账号"),
/* /*
@ -36,21 +16,24 @@ public enum ControllerMessage {
/** /**
* *
*/ */
// 枚举常量,用于分隔不同类型的消息常量,系统错误码部分
SYSTEM_EXECEPTION("服务器发生了严重异常,无法提供服务"), SYSTEM_EXECEPTION("服务器发生了严重异常,无法提供服务"),
/** /**
* *
*/ */
//// 枚举常量,表示请求参数错误
REQUEST_INVALID("您的请求参数不足或错误,系统无法处理您的请求"); REQUEST_INVALID("您的请求参数不足或错误,系统无法处理您的请求");
// 枚举成员变量,用于存储消息文本
public String message; public String message;
// 枚举的构造方法,用于在创建枚举实例时初始化成员变量
ControllerMessage(String message) { ControllerMessage(String message) {
this.message = message; this.message = message;
} }
// 公共方法,用于获取枚举实例中存储的消息文本
public String getMessage() { public String getMessage() {
return message; return message;
} }
// 私有方法,用于设置枚举实例中的消息文本
private void setMessage(String message) { private void setMessage(String message) {
this.message = message; this.message = message;
} }

@ -1,30 +1,5 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.constant; package com.hyc.wechat.controller.constant;
/**
* requestmethod
*
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program XHotel
* @description
* @date 2019-04-18 12:45
*/
public enum RequestMethod { public enum RequestMethod {
/** /**

@ -1,32 +1,8 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.constant; package com.hyc.wechat.controller.constant;
// 定义一个名为WebPage的枚举类用于表示不同的网页路径
/**
*
*
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program XHotel
* @description
* @date 2019-04-18 12:48
*/
public enum WebPage { public enum WebPage {
/** /**
* *
*/ */
@ -69,6 +45,8 @@ public enum WebPage {
PICTRUES_JSP; PICTRUES_JSP;
@Override @Override
// 重写toString方法以提供枚举常量的字符串表示形式
// 将枚举名称转换为小写,并用点号替换下划线,以符合网页文件的命名习惯
public String toString() { public String toString() {
return "/"+super.toString().toLowerCase().replaceAll("_", "."); return "/"+super.toString().toLowerCase().replaceAll("_", ".");
} }

@ -1,87 +1,73 @@
/* package com.hyc.wechat.controller.impl.filter; // 定义过滤器所在的包名
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.impl.filter; import com.hyc.wechat.controller.constant.ControllerMessage; // 导入控制器消息常量类
import com.hyc.wechat.controller.constant.WebPage; // 导入网页常量类
import org.apache.log4j.Logger; // 导入log4j日志记录器
import com.hyc.wechat.controller.constant.ControllerMessage; import javax.servlet.*; // 导入Servlet API
import com.hyc.wechat.controller.constant.WebPage; import javax.servlet.annotation.WebFilter; // 导入WebFilter注解
import org.apache.log4j.Logger; import javax.servlet.annotation.WebInitParam; // 导入WebInitParam注解
import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest类
import javax.servlet.*; import javax.servlet.http.HttpServletResponse; // 导入HttpServletResponse类
import javax.servlet.annotation.WebFilter; import java.io.IOException; // 导入IOException类
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat
* @description
* @date 2019-05-02 22:56
*/
// 使用@WebFilter注解定义一个名为"EncodingFilter"的过滤器
// 过滤器将作用于所有的URL模式"/*"
// 并且具有一个初始化参数"ENCODING",其值为"UTF-8"
@WebFilter( @WebFilter(
filterName = "EncodingFilter", filterName = "EncodingFilter",
urlPatterns = {"/*"}, servletNames = {"/*"}, urlPatterns = {"/*"},
initParams = { initParams = {
@WebInitParam(name = "ENCODING", value = "UTF-8") @WebInitParam(name = "ENCODING", value = "UTF-8")
} }
) )
public class EncodingFilter implements Filter { public class EncodingFilter implements Filter { // 实现Filter接口
private String ENCODING = null; private String ENCODING = null; // 用于存储字符编码的成员变量
@Override @Override
public void init(FilterConfig config) { public void init(FilterConfig config) { // 过滤器初始化方法
// 从FilterConfig获取初始化参数"ENCODING"
this.ENCODING = config.getInitParameter("ENCODING"); this.ENCODING = config.getInitParameter("ENCODING");
} }
@Override @Override
public void destroy() { public void destroy() { // 过滤器销毁方法
// 在此可以释放资源,但本例中无需实现
} }
@Override @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) {
// 类型转换以便使用HttpServletRequest和HttpServletResponse的方法
HttpServletRequest req = (HttpServletRequest) servletRequest; HttpServletRequest req = (HttpServletRequest) servletRequest;
HttpServletResponse resp = (HttpServletResponse) servletResponse; HttpServletResponse resp = (HttpServletResponse) servletResponse;
try { try {
// 设置请求和响应的字符编码
req.setCharacterEncoding(ENCODING); req.setCharacterEncoding(ENCODING);
resp.setContentType("text/html;charset=utf-8"); resp.setContentType("text/html;charset=utf-8");
resp.setCharacterEncoding(ENCODING); resp.setCharacterEncoding(ENCODING);
// 设置CORS相关响应头允许跨域请求
resp.addHeader("Access-Control-Allow-Origin", "*"); resp.addHeader("Access-Control-Allow-Origin", "*");
resp.addHeader("Access-Control-Allow-Headers", resp.addHeader("Access-Control-Allow-Headers",
"origin, content-type, accept, x-requested-with, sid, mycustom, smuser"); "origin, content-type, accept, x-requested-with, sid, mycustom, smuser");
resp.addHeader("Access-Control-Allow-Methods", "*"); resp.addHeader("Access-Control-Allow-Methods", "*");
resp.addHeader("Access-Control-Max-Age", "100"); resp.addHeader("Access-Control-Max-Age", "100");
resp.addHeader("Access-Control-Allow-Credentials", "false"); resp.addHeader("Access-Control-Allow-Credentials", "false");
// 继续执行过滤链中的下一个过滤器或Servlet
filterChain.doFilter(servletRequest, servletResponse); filterChain.doFilter(servletRequest, servletResponse);
} catch (IOException | ServletException e) { } catch (IOException | ServletException e) {
e.printStackTrace(); e.printStackTrace(); // 打印异常堆栈信息
try { try {
// 设置请求属性,传递系统异常信息
req.setAttribute("message", ControllerMessage.SYSTEM_EXECEPTION.message); req.setAttribute("message", ControllerMessage.SYSTEM_EXECEPTION.message);
// 转发请求到错误页面
req.getRequestDispatcher(WebPage.ERROR_JSP.toString()).forward(req, resp); req.getRequestDispatcher(WebPage.ERROR_JSP.toString()).forward(req, resp);
} catch (ServletException | IOException ex) { } catch (ServletException | IOException ex) {
ex.printStackTrace(); ex.printStackTrace(); // 打印转发过程中可能出现的异常堆栈信息
} }
} }
// 获取日志记录器并记录请求信息
Logger logger = Logger.getLogger(EncodingFilter.class); Logger logger = Logger.getLogger(EncodingFilter.class);
logger.info("[请求url] : " + req.getRequestURI() + " [请求参数] " + req.getQueryString()); logger.info("[请求url] : " + req.getRequestURI() + " [请求参数] " + req.getQueryString());
} }
} }

@ -1,100 +1,80 @@
/* // 导入必要的库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.impl.filter; package com.hyc.wechat.controller.impl.filter;
import com.hyc.wechat.controller.constant.ControllerMessage; import com.hyc.wechat.controller.constant.ControllerMessage; // 导入控制器消息常量类
import com.hyc.wechat.controller.constant.RequestMethod; import com.hyc.wechat.controller.constant.RequestMethod; // 导入请求方法常量类
import com.hyc.wechat.controller.constant.WebPage; import com.hyc.wechat.controller.constant.WebPage; // 导入网页常量类
import com.hyc.wechat.model.dto.ServiceResult; import com.hyc.wechat.model.dto.ServiceResult; // 导入服务结果数据传输对象
import com.hyc.wechat.model.po.User; import com.hyc.wechat.model.po.User; // 导入用户持久化对象
import com.hyc.wechat.provider.UserProvider; import com.hyc.wechat.provider.UserProvider; // 导入用户提供者类
import com.hyc.wechat.service.constants.Status; import com.hyc.wechat.service.constants.Status; // 导入状态常量类
import com.hyc.wechat.service.impl.UserServiceImpl; import com.hyc.wechat.service.impl.UserServiceImpl; // 导入用户服务实现类
import javax.servlet.*; import javax.servlet.*; // 导入Servlet API
import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebFilter; // 导入WebFilter注解
import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebInitParam; // 导入WebInitParam注解
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest类
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse; // 导入HttpServletResponse类
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession; // 导入HttpSession类
import java.io.IOException; import java.io.IOException; // 导入IOException类
import static com.hyc.wechat.util.ControllerUtils.returnJsonObject; import static com.hyc.wechat.util.ControllerUtils.returnJsonObject; // 导入返回JSON对象的工具方法
/** // 使用@WebFilter注解定义一个名为"LoginFilter"的过滤器
* @author <a href="mailto:kobe524348@gmail.com"></a> // 过滤器将作用于所有的URL模式"/*"
* @program wechat
* @description
* @date 2019-05-09 15:41
*/
@WebFilter( @WebFilter(
filterName = "LoginFilter", filterName = "LoginFilter",
urlPatterns = {"/*"}, servletNames = {"/*"}, urlPatterns = {"/*"},
initParams = { initParams = {
@WebInitParam(name = "ENCODING", value = "UTF-8") @WebInitParam(name = "ENCODING", value = "UTF-8")
}) })
public class LoginFilter implements Filter { public class LoginFilter implements Filter { // 实现Filter接口
private final UserProvider userProvider = new UserProvider(); private final UserProvider userProvider = new UserProvider(); // 创建用户提供者实例
@Override @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest; HttpServletRequest req = (HttpServletRequest) servletRequest; // 类型转换
HttpServletResponse resp = (HttpServletResponse) servletResponse; HttpServletResponse resp = (HttpServletResponse) servletResponse; // 类型转换
String method = req.getParameter("method"); String method = req.getParameter("method"); // 获取请求方法参数
String uri = req.getRequestURI(); String uri = req.getRequestURI(); // 获取请求URI
String contextPath = req.getContextPath(); String contextPath = req.getContextPath(); // 获取上下文路径
String path = uri.substring(contextPath.length()); String path = uri.substring(contextPath.length()); // 获取请求路径
HttpSession sess = req.getSession(false); HttpSession sess = req.getSession(false); // 获取当前会话如果不存在则返回null
//尝试自动登陆 // 尝试自动登录
userProvider.autoLogin(req); userProvider.autoLogin(req);
sess=req.getSession(); sess = req.getSession(); // 获取或创建会话
//放行登陆注册
// 放行登录和注册相关请求
if (sess == null || sess.getAttribute("login") == null) { if (sess == null || sess.getAttribute("login") == null) {
if (WebPage.LOGIN_JSP.toString().equalsIgnoreCase(path) || if (WebPage.LOGIN_JSP.toString().equalsIgnoreCase(path) || // 登录页面
(WebPage.REGISTER_JSP.toString()).equalsIgnoreCase(path) || WebPage.REGISTER_JSP.toString().equalsIgnoreCase(path) || // 注册页面
(RequestMethod.LOGIN_DO.toString()).equalsIgnoreCase(method) || RequestMethod.LOGIN_DO.toString().equalsIgnoreCase(method) || // 登录操作
(RequestMethod.REGISTER_DO.toString()).equalsIgnoreCase(method) || RequestMethod.REGISTER_DO.toString().equalsIgnoreCase(method) || // 注册操作
path.endsWith("logo.png") || path.endsWith(".js") || path.endsWith("agreement.html")) { path.endsWith("logo.png") || path.endsWith(".js") || path.endsWith("agreement.html")) { // 资源文件
filterChain.doFilter(req, resp); filterChain.doFilter(req, resp); // 继续执行过滤链
return; return;
} else { } else {
//检查session是否有'login'属性,没有则重定向到登陆界面 // 检查会话是否有'login'属性,没有则重定向到登录界面
if (sess == null || sess.getAttribute("login") == null) { if (sess == null || sess.getAttribute("login") == null) {
req.getRequestDispatcher(WebPage.LOGIN_JSP.toString()).forward(req, resp); req.getRequestDispatcher(WebPage.LOGIN_JSP.toString()).forward(req, resp); // 转发到登录页面
return; return;
} }
} }
}else { } else {
//已登陆用户检查登陆身份 // 已登录用户检查登录身份
if (path.startsWith("/wechat/moment") || path.startsWith("/wechat/friend")) { if (path.startsWith("/wechat/moment") || path.startsWith("/wechat/friend")) {
//检查登陆身份 // 检查登录身份
User user = (User) sess.getAttribute("login"); User user = (User) sess.getAttribute("login"); // 获取登录用户信息
if (user != null && UserServiceImpl.VISITOR_EMAIL.equals(user.getEmail())) { if (user != null && UserServiceImpl.VISITOR_EMAIL.equals(user.getEmail())) {
//游客不可使用 // 游客不可使用
returnJsonObject(resp, new ServiceResult(Status.ERROR, ControllerMessage.YOU_ARE_VISITOR.message, null)); returnJsonObject(resp, new ServiceResult(Status.ERROR, ControllerMessage.YOU_ARE_VISITOR.message, null)); // 返回错误信息
return; return;
} }
} }
} }
filterChain.doFilter(req, resp); filterChain.doFilter(req, resp); // 继续执行过滤链
} }
} }

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.impl.listener; package com.hyc.wechat.controller.impl.listener;
@ -25,18 +10,20 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a> * ServletWebWeb
* @program wechat
* @description servlet
* @date 2019-05-01 0844
*/ */
@WebListener @WebListener
public class ServletContextListener implements javax.servlet.ServletContextListener { public class ServletContextListener implements javax.servlet.ServletContextListener {
/**
* 使ConcurrentHashMap线
*/
private static final ConcurrentHashMap<String, Provider> providerMap = new ConcurrentHashMap<>(); private static final ConcurrentHashMap<String, Provider> providerMap = new ConcurrentHashMap<>();
/**
* Servlet
* @param sce Servlet
*/
@Override @Override
public void contextInitialized(ServletContextEvent sce) { public void contextInitialized(ServletContextEvent sce) {

@ -1,90 +1,65 @@
/* // 导入必要的库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.controller.impl.servlet; package com.hyc.wechat.controller.impl.servlet;
import com.hyc.wechat.controller.annotation.ControllerConfig; import com.hyc.wechat.controller.annotation.ControllerConfig; // 导入自定义的ControllerConfig注解
import com.hyc.wechat.controller.constant.ControllerMessage; import com.hyc.wechat.controller.constant.ControllerMessage; // 导入控制器消息常量类
import com.hyc.wechat.provider.Provider; import com.hyc.wechat.provider.Provider; // 导入Provider接口
import com.hyc.wechat.util.ControllerUtils; import com.hyc.wechat.util.ControllerUtils; // 导入控制器工具类
import org.apache.log4j.Logger; import org.apache.log4j.Logger; // 导入log4j日志记录器
import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.MultipartConfig; // 导入MultipartConfig注解
import javax.servlet.annotation.WebServlet; import javax.servlet.annotation.WebServlet; // 导入WebServlet注解
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServlet; // 导入HttpServlet类
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest; // 导入HttpServletRequest类
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse; // 导入HttpServletResponse类
import java.io.IOException; import java.io.IOException; // 导入IOException类
import java.util.Map; import java.util.Map; // 导入Map接口
import java.util.Set; import java.util.Set; // 导入Set接口
import static com.hyc.wechat.provider.Provider.toErrorPage; import static com.hyc.wechat.provider.Provider.toErrorPage; // 导入Provider类的静态方法toErrorPage
/** // 使用@MultipartConfig注解配置文件上传的临时存储位置
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat
* @description controller
* @date 2019-05-02 03:28
*/
@MultipartConfig(location = "/home/pan/tomcat/webapps/wechat/upload") @MultipartConfig(location = "/home/pan/tomcat/webapps/wechat/upload")
//@MultipartConfig(location = "C:\\Users\\Misterchaos\\Documents\\Java Develop Workplaces\\IDEA workspace\\wechat\\out\\artifacts\\wechat_war_exploded\\upload") //@MultipartConfig(location = "C:\\Users\\Misterchaos\\Documents\\Java Develop Workplaces\\IDEA workspace\\wechat\\out\\artifacts\\wechat_war_exploded\\upload")
@WebServlet("/wechat/*") @WebServlet("/wechat/*") // 使用@WebServlet注解映射@WebServlet到/wechat/*路径
public class MyServlet extends HttpServlet { public class MyServlet extends HttpServlet {
@Override @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
this.doPost(req, resp); this.doPost(req, resp); // 将GET请求转发到doPost方法处理
} }
/** /**
* urlProvider * urlProvider
* *
* @param req * @param req
* @param resp * @param resp
* @name doPost * @name doPost
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Override @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
Map<String, Provider>providerMap = (Map<String, Provider>) getServletContext().getAttribute("providerMap"); Map<String, Provider> providerMap = (Map<String, Provider>) getServletContext().getAttribute("providerMap"); // 从ServletContext获取Provider映射
String url = req.getRequestURI(); String url = req.getRequestURI(); // 获取请求的URI
Set<String> keys = providerMap.keySet(); Set<String> keys = providerMap.keySet(); // 获取Provider映射的键集合
Logger logger = Logger.getLogger(MyServlet.class); Logger logger = Logger.getLogger(MyServlet.class); // 获取日志记录器
logger.info("[请求url:]"+url+"[匹配provider]:"+url.substring(14)); logger.info("[请求url:] " + url + " [匹配provider]: " + url.substring(14)); // 记录请求的URL和尝试匹配的Provider
boolean isMatch=false; boolean isMatch = false; // 标记是否找到匹配的Provider
for (String key : keys) { for (String key : keys) { // 遍历Provider映射的键集合
//解析注解中的path信息匹配ActionProvider // 解析注解中的path信息匹配ActionProvider
String path =providerMap.get(key).getPath(); String path = providerMap.get(key).getPath(); // 获取Provider的路径
if (url.substring(14).equalsIgnoreCase(path)) { if (url.substring(14).equalsIgnoreCase(path)) { // 检查请求的路径是否与Provider的路径匹配
providerMap.get(key).doAction(req, resp); providerMap.get(key).doAction(req, resp); // 执行匹配的Provider的doAction方法
logger.info("provider 分发完毕"); logger.info("provider 分发完毕"); // 记录Provider分发完成
isMatch=true; isMatch = true; // 设置匹配标志为true
} }
} }
if(!isMatch){ if (!isMatch) { // 如果没有找到匹配的Provider
toErrorPage(ControllerMessage.REQUEST_INVALID.message,req,resp); toErrorPage(ControllerMessage.REQUEST_INVALID.message, req, resp); // 转发到错误页面
logger.info("该请求没有匹配provider :"+url.substring(14)); logger.info("该请求没有匹配provider: " + url.substring(14)); // 记录没有匹配的Provider
return; return; // 结束方法执行
} }
// logger.info("响应结果 "+resp.getOutputStream()); // logger.info("响应结果 "+resp.getOutputStream()); // 这行代码被注释掉了,可能是为了调试目的
} }
} }

@ -1,28 +1,11 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
import com.hyc.wechat.dao.annotation.*; import com.hyc.wechat.dao.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description Dao * @description Dao
* @date 2019-05-01 17:11
*/ */
public interface BaseDao { public interface BaseDao {
@ -41,8 +24,6 @@ public interface BaseDao {
* @param obj * @param obj
* @name insert * @name insert
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Insert() @Insert()
int insert(Object obj); int insert(Object obj);
@ -56,8 +37,6 @@ public interface BaseDao {
* @name update * @name update
* @notice null<br> * @notice null<br>
* null * null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Update() @Update()
int update(Object obj); int update(Object obj);
@ -68,8 +47,6 @@ public interface BaseDao {
* @param obj * @param obj
* @name delete * @name delete
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Delete() @Delete()
int delete(Object obj); int delete(Object obj);

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -24,9 +9,7 @@ import com.hyc.wechat.model.po.Chat;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description CRUD * @description CRUD
* @date 2019-05-03 02:18
*/ */
public interface ChatDao extends BaseDao { public interface ChatDao extends BaseDao {
@ -40,8 +23,6 @@ public interface ChatDao extends BaseDao {
* @return * @return
* @name getChatById * @name getChatById
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = Chat.class, returns = ResultType.OBJECT) @Result(entity = Chat.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ")
@ -54,8 +35,6 @@ public interface ChatDao extends BaseDao {
* @return * @return
* @name listByUserId * @name listByUserId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/3
*/ */
@Result(entity = Chat.class, returns = ResultType.LIST) @Result(entity = Chat.class, returns = ResultType.LIST)
@Query(value = "select c.id,c.number,c.owner_id,c.name,c.type,c.member,c.photo,c.status,c.gmt_create,c.gmt_modified " + @Query(value = "select c.id,c.number,c.owner_id,c.name,c.type,c.member,c.photo,c.status,c.gmt_create,c.gmt_modified " +
@ -72,8 +51,6 @@ public interface ChatDao extends BaseDao {
* @return * @return
* @name toFriendChat * @name toFriendChat
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/5
*/ */
@Result(entity = Chat.class, returns = ResultType.OBJECT) @Result(entity = Chat.class, returns = ResultType.OBJECT)
@Query(value = "select c.id,c.number,c.owner_id,u.name as name,c.member,u.photo as photo,c.type,c.status,c.gmt_create,c.gmt_modified " + @Query(value = "select c.id,c.number,c.owner_id,u.name as name,c.member,u.photo as photo,c.type,c.status,c.gmt_create,c.gmt_modified " +
@ -88,8 +65,6 @@ public interface ChatDao extends BaseDao {
* @return * @return
* @name getByChatNumber * @name getByChatNumber
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/6
*/ */
@Result(entity = Chat.class,returns = ResultType.OBJECT) @Result(entity = Chat.class,returns = ResultType.OBJECT)
@Query(value = "select "+ALL_FIELD+" from "+TABLE+" where number = ? ") @Query(value = "select "+ALL_FIELD+" from "+TABLE+" where number = ? ")

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -21,10 +6,8 @@ import com.hyc.wechat.exception.DaoException;
import java.sql.Connection; import java.sql.Connection;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description Dao * @description Dao
* @date 2019-05-01 16:33
*/ */
public interface DataSource { public interface DataSource {
/** /**
@ -34,8 +17,6 @@ public interface DataSource {
* @throws DaoException * @throws DaoException
* @name getConnection * @name getConnection
* @notice * @notice
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
Connection getConnection() throws DaoException; Connection getConnection() throws DaoException;
@ -45,8 +26,6 @@ public interface DataSource {
* *
* @param conn * @param conn
* @name freeConnection * @name freeConnection
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
void freeConnection(Connection conn); void freeConnection(Connection conn);
@ -56,8 +35,6 @@ public interface DataSource {
* @param conn * @param conn
* @return java.sql.Connection * @return java.sql.Connection
* @name createConnection * @name createConnection
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
void destroyConnection(Connection conn); void destroyConnection(Connection conn);
@ -67,8 +44,6 @@ public interface DataSource {
* *
* @return int * @return int
* @name getCurrentCount * @name getCurrentCount
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
int getCurrentCount(); int getCurrentCount();
@ -77,8 +52,6 @@ public interface DataSource {
* *
* @return int * @return int
* @name getfreeCount * @name getfreeCount
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
int getfreeCount(); int getfreeCount();
} }

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -26,10 +11,8 @@ import java.math.BigInteger;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description CRUD * @description CRUD
* @date 2019-05-02 01:59
*/ */
public interface FriendDao extends BaseDao { public interface FriendDao extends BaseDao {
@ -44,8 +27,6 @@ public interface FriendDao extends BaseDao {
* @return * @return
* @name getFriendByUIDAndFriendId * @name getFriendByUIDAndFriendId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/6
*/ */
@Result(entity = Friend.class, returns = ResultType.OBJECT) @Result(entity = Friend.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where user_id = ? and friend_id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where user_id = ? and friend_id = ? ")
@ -59,8 +40,6 @@ public interface FriendDao extends BaseDao {
* @return * @return
* @name listByUserId * @name listByUserId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/6
*/ */
@Result(entity = Friend.class, returns = ResultType.LIST) @Result(entity = Friend.class, returns = ResultType.LIST)
@Query(value = "select f.id,f.user_id,f.friend_id,f.chat_id,f.group_id,f.alias,f.description,u.photo as photo,f.status,f.gmt_create,f.gmt_modified " + @Query(value = "select f.id,f.user_id,f.friend_id,f.chat_id,f.group_id,f.alias,f.description,u.photo as photo,f.status,f.gmt_create,f.gmt_modified " +
@ -74,8 +53,6 @@ public interface FriendDao extends BaseDao {
* @param id id * @param id id
* @name getFriendById * @name getFriendById
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Friend.class, returns = ResultType.OBJECT) @Result(entity = Friend.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ")

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -25,9 +10,7 @@ import java.math.BigInteger;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description user_chatCRUD * @description user_chatCRUD
* @date 2019-05-03 13:05
*/ */
public interface MemberDao extends BaseDao { public interface MemberDao extends BaseDao {
String TABLE = "member"; String TABLE = "member";
@ -40,8 +23,6 @@ public interface MemberDao extends BaseDao {
* @return * @return
* @name getMemberById * @name getMemberById
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = Member.class, returns = ResultType.OBJECT) @Result(entity = Member.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ")
@ -55,8 +36,6 @@ public interface MemberDao extends BaseDao {
* @return * @return
* @name getMemberByUIdAndChatId * @name getMemberByUIdAndChatId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = Member.class, returns = ResultType.OBJECT) @Result(entity = Member.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where user_id = ? and chat_id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where user_id = ? and chat_id = ? ")
@ -69,8 +48,6 @@ public interface MemberDao extends BaseDao {
* @param chatId id * @param chatId id
* @return * @return
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/5
*/ */
@Result(entity = Member.class, returns = ResultType.LIST) @Result(entity = Member.class, returns = ResultType.LIST)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where chat_id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where chat_id = ? ")

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -25,9 +10,7 @@ import java.math.BigInteger;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description messageCRUD * @description messageCRUD
* @date 2019-05-03 13:06
*/ */
public interface MessageDao extends BaseDao { public interface MessageDao extends BaseDao {
@ -43,8 +26,6 @@ public interface MessageDao extends BaseDao {
* @param chatId id * @param chatId id
* @return * @return
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = Message.class, returns = ResultType.OBJECT) @Result(entity = Message.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where sender_id = ? and chat_id = ? and time = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where sender_id = ? and chat_id = ? and time = ? ")
@ -60,8 +41,6 @@ public interface MessageDao extends BaseDao {
* @param offset * @param offset
* @name listMessageByUserIdAndChatId * @name listMessageByUserIdAndChatId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Message.class, returns = ResultType.LIST) @Result(entity = Message.class, returns = ResultType.LIST)
@Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " + @Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " +
@ -79,8 +58,6 @@ public interface MessageDao extends BaseDao {
* @param offset * @param offset
* @name listMessageByUserIdAndChatId * @name listMessageByUserIdAndChatId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Message.class, returns = ResultType.LIST) @Result(entity = Message.class, returns = ResultType.LIST)
@Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " + @Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " +
@ -96,8 +73,6 @@ public interface MessageDao extends BaseDao {
* @param chatId id * @param chatId id
* @param fileName * @param fileName
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Message.class, returns = ResultType.LIST) @Result(entity = Message.class, returns = ResultType.LIST)
@Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " + @Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " +
@ -114,8 +89,6 @@ public interface MessageDao extends BaseDao {
* @param limit * @param limit
* @param offset * @param offset
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Message.class, returns = ResultType.LIST) @Result(entity = Message.class, returns = ResultType.LIST)
@Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " + @Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " +
@ -131,8 +104,6 @@ public interface MessageDao extends BaseDao {
* @param limit * @param limit
* @param offset * @param offset
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Message.class, returns = ResultType.LIST) @Result(entity = Message.class, returns = ResultType.LIST)
@Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " + @Query(value = "select m.id, m.sender_id, m.chat_id, m.content , m.type , m.time ,m.status , " +

@ -25,9 +25,7 @@ import com.hyc.wechat.model.po.Moment;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description CRUD * @description CRUD
* @date 2019-05-07 11:55
*/ */
public interface MomentDao extends BaseDao { public interface MomentDao extends BaseDao {
String TABLE = "moment"; String TABLE = "moment";
@ -39,8 +37,6 @@ public interface MomentDao extends BaseDao {
* @param id id * @param id id
* @name geMomentById * @name geMomentById
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = Moment.class, returns = ResultType.OBJECT) @Result(entity = Moment.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ")
@ -52,8 +48,6 @@ public interface MomentDao extends BaseDao {
* @param ownerId id * @param ownerId id
* @param stauts * @param stauts
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/8
*/ */
@Result(entity = Moment.class, returns = ResultType.OBJECT) @Result(entity = Moment.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where owner_id = ? and status = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where owner_id = ? and status = ? ")
@ -68,8 +62,6 @@ public interface MomentDao extends BaseDao {
* @param offset * @param offset
* @name listMyMomentByOwnerIdDesc * @name listMyMomentByOwnerIdDesc
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Moment.class, returns = ResultType.LIST) @Result(entity = Moment.class, returns = ResultType.LIST)
@Query("select " + ALL_FIELD + " from " + TABLE + " where owner_id = ? order by time desc limit ? offset ? ") @Query("select " + ALL_FIELD + " from " + TABLE + " where owner_id = ? order by time desc limit ? offset ? ")
@ -83,8 +75,6 @@ public interface MomentDao extends BaseDao {
* @param offset * @param offset
* @name listMyMomentByOwnerId * @name listMyMomentByOwnerId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = Moment.class, returns = ResultType.LIST) @Result(entity = Moment.class, returns = ResultType.LIST)
@Query("select " + ALL_FIELD + " from " + TABLE + " where owner_id = ? order by time limit ? offset ? ") @Query("select " + ALL_FIELD + " from " + TABLE + " where owner_id = ? order by time limit ? offset ? ")
@ -99,8 +89,6 @@ public interface MomentDao extends BaseDao {
* @param offset * @param offset
* @name loadPhoto * @name loadPhoto
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/10
*/ */
@Result(entity = Moment.class, returns = ResultType.LIST) @Result(entity = Moment.class, returns = ResultType.LIST)
@Query("select photo from " + TABLE + " where owner_id = ? order by time desc limit ? offset ? ") @Query("select photo from " + TABLE + " where owner_id = ? order by time desc limit ? offset ? ")

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -24,9 +9,7 @@ import com.hyc.wechat.model.po.News;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description CRUD * @description CRUD
* @date 2019-05-07 18:47
*/ */
public interface NewsDao extends BaseDao { public interface NewsDao extends BaseDao {
String TABLE = "news"; String TABLE = "news";
@ -40,8 +23,6 @@ public interface NewsDao extends BaseDao {
* @param offset * @param offset
* @name listNewsByUserId * @name listNewsByUserId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = News.class, returns = ResultType.LIST) @Result(entity = News.class, returns = ResultType.LIST)
@Query("select " + ALL_FIELD + " from " + TABLE + " where user_id = ? order by gmt_create desc limit ? offset ? ") @Query("select " + ALL_FIELD + " from " + TABLE + " where user_id = ? order by gmt_create desc limit ? offset ? ")
@ -55,8 +36,6 @@ public interface NewsDao extends BaseDao {
* @param userId id * @param userId id
* @name getNewsByMomentId * @name getNewsByMomentId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Result(entity = News.class, returns = ResultType.OBJECT) @Result(entity = News.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where moment_id = ? and user_id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where moment_id = ? and user_id = ? ")

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -20,9 +5,7 @@ import com.hyc.wechat.dao.annotation.Delete;
import com.hyc.wechat.dao.annotation.Update; import com.hyc.wechat.dao.annotation.Update;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description CRUD * @description CRUD
* @date 2019-05-06 21:41
*/ */
public interface RecordDao extends BaseDao { public interface RecordDao extends BaseDao {
String TABLE = "record"; String TABLE = "record";
@ -37,8 +20,6 @@ public interface RecordDao extends BaseDao {
* @param chatId id * @param chatId id
* @name updateStatusInChat * @name updateStatusInChat
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Update("update " + TABLE + " as r inner join message as m set r.status = ? where r.user_id = ? and r.message_id = m.id and m.chat_id = ?") @Update("update " + TABLE + " as r inner join message as m set r.status = ? where r.user_id = ? and r.message_id = m.id and m.chat_id = ?")
void updateStatusInChat(Object status, Object userId ,Object chatId); void updateStatusInChat(Object status, Object userId ,Object chatId);
@ -51,8 +32,6 @@ public interface RecordDao extends BaseDao {
* @param chatId id * @param chatId id
* @name deleteAllRecordInChat * @name deleteAllRecordInChat
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/10
*/ */
@Update("delete r from " + TABLE + " r inner join message m on r.message_id = m.id where r.user_id = ? and m.chat_id = ? " ) @Update("delete r from " + TABLE + " r inner join message m on r.message_id = m.id where r.user_id = ? and m.chat_id = ? " )
void deleteAllRecordInChat(Object userId , Object chatId); void deleteAllRecordInChat(Object userId , Object chatId);

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -25,9 +10,7 @@ import com.hyc.wechat.model.po.Remark;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description * @description
* @date 2019-05-14 01:12
*/ */
public interface RemarkDao extends BaseDao{ public interface RemarkDao extends BaseDao{
String TABLE = "remark"; String TABLE = "remark";
@ -41,8 +24,6 @@ public interface RemarkDao extends BaseDao{
* @param offset * @param offset
* @name listRemarkDesc * @name listRemarkDesc
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/14
*/ */
@Result(entity = Remark.class, returns = ResultType.LIST) @Result(entity = Remark.class, returns = ResultType.LIST)
@Query("select " + ALL_FIELD + " from " + TABLE + " where moment_id = ? order by time limit ? offset ? ") @Query("select " + ALL_FIELD + " from " + TABLE + " where moment_id = ? order by time limit ? offset ? ")
@ -54,8 +35,6 @@ public interface RemarkDao extends BaseDao{
* @param id id * @param id id
* @name geRemarkById * @name geRemarkById
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/14
*/ */
@Result(entity = Remark.class, returns = ResultType.OBJECT) @Result(entity = Remark.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ")

@ -1,25 +1,8 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description * @description
* @date 2019-05-14 01:12
*/ */
public interface ReplyDao extends BaseDao { public interface ReplyDao extends BaseDao {
} }

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
@ -20,10 +5,8 @@ package com.hyc.wechat.dao;
import java.sql.ResultSet; import java.sql.ResultSet;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program XHotel * @program XHotel
* @description * @description
* @date 2019-04-09 15:06
*/ */
public interface ResultMapper { public interface ResultMapper {
/** /**
@ -32,8 +15,6 @@ public interface ResultMapper {
* @param rs * @param rs
* @return java.lang.Object * @return java.lang.Object
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/10
*/ */
Object doMap(ResultSet rs); Object doMap(ResultSet rs);
} }

@ -1,26 +1,9 @@
/* //t
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program XHotel * @program XHotel
* @description sql * @description sql
* @date 2019-04-11 17:55
*/ */
public interface SQLMapper { public interface SQLMapper {
@ -32,8 +15,6 @@ public interface SQLMapper {
* @return sql * @return sql
* @name doMap * @name doMap
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/12
*/ */
String doMap(Object... params); String doMap(Object... params);

@ -1,19 +1,4 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
import com.hyc.wechat.dao.annotation.Insert; import com.hyc.wechat.dao.annotation.Insert;
@ -21,10 +6,8 @@ import com.hyc.wechat.dao.annotation.Insert;
import java.util.LinkedList; import java.util.LinkedList;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description SQL * @description SQL
* @date 2019-05-01 17:34
*/ */
public interface SQLRunner { public interface SQLRunner {
@ -48,8 +31,6 @@ public interface SQLRunner {
* @return java.lang.Object * @return java.lang.Object
* @name executeUpdate * @name executeUpdate
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
int executeUpdate(String sql, Object[] params); int executeUpdate(String sql, Object[] params);
@ -63,8 +44,6 @@ public interface SQLRunner {
* @return int sql * @return int sql
* @name executeUpdate * @name executeUpdate
* @notice SqlMapper * @notice SqlMapper
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
* @see SQLMapper * @see SQLMapper
*/ */
int executeUpdate(Object obj, SQLMapper sqlMapper); int executeUpdate(Object obj, SQLMapper sqlMapper);
@ -76,8 +55,6 @@ public interface SQLRunner {
* @return int * @return int
* @name insert * @name insert
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
@Insert() @Insert()
int insert(Object obj, String table); int insert(Object obj, String table);
@ -90,8 +67,6 @@ public interface SQLRunner {
* @name update * @name update
* @notice null<br> * @notice null<br>
* null * null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/10
*/ */
int update(Object obj, String table); int update(Object obj, String table);
@ -102,8 +77,6 @@ public interface SQLRunner {
* @return int * @return int
* @name delete * @name delete
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
int delete(Object id, String table); int delete(Object id, String table);
@ -125,8 +98,6 @@ public interface SQLRunner {
* @return java.lang.Object * @return java.lang.Object
* @name executeQuery * @name executeQuery
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
Object executeQuery(String sql, Object[] params, ResultMapper mapper); Object executeQuery(String sql, Object[] params, ResultMapper mapper);
@ -145,8 +116,6 @@ public interface SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryList * @name queryList
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/10
*/ */
LinkedList queryList(String sql, Object[] params, Class clazz); LinkedList queryList(String sql, Object[] params, Class clazz);
@ -160,8 +129,6 @@ public interface SQLRunner {
* @return Object * @return Object
* @name queryList * @name queryList
* @notice null * @notice null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/10
*/ */
Object queryObject(String sql, Object[] params, Class clazz); Object queryObject(String sql, Object[] params, Class clazz);
@ -173,8 +140,6 @@ public interface SQLRunner {
* @return * @return
* @name queryValue * @name queryValue
* @notice null * @notice null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/11
*/ */
Object queryValue(String sql, Object[] params); Object queryValue(String sql, Object[] params);
@ -201,8 +166,6 @@ public interface SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryOrderBy * @name queryOrderBy
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
LinkedList queryOrderBy(String[] selectFields, String orderBy, boolean isDesc, String tableName); LinkedList queryOrderBy(String[] selectFields, String orderBy, boolean isDesc, String tableName);
@ -234,8 +197,6 @@ public interface SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhere * @name queryWhere
* @notice not * @notice not
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
LinkedList queryWhere(String[] selectFields, Object obj, String conj, String condition); LinkedList queryWhere(String[] selectFields, Object obj, String conj, String condition);
@ -251,8 +212,6 @@ public interface SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhereAndEquals * @name queryWhereAndEquals
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
LinkedList queryWhereAndEquals(String[] selectFields, Object obj); LinkedList queryWhereAndEquals(String[] selectFields, Object obj);
@ -269,8 +228,6 @@ public interface SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhereLikeAnd * @name queryWhereLikeAnd
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
LinkedList queryWhereLikeAnd(String[] selectFields, Object obj); LinkedList queryWhereLikeAnd(String[] selectFields, Object obj);
@ -286,8 +243,6 @@ public interface SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhereLikeAnd * @name queryWhereLikeAnd
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
LinkedList queryWhereLikeOr(String[] selectFields, Object obj); LinkedList queryWhereLikeOr(String[] selectFields, Object obj);
@ -307,8 +262,6 @@ public interface SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryPages * @name queryPages
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
LinkedList queryPages(String[] selectFields, String tableName, String limit, String offset); LinkedList queryPages(String[] selectFields, String tableName, String limit, String offset);
@ -326,8 +279,6 @@ public interface SQLRunner {
* @param fieldValues * @param fieldValues
* @name fieldMapper * @name fieldMapper
* @notice null * @notice null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
void fieldMapper(Object obj, LinkedList fieldNames, LinkedList fieldValues); void fieldMapper(Object obj, LinkedList fieldNames, LinkedList fieldValues);
@ -339,8 +290,6 @@ public interface SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name selectMapper * @name selectMapper
* @notice * @notice
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
String selectMapper(String tableName, Object[] selectFields); String selectMapper(String tableName, Object[] selectFields);
@ -352,8 +301,6 @@ public interface SQLRunner {
* @return java.lang.String where,where id = ? and user_name = ? * @return java.lang.String where,where id = ? and user_name = ?
* @name whereMapper * @name whereMapper
* @notice where * @notice where
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
String whereMapper(Object[] whereFields, String conj, String condition); String whereMapper(Object[] whereFields, String conj, String condition);
@ -365,8 +312,6 @@ public interface SQLRunner {
* @return java.lang.String where,where id like ? and user_name like ? * @return java.lang.String where,where id like ? and user_name like ?
* @name likeMapper * @name likeMapper
* @notice where * @notice where
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
String likeMapper(Object[] likeFields, String conj); String likeMapper(Object[] likeFields, String conj);
@ -378,8 +323,6 @@ public interface SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name orderByMapper * @name orderByMapper
* @notice where * @notice where
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
String orderByMapper(String orderBy, boolean isDesc); String orderByMapper(String orderBy, boolean isDesc);
@ -391,8 +334,6 @@ public interface SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name pageMapper * @name pageMapper
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
String pageMapper(String limit, String offset); String pageMapper(String limit, String offset);
@ -405,8 +346,6 @@ public interface SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name pageMapper * @name pageMapper
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
String pageOffsetMapper(String offset); String pageOffsetMapper(String offset);

@ -1,19 +1,4 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao; package com.hyc.wechat.dao;
import com.hyc.wechat.dao.annotation.Query; import com.hyc.wechat.dao.annotation.Query;
@ -24,10 +9,8 @@ import com.hyc.wechat.model.po.User;
import java.util.List; import java.util.List;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description UserCRUD * @description UserCRUD
* @date 2019-05-01 23:39
*/ */
public interface UserDao extends BaseDao { public interface UserDao extends BaseDao {
String TABLE = "user"; String TABLE = "user";
@ -42,8 +25,6 @@ public interface UserDao extends BaseDao {
* @return * @return
* @name getUserById * @name getUserById
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = User.class, returns = ResultType.OBJECT) @Result(entity = User.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where id = ? ")
@ -57,8 +38,6 @@ public interface UserDao extends BaseDao {
* @return * @return
* @name getUserByEmail * @name getUserByEmail
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = User.class, returns = ResultType.OBJECT) @Result(entity = User.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where email = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where email = ? ")
@ -72,8 +51,6 @@ public interface UserDao extends BaseDao {
* @return * @return
* @name getUserByWechatId * @name getUserByWechatId
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/2
*/ */
@Result(entity = User.class, returns = ResultType.OBJECT) @Result(entity = User.class, returns = ResultType.OBJECT)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where wechat_id = ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where wechat_id = ? ")
@ -84,8 +61,6 @@ public interface UserDao extends BaseDao {
* @return * @return
* @name listByName * @name listByName
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/5
*/ */
@Result(entity = User.class, returns = ResultType.LIST) @Result(entity = User.class, returns = ResultType.LIST)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where name = ?") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where name = ?")
@ -99,8 +74,6 @@ public interface UserDao extends BaseDao {
* @return * @return
* @name listLike * @name listLike
* @notice * @notice
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/6
*/ */
@Result(entity = User.class, returns = ResultType.LIST) @Result(entity = User.class, returns = ResultType.LIST)
@Query(value = "select " + ALL_FIELD + " from " + TABLE + " where name like ? ") @Query(value = "select " + ALL_FIELD + " from " + TABLE + " where name like ? ")

@ -1,32 +1,25 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description * @description
* @date 2019-05-01 13:32
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
public @interface Delete { public @interface Delete {
/**
* value
* SQL
*
* @return SQL
*/
String value()default ""; String value()default "";
} }

@ -1,32 +1,19 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description SQL * @description SQL
* @program wechat * @program wechat
* @date 2019-05-01 13:32
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD) @Target(ElementType.FIELD)
public @interface Field { public @interface Field {
/* name
*
* @return
*/
String name (); String name ();
} }

@ -1,32 +1,22 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description * @description
* @date 2019-05-01 13:32
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) @Target(ElementType.METHOD)
public @interface Insert { public @interface Insert {
/**
* value
* SQL
*
* @return SQL
*/
String value()default ""; String value()default "";
} }

@ -1,28 +1,11 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description SQL * @description SQL
* @program wechat * @program wechat
* @date 2019-05-01 13:32
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)

@ -1,28 +1,11 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description * @description
* @date 2019-05-01 13:32
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
@ -21,10 +6,8 @@ import com.hyc.wechat.model.po.abs.BaseEntity;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description SQL * @description SQL
* @program wechat * @program wechat
* @date 2019-05-01 13:32
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)

@ -1,26 +1,9 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description SQL * @description SQL
* @date 2019-05-01 21:21
*/ */
public enum ResultType{ public enum ResultType{
/** /**

@ -1,29 +1,12 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description * @description
* @date 2019-05-01 00:19
*/ */
@Documented @Documented
@Retention(value = RetentionPolicy.RUNTIME) @Retention(value = RetentionPolicy.RUNTIME)

@ -1,28 +1,11 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.annotation; package com.hyc.wechat.dao.annotation;
import java.lang.annotation.*; import java.lang.annotation.*;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description * @description
* @program wechat * @program wechat
* @date 2019-05-01 13:32
*/ */
@Documented @Documented
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)

@ -1,19 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.impl; package com.hyc.wechat.dao.impl;
import com.hyc.wechat.dao.DataSource; import com.hyc.wechat.dao.DataSource;
@ -30,10 +14,8 @@ import java.util.Queue;
import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.LinkedBlockingQueue;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description Dao * @description Dao
* @date 2019-05-01 16:40
*/ */
public class DataSourceImpl implements DataSource { public class DataSourceImpl implements DataSource {
/* /*
@ -151,8 +133,6 @@ public class DataSourceImpl implements DataSource {
* @throws DaoException * @throws DaoException
* @name getConnection * @name getConnection
* @notice * @notice
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Override @Override
public Connection getConnection() throws DaoException { public Connection getConnection() throws DaoException {
@ -189,8 +169,6 @@ public class DataSourceImpl implements DataSource {
* *
* @param conn * @param conn
* @name freeConnection * @name freeConnection
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Override @Override
public void freeConnection(Connection conn) { public void freeConnection(Connection conn) {
@ -202,8 +180,6 @@ public class DataSourceImpl implements DataSource {
* *
* @return java.sql.Connection * @return java.sql.Connection
* @name createConnection * @name createConnection
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Override @Override
public void destroyConnection(Connection conn) { public void destroyConnection(Connection conn) {
@ -221,8 +197,6 @@ public class DataSourceImpl implements DataSource {
* *
* @return int * @return int
* @name getCurrentCount * @name getCurrentCount
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Override @Override
public int getCurrentCount() { public int getCurrentCount() {
@ -234,8 +208,6 @@ public class DataSourceImpl implements DataSource {
* *
* @return int * @return int
* @name getfreeCount * @name getfreeCount
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
@Override @Override
public int getfreeCount() { public int getfreeCount() {
@ -254,8 +226,6 @@ public class DataSourceImpl implements DataSource {
* *
* @return java.sql.Connection * @return java.sql.Connection
* @name createConnection * @name createConnection
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/1
*/ */
private Connection createConnection() throws DaoException { private Connection createConnection() throws DaoException {
currentCount++; currentCount++;

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.dao.impl; package com.hyc.wechat.dao.impl;
@ -34,10 +19,8 @@ import static com.hyc.wechat.util.ReflectUtils.getMethods;
import static com.hyc.wechat.util.StringUtils.field2SqlField; import static com.hyc.wechat.util.StringUtils.field2SqlField;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description sql * @description sql
* @date 2019-05-01 17:34
*/ */
public class SQLRunnerImpl implements SQLRunner { public class SQLRunnerImpl implements SQLRunner {
@ -56,8 +39,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.Object * @return java.lang.Object
* @name executeUpdate * @name executeUpdate
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
@Override @Override
public int executeUpdate(String sql, Object[] params) { public int executeUpdate(String sql, Object[] params) {
@ -92,8 +73,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return int sql * @return int sql
* @name executeUpdate * @name executeUpdate
* @notice SqlMapper * @notice SqlMapper
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
* @see SQLMapper * @see SQLMapper
*/ */
@Override @Override
@ -149,8 +128,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return int * @return int
* @name insert * @name insert
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
@Override @Override
public int insert(Object obj, String table) { public int insert(Object obj, String table) {
@ -185,8 +162,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @name update * @name update
* @notice null<br> * @notice null<br>
* null * null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/10
*/ */
@Override @Override
public int update(Object obj, String table) { public int update(Object obj, String table) {
@ -230,8 +205,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return int * @return int
* @name delete * @name delete
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public int delete(Object obj, String table) { public int delete(Object obj, String table) {
@ -265,8 +238,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.Object * @return java.lang.Object
* @name executeQuery * @name executeQuery
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
@Override @Override
public Object executeQuery(String sql, Object[] params, ResultMapper mapper) { public Object executeQuery(String sql, Object[] params, ResultMapper mapper) {
@ -320,9 +291,7 @@ public class SQLRunnerImpl implements SQLRunner {
* @param clazz * @param clazz
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryList * @name queryList
* @notice none * @notice non
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/10
*/ */
@Override @Override
public LinkedList queryList(String sql, Object[] params, Class clazz) { public LinkedList queryList(String sql, Object[] params, Class clazz) {
@ -333,10 +302,8 @@ public class SQLRunnerImpl implements SQLRunner {
* ResultMapperList<br> * ResultMapperList<br>
* 使 * 使
* *
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @name ListMapper * @name ListMapper
* @notice * @notice
* @date 2019/4/10
* @see com.hyc.www.dao.inter.ResultMapper * @see com.hyc.www.dao.inter.ResultMapper
*/ */
LinkedList list = new LinkedList<>(); LinkedList list = new LinkedList<>();
@ -399,8 +366,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return Object * @return Object
* @name queryList * @name queryList
* @notice null * @notice null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/10
*/ */
@Override @Override
public Object queryObject(String sql, Object[] params, Class clazz) { public Object queryObject(String sql, Object[] params, Class clazz) {
@ -416,8 +381,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return * @return
* @name queryValue * @name queryValue
* @notice null * @notice null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/11
*/ */
@Override @Override
public Object queryValue(String sql, Object[] params) { public Object queryValue(String sql, Object[] params) {
@ -461,8 +424,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryOrderBy * @name queryOrderBy
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public LinkedList queryOrderBy(String[] selectFields, String orderBy, boolean isDesc, String tableName) { public LinkedList queryOrderBy(String[] selectFields, String orderBy, boolean isDesc, String tableName) {
@ -504,8 +465,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhere * @name queryWhere
* @notice not * @notice not
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public LinkedList queryWhere(String[] selectFields, Object obj, String conj, String condition) { public LinkedList queryWhere(String[] selectFields, Object obj, String conj, String condition) {
@ -548,8 +507,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhereAndEquals * @name queryWhereAndEquals
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public LinkedList queryWhereAndEquals(String[] selectFields, Object obj) { public LinkedList queryWhereAndEquals(String[] selectFields, Object obj) {
@ -569,8 +526,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhereLikeAnd * @name queryWhereLikeAnd
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public LinkedList queryWhereLikeAnd(String[] selectFields, Object obj) { public LinkedList queryWhereLikeAnd(String[] selectFields, Object obj) {
@ -589,8 +544,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryWhereLikeAnd * @name queryWhereLikeAnd
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public LinkedList queryWhereLikeOr(String[] selectFields, Object obj) { public LinkedList queryWhereLikeOr(String[] selectFields, Object obj) {
@ -613,8 +566,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.util.LinkedList * @return java.util.LinkedList
* @name queryPages * @name queryPages
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public LinkedList queryPages(String[] selectFields, String tableName, String limit, String offset) { public LinkedList queryPages(String[] selectFields, String tableName, String limit, String offset) {
@ -637,8 +588,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @param fieldValues * @param fieldValues
* @name fieldMapper * @name fieldMapper
* @notice null * @notice null
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/9
*/ */
@Override @Override
public void fieldMapper(Object obj, LinkedList fieldNames, LinkedList fieldValues) { public void fieldMapper(Object obj, LinkedList fieldNames, LinkedList fieldValues) {
@ -688,8 +637,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name selectMapper * @name selectMapper
* @notice * @notice
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public String selectMapper(String tableName, Object[] selectFields) { public String selectMapper(String tableName, Object[] selectFields) {
@ -710,8 +657,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.String where,where id = ? and user_name = ? * @return java.lang.String where,where id = ? and user_name = ?
* @name whereMapper * @name whereMapper
* @notice where * @notice where
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public String whereMapper(Object[] whereFields, String conj, String condition) { public String whereMapper(Object[] whereFields, String conj, String condition) {
@ -737,8 +682,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.String where,where id like ? and user_name like ? * @return java.lang.String where,where id like ? and user_name like ?
* @name likeMapper * @name likeMapper
* @notice where * @notice where
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public String likeMapper(Object[] likeFields, String conj) { public String likeMapper(Object[] likeFields, String conj) {
@ -763,8 +706,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name orderByMapper * @name orderByMapper
* @notice where * @notice where
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public String orderByMapper(String orderBy, boolean isDesc) { public String orderByMapper(String orderBy, boolean isDesc) {
@ -792,8 +733,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name pageMapper * @name pageMapper
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public String pageMapper(String limit, String offset) { public String pageMapper(String limit, String offset) {
@ -809,8 +748,6 @@ public class SQLRunnerImpl implements SQLRunner {
* @return java.lang.String * @return java.lang.String
* @name pageMapper * @name pageMapper
* @notice none * @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/4/13
*/ */
@Override @Override
public String pageOffsetMapper(String offset) { public String pageOffsetMapper(String offset) {

@ -1,44 +1,51 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.exception; package com.hyc.wechat.exception;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description Dao * @description Dao
* @date 2019-05-01 16:36
*/ */
public class DaoException extends RuntimeException{ public class DaoException extends RuntimeException{
/**
*
* DaoException
*/
public DaoException() { public DaoException() {
super(); super();
} }
/**
*
* DaoException
* @param message
*/
public DaoException(String message) { public DaoException(String message) {
super(message); super(message);
} }
/**
*
* DaoException
* @param message
* @param cause
*/
public DaoException(String message, Throwable cause) { public DaoException(String message, Throwable cause) {
super(message, cause); super(message, cause);
} }
/**
*
* DaoException
* @param cause
*/
public DaoException(Throwable cause) { public DaoException(Throwable cause) {
super(cause); super(cause);
} }
/**
*
* DaoException
* @param message
* @param cause
* @param enableSuppression
* @param writableStackTrace
*/
protected DaoException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { protected DaoException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace); super(message, cause, enableSuppression, writableStackTrace);
} }

@ -1,44 +1,52 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.exception; package com.hyc.wechat.exception;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description service * @description service
* @date 2019-05-01 17:41
*/ */
public class ServiceException extends RuntimeException{ public class ServiceException extends RuntimeException{
/**
*
* ServiceException
*/
public ServiceException() { public ServiceException() {
super(); super();
} }
/**
*
* ServiceException
* @param message
*/
public ServiceException(String message) { public ServiceException(String message) {
super(message); super(message);
} }
/**
*
* ServiceException
* @param message
* @param cause
*/
public ServiceException(String message, Throwable cause) { public ServiceException(String message, Throwable cause) {
super(message, cause); super(message, cause);
} }
/**
*
* ServiceException
* @param cause
*/
public ServiceException(Throwable cause) { public ServiceException(Throwable cause) {
super(cause); super(cause);
} }
/**
*
* ServiceException
*
* @param message
* @param cause
* @param enableSuppression
* @param writableStackTrace
*/
protected ServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { protected ServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace); super(message, cause, enableSuppression, writableStackTrace);
} }

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.factory; package com.hyc.wechat.factory;
@ -25,16 +10,18 @@ import java.lang.reflect.Method;
import java.lang.reflect.Proxy; import java.lang.reflect.Proxy;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description Daosql * @description Daosql
* @date 2019-05-01 11:01
*/ */
public class DaoProxyFactory implements InvocationHandler { public class DaoProxyFactory implements InvocationHandler {
private static SQLRunner executor = new SQLRunnerImpl(); private static SQLRunner executor = new SQLRunnerImpl();
private static DaoProxyFactory instance= new DaoProxyFactory(); private static DaoProxyFactory instance= new DaoProxyFactory();
/**
* 使Java Proxy API
* @param interfaces DAOClass
* @return
*/
public Object getProxyInstance(Class interfaces) { public Object getProxyInstance(Class interfaces) {
return Proxy.newProxyInstance(interfaces.getClassLoader(), new Class[]{interfaces}, this); return Proxy.newProxyInstance(interfaces.getClassLoader(), new Class[]{interfaces}, this);
} }
@ -42,11 +29,21 @@ public class DaoProxyFactory implements InvocationHandler {
private DaoProxyFactory() { private DaoProxyFactory() {
} }
/**
* DaoProxyFactory
* @return DaoProxyFactory
*/
public static DaoProxyFactory getInstance(){ public static DaoProxyFactory getInstance(){
return instance; return instance;
} }
/**
* InvocationHandlerinvoke
* @param proxy
* @param method
* @param args
* @return
* @throws Throwable
*/
@Override @Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (method.getAnnotation(Insert.class) != null) { if (method.getAnnotation(Insert.class) != null) {
@ -77,17 +74,22 @@ public class DaoProxyFactory implements InvocationHandler {
} }
} }
if (method.getAnnotation(Query.class) != null) { if (method.getAnnotation(Query.class) != null) {
// 获取@Result注解指定的返回类型
ResultType type = method.getAnnotation(Result.class).returns(); ResultType type = method.getAnnotation(Result.class).returns();
switch (type) { switch (type) {
case OBJECT: case OBJECT:
// 执行查询并返回单个对象
return executor.queryObject(method.getAnnotation(Query.class).value(), args, method.getAnnotation(Result.class).entity()); return executor.queryObject(method.getAnnotation(Query.class).value(), args, method.getAnnotation(Result.class).entity());
case LIST: case LIST:
// 执行查询并返回对象列表
return executor.queryList(method.getAnnotation(Query.class).value(), args, method.getAnnotation(Result.class).entity()); return executor.queryList(method.getAnnotation(Query.class).value(), args, method.getAnnotation(Result.class).entity());
case VALUE: case VALUE:
// 执行查询并返回单个值
return executor.queryValue(method.getAnnotation(Query.class).value(), args); return executor.queryValue(method.getAnnotation(Query.class).value(), args);
default: default:
} }
} }
// 如果方法没有注解,则直接调用原始方法
return method.invoke(proxy, args); return method.invoke(proxy, args);
} }

@ -1,19 +1,4 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.factory; package com.hyc.wechat.factory;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationHandler;
@ -21,31 +6,47 @@ import java.lang.reflect.Method;
import java.lang.reflect.Proxy; import java.lang.reflect.Proxy;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description Daosql * @description Daosql
* @date 2019-05-01 11:01
*/ */
public class ServiceProxyFactory implements InvocationHandler { public class ServiceProxyFactory implements InvocationHandler {
private Object target; private Object target;
/**
* 使Java Proxy API
* @param target
* @return
*/
public Object getProxyInstance(Object target) { public Object getProxyInstance(Object target) {
this.target =target; this.target =target;
// 创建代理对象,该代理对象实现了目标对象的所有接口
return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
} }
/**
* InvocationHandlerinvoke
* @param proxy
* @param method
* @param args
* @return
* @throws Throwable
*/
@Override @Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return method.invoke(target, args); return method.invoke(target, args);
} }
/**
*
* @return
*/
public Object getTarget() { public Object getTarget() {
return target; return target;
} }
/**
*
* @param target
*/
public void setTarget(Object target) { public void setTarget(Object target) {
this.target = target; this.target = target;
} }

@ -1,19 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.factory.proxy; package com.hyc.wechat.factory.proxy;
import com.hyc.wechat.dao.DataSource; import com.hyc.wechat.dao.DataSource;
@ -26,51 +10,92 @@ import java.lang.reflect.Proxy;
import java.sql.Connection; import java.sql.Connection;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description * @description
* @date 2019-05-01 17:52 *
*/ */
public class ConnectionProxy implements InvocationHandler { public class ConnectionProxy implements InvocationHandler {
// 被代理的Connection对象
private Connection target; private Connection target;
// 数据源对象,用于管理数据库连接
private DataSource dataSource; private DataSource dataSource;
public Connection getProxyInstance(Connection target){ /**
this.target= target; *
return (Connection) Proxy.newProxyInstance(Connection.class.getClassLoader(),new Class[]{Connection.class},this); * @param dataSource
} */
public ConnectionProxy(DataSource dataSource) { public ConnectionProxy(DataSource dataSource) {
this.dataSource = dataSource; this.dataSource = dataSource;
} }
/**
*
* @param target Connection
* @return Connection
*/
public Connection getProxyInstance(Connection target) {
this.target = target; // 设置被代理的目标对象
// 使用Proxy类创建一个Connection代理实例并将当前对象作为调用处理器
return (Connection) Proxy.newProxyInstance(
Connection.class.getClassLoader(), // 类加载器
new Class[]{Connection.class}, // 代理实现的接口数组
this); // 调用处理器
}
/**
* InvocationHandlerinvoke
* @param proxy
* @param method
* @param args
* @return
*/
@Override @Override
public Object invoke(Object proxy, Method method, Object[] args) { public Object invoke(Object proxy, Method method, Object[] args) {
// 如果调用的是close方法则将连接放回数据源而不是真正关闭连接
if ("close".equals(method.getName())) { if ("close".equals(method.getName())) {
//调用代理对象的close方法时将目标对象放回数据库连接池 dataSource.freeConnection(target); // 将连接放回数据源
dataSource.freeConnection(target); return null; // close方法没有返回值
return null;
} }
try { try {
// 对于其他方法调用,直接转发给被代理的目标对象
return method.invoke(target, args); return method.invoke(target, args);
} catch (IllegalAccessException | InvocationTargetException e) { } catch (IllegalAccessException | InvocationTargetException e) {
// 如果方法调用过程中发生异常则抛出DaoException
throw new DaoException("无法调用目标对象的方法", e); throw new DaoException("无法调用目标对象的方法", e);
} }
} }
// 以下是getter和setter方法用于访问和修改target和dataSource属性
/**
* Connection
* @return Connection
*/
public Connection getTarget() { public Connection getTarget() {
return target; return target;
} }
/**
* Connection
* @param target Connection
*/
public void setTarget(Connection target) { public void setTarget(Connection target) {
this.target = target; this.target = target;
} }
/**
*
* @return
*/
public DataSource getDataSource() { public DataSource getDataSource() {
return dataSource; return dataSource;
} }
/**
*
* @param dataSource
*/
public void setDataSource(DataSource dataSource) { public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource; this.dataSource = dataSource;
} }

@ -1,19 +1,4 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.model.builder; package com.hyc.wechat.model.builder;
import com.hyc.wechat.model.vo.MessageVO; import com.hyc.wechat.model.vo.MessageVO;
@ -22,49 +7,91 @@ import java.math.BigInteger;
import java.sql.Timestamp; import java.sql.Timestamp;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @description MessageVO * @description MessageVO
* @date 2019-05-07 14:58
*/ */
public class MessageVOBuilder { public class MessageVOBuilder {
private MessageVO messageVo; private MessageVO messageVo;
/**
* MessageVO
*/
public MessageVOBuilder() { public MessageVOBuilder() {
this.messageVo = new MessageVO(); this.messageVo = new MessageVO();
} }
/**
* MessageVO
* @return MessageVO
*/
public MessageVO build(){ public MessageVO build(){
return this.messageVo; return this.messageVo;
} }
/**
*
* @param senderName
* @return MessageVOBuilder便
*/
public MessageVOBuilder setSenderName(String senderName) { public MessageVOBuilder setSenderName(String senderName) {
this.messageVo.setSenderName(senderName); this.messageVo.setSenderName(senderName);
return this; return this;
} }
/**
* ID
* @param senderId ID
* @return MessageVOBuilder便
*/
public MessageVOBuilder setSenderId(BigInteger senderId){ public MessageVOBuilder setSenderId(BigInteger senderId){
this.messageVo.setSenderId(senderId); this.messageVo.setSenderId(senderId);
return this; return this;
} }
/**
* URL
* @param senderPhoto URL
* @return MessageVOBuilder便
*/
public MessageVOBuilder setSenderPhoto(String senderPhoto){ public MessageVOBuilder setSenderPhoto(String senderPhoto){
this.messageVo.setSenderPhoto(senderPhoto); this.messageVo.setSenderPhoto(senderPhoto);
return this; return this;
} }
/**
* ID
* @param chatId ID
* @return MessageVOBuilder便
*/
public MessageVOBuilder setChatId(BigInteger chatId){ public MessageVOBuilder setChatId(BigInteger chatId){
this.messageVo.setChatId(chatId); this.messageVo.setChatId(chatId);
return this; return this;
} }
/**
*
* @param content
* @return MessageVOBuilder便
*/
public MessageVOBuilder setContent(String content){ public MessageVOBuilder setContent(String content){
this.messageVo.setContent(content); this.messageVo.setContent(content);
return this; return this;
} }
/**
*
* @param time
* @return MessageVOBuilder便
*/
public MessageVOBuilder setTime(Timestamp time){ public MessageVOBuilder setTime(Timestamp time){
this.messageVo.setTime(time); this.messageVo.setTime(time);
return this; return this;
} }
/**
*
* @param type
* @return MessageVOBuilder便
*/
public MessageVOBuilder setType(String type){ public MessageVOBuilder setType(String type){
this.messageVo.setType(type); this.messageVo.setType(type);
return this; return this;
} }
/**
* ID
* @param id ID
* @return MessageVOBuilder便
*/
public MessageVOBuilder setId(BigInteger id){ public MessageVOBuilder setId(BigInteger id){
this.messageVo.setId(id); this.messageVo.setId(id);
return this; return this;

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.model.builder; package com.hyc.wechat.model.builder;
@ -22,100 +7,186 @@ import java.math.BigInteger;
import java.sql.Timestamp; import java.sql.Timestamp;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a> * @description MomentVO
* @description
* @date 2019-05-07 20:32
*/ */
public class MomentVOBuilder { public class MomentVOBuilder {
// MomentVO对象用于存储构建过程中的数据
private MomentVO momentVO; private MomentVO momentVO;
/**
* MomentVO
*/
public MomentVOBuilder() { public MomentVOBuilder() {
this.momentVO = new MomentVO(); this.momentVO = new MomentVO();
} }
/**
* MomentVO
* @return MomentVO
*/
public MomentVO build() { public MomentVO build() {
return this.momentVO; return this.momentVO;
} }
// 以下方法用于设置MomentVO对象的属性并返回当前Builder对象以便链式调用
/**
*
* @param time
* @return Builder
*/
public MomentVOBuilder setTime(Timestamp time){ public MomentVOBuilder setTime(Timestamp time){
this.momentVO.setTime(time); this.momentVO.setTime(time);
return this; return this;
} }
/**
* URL
* @param userPhoto URL
* @return Builder
*/
public MomentVOBuilder setUserPhoto(String userPhoto){ public MomentVOBuilder setUserPhoto(String userPhoto){
this.momentVO.setUserPhoto(userPhoto); this.momentVO.setUserPhoto(userPhoto);
return this; return this;
} }
/**
* URL
* @param photo URL
* @return Builder
*/
public MomentVOBuilder setPhoto(String photo){ public MomentVOBuilder setPhoto(String photo){
this.momentVO.setPhoto(photo); this.momentVO.setPhoto(photo);
return this; return this;
} }
/**
*
* @param userName
* @return Builder
*/
public MomentVOBuilder setUserName(String userName){ public MomentVOBuilder setUserName(String userName){
this.momentVO.setUserName(userName); this.momentVO.setUserName(userName);
return this; return this;
} }
/**
* ID
* @param id ID
* @return Builder
*/
public MomentVOBuilder setId(BigInteger id) { public MomentVOBuilder setId(BigInteger id) {
this.momentVO.setId(id); this.momentVO.setId(id);
return this; return this;
} }
/**
* ID
* @param userId ID
* @return Builder
*/
public MomentVOBuilder setUserId(BigInteger userId) { public MomentVOBuilder setUserId(BigInteger userId) {
this.momentVO.setOwnerId(userId); this.momentVO.setOwnerId(userId);
return this; return this;
} }
/**
*
* @param content
* @return Builder
*/
public MomentVOBuilder setContent(String content) { public MomentVOBuilder setContent(String content) {
this.momentVO.setContent(content); this.momentVO.setContent(content);
return this; return this;
} }
/**
*
* @param share
* @return Builder
*/
public MomentVOBuilder setShare(Long share) { public MomentVOBuilder setShare(Long share) {
this.momentVO.setShare(share); this.momentVO.setShare(share);
return this; return this;
} }
/**
*
* @param love
* @return Builder
*/
public MomentVOBuilder setLove(Long love) { public MomentVOBuilder setLove(Long love) {
this.momentVO.setLove(love); this.momentVO.setLove(love);
return this; return this;
} }
/**
*
* @param remark
* @return Builder
*/
public MomentVOBuilder setRemark(Long remark) { public MomentVOBuilder setRemark(Long remark) {
this.momentVO.setRemark(remark); this.momentVO.setRemark(remark);
return this; return this;
} }
/**
*
* @param view
* @return Builder
*/
public MomentVOBuilder setView(Long view) { public MomentVOBuilder setView(Long view) {
this.momentVO.setView(view); this.momentVO.setView(view);
return this; return this;
} }
/**
*
* @param collect
* @return Builder
*/
public MomentVOBuilder setCollect(Long collect) { public MomentVOBuilder setCollect(Long collect) {
this.momentVO.setCollect(collect); this.momentVO.setCollect(collect);
return this; return this;
} }
/**
*
* @param loved
* @return Builder
*/
public MomentVOBuilder setLoved(Boolean loved) { public MomentVOBuilder setLoved(Boolean loved) {
this.momentVO.setLoved(loved); this.momentVO.setLoved(loved);
return this; return this;
} }
/**
*
* @param shared
* @return Builder
*/
public MomentVOBuilder setShared(Boolean shared) { public MomentVOBuilder setShared(Boolean shared) {
this.momentVO.setShared(shared); this.momentVO.setShared(shared);
return this; return this;
} }
public MomentVOBuilder setViewed(Boolean viewed) { /**
this.momentVO.setViewed(viewed); *
return this; * @param viewed
* @return Builder
*/
public MomentVOBuilder setViewed(Boolean viewed) {
this.momentVO.setViewed(viewed);
return this;
}
} /**
*
* @param collected
* @return Builder
*/
public MomentVOBuilder setCollected(Boolean collected) { public MomentVOBuilder setCollected(Boolean collected) {
this.momentVO.setCollected(collected); this.momentVO.setCollected(collected);
return this; return this;
} }
} }

@ -1,73 +1,99 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.model.dto; package com.hyc.wechat.model.dto;
import com.hyc.wechat.service.constants.Status; import com.hyc.wechat.service.constants.Status;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description service * @description serviceDTO
* @date 2019-05-02 03:01
*/ */
public class ServiceResult { public class ServiceResult {
/** /**
* *
*/ */
private Status status; private Status status;
/** /**
* *
*/ */
private String message; private String message;
/** /**
* *
*/ */
private Object data; private Object data;
/**
* ServiceResult
*/
public ServiceResult() { public ServiceResult() {
} }
/**
* ServiceResult
*
* @param status
* @param message
* @param data
*/
public ServiceResult(Status status, String message, Object data) { public ServiceResult(Status status, String message, Object data) {
this.status = status; this.status = status;
this.message = message; this.message = message;
this.data = data; this.data = data;
} }
/**
*
*
* @return
*/
public Status getStatus() { public Status getStatus() {
return status; return status;
} }
/**
*
*
* @param status
*/
public void setStatus(Status status) { public void setStatus(Status status) {
this.status = status; this.status = status;
} }
/**
*
*
* @return
*/
public String getMessage() { public String getMessage() {
return message; return message;
} }
/**
*
*
* @param message
*/
public void setMessage(String message) { public void setMessage(String message) {
this.message = message; this.message = message;
} }
/**
*
*
* @return
*/
public Object getData() { public Object getData() {
return data; return data;
} }
/**
*
*
* @param data
*/
public void setData(Object data) { public void setData(Object data) {
this.data = data; this.data = data;
} }
} }

@ -1,19 +1,4 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.model.po; package com.hyc.wechat.model.po;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
@ -23,65 +8,135 @@ import com.hyc.wechat.model.po.abs.BaseEntity;
import java.math.BigInteger; import java.math.BigInteger;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a> * @description chat
* @description chat
* @date 2019-05-03 01:38
*/ */
@Table(name = "chat") @Table(name = "chat") // 指定该实体类对应的数据库表名为chat
public class Chat extends BaseEntity { public class Chat extends BaseEntity {
// 聊天室的编号
private String number; private String number;
@JSONField(name = "owner_id")
// 聊天室所有者的ID
@JSONField(name = "owner_id") // 指定在JSON序列化时的字段名为owner_id
private BigInteger ownerId; private BigInteger ownerId;
// 聊天室的类型(如群聊、私聊等)
private String type; private String type;
// 聊天室的名称
private String name; private String name;
// 聊天室的成员数量
private Integer member; private Integer member;
// 聊天室的封面照片URL
private String photo; private String photo;
/**
*
*
* @return
*/
public String getType() { public String getType() {
return type; return type;
} }
/**
*
*
* @param type
*/
public void setType(String type) { public void setType(String type) {
this.type = type; this.type = type;
} }
/**
*
*
* @return
*/
public String getNumber() { public String getNumber() {
return number; return number;
} }
/**
*
*
* @param number
*/
public void setNumber(String number) { public void setNumber(String number) {
this.number = number; this.number = number;
} }
/**
* URL
*
* @return URL
*/
public String getPhoto() { public String getPhoto() {
return photo; return photo;
} }
/**
* URL
*
* @param photo URL
*/
public void setPhoto(String photo) { public void setPhoto(String photo) {
this.photo = photo; this.photo = photo;
} }
/**
* ID
*
* @return ID
*/
public BigInteger getOwnerId() { public BigInteger getOwnerId() {
return ownerId; return ownerId;
} }
/**
* ID
*
* @param ownerId ID
*/
public void setOwnerId(BigInteger ownerId) { public void setOwnerId(BigInteger ownerId) {
this.ownerId = ownerId; this.ownerId = ownerId;
} }
/**
*
*
* @return
*/
public String getName() { public String getName() {
return name; return name;
} }
/**
*
*
* @param name
*/
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
/**
*
*
* @return
*/
public Integer getMember() { public Integer getMember() {
return member; return member;
} }
/**
*
*
* @param member
*/
public void setMember(Integer member) { public void setMember(Integer member) {
this.member = member; this.member = member;
} }
} }

@ -1,19 +1,4 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.model.po; package com.hyc.wechat.model.po;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
@ -23,77 +8,158 @@ import com.hyc.wechat.model.po.abs.BaseEntity;
import java.math.BigInteger; import java.math.BigInteger;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description * @description friend
* @date 2019-05-02 01:56
*/ */
@Table(name = "friend") @Table(name = "friend") // 指定该实体类对应的数据库表名为friend
public class Friend extends BaseEntity { public class Friend extends BaseEntity {
@JSONField(name = "user_id") // 用户ID表示朋友的用户标识
@JSONField(name = "user_id") // 指定在JSON序列化时的字段名为user_id
private BigInteger userId; private BigInteger userId;
@JSONField(name = "friend_id")
// 朋友ID表示朋友的用户标识
@JSONField(name = "friend_id") // 指定在JSON序列化时的字段名为friend_id
private BigInteger friendId; private BigInteger friendId;
@JSONField(name = "chat_id")
// 聊天室ID表示与朋友关联的聊天室标识
@JSONField(name = "chat_id") // 指定在JSON序列化时的字段名为chat_id
private BigInteger chatId; private BigInteger chatId;
// 朋友的头像照片URL
private String photo; private String photo;
@JSONField(name = "group_id")
// 分组ID表示朋友所属的分组标识
@JSONField(name = "group_id") // 指定在JSON序列化时的字段名为group_id
private BigInteger groupId; private BigInteger groupId;
// 朋友的别名,用于在好友列表中显示的名称
private String alias; private String alias;
// 朋友的描述信息
private String description; private String description;
/**
* ID
*
* @return ID
*/
public BigInteger getChatId() { public BigInteger getChatId() {
return chatId; return chatId;
} }
/**
* ID
*
* @param chatId ID
*/
public void setChatId(BigInteger chatId) { public void setChatId(BigInteger chatId) {
this.chatId = chatId; this.chatId = chatId;
} }
/**
* URL
*
* @return URL
*/
public String getPhoto() { public String getPhoto() {
return photo; return photo;
} }
/**
* URL
*
* @param photo URL
*/
public void setPhoto(String photo) { public void setPhoto(String photo) {
this.photo = photo; this.photo = photo;
} }
/**
* ID
*
* @return ID
*/
public BigInteger getUserId() { public BigInteger getUserId() {
return userId; return userId;
} }
/**
* ID
*
* @param userId ID
*/
public void setUserId(BigInteger userId) { public void setUserId(BigInteger userId) {
this.userId = userId; this.userId = userId;
} }
/**
* ID
*
* @return ID
*/
public BigInteger getFriendId() { public BigInteger getFriendId() {
return friendId; return friendId;
} }
/**
* ID
*
* @param friendId ID
*/
public void setFriendId(BigInteger friendId) { public void setFriendId(BigInteger friendId) {
this.friendId = friendId; this.friendId = friendId;
} }
/**
* ID
*
* @return ID
*/
public BigInteger getGroupId() { public BigInteger getGroupId() {
return groupId; return groupId;
} }
/**
* ID
*
* @param groupId ID
*/
public void setGroupId(BigInteger groupId) { public void setGroupId(BigInteger groupId) {
this.groupId = groupId; this.groupId = groupId;
} }
/**
*
*
* @return
*/
public String getAlias() { public String getAlias() {
return alias; return alias;
} }
/**
*
*
* @param alias
*/
public void setAlias(String alias) { public void setAlias(String alias) {
this.alias = alias; this.alias = alias;
} }
/**
*
*
* @return
*/
public String getDescription() { public String getDescription() {
return description; return description;
} }
/**
*
*
* @param description
*/
public void setDescription(String description) { public void setDescription(String description) {
this.description = description; this.description = description;
} }

@ -1,19 +1,4 @@
/* //导入必要库
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.model.po; package com.hyc.wechat.model.po;
import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.annotation.JSONField;
@ -23,66 +8,135 @@ import com.hyc.wechat.model.po.abs.BaseEntity;
import java.math.BigInteger; import java.math.BigInteger;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a> * @description member
* @description
* @date 2019-05-03 12:58
*/ */
@Table(name = "member") @Table(name = "member") // 指定该实体类对应的数据库表名为member
public class Member extends BaseEntity { public class Member extends BaseEntity {
@JSONField(name = "user_id") // 用户ID表示成员的用户标识
@JSONField(name = "user_id") // 指定在JSON序列化时的字段名为user_id
private BigInteger userId; private BigInteger userId;
@JSONField(name = "chat_id")
// 聊天室ID表示成员所属的群聊标识
@JSONField(name = "chat_id") // 指定在JSON序列化时的字段名为chat_id
private BigInteger chatId; private BigInteger chatId;
@JSONField(name = "group_alias")
// 群聊别名,表示成员在群聊中的别名
@JSONField(name = "group_alias") // 指定在JSON序列化时的字段名为group_alias
private String groupAlias; private String groupAlias;
// 申请状态,表示成员的申请状态(如:待审批、已通过等)
private String apply; private String apply;
// 背景图片,表示成员在群聊中的背景图片
private String background; private String background;
// 等级,表示成员在群聊中的等级或权限级别
private Integer level; private Integer level;
/**
*
*
* @return
*/
public String getApply() { public String getApply() {
return apply; return apply;
} }
/**
*
*
* @param apply
*/
public void setApply(String apply) { public void setApply(String apply) {
this.apply = apply; this.apply = apply;
} }
/**
*
*
* @return
*/
public Integer getLevel() { public Integer getLevel() {
return level; return level;
} }
/**
*
*
* @param level
*/
public void setLevel(Integer level) { public void setLevel(Integer level) {
this.level = level; this.level = level;
} }
/**
* ID
*
* @return ID
*/
public BigInteger getUserId() { public BigInteger getUserId() {
return userId; return userId;
} }
/**
* ID
*
* @param userId ID
*/
public void setUserId(BigInteger userId) { public void setUserId(BigInteger userId) {
this.userId = userId; this.userId = userId;
} }
/**
* ID
*
* @return ID
*/
public BigInteger getChatId() { public BigInteger getChatId() {
return chatId; return chatId;
} }
/**
* ID
*
* @param chatId ID
*/
public void setChatId(BigInteger chatId) { public void setChatId(BigInteger chatId) {
this.chatId = chatId; this.chatId = chatId;
} }
/**
*
*
* @return
*/
public String getGroupAlias() { public String getGroupAlias() {
return groupAlias; return groupAlias;
} }
/**
*
*
* @param groupAlias
*/
public void setGroupAlias(String groupAlias) { public void setGroupAlias(String groupAlias) {
this.groupAlias = groupAlias; this.groupAlias = groupAlias;
} }
/**
*
*
* @return
*/
public String getBackground() { public String getBackground() {
return background; return background;
} }
/**
*
*
* @param background
*/
public void setBackground(String background) { public void setBackground(String background) {
this.background = background; this.background = background;
} }

@ -1,18 +1,3 @@
/*
* Copyright (c) 2019.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyc.wechat.model.po.abs; package com.hyc.wechat.model.po.abs;
@ -23,62 +8,111 @@ import java.math.BigInteger;
import java.util.Date; import java.util.Date;
/** /**
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @program wechat * @program wechat
* @description * @description
* @date 2019-05-01 23:19
*/ */
public abstract class BaseEntity { public abstract class BaseEntity {
/**
*
*/
@Field(name = "id") @Field(name = "id")
private BigInteger id; private BigInteger id;
/**
*
*/
@Field(name = "status") @Field(name = "status")
private Integer status; private Integer status;
/**
*
*/
@Field(name = "gmt_create") @Field(name = "gmt_create")
private Date gmtCreate; private Date gmtCreate;
/**
*
*/
@Field(name = "gmt_modified") @Field(name = "gmt_modified")
private Date gmtModified; private Date gmtModified;
/**
*
*
* @return
*/
public BigInteger getId() { public BigInteger getId() {
return id; return id;
} }
/**
*
*
* @param id
*/
public void setId(BigInteger id) { public void setId(BigInteger id) {
this.id = id; this.id = id;
} }
/**
*
*
* @return
*/
public Integer getStatus() { public Integer getStatus() {
return status; return status;
} }
/**
*
*
* @param status
*/
public void setStatus(Integer status) { public void setStatus(Integer status) {
this.status = status; this.status = status;
} }
/**
*
*
* @return
*/
public Date getGmtCreate() { public Date getGmtCreate() {
return gmtCreate; return gmtCreate;
} }
/**
*
*
* @param gmtCreate
*/
public void setGmtCreate(Date gmtCreate) { public void setGmtCreate(Date gmtCreate) {
this.gmtCreate = gmtCreate; this.gmtCreate = gmtCreate;
} }
/**
*
*
* @return
*/
public Date getGmtModified() { public Date getGmtModified() {
return gmtModified; return gmtModified;
} }
/**
*
*
* @param gmtModified
*/
public void setGmtModified(Date gmtModified) { public void setGmtModified(Date gmtModified) {
this.gmtModified = gmtModified; this.gmtModified = gmtModified;
} }
/** /**
* potoString使json * toString使JSON
* *
* @return * @return JSON
* @name toString
* @notice none
* @author <a href="mailto:kobe524348@gmail.com"></a>
* @date 2019/5/7
*/ */
@Override @Override
public String toString() { public String toString() {

@ -1,4 +1,23 @@
/*
.page-body:
.menu:
.menu-head, .menu-head-photo, .menu-head-img, .menu-head-info, .menu-head-nickname:
.menu-search, .menu-search-icon, .menu-search-bar:
.menu-option, .menu-option-item, .menu-option-chat:
.chat-box, .chat-box-head, .chat-box-title, .chat-box-title-box, .chat-box-title-text:
.chat-input-box, .text-area:
.chat-output-box, .chat-output-head-photo-right, .chat-output-head-photo-left, .chat-output-content-right, .chat-output-content-left, .chat-output-meta-left, .chat-output-bubble-right, .chat-output-bubble-left, .chat-output-bubble-inner, .chat-output-bubble-pre-right, .chat-output-bubble-pre-left:
.user-photo, .my-photo, .user-list-block-href, .user-list-block, .user-info, .user-box, .my-name, .my-message:
*/
.page-body { .page-body {
min-width: 800px; min-width: 800px;
height: 100%; height: 100%;

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save