目录结构
mapp.xml
<?xml version="1.0" encoding="UTF-8" ?>
<maxml version="2.0" xmlns="http://www.nj.fiberhome.com.cn/map"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nj.fiberhome.com.cn/map maxml-2.0.xsd">
<config>
<htmlformat wellformat="true" />
<filepreviewconfig wordtohtml="true"/>
<session type="stateless"/>
<database id="activity_mysql" user="root" password="123456" dbname="web" dbtype="mysql" ip="127.0.0.1" port="3306"/>
</config>
<services>
<http-service>
<forward pattern="/queryact" path="activity_list.jsp"></forward>
<forward pattern="/getimg" path="getimg.jsp"></forward>
</http-service>
</services>
</maxml>
checklogin.jsp
<%-- ExMobi JSP文件,注释和取消快捷键统一为Ctrl+/ 多行注释为Ctrl+Shift+/ --%>
<%@ page language="java" import="java.util.*,org.json.*"
contentType="application/uixml+xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
String login_id = aa.req.getParameter("login_id");
String login_pwd = aa.req.getParameter("login_pwd");
JSONObject oj = new JSONObject();
if(login_id.equals("") || login_pwd.equals("")){
oj.put("result", "fail");
oj.put("msg", "用户名或密码缺失");
}
String sql = "select * from tbl_user_info where login_id = ? and login_pwd = ?";
TableRow row = aa.db.queryRow("activity_mysql", sql, new Object[]{login_id,login_pwd});
if(null != row){
oj.put("result", "success");
JSONObject user_info = new JSONObject();
user_info.putOpt("user_uuid", row.getField("user_uuid", ""));
user_info.putOpt("user_name", row.getField("user_name", ""));
user_info.putOpt("sex", row.getField("sex", 1));
user_info.putOpt("tel_no", row.getField("tel_no", ""));
user_info.putOpt("login_id", row.getField("login_id", ""));
user_info.putOpt("login_pwd", row.getField("login_pwd", ""));
user_info.putOpt("identify_id", row.getField("identify_id", ""));
user_info.putOpt("remark", row.getField("remark", ""));
oj.put("user_info", user_info);
}else{
oj.put("result", "fail");
oj.put("msg", "用户名或密码错误");
}
out.print(oj.toString());
%>
checkrepeatloginid.jsp
<%-- ExMobi JSP文件,注释和取消快捷键统一为Ctrl+/ 多行注释为Ctrl+Shift+/ --%>
<%@ page language="java" import="java.util.*"
contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
String login_id = aa.req.getParameter("login_id");
String sql = "select * from tbl_user_info where login_id = ?";
TableRow row = aa.db.queryRow("activity_mysql", sql, new Object[]{login_id});
if(null != row){
out.print("{\"repeat\":\"1\"}");
}else{
out.print("{\"repeat\":\"0\"}");
}
%>
activity_list.jsp
<%@ page language="java" import="java.util.*,java.text.SimpleDateFormat"
contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
String actTitle = aa.req.getParameter("actTitile");
String actStatusParam = aa.req.getParameter("actStatus");
String querySql = "select a.*,(select count(*) FROM tbl_activity_user b WHERE b.activity_uuid=a.activity_uuid) as join_count from tbl_activity_info a where 1=1 ";
List<Object> params = new ArrayList<Object>();
if(!actTitle.equals("")){
querySql += "and a.activity_title like ?";
params.add(actTitle);
}
SimpleDateFormat formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm");
long currentMillis = System.currentTimeMillis();
java.util.Date currentDate = new java.util.Date(currentMillis);
Timestamp currentTime = new Timestamp(currentMillis);
if(!actStatusParam.equals("")){
int status = new Integer(actStatusParam);
switch(status){
case 1://报名中
querySql += " and a.deadline_time > ?";
params.add(currentTime);
break;
case 2://报名截止
querySql += " and a.deadline_time <= ? and a.begin_time > ?";
params.add(currentTime);
params.add(currentTime);
break;
case 3://进行中
querySql += " and a.begin_time <= ? and a.end_time > ?";
params.add(currentTime);
params.add(currentTime);
break;
default://已结束
querySql += " and a.end_time <= ?";
params.add(currentTime);
params.add(currentTime);
break;
}
}
Object[] paramsObject = null;
if(params.size() > 0){
paramsObject = params.toArray();
}
List<TableRow> actRows = aa.db.query("activity_mysql", querySql, paramsObject);
JSONObject outJson = new JSONObject();
JSONArray acts = new JSONArray();
for(TableRow row:actRows){
JSONObject activity = new JSONObject();
activity.put("activity_uuid", row.getField("activity_uuid", ""));
activity.put("activity_title", row.getField("activity_title", ""));
activity.put("activity_content", row.getField("activity_content", ""));
Timestamp beginTimestamp = (Timestamp)row.getField("begin_time");
long beginTime = beginTimestamp.getTime();
java.util.Date beginDate = new java.util.Date(beginTime);
String beginStr = formatTime.format(beginDate);
activity.put("begin_time",beginStr);
Timestamp endTimestamp = (Timestamp)row.getField("end_time");
long endTime = endTimestamp.getTime();
java.util.Date endDate = new java.util.Date(endTime);
String endStr = formatTime.format(endDate);
activity.put("end_time", endStr);
activity.put("address", row.getField("address", ""));
activity.put("contact_tel", row.getField("contact_tel", ""));
Timestamp deadlineTimestamp = (Timestamp)row.getField("deadline_time");
long deadlineTime = deadlineTimestamp.getTime();
java.util.Date deadlineDate = new java.util.Date(deadlineTime);
String deadlineStr = formatTime.format(deadlineDate);
activity.put("deadline_time", deadlineStr);
activity.put("person_limit", row.getField("person_limit", 0));
activity.put("poster_img_uuid", row.getField("poster_img_uuid", ""));
activity.put("activity_imgs", row.getField("activity_imgs", ""));
activity.put("necessary", row.getField("necessary", ""));
String actStatus = "";
if(currentMillis < deadlineTime){
actStatus = "报名中";
}else if(currentMillis >= deadlineTime && currentMillis < beginTime){
actStatus = "报名截止";
}else if(currentMillis >= beginTime && currentMillis < endTime){
actStatus = "进行中";
}else{
actStatus = "已结束";
}
activity.put("actStatus", actStatus);
activity.put("join_count", row.getField("join_count", 0));
acts.put(activity);
}
outJson.put("acts", acts);
out.print(outJson.toString());
%>
getimg.jsp
<%-- ExMobi JSP文件,注释和取消快捷键统一为Ctrl+/ 多行注释为Ctrl+Shift+/ --%>
<%@ page language="java" import="java.util.*,java.io.*"
contentType="image/*; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
String img_uuid = aa.req.getParameterFromUrl("img_uuid").equals("")?aa.req.getParameter("img_uuid"):aa.req.getParameterFromUrl("img_uuid");
String queryimgSql = "select * from tbl_img where img_uuid = ?";
TableRow row = aa.db.queryRow("activity_mysql", queryimgSql, new Object[]{img_uuid});
if(null != row){
String imgPath = row.getField("img_path", "");
String imgname = imgPath.substring(imgPath.lastIndexOf("\\")+1);
response.addHeader("Content-Disposition","attachment;fileName="+imgname);
File img = new File(imgPath);
FileInputStream in = new FileInputStream(img);
byte data[] = new byte[in.available()];
in.read(data); // 读数据
in.close();
response.setContentType("image/*"); // 设置返回的文件类型
OutputStream os = response.getOutputStream(); // 得到向客户端输出二进制数据的对象
os.write(data); // 输出数据
os.close();
out.clear();
out = pageContext.pushBody();
}
%>
signup_act.jsp
<%@ page language="java" import="java.util.*,java.text.SimpleDateFormat"
contentType="application/uixml+xml; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
String act_uuid = aa.req.getParameter("act_uuid");
String user_uuid = aa.req.getParameter("user_uuid");
String insertSql = "insert into tbl_activity_user values (?,?)";
JSONObject outJson = new JSONObject();
String querySql = "select a.*,(select count(*) FROM tbl_activity_user b WHERE b.activity_uuid=a.activity_uuid) as join_count from tbl_activity_info a where a.activity_uuid = ?";
TableRow actRow = aa.db.queryRow("activity_mysql", querySql, new Object[]{act_uuid});
if(null!=actRow){
int personLimit = actRow.getField("person_limit", 0);
int joinCount = actRow.getField("joing_count", 0);
if(joinCount >= personLimit){//报名人数限制校验
outJson.put("result", "fail");
outJson.put("msg", "活动报名人数已满");
out.print(outJson.toString());
return;
}
Timestamp deadlineTimestamp = (Timestamp)actRow.getField("deadline_time");
long deadlineTime = deadlineTimestamp.getTime();
long currentMillis = System.currentTimeMillis();
if(currentMillis >= deadlineTime){//报名截止时间校验
outJson.put("result", "fail");
outJson.put("msg", "已过活动报名时间");
out.print(outJson.toString());
return;
}
int ret = aa.db.update("activity_mysql", insertSql, new Object[]{act_uuid,user_uuid});
if(ret > 0){
outJson.put("result", "success");
outJson.put("msg", "报名成功");
}else{
outJson.put("result", "fail");
outJson.put("msg", "报名失败,请联系管理员");
}
out.print(outJson.toString());
}else{
outJson.put("result", "fail");
outJson.put("msg", "此活动不存在");
out.print(outJson.toString());
return;
}
%>
submitactivity.jsp
<%@ page language="java" import="java.util.*,java.io.*,java.nio.*,java.text.SimpleDateFormat"
contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
JSONObject outJson = new JSONObject();
String activity_title = aa.req.getParameter("activity_title");
String activity_content = aa.req.getParameter("activity_content");
SimpleDateFormat formatTime = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String begin_timeStr = aa.req.getParameter("begin_time");
java.util.Date beginDate = formatTime.parse(begin_timeStr);
//活动开始时间
Timestamp beginTime = new Timestamp(beginDate.getTime());
String end_timeStr = aa.req.getParameter("end_time");
java.util.Date endDate = formatTime.parse(end_timeStr);
//活动结束时间
Timestamp endTime = new Timestamp(endDate.getTime());
if(beginDate.getTime() >= endDate.getTime()){
outJson.put("result", "fail");
outJson.put("msg", "开始时间必须早于结束时间");
out.print(outJson.toString());
return;
}
String address = aa.req.getParameter("address");
String deadline_timeStr = aa.req.getParameter("deadline_time");
java.util.Date deadlineDate = formatTime.parse(deadline_timeStr);
//活动报名截止时间
Timestamp deadlineTime = new Timestamp(deadlineDate.getTime());
if(deadlineDate.getTime() >= beginDate.getTime()){
outJson.put("result", "fail");
outJson.put("msg", "报名截止时间必须早于活动开始时间");
out.print(outJson.toString());
return;
}
//活动联系人
String contact_tel = aa.req.getParameter("contact_tel");
//活动人数限制
String person_limitStr = aa.req.getParameter("person_limit");
Integer person_limit = !person_limitStr.equals("")?new Integer(person_limitStr):null;
//用户报名必选项
String nessary = aa.req.getParameter("necessary");
//活动海报
String poster_img_uuid = aa.req.getParameter("poster_img_uuid");
//活动图片
String activity_imgs = aa.req.getParameter("activity_imgs");
//创建活动主键
String activity_uuid = UUID.randomUUID().toString().replaceAll("-","");
String inserSql = "insert into tbl_activity_info (";
String sqlParamKey = "activity_uuid,begin_time,end_time,address,contact_tel,deadline_time,poster_img_uuid,activity_title,activity_content";
String sqlParamCode = "?,?,?,?,?,?,?,?,?";
List<Object> paramObjects = new ArrayList<Object>();
paramObjects.add(activity_uuid);
paramObjects.add(beginTime);
paramObjects.add(endTime);
paramObjects.add(address);
paramObjects.add(contact_tel);
paramObjects.add(deadlineTime);
paramObjects.add(poster_img_uuid);
paramObjects.add(activity_title);
paramObjects.add(activity_content);
if(null!=person_limit){
sqlParamKey += ",person_limit";
sqlParamCode +=",?";
paramObjects.add(person_limit);
}
if(!nessary.equals("")){
sqlParamKey += ",necessary";
sqlParamCode +=",?";
paramObjects.add(nessary);
}
if(!activity_imgs.equals("")){
sqlParamKey += ",activity_imgs";
sqlParamCode +=",?";
paramObjects.add(activity_imgs);
}
inserSql += sqlParamKey+") values ("+sqlParamCode+")";
int ret = aa.db.update("activity_mysql", inserSql, paramObjects.toArray());
if(ret > 0){
outJson.put("result", "success");
outJson.put("msg", "发布活动成功");
}else{
outJson.put("result", "fail");
outJson.put("msg", "入库失败,请联系管理员");
}
out.print(outJson.toString());
%>
submituser.jsp
<%@ page language="java" import="java.util.*,org.json.*"
contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
JSONObject oj = new JSONObject();
JSONObject currentUser = new JSONObject();
String user_uuid = aa.req.getParameter("user_uuid");
String login_id = aa.req.getParameter("login_id");
String login_pwd = aa.req.getParameter("login_pwd");
String user_name = aa.req.getParameter("user_name");
String sex = aa.req.getParameter("sex");
String tel_no = aa.req.getParameter("tel_no");
String identify_id = aa.req.getParameter("identify_id");
String remark = aa.req.getParameter("remark");
if(login_id.equals("") || login_pwd.equals("") || user_name.equals("")){
oj.put("result", "fail");
oj.put("msg", "必填参数缺失");
}
boolean UpdateFlag = false;
if(null != user_uuid && !("").equals(user_uuid)){
UpdateFlag = true;
}
String finalSql = "";
List<Object> sqlParams = new ArrayList<Object>();
if(UpdateFlag){
finalSql = "update tbl_user_info set login_pwd = ?,user_name = ?";
sqlParams.add(login_pwd);
sqlParams.add(user_name);
if(!("").equals(sex)){
finalSql += ",sex = ?";
sqlParams.add(new Integer(sex));
}
if(!("").equals(tel_no)){
finalSql += ",tel_no = ?";
sqlParams.add(tel_no);
}
if(!("").equals(identify_id)){
finalSql += ",identify_id = ?";
sqlParams.add(identify_id);
}
if(!("").equals(remark)){
finalSql += ",remark = ? ";
sqlParams.add(remark);
}
finalSql += "where user_uuid = ?";
sqlParams.add(user_uuid);
}else{
finalSql = "insert into tbl_user_info (user_uuid, login_id, login_pwd, user_name";
user_uuid = UUID.randomUUID().toString().replaceAll("-","");
sqlParams.add(user_uuid);
sqlParams.add(login_id);
sqlParams.add(login_pwd);
sqlParams.add(user_name);
String valStrs = "?,?,?,?";
if(!("").equals(sex)){
finalSql += ",sex ";
valStrs += ",?";
sqlParams.add(sex);
}
if(!("").equals(tel_no)){
finalSql += ",tel_no ";
valStrs += ",?";
sqlParams.add(tel_no);
}
if(!("").equals(identify_id)){
finalSql += ",identify_id ";
valStrs += ",?";
sqlParams.add(identify_id);
}
if(!("").equals(remark)){
finalSql += ",remark ";
valStrs += ",?";
sqlParams.add(remark);
}
finalSql+=") values ("+valStrs+")";
System.out.println(finalSql);
}
int sqlResult = aa.db.update("activity_mysql", finalSql, sqlParams.toArray());
if(sqlResult > 0){
oj.put("result", "success");
oj.put("msg", "提交成功");
if(UpdateFlag){
currentUser.put("user_uuid", user_uuid);
currentUser.put("login_id", login_id);
currentUser.put("login_pwd", login_pwd);
currentUser.put("user_name", user_name);
currentUser.put("sex", new Integer(sex));
currentUser.put("tel_no", tel_no);
currentUser.put("identify_id", identify_id);
currentUser.put("remark", remark);
oj.put("currentUser", currentUser);
}
}else{
oj.put("result", "fail");
oj.put("msg", "入库失败,请联系管理员");
}
out.print(oj.toString());
%>
uploadactimgs.jsp
<%-- ExMobi JSP文件,注释和取消快捷键统一为Ctrl+/ 多行注释为Ctrl+Shift+/ --%>
<%@ page language="java" import="java.util.*"
contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
JSONObject outJson = new JSONObject();
List<String> imgAddrList = aa.req.getAttachAddrs("activity_img");
java.nio.channels.FileChannel inputChannel = null;
java.nio.channels.FileChannel outputChannel = null;
List<Object[]> params = new ArrayList<Object[]>();
try{
for(String imgAddr:imgAddrList){
String imgSurfix = imgAddr.substring(imgAddr.lastIndexOf("."), imgAddr.length());
File tempActImg = new File(imgAddr);
File realActImgFile = new File("D:\\var\\activityimg\\"+UUID.randomUUID().toString().replaceAll("-","")+imgSurfix);
realActImgFile.createNewFile();
inputChannel = new FileInputStream(tempActImg).getChannel();
outputChannel = new FileOutputStream(realActImgFile).getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
String imgUuid = UUID.randomUUID().toString().replaceAll("-","");
String imgPath = realActImgFile.getPath();
params.add(new Object[]{imgUuid,imgPath});
}
}catch(Exception e){
outJson.put("result", "fail");
outJson.put("msg", "上传图片失败,请联系管理员");
out.print(outJson.toString());
}finally{
inputChannel.close();
outputChannel.close();
}
int ret = aa.db.batchUpdate("activity_mysql", "insert into tbl_img value (?,?)", params);
if(ret >0){
outJson.put("result", "success");
String[] uuids = new String[params.size()];
for(int i=0;i<uuids.length;i++){
uuids[i] = (String)params.get(i)[0];
}
outJson.put("img_uuid", uuids);
out.print(outJson.toString());
}else{
outJson.put("result", "fail");
outJson.put("msg", "入库失败,请联系管理员");
out.print(outJson.toString());
}
%>
uploadposterimg.jsp
<%-- ExMobi JSP文件,注释和取消快捷键统一为Ctrl+/ 多行注释为Ctrl+Shift+/ --%>
<%@ page language="java" import="java.util.*"
contentType="text/plain; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/client/adapt.jsp"%>
<%@ include file="/client/adapt_extend.jsp"%>
<%
JSONObject outJson = new JSONObject();
//活动海报
String posterImgPathStr = aa.req.getAttachAddr("posters_img");
String posterImgName = aa.req.getAttachName("posters_img");
String imgSurfix = posterImgName.substring(posterImgName.lastIndexOf("."), posterImgName.length());
File tempPosterImg = new File(posterImgPathStr);
//图片最终存储名字为“uuid.后缀名”
File realPosterImgFile = new File("D:\\var\\activityimg\\"+UUID.randomUUID().toString().replaceAll("-","")+imgSurfix);
java.nio.channels.FileChannel inputChannel = null;
java.nio.channels.FileChannel outputChannel = null;
try{
realPosterImgFile.createNewFile();//创建空图片
inputChannel = new FileInputStream(tempPosterImg).getChannel();
outputChannel = new FileOutputStream(realPosterImgFile).getChannel();
//把图片内容拷贝至存储目录里的空图片
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
String insertSql = "insert into tbl_img value (?,?)";
String img_uuid = UUID.randomUUID().toString().replaceAll("-","");
//图片信息入库
int ret = aa.db.update("activity_mysql", insertSql, new Object[]{img_uuid,realPosterImgFile.getPath()});
if(ret > 0){
outJson.put("result", "success");
outJson.put("img_uuid", img_uuid);
}else{
outJson.put("result", "fail");
outJson.put("msg", "入库失败,请联系管理员");
}
}catch(Exception e){
outJson.put("result", "fail");
outJson.put("msg", "上传图片失败,请联系管理员");
}finally{
inputChannel.close();
outputChannel.close();
}
out.print(outJson.toString());
%>