厂家管理,系统用户,摄像头页面

This commit is contained in:
ifish7
2017-08-16 18:25:43 +08:00
parent 7de1489e10
commit c67116b3db
32 changed files with 2374 additions and 66 deletions
@@ -56,7 +56,7 @@ public class Admin {
* @param tbl_Security_User
* @return
*/
@RequestMapping(value = {"/insertSecurityUser"}, method = RequestMethod.POST)
@RequestMapping(value = {"/insertSecurityUser"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8")
@ResponseBody
public Object insertUser(Tbl_Security_User tbl_Security_User) {
return adminHelperI.insertUser(tbl_Security_User);
@@ -68,7 +68,7 @@ public class Admin {
* @param tbl_Security_User
* @return
*/
@RequestMapping(value = {"/updateSecurityUser"}, method = RequestMethod.POST)
@RequestMapping(value = {"/updateSecurityUser"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8")
@ResponseBody
public Object updateUser(Tbl_Security_User tbl_Security_User) {
return adminHelperI.updateUser(tbl_Security_User);
@@ -90,7 +90,7 @@ public class Admin {
* @param id
* @return
*/
@RequestMapping(value = {"/deleteSecurityUser"}, method = RequestMethod.POST)
@RequestMapping(value = {"/deleteSecurityUser"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8")
@ResponseBody
public Object deleteSecurityUser(Integer id) {
return adminHelperI.deleteSecurityUser(id);
@@ -0,0 +1,98 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.ifish.controller;
import com.ifish.helper.CameraHelperI;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
/**
*
* @author Administrator
*/
@Controller
public class Camera {
@Autowired
private CameraHelperI cameraHelperI;
/**
* 摄像头信息页面
*
* @return
*/
@RequestMapping(value = {"/cameralist"}, method = RequestMethod.GET)
public ModelAndView getCameraList() {
return cameraHelperI.getCameraList();
}
/**
* 摄像头信息页面数据
*
* @param cameraId
* @param activateCode
* @param activateTime
* @param isActivate
* @param draw
* @param start
* @param length
* @return
*/
@RequestMapping(value = {"/cameralistData"}, method = RequestMethod.POST)
@ResponseBody
public Object getCameralistData(String cameraId, String activateCode, String activateTime, String isActivate, String draw, Integer start, Integer length) {
return cameraHelperI.getCameralistData(cameraId, activateCode, activateTime, isActivate, draw, start, length);
}
/**
* 激活摄像头
*
* @param cameraId
* @param activateCode
* @return
*/
@RequestMapping(value = {"/activateCamera"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8")
@ResponseBody
public Object activateCamera(String cameraId, String activateCode) {
return cameraHelperI.activateCamera(cameraId, activateCode);
}
/**
* 摄像头绑定页面
*
* @return
*/
@RequestMapping(value = {"/camerauserlist"}, method = RequestMethod.GET)
public ModelAndView camerauserlist() {
return cameraHelperI.camerauserlist();
}
/**
* 摄像头绑定页面数据
*
* @param cameraId
* @param userId
* @param phoneNumber
* @param showName
* @param isMaster
* @param isActiva
* @param isLive
* @param draw
* @param start
* @param length
* @return
*/
@RequestMapping(value = {"/camerauserlistData"}, method = RequestMethod.POST)
@ResponseBody
public Object camerauserlistData(String cameraId, String userId, String phoneNumber, String showName, String isMaster, String isActiva, String isLive, String draw, Integer start, Integer length) {
return cameraHelperI.camerauserlistData(cameraId, userId, phoneNumber, showName, isMaster, isActiva, isLive, draw, start, length);
}
}
@@ -129,6 +129,18 @@ public class Factory {
return factoryHelperI.authorizationQuery(factoryCode, createTimeBefore, createTimeAfter);
}
/**
* 授权统计操作记录
*
* @param factoryCode
* @param billMonth
* @return
*/
@RequestMapping(value = {"/recorddetail"}, method = RequestMethod.GET)
public ModelAndView recorddetail(String factoryCode, String billMonth) {
return factoryHelperI.recorddetail(factoryCode, billMonth);
}
/**
* 账单列表
*
@@ -188,6 +200,16 @@ public class Factory {
return factoryHelperI.paydetail(factoryCode, billMonth);
}
/**
* 账单列表详情记录
*
* @param factoryCode
* @param billMonth
* @param draw
* @param start
* @param length
* @return
*/
@RequestMapping(value = {"/paydetailDate"}, method = RequestMethod.POST)
@ResponseBody
public Object paydetailDate(String factoryCode, String billMonth, String draw, Integer start, Integer length) {
@@ -58,7 +58,7 @@ public class Index {
@RequestMapping(value = "/test", method = RequestMethod.GET)
public Object test() {
ModelAndView mv = new ModelAndView();
mv.setViewName("index");
mv.setViewName("testj");
return mv;
}
@@ -104,4 +104,34 @@ public class User {
public Object updateRemarks(String userId, String remarks) {
return userHelper.updateRemarks(userId, remarks);
}
/**
* 换水提醒页面
*
* @return
*/
@RequestMapping(value = "/remindWaterList", method = RequestMethod.GET)
public ModelAndView remindWaterList() {
return userHelper.remindWaterList();
}
/**
* 换水提醒页面数据
*
* @param ispush
* @param phoneType
* @param sortField
* @param sortMode
* @param selectField
* @param selectvalue
* @param draw
* @param start
* @param length
* @return
*/
@RequestMapping(value = {"/remindWaterListData"}, method = RequestMethod.POST)
@ResponseBody
public Object remindWaterListData(String ispush, String phoneType, String sortField, String sortMode, String selectField, String selectvalue, String draw, Integer start, Integer length) {
return userHelper.remindWaterListData(ispush, phoneType, sortField, sortMode, selectField, selectvalue, draw, start, length);
}
}
@@ -6,6 +6,7 @@
package com.ifish.helper;
import com.ifish.bean.Tbl_Security_User;
import com.ifish.mapper.Tbl_Factory_List_Mapper;
import com.ifish.mapper.Tbl_User_Mapper;
import java.util.HashMap;
import java.util.List;
@@ -21,9 +22,12 @@ import org.springframework.web.servlet.ModelAndView;
*/
@Component
public class AdminHelper implements AdminHelperI {
@Autowired
private Tbl_User_Mapper tbl_User_Mapper;
@Autowired
private Tbl_Factory_List_Mapper tbl_Factory_List_Mapper;
/**
* 合作账号管理页面
@@ -35,6 +39,10 @@ public class AdminHelper implements AdminHelperI {
ModelAndView mv = new ModelAndView();
mv.setViewName("adminuserlist");
mv.addObject("title", "用户管理");
List<Map> factorylist = tbl_Factory_List_Mapper.getFactoryListData(0, 1000);
mv.addObject("factorylist", factorylist);
List<Map> venderlist = tbl_Factory_List_Mapper.getAllVenderList();
mv.addObject("venderlist", venderlist);
mv.addObject("myjs", "<!-- Other plugins ( load only nessesary plugins for every page) -->\n"
+ " <script src=\"static/assets/plugins/core/moment/moment.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/sparklines/jquery.sparkline.js\"></script>\n"
@@ -112,8 +120,6 @@ public class AdminHelper implements AdminHelperI {
+ " <script src=\"static/assets/plugins/misc/highlight/highlight.pack.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/countTo/jquery.countTo.js\"></script>\n"
+ " <script src=\"static/assets/js/jquery.sprFlat.js\"></script>\n"
+ " <script src=\"static/switchery/switchery.min.js\"></script>\n"
+ "<link href=\"static/switchery/switchery.min.css\" rel=\"stylesheet\">"
+ " <script src=\"static/assets/js/app.js\"></script>");
return mv;
}
@@ -130,6 +136,10 @@ public class AdminHelper implements AdminHelperI {
if (tbl_Security_User.getId() != null && tbl_Security_User.getId() >= 0) {
return "失败";
}
if (tbl_User_Mapper.checkUserName(tbl_Security_User.getUsername()) > 0) {
return "失败";
}
tbl_Security_User.setStatus("0");
int i = tbl_User_Mapper.insertSecurityUser(tbl_Security_User);
if (i > 0) {
return "成功";
@@ -148,14 +158,14 @@ public class AdminHelper implements AdminHelperI {
@Override
public Object updateUser(Tbl_Security_User tbl_Security_User) {
try {
if (tbl_Security_User.getId() == null || tbl_Security_User.getId() <= 0) {
if (StringUtils.isBlank(tbl_Security_User.getUsername())) {
return "失败";
}
int i = tbl_User_Mapper.updateSecurityUser(tbl_Security_User);
if (i > 0) {
return "成功";
}
} catch (Exception e) {
}
return "失败";
@@ -180,5 +190,5 @@ public class AdminHelper implements AdminHelperI {
}
return "失败";
}
}
@@ -0,0 +1,194 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.ifish.helper;
import com.ifish.bean.Tbl_Device;
import com.ifish.mapper.Tbl_Camera_List_Mapper;
import com.ifish.util.IfishUtil;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
/**
*
* @author Administrator
*/
@Component
public class CameraHelper implements CameraHelperI {
@Autowired
private Tbl_Camera_List_Mapper tbl_Camera_List_Mapper;
@Autowired
private DeviceHelperI deviceHelperI;
/**
* 摄像头信息页面
*
* @return
*/
public ModelAndView getCameraList() {
ModelAndView mv = new ModelAndView();
mv.setViewName("cameralist");
mv.addObject("pagetitle", "摄像头信息");
mv.addObject("title", "摄像头信息");
mv.addObject("myjs", "<!-- Other plugins ( load only nessesary plugins for every page) -->\n"
+ " <script src=\"static/assets/plugins/core/moment/moment.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/sparklines/jquery.sparkline.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/pie-chart/jquery.easy-pie-chart.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/icheck/jquery.icheck.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tags/jquery.tagsinput.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tinymce/tinymce.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/tables/jquery.dataTables.js\"></script>\n"
+ "<link href=\"static/assets/plugins/tables/jquery.dataTables.css\" rel=\"stylesheet\">"
+ "<link href=\"static/assets/plugins/tables/dataTables.bootstrap.css\" rel=\"stylesheet\">"
+ " <script src=\"static/assets/plugins/tables/dataTables.bootstrap.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/highlight/highlight.pack.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/countTo/jquery.countTo.js\"></script>\n"
+ " <script src=\"static/assets/js/jquery.sprFlat.js\"></script>\n"
+ " <script src=\"static/assets/js/app.js\"></script>");
return mv;
}
/**
* 摄像头信息页面数据
*
* @param cameraId
* @param activateCode
* @param activateTime
* @param isActivate
* @param draw
* @param start
* @param length
* @return
*/
@Override
public Object getCameralistData(String cameraId, String activateCode, String activateTime, String isActivate, String draw, Integer start, Integer length) {
List<Map> list = tbl_Camera_List_Mapper.getCameraListData(cameraId, activateCode, activateTime, isActivate, start, length);
for (Map map : list) {
String date = IfishUtil.format((Date) map.get("activeTime"));
map.put("activeTime", date);
String date2 = IfishUtil.format((Date) map.get("createTime"));
map.put("createTime", date2);
}
Integer count = 0;
Integer allCount = tbl_Camera_List_Mapper.getAllCameraCount();
if (StringUtils.isBlank(cameraId) && StringUtils.isBlank(activateCode) && StringUtils.isBlank(activateTime) && StringUtils.isBlank(isActivate)) {
count = allCount;
} else {
count = tbl_Camera_List_Mapper.getCameraListDataCountBySelect(cameraId, activateCode, activateTime, isActivate);
}
Map map = new HashMap();
map.put("data", list);
map.put("draw", draw);
map.put("recordsTotal", allCount);
map.put("recordsFiltered", count);
return map;
}
/**
* 激活摄像头
*
* @param cameraId
* @param activateCode
* @return
*/
@Override
public Object activateCamera(String cameraId, String activateCode) {
try {
Tbl_Device tbl_Device = deviceHelperI.getDeviceByCameraId(cameraId);
if (tbl_Device != null) {
int i = tbl_Camera_List_Mapper.checkActiveCode(activateCode);
if (i > 0) {
int j = tbl_Camera_List_Mapper.activateCamera(activateCode, cameraId);
if (j > 0) {
return "成功";
}
}
}
} catch (Exception e) {
}
return "失败";
}
/**
* 摄像头绑定页面
*
* @return
*/
@Override
public ModelAndView camerauserlist() {
ModelAndView mv = new ModelAndView();
mv.setViewName("camerauserlist");
mv.addObject("pagetitle", "摄像头绑定");
mv.addObject("title", "摄像头绑定");
mv.addObject("myjs", "<!-- Other plugins ( load only nessesary plugins for every page) -->\n"
+ " <script src=\"static/assets/plugins/core/moment/moment.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/sparklines/jquery.sparkline.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/pie-chart/jquery.easy-pie-chart.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/icheck/jquery.icheck.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tags/jquery.tagsinput.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tinymce/tinymce.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/tables/jquery.dataTables.js\"></script>\n"
+ "<link href=\"static/assets/plugins/tables/jquery.dataTables.css\" rel=\"stylesheet\">"
+ "<link href=\"static/assets/plugins/tables/dataTables.bootstrap.css\" rel=\"stylesheet\">"
+ " <script src=\"static/assets/plugins/tables/dataTables.bootstrap.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/highlight/highlight.pack.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/countTo/jquery.countTo.js\"></script>\n"
+ " <script src=\"static/assets/js/jquery.sprFlat.js\"></script>\n"
+ " <script src=\"static/assets/js/app.js\"></script>");
return mv;
}
/**
* 摄像头绑定页面数据
*
* @param cameraId
* @param userId
* @param phoneNumber
* @param showName
* @param isMaster
* @param isActiva
* @param isLive
* @param draw
* @param start
* @param length
* @return
*/
@Override
public Object camerauserlistData(String cameraId, String userId, String phoneNumber, String showName, String isMaster, String isActiva, String isLive, String draw, Integer start, Integer length) {
List<Map> list = tbl_Camera_List_Mapper.getCameraUserListData(cameraId, userId, phoneNumber, showName, isMaster, isActiva, isLive, start, length);
for (Map map : list) {
String date = IfishUtil.format((Date) map.get("activeTime"));
map.put("activeTime", date);
String date2 = IfishUtil.format((Date) map.get("createTime"));
map.put("createTime", date2);
}
Integer allCount = tbl_Camera_List_Mapper.getAllCameraUserListDataCount();
Integer count = 0;
if (StringUtils.isBlank(cameraId) && StringUtils.isBlank(userId) && StringUtils.isBlank(phoneNumber) && StringUtils.isBlank(showName) && StringUtils.isBlank(isMaster) && StringUtils.isBlank(isActiva) && StringUtils.isBlank(isLive)) {
count = allCount;
} else {
count = tbl_Camera_List_Mapper.getCameraUserListDataCount(cameraId, userId, phoneNumber, showName, isMaster, isActiva, isLive);
}
Map map = new HashMap();
map.put("data", list);
map.put("draw", draw);
map.put("recordsTotal", allCount);
map.put("recordsFiltered", count);
return map;
}
}
@@ -0,0 +1,70 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.ifish.helper;
import org.springframework.web.servlet.ModelAndView;
/**
*
* @author Administrator
*/
public interface CameraHelperI {
/**
* 摄像头信息页面
*
* @return
*/
public ModelAndView getCameraList();
/**
* 摄像头信息页面数据
*
* @param cameraId
* @param activateCode
* @param activateTime
* @param isActivate
* @param draw
* @param start
* @param length
* @return
*/
public Object getCameralistData(String cameraId, String activateCode, String activateTime, String isActivate, String draw, Integer start, Integer length);
/**
* 激活摄像头
*
* @param cameraId
* @param activateCode
* @return
*/
public Object activateCamera(String cameraId, String activateCode);
/**
* 摄像头绑定页面
*
* @return
*/
public ModelAndView camerauserlist();
/**
* 摄像头绑定页面数据
*
* @param cameraId
* @param userId
* @param phoneNumber
* @param showName
* @param isMaster
* @param isActiva
* @param isLive
* @param draw
* @param start
* @param length
* @return
*/
public Object camerauserlistData(String cameraId, String userId, String phoneNumber, String showName, String isMaster, String isActiva, String isLive, String draw, Integer start, Integer length);
}
@@ -416,6 +416,7 @@ public class FactoryHelper implements FactoryHelperI {
mv.addObject("pagetitle", "授权统计");
List<Map> list = tbl_Factory_List_Mapper.getFactoryListData(0, 1000);
mv.addObject("factorylist", list);
mv.addObject("factoryCode", factoryCode);
mv.addObject("map", authorizationData(factoryCode, createTimeBefore, createTimeAfter));
mv.addObject("myjs", "<!-- Other plugins ( load only nessesary plugins for every page) -->\n"
+ " <script src=\"static/assets/plugins/core/moment/moment.min.js\"></script>\n"
@@ -456,17 +457,67 @@ public class FactoryHelper implements FactoryHelperI {
calendar.set(Calendar.DAY_OF_MONTH, maxDay);
createTimeAfter = format.format(calendar.getTime());
}
//百分比
NumberFormat numberFormat = NumberFormat.getInstance();
//设置精确到小数点后0位
numberFormat.setMaximumFractionDigits(0);
if (StringUtils.isBlank(factoryCode)) {
List<Map> list = tbl_Device_Mapper.getAuthorizationByFactory(createTimeBefore, createTimeAfter);
int deviceNumber = tbl_Device_Mapper.getAuthorizationCountByFactory(createTimeBefore, createTimeAfter);
for (Map map1 : list) {
String factorybindPrice = numberFormat.format(Float.valueOf(map1.get("deviceNumber").toString()) / (float) deviceNumber * 100);
map1.put("factorybindPrice", factorybindPrice);
}
map.put("deviceCount", deviceNumber);
map.put("factorylist", list);
} else {
List<Map> list = tbl_Device_Mapper.getAuthorizationByDate(createTimeBefore, createTimeAfter, factoryCode);
int deviceNumber = tbl_Device_Mapper.getAuthorizationCountByDate(createTimeBefore, createTimeAfter, factoryCode);
for (Map map1 : list) {
String venderbindPrice = numberFormat.format(Float.valueOf(map1.get("deviceNumber").toString()) / (float) deviceNumber * 100);
map1.put("venderbindPrice", venderbindPrice);
}
map.put("deviceCount", deviceNumber);
map.put("datalist", list);
}
return map;
}
/**
* 授权统计操作记录页面
*
* @param factoryCode
* @param billMonth
* @return
*/
@Override
public ModelAndView recorddetail(String factoryCode, String billMonth) {
ModelAndView mv = new ModelAndView();
mv.setViewName("record");
mv.addObject("title", "操作记录");
mv.addObject("pagetitle", "操作记录");
mv.addObject("factoryCode", factoryCode);
mv.addObject("billMonth", billMonth);
mv.addObject("myjs", "<!-- Other plugins ( load only nessesary plugins for every page) -->\n"
+ " <script src=\"static/assets/plugins/core/moment/moment.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/sparklines/jquery.sparkline.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/pie-chart/jquery.easy-pie-chart.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/icheck/jquery.icheck.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tags/jquery.tagsinput.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tinymce/tinymce.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/tables/jquery.dataTables.js\"></script>\n"
+ "<link href=\"static/assets/plugins/tables/jquery.dataTables.css\" rel=\"stylesheet\">"
+ "<link href=\"static/assets/plugins/tables/dataTables.bootstrap.css\" rel=\"stylesheet\">"
+ " <script src=\"static/assets/plugins/tables/dataTables.bootstrap.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/highlight/highlight.pack.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/countTo/jquery.countTo.js\"></script>\n"
+ " <script src=\"static/assets/js/jquery.sprFlat.js\"></script>\n"
+ " <script src=\"static/switchery/switchery.min.js\"></script>\n"
+ "<link href=\"static/switchery/switchery.min.css\" rel=\"stylesheet\">"
+ " <script src=\"static/assets/js/app.js\"></script>");
return mv;
}
/**
* 账单列表
*
@@ -90,6 +90,15 @@ public interface FactoryHelperI {
*/
public ModelAndView authorizationQuery(String factoryCode, String createTimeBefore, String createTimeAfter);
/**
* 授权统计操作记录页面
*
* @param factoryCode
* @param billMonth
* @return
*/
public ModelAndView recorddetail(String factoryCode, String billMonth);
/**
* 账单列表
*
@@ -12,6 +12,7 @@ import com.ifish.bean.Tbl_HardWare_Type;
import com.ifish.bean.Tbl_Security_User;
import com.ifish.bean.Tbl_User;
import com.ifish.bean.Tbl_Vender;
import com.ifish.mapper.Tbl_Push_List_Mapper;
import com.ifish.mapper.Tbl_User_Mapper;
import com.ifish.util.IfishUtil;
import java.util.ArrayList;
@@ -41,6 +42,8 @@ public class UserHelper implements UserHelperI {
private DeviceHelper deviceHelper;
@Autowired
private HardWareTypeHelperI hardWareTypeHelperI;
@Autowired
private Tbl_Push_List_Mapper tbl_Push_List_Mapper;
@Override
public Tbl_Security_User getTbl_Security_User(String usernameSring) {
@@ -313,4 +316,69 @@ public class UserHelper implements UserHelperI {
return mv;
}
/**
* 换水提醒页面
*
* @return
*/
@Override
public ModelAndView remindWaterList() {
ModelAndView mv = new ModelAndView();
mv.setViewName("remindWaterList");
mv.addObject("pagetitle", "换水提醒");
mv.addObject("title", "换水提醒");
mv.addObject("myjs", "<!-- Other plugins ( load only nessesary plugins for every page) -->\n"
+ " <script src=\"static/assets/plugins/core/moment/moment.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/sparklines/jquery.sparkline.js\"></script>\n"
+ " <script src=\"static/assets/plugins/charts/pie-chart/jquery.easy-pie-chart.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/icheck/jquery.icheck.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tags/jquery.tagsinput.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/forms/tinymce/tinymce.min.js\"></script>\n"
+ " <script src=\"static/assets/plugins/tables/jquery.dataTables.js\"></script>\n"
+ "<link href=\"static/assets/plugins/tables/jquery.dataTables.css\" rel=\"stylesheet\">"
+ "<link href=\"static/assets/plugins/tables/dataTables.bootstrap.css\" rel=\"stylesheet\">"
+ " <script src=\"static/assets/plugins/tables/dataTables.bootstrap.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/highlight/highlight.pack.js\"></script>\n"
+ " <script src=\"static/assets/plugins/misc/countTo/jquery.countTo.js\"></script>\n"
+ " <script src=\"static/assets/js/jquery.sprFlat.js\"></script>\n"
+ " <script src=\"static/assets/js/app.js\"></script>");
return mv;
}
/**
* 换水提醒数据
*
* @param ispush
* @param phoneType
* @param sortField
* @param sortMode
* @param selectField
* @param selectvalue
* @param darw
* @param start
* @param length
* @return
*/
@Override
public Object remindWaterListData(String ispush, String phoneType, String sortField, String sortMode, String selectField, String selectvalue, String draw, Integer start, Integer length) {
List<Map> list = tbl_Push_List_Mapper.getRemindWaterList(ispush, phoneType, sortField, sortMode, selectField, selectvalue, start, length);
for (Map map : list) {
String remindDate = IfishUtil.format1((Date) map.get("remindDate"));
map.put("remindDate", remindDate);
}
Integer allCount = tbl_Push_List_Mapper.getAllRemindWaterListCount();
Integer count = 0;
if (StringUtils.isBlank(ispush) && StringUtils.isBlank(phoneType) && StringUtils.isBlank(selectvalue)) {
count = allCount;
} else {
count = tbl_Push_List_Mapper.getRemindWaterListCountBySelect(ispush, phoneType, selectField, selectvalue);
}
Map map = new HashMap();
map.put("data", list);
map.put("draw", draw);
map.put("recordsTotal", allCount);
map.put("recordsFiltered", count);
return map;
}
}
@@ -7,6 +7,7 @@ package com.ifish.helper;
import com.ifish.bean.Tbl_Security_User;
import com.ifish.bean.Tbl_User;
import org.springframework.web.servlet.ModelAndView;
/**
*
@@ -55,4 +56,27 @@ public interface UserHelperI {
*/
public Tbl_User getUserById(Integer userId) throws Exception;
/**
* 换水提醒页面
*
* @return
*/
public ModelAndView remindWaterList();
/**
* 换水提醒数据
*
* @param ispush
* @param phoneType
* @param sortField
* @param sortMode
* @param selectField
* @param selectvalue
* @param darw
* @param start
* @param length
* @return
*/
public Object remindWaterListData(String ispush, String phoneType, String sortField, String sortMode, String selectField, String selectvalue, String draw, Integer start, Integer length);
}
@@ -0,0 +1,110 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.ifish.mapper;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
/**
*
* @author Administrator
*/
public interface Tbl_Camera_List_Mapper {
/**
* 摄像头信息页面数据
*
* @param cameraId
* @param activateCode
* @param activateTime
* @param isActivate
* @param start
* @param length
* @return
*/
@SelectProvider(type = Tbl_Camera_List_MapperSql.class, method = "getCameraListData")
List<Map> getCameraListData(@Param("cameraId") String cameraId, @Param("activateCode") String activateCode, @Param("activateTime") String activateTime, @Param("isActivate") String isActivate, Integer start, Integer length);
/**
* 摄像头信息页面数据查询数量
*
* @param cameraId
* @param activateCode
* @param activateTime
* @param isActivate
* @return
*/
@SelectProvider(type = Tbl_Camera_List_MapperSql.class, method = "getCameraListDataCountBySelect")
Integer getCameraListDataCountBySelect(@Param("cameraId") String cameraId, @Param("activateCode") String activateCode, @Param("activateTime") String activateTime, @Param("isActivate") String isActivate);
/**
* 查询所有摄像头数量
*
* @return
*/
@Select("SELECT count(1) from tbl_device where is_camera='1'")
Integer getAllCameraCount();
/**
* 验证激活码是否使用
*/
@Select("SELECT COUNT(1) from tbl_activa_code where active_code = #{code} and is_used = '0'")
Integer checkActiveCode(@Param("code") String activeCode);
/**
* 激活摄像头
*
* @param activateCode
* @param cameraId
* @return
*/
@Update("UPDATE tbl_device SET active_code = #{code},active_time = NOW() WHERE camera_id = #{cameraId}")
Integer activateCamera(@Param("code") String activateCode, @Param("cameraId") String cameraId);
/**
* 获取摄像头和用户关系列表数据
*
* @param cameraId
* @param userId
* @param phoneNumber
* @param showName
* @param isMaster
* @param isActiva
* @param isLive
* @param start
* @param length
* @return
*/
@SelectProvider(type = Tbl_Camera_List_MapperSql.class, method = "getCameraUserListData")
List<Map> getCameraUserListData(String cameraId, @Param("userId") String userId, @Param("phoneNumber") String phoneNumber, String showName, @Param("ismaster") String isMaster, String isActiva, @Param("islive") String isLive, Integer start, Integer length);
/**
* 获取摄像头和用户关系列表数量
*
* @param cameraId
* @param userId
* @param phoneNumber
* @param showName
* @param isMaster
* @param isActiva
* @param isLive
* @return
*/
@SelectProvider(type = Tbl_Camera_List_MapperSql.class, method = "getCameraUserListDataCount")
Integer getCameraUserListDataCount(String cameraId, @Param("userId") String userId, @Param("phoneNumber") String phoneNumber, String showName, @Param("ismaster") String isMaster, String isActiva, @Param("islive") String isLive);
/**
* 获取摄像头和用户关系总数
*
* @return
*/
@Select("SELECT count(1) from tbl_device d LEFT JOIN tbl_device_user du ON d.device_id = du.device_id LEFT JOIN tbl_user u ON du.user_id = u.user_id WHERE d.is_camera = '1'")
Integer getAllCameraUserListDataCount();
}
@@ -0,0 +1,178 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.ifish.mapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
/**
*
* @author Administrator
*/
public class Tbl_Camera_List_MapperSql {
/**
* 摄像头信息页面数据
*
* @param cameraId
* @param activateCode
* @param activateTime
* @param isActivate
* @param start
* @param length
* @return
*/
public String getCameraListData(@Param("cameraId") String cameraId, @Param("activateCode") String activateCode, @Param("activateTime") String activateTime, @Param("isActivate") String isActivate, Integer start, Integer length) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT camera_id cameraId,active_code activeCode,active_time activeTime,create_time createTime from tbl_device where is_camera='1' ");
if (StringUtils.isNotBlank(cameraId)) {
sb.append(" and camera_id like '%").append(cameraId).append("%'");
}
if (StringUtils.isNotBlank(activateCode)) {
sb.append(" and active_code like '%").append(activateCode).append("%'");
}
if (StringUtils.isNotBlank(activateTime)) {
sb.append(" and #{activateTime}=date_format(active_time,'%Y-%m-%d')");
}
if (StringUtils.isNotBlank(isActivate)) {
if (isActivate.equals("1")) {
sb.append(" and active_code is not null");
} else {
sb.append(" and active_code is null");
}
}
sb.append(" ORDER BY device_id DESC limit ").append(start).append(",").append(length);
return sb.toString();
}
/**
* 摄像头信息页面数据查询数量
*
* @param cameraId
* @param activateCode
* @param activateTime
* @param isActivate
* @return
*/
public String getCameraListDataCountBySelect(@Param("cameraId") String cameraId, @Param("activateCode") String activateCode, @Param("activateTime") String activateTime, @Param("isActivate") String isActivate) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT count(1) from tbl_device where is_camera='1' ");
if (StringUtils.isNotBlank(cameraId)) {
sb.append(" and camera_id like '%").append(cameraId).append("%'");
}
if (StringUtils.isNotBlank(activateCode)) {
sb.append(" and active_code like '%").append(activateCode).append("%'");
}
if (StringUtils.isNotBlank(activateTime)) {
sb.append(" and #{activateTime}=date_format(active_time,'%Y-%m-%d')");
}
if (StringUtils.isNotBlank(isActivate)) {
if (isActivate.equals("1")) {
sb.append(" and active_code is not null");
} else {
sb.append(" and active_code is null");
}
}
return sb.toString();
}
/**
* 获取摄像头和用户关系列表数量
*
* @param cameraId
* @param userId
* @param phoneNumber
* @param showName
* @param isMaster
* @param isActiva
* @param isLive
* @param start
* @param length
* @return
*/
public String getCameraUserListData(String cameraId, @Param("userId") String userId, @Param("phoneNumber") String phoneNumber, String showName, @Param("ismaster") String isMaster, String isActiva, @Param("islive") String isLive, Integer start, Integer length) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT d.camera_id cameraId,du.user_id userId,u.phone_number phoneNumber,du.show_name showName,du.is_master isMaster,du.is_live isLive,d.active_code activeCode,d.active_time activeTime,");
sb.append("du.create_time createTime from tbl_device d LEFT JOIN tbl_device_user du ON d.device_id = du.device_id");
sb.append(" LEFT JOIN tbl_user u ON du.user_id = u.user_id WHERE d.is_camera = '1'");
if (StringUtils.isNotBlank(cameraId)) {
sb.append(" and d.camera_id like '%").append(cameraId).append("%'");
}
if (StringUtils.isNotBlank(userId)) {
sb.append(" and du.user_id = #{userId}");
}
if (StringUtils.isNotBlank(phoneNumber)) {
sb.append(" and u.phone_number like '%").append(phoneNumber).append("%'");
}
if (StringUtils.isNotBlank(showName)) {
sb.append(" and du.show_name like '%").append(showName).append("%'");
}
if (StringUtils.isNotBlank(isMaster)) {
sb.append(" and du.is_master = #{ismaster}");
}
if (StringUtils.isNotBlank(isActiva)) {
if (isActiva.equals("1")) {
sb.append(" and d.active_code is not null");
} else {
sb.append(" and d.active_code is null");
}
}
if (StringUtils.isNotBlank(isLive)) {
sb.append(" and du.is_live = #{islive}");
}
sb.append(" ORDER BY du.create_time DESC limit ").append(start).append(",").append(length);
return sb.toString();
}
/**
* 获取摄像头和用户关系列表数量
*
* @param cameraId
* @param userId
* @param phoneNumber
* @param showName
* @param isMaster
* @param isActiva
* @param isLive
* @return
*/
public String getCameraUserListDataCount(String cameraId, @Param("userId") String userId, @Param("phoneNumber") String phoneNumber, String showName, @Param("ismaster") String isMaster, String isActiva, @Param("islive") String isLive) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT count(1) from tbl_device d LEFT JOIN tbl_device_user du ON d.device_id = du.device_id");
sb.append(" LEFT JOIN tbl_user u ON du.user_id = u.user_id WHERE d.is_camera = '1'");
if (StringUtils.isNotBlank(cameraId)) {
sb.append(" and d.camera_id like '%").append(cameraId).append("%'");
}
if (StringUtils.isNotBlank(userId)) {
sb.append(" and du.user_id = #{userId}");
}
if (StringUtils.isNotBlank(phoneNumber)) {
sb.append(" and u.phone_number like '%").append(phoneNumber).append("%'");
}
if (StringUtils.isNotBlank(showName)) {
sb.append(" and du.show_name like '%").append(showName).append("%'");
}
if (StringUtils.isNotBlank(isMaster)) {
sb.append(" and du.is_master = #{ismaster}");
}
if (StringUtils.isNotBlank(isActiva)) {
if (isActiva.equals("1")) {
sb.append(" and d.active_code is not null");
} else {
sb.append(" and d.active_code is null");
}
}
if (StringUtils.isNotBlank(isLive)) {
sb.append(" and du.is_live = #{islive}");
}
return sb.toString();
}
}
@@ -281,6 +281,16 @@ public interface Tbl_Device_Mapper {
@SelectProvider(type = Tbl_Device_MapperSql.class, method = "getAuthorizationByFactory")
List<Map> getAuthorizationByFactory(@Param("createTimeBefore") String createTimeBefore, @Param("createTimeAfter") String createTimeAfter);
/**
* 获取电子厂授权统计总数
*
* @param createTimeBefore
* @param createTimeAfter
* @return
*/
@SelectProvider(type = Tbl_Device_MapperSql.class, method = "getAuthorizationCountByFactory")
Integer getAuthorizationCountByFactory(@Param("createTimeBefore") String createTimeBefore, @Param("createTimeAfter") String createTimeAfter);
/**
* 获取对应电子厂对应时间的授权统计
*
@@ -291,4 +301,15 @@ public interface Tbl_Device_Mapper {
*/
@SelectProvider(type = Tbl_Device_MapperSql.class, method = "getAuthorizationByDate")
List<Map> getAuthorizationByDate(@Param("createTimeBefore") String createTimeBefore, @Param("createTimeAfter") String createTimeAfter, @Param("factoryCode") String factoryCode);
/**
* 获取对应电子厂对应时间的授权统计总数
*
* @param createTimeBefore
* @param createTimeAfter
* @param factoryCode
* @return
*/
@SelectProvider(type = Tbl_Device_MapperSql.class, method = "getAuthorizationCountByDate")
Integer getAuthorizationCountByDate(@Param("createTimeBefore") String createTimeBefore, @Param("createTimeAfter") String createTimeAfter, @Param("factoryCode") String factoryCode);
}
@@ -416,7 +416,7 @@ public class Tbl_Device_MapperSql {
sb.append(" SELECT count(1) from tbl_device_user u ");
sb.append(" LEFT JOIN tbl_device d ON u.device_id=d.device_id ");
sb.append(" LEFT JOIN tbl_device_statistics ts ON d.device_id = ts.device_id ");
sb.append(" where d.is_camera='0'");
sb.append(" where d.is_camera='0' and is_master = '1' ");
if (StringUtils.isNotBlank(factoryCode)) {
sb.append(" AND d.factory_code=#{factoryCode}");
}
@@ -453,6 +453,21 @@ public class Tbl_Device_MapperSql {
return sb.toString();
}
/**
* 获取电子厂授权统计
*
* @param createTimeBefore
* @param createTimeAfter
* @return
*/
public String getAuthorizationCountByFactory(@Param("createTimeBefore") String createTimeBefore, @Param("createTimeAfter") String createTimeAfter) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT count(1) FROM tbl_device d ");
sb.append(" LEFT JOIN tbl_device_statistics ts ON d.device_id=ts.device_id ");
sb.append(" WHERE d.is_blacklist='0' AND d.is_camera='0' AND date_format(ts.authorize_time,'%Y-%m-%d') BETWEEN #{createTimeBefore} AND #{createTimeAfter} ");
return sb.toString();
}
/**
* 获取对应电子厂对应时间的授权统计
*
@@ -469,4 +484,20 @@ public class Tbl_Device_MapperSql {
sb.append(" GROUP BY date ORDER BY ts.authorize_time DESC");
return sb.toString();
}
/**
* 获取对应电子厂对应时间的授权统计
*
* @param createTimeBefore
* @param createTimeAfter
* @param factoryCode
* @return
*/
public String getAuthorizationCountByDate(@Param("createTimeBefore") String createTimeBefore, @Param("createTimeAfter") String createTimeAfter, @Param("factoryCode") String factoryCode) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT count(1) FROM tbl_device d ");
sb.append(" LEFT JOIN tbl_device_statistics ts ON ts.device_id = d.device_id WHERE d.is_blacklist=0 AND d.is_camera='0'");
sb.append(" AND d.factory_code= #{factoryCode} AND date_format(ts.authorize_time,'%Y-%m-%d') BETWEEN #{createTimeBefore} AND #{createTimeAfter} ");
return sb.toString();
}
}
@@ -79,7 +79,12 @@ public class Tbl_Pay_Bill_MapperSql {
sb.append(" and factory_code = #{code}");
}
if (StringUtils.isNotBlank(billMonth)) {
sb.append(" AND #{date}=date_format(create_time,'%Y-%m')");
if (billMonth.length() >= 8) {
sb.append(" AND #{date}=date_format(create_time,'%Y-%m-%d')");
} else {
sb.append(" AND #{date}=date_format(create_time,'%Y-%m')");
}
}
sb.append(" ORDER BY create_time DESC limit ").append(start).append(",").append(length);
return sb.toString();
@@ -112,4 +112,41 @@ public interface Tbl_Push_List_Mapper {
@SelectProvider(type = Tbl_Push_List_MapperSql.class, method = "getPushListDataAllCount")
Integer getPushListDataAllCount();
/**
* 获取换水提醒数据
*
* @param ispush
* @param phoneType
* @param sortField
* @param sortMode
* @param selectField
* @param selectvalue
* @param start
* @param length
* @return
*/
@SelectProvider(type = Tbl_Push_List_MapperSql.class, method = "getRemindWaterList")
List<Map> getRemindWaterList(@Param("ispush") String ispush, @Param("phoneType") String phoneType, String sortField, String sortMode, String selectField, @Param("selectvalue") String selectvalue, Integer start, Integer length);
/**
* 获取换水提醒查询数量
*
* @param ispush
* @param phoneType
* @param sortField
* @param sortMode
* @param selectField
* @param selectvalue
* @return
*/
@SelectProvider(type = Tbl_Push_List_MapperSql.class, method = "getRemindWaterListCountBySelect")
Integer getRemindWaterListCountBySelect(@Param("ispush") String ispush, @Param("phoneType") String phoneType, String selectField, @Param("selectvalue") String selectvalue);
/**
* 获取换水提醒总数量
*
* @return
*/
@Select("SELECT COUNT(1) FROM TBL_TMP_PUSH_REMIND")
Integer getAllRemindWaterListCount();
}
@@ -147,4 +147,70 @@ public class Tbl_Push_List_MapperSql {
return sb.toString();
}
/**
* 获取换水提醒数据
*
* @param ispush
* @param phoneType
* @param sortField
* @param sortMode
* @param selectField
* @param selectvalue
* @param start
* @param length
* @return
*/
public String getRemindWaterList(@Param("ispush") String ispush, @Param("phoneType") String phoneType, String sortField, String sortMode, String selectField, @Param("selectvalue") String selectvalue, Integer start, Integer length) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT push_id pushId,device_id deviceId,user_id userId,phone_number phoneNumber,mac_address macAddress,show_name showName,login_type loginType,remind_date remindDate,remind_cycle remindCycle,is_push isPush from tbl_tmp_push_remind WHERE 1=1 ");
if (StringUtils.isNotBlank(ispush)) {
sb.append(" and is_push = #{ispush}");
}
if (StringUtils.isNotBlank(phoneType)) {
sb.append(" and login_type = #{phoneType}");
}
if (StringUtils.isNotBlank(selectvalue)) {
sb.append(" and ").append(selectField).append(" like '%").append(selectvalue).append("%'");
}
if (StringUtils.isNotBlank(sortField)) {
sb.append(" ORDER BY ").append(sortField);
} else {
sb.append(" ORDER BY push_id");
}
if (StringUtils.isNotBlank(sortMode)) {
sb.append(" ").append(sortMode);
} else {
sb.append(" DESC");
}
sb.append(" LIMIT ").append(start).append(",").append(length);
return sb.toString();
}
/**
* 获取换水提醒查询数量
*
* @param ispush
* @param phoneType
* @param sortField
* @param sortMode
* @param selectField
* @param selectvalue
* @return
*/
public String getRemindWaterListCountBySelect(@Param("ispush") String ispush, @Param("phoneType") String phoneType, String selectField, @Param("selectvalue") String selectvalue) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT Count(1) from tbl_tmp_push_remind WHERE 1=1 ");
if (StringUtils.isNotBlank(ispush)) {
sb.append(" and is_push = #{ispush}");
}
if (StringUtils.isNotBlank(phoneType)) {
sb.append(" and login_type = #{phoneType}");
}
if (StringUtils.isNotBlank(selectvalue)) {
sb.append(" and ").append(selectField).append("= #{selectvalue}");
}
return sb.toString();
}
}
@@ -143,13 +143,22 @@ public interface Tbl_User_Mapper {
@Select("SELECT COUNT(1) from tbl_security_user")
Integer getAllSecurity_user();
/**
* 验证用户名是否使用过
*
* @param username
* @return
*/
@Select("SELECT COUNT(1) FROM tbl_security_user WHERE username = #{username}")
Integer checkUserName(@Param("username") String username);
/**
* 插入一条后台用户
*
* @param tbl_Security_User
* @return
*/
@Insert("INSERT INTO tbl_security_user(username,password,email,role,rolename,status,code,create_time) VALUES (#{user.username}#{user.password}#{user.email}#{user.role}#{user.rolename}#{user.status}#{user.code},NOW())")
@Insert("INSERT INTO tbl_security_user(username,password,email,role,rolename,status,code,create_time) VALUES (#{user.username},#{user.password},#{user.email},#{user.role},#{user.rolename},#{user.status},#{user.code},NOW())")
Integer insertSecurityUser(@Param("user") Tbl_Security_User tbl_Security_User);
/**
@@ -225,7 +225,7 @@ public class Tbl_User_MapperSql {
*/
public String getSecurity_UsersList(@Param("role") String role, String username, Integer start, Integer length) {
StringBuilder sb = new StringBuilder();
sb.append("SELECT a.id,a.username,a.rolename,b.factory_name factoryname,a.`status` FROM tbl_security_user a LEFT JOIN tbl_factory_list b ON a.code = b.factory_code where 1=1");
sb.append("SELECT a.id,a.username,a.rolename,b.factory_name factoryname,a.`status`,a.role,a.code FROM tbl_security_user a LEFT JOIN tbl_factory_list b ON a.code = b.factory_code where 1=1");
if (StringUtils.isNotBlank(role)) {
sb.append(" and role = #{role}");
}
@@ -268,27 +268,27 @@ public class Tbl_User_MapperSql {
sb.append("UPDATE tbl_security_user set");
if (StringUtils.isNotBlank(tbl_Security_User.getCode())) {
sb.append(" code = #{user.code}");
sb.append(" code = #{user.code},");
}
if (StringUtils.isNotBlank(tbl_Security_User.getEmail())) {
sb.append(" email = #{user.email}");
sb.append(" email = #{user.email},");
}
if (StringUtils.isNotBlank(tbl_Security_User.getPassword())) {
sb.append(" password = #{user.password}");
sb.append(" password = #{user.password},");
}
if (StringUtils.isNotBlank(tbl_Security_User.getRole())) {
sb.append(" role = #{user.role}");
sb.append(" role = #{user.role},");
}
if (StringUtils.isNotBlank(tbl_Security_User.getRolename())) {
sb.append(" rolename = #{user.rolename}");
sb.append(" rolename = #{user.rolename},");
}
if (StringUtils.isNotBlank(tbl_Security_User.getStatus())) {
sb.append(" status = #{user.status}");
sb.append(" status = #{user.status},");
}
if (StringUtils.isNotBlank(tbl_Security_User.getUsername())) {
sb.append(" username = #{user.username}");
if (sb.lastIndexOf(",") == sb.length() - 1) {
sb.deleteCharAt(sb.length() - 1);
}
sb.append(" WHERE id = #{user.id}");
sb.append(" WHERE username = #{user.username}");
return sb.toString();
}
+3 -3
View File
@@ -98,16 +98,16 @@
</li>
<li><a href="pushlist"><i class="ec-chat"></i> 消息推送</a>
</li>
<li><a href="form-wizard.html"><i class="ec-info"></i> 换水提醒</a>
<li><a href="remindWaterList"><i class="ec-info"></i> 换水提醒</a>
</li>
</ul>
</li>
<li>
<a href="#"> 摄像头管理 <i class="br-camera"></i></a>
<ul class="nav sub">
<li><a href="forms.html"><i class="fa-camera-retro"></i> 摄像头信息</a>
<li><a href="cameralist"><i class="fa-camera-retro"></i> 摄像头信息</a>
</li>
<li><a href="form-validation.html"><i class="st-camera"></i> 摄像头绑定</a>
<li><a href="camerauserlist"><i class="st-camera"></i> 摄像头绑定</a>
</li>
<li><a href="form-wizard.html"><i class="im-camera2"></i> 摄像头激活</a>
</li>
+25
View File
@@ -46,6 +46,11 @@
<put-attribute name="body" value="/WEB-INF/views/pushlist/list.jsp" />
</definition>
<!-- 换水提醒列表 -->
<definition name="remindWaterList" extends="base">
<put-attribute name="body" value="/WEB-INF/views/user/remindWaterList.jsp" />
</definition>
<!-- 电子厂列表 -->
<definition name="factorylist" extends="base">
<put-attribute name="body" value="/WEB-INF/views/factory/list.jsp" />
@@ -76,6 +81,11 @@
<put-attribute name="body" value="/WEB-INF/views/query/authorization.jsp" />
</definition>
<!-- 厂家管理授权统计操作记录 -->
<definition name="record" extends="base">
<put-attribute name="body" value="/WEB-INF/views/query/record.jsp" />
</definition>
<!-- 账单列表 -->
<definition name="paylist" extends="base">
<put-attribute name="body" value="/WEB-INF/views/pay/list.jsp" />
@@ -85,4 +95,19 @@
<definition name="paydetail" extends="base">
<put-attribute name="body" value="/WEB-INF/views/pay/detail.jsp" />
</definition>
<!-- 摄像头信息 -->
<definition name="cameralist" extends="base">
<put-attribute name="body" value="/WEB-INF/views/camera/list.jsp" />
</definition>
<!-- 摄像头绑定页面 -->
<definition name="camerauserlist" extends="base">
<put-attribute name="body" value="/WEB-INF/views/camera/userlist.jsp" />
</definition>
<!-- 测试页面 -->
<definition name="testj" extends="base">
<put-attribute name="body" value="/WEB-INF/views/query/test.jsp" />
</definition>
</tiles-definitions>
+351 -23
View File
@@ -4,8 +4,20 @@
Author : Administrator
--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<div id="searchDiv" style="float: right">
角色类型:
<select id="selectrole" name="selectrole">
<option value="">请选择</option>
<option value="1">普通用户</option>
<option value="2">鱼缸厂用户</option>
<option value="3">电子厂用户</option>
<option value="4">管理员用户</option>
</select>
用户名:<input type="text" id="selectusername" name="selectusername" style="width: 130px;" />
</div>
<table class="dataTable cell-border" id="datatable" >
<thead>
<tr>
@@ -17,7 +29,146 @@
</tr>
</thead>
</table>
<div class="modal fade" id="insertUserModel" tabindex="1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="exampleModalLabel">创建用户</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="control-label" style="width: 70px;">用户名:</label>
<input type="text" class="form-control" id="insertusername" name="insertusername" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">密码:</label>
<input type="password" class="form-control" id="insertpassword" name="insertpassword" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">重复密码:</label>
<input type="password" class="form-control" id="insertpasswordrepeat" name="insertpasswordrepeat" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">角色类型:</label>
<select id="role" name="role" class="form-control" style="display: inline;width: 460px;">
<option value="">请选择</option>
<option value="1">普通用户</option>
<option value="2">鱼缸厂用户</option>
<option value="3">电子厂用户</option>
<option value="4">管理员用户</option>
</select>
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">隶属于:</label>
<select id="inita" name="inita" class="form-control" style="display: inline;width: 460px;">
<option value="">请选择</option>
</select>
<select id="initfactory" name="initfactory" class="form-control" style="display: none;width: 460px;">
<option value="">请选择</option>
<c:forEach var="item" items="${factorylist}">
<option value="${item.factoryCode}">${item.factoryName}</option>
</c:forEach>
</select>
<select id="initvender" name="initvender" class="form-control" style="display: none;width: 460px;">
<option value="">请选择</option>
<c:forEach var="item" items="${venderlist}">
<option value="${item.brandCode}">${item.brandName}</option>
</c:forEach>
</select>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="insertUserSureBtn" data-toggle="modal" >保存</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="updateUserModel" tabindex="1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="exampleModalLabel">重置密码</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="control-label" style="width: 70px;">用户名:</label>
<input type="text" class="form-control" id="updateusername" name="updateusername" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">密码:</label>
<input type="password" class="form-control" id="updatepassword" name="updatepassword" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">重复密码:</label>
<input type="password" class="form-control" id="updatepasswordrepeat" name="updatepasswordrepeat" style="display: inline;width: 460px;">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="updateuserbtn" data-toggle="modal" >保存</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="updateUserRoleModel" tabindex="1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="exampleModalLabel">修改身份</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="control-label" style="width: 70px;">用户名:</label>
<input type="text" class="form-control" id="updateroleusername" name="updateroleusername" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">角色类型:</label>
<select id="updaterole" name="updaterole" class="form-control" style="display: inline;width: 460px;">
<option value="">请选择</option>
<option value="1">普通用户</option>
<option value="2">鱼缸厂用户</option>
<option value="3">电子厂用户</option>
<option value="4">管理员用户</option>
</select>
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">隶属于:</label>
<select id="updateinita" name="updateinita" class="form-control" style="display: inline;width: 460px;">
<option value="">请选择</option>
</select>
<select id="updateinitfactory" name="updateinitfactory" class="form-control" style="display: none;width: 460px;">
<option value="">请选择</option>
<c:forEach var="item" items="${factorylist}">
<option value="${item.factoryCode}">${item.factoryName}</option>
</c:forEach>
</select>
<select id="updateinitvender" name="updateinitvender" class="form-control" style="display: none;width: 460px;">
<option value="">请选择</option>
<c:forEach var="item" items="${venderlist}">
<option value="${item.brandCode}">${item.brandName}</option>
</c:forEach>
</select>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="updateuserRolebtn" data-toggle="modal" >保存</button>
</div>
</div>
</div>
</div>
<script>
//修改状态
function changeIsTax(a, code) {
var isTax = a.checked ? "1" : "0";
$.ajax({
@@ -32,7 +183,7 @@
}
});
}
//删除用户
function deleteSecurityUser(id) {
if (window.confirm('你确定要删除吗?')) {
$.ajax({
@@ -51,16 +202,38 @@
return false;
}
}
//重置修改密码
function resetPwd(user) {
$('#updateroleusername').val(user).attr("disabled", "disabled");
$('#updateUserModel').modal("show");
}
//修改身份所属
function editSysUser(user, role, code) {
$('#updateroleusername').val(user).attr("disabled", "disabled");
$('#updaterole').val(role);
if (role === '2') {
$('#updateinitvender').val(code);
$('#updateinitvender').css("display", "inline");
$('#updateinitfactory').css("display", "none");
$('#updateinita').css("display", "none");
} else if (role === '3') {
$('#updateinitfactory').val(code);
$('#updateinitfactory').css("display", "inline");
$('#updateinitvender').css("display", "none");
$('#updateinita').css("display", "none");
} else {
$('#updateinitfactory').css("display", "none");
$('#updateinitvender').css("display", "none");
$('#updateinita').css("display", "inline");
}
$('#updateUserRoleModel').modal("show");
}
$(document).ready(function () {
var a = $('#crumb');
a.children()[1].remove();
a.append('<li>账单详情<li>');
var b = $('.hasSub')[3];
b.children[0].className = 'expand active-state';
b.children[1].className = 'nav sub show';
b.children[0].children[0].style.transform = 'rotate(-180deg)';
b.children[1].children[4].children[0].className = 'active';
//绑定设备
$('#insertUserModel').on('show.bs.modal', function (event) {
});
var table = $('#datatable').on('draw.dt', function () {
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
@@ -109,8 +282,8 @@
url: 'adminuserlistdate',
type: 'post',
data: function (d) {
d.role = $('#role').val();
d.username = $('#username').val();
d.role = $('#selectrole').val();
d.username = $('#selectusername').val();
}
},
//数据展示
@@ -133,17 +306,12 @@
},
{
"data": "status",
"createdCell": function (td, cellData, rowData, row, col) {
if (row < 1) {
$(td).css('background-color', '#e4e9eb');
}
},
render: function (data, type, row, meta) {
var str = "";
if (row.status === '1') {
str = '<div class="onoffswitch switch noStyle"><input type="checkbox" onclick="changeIsTax(this,\'' + row.id + '\');" class="switch noStyle onoffswitch-checkbox" name="switch" id="switch" value="option1" checked="checked"><label for="switch" class="onoffswitch-label"><div class="onoffswitch-inner" style=""></div><div class="onoffswitch-switch" style=""></div></label></div>';
if (row.status === '0') {
str = '<input type="checkbox" id="isTaxCheck" onclick="changeIsTax(this,\'' + row.id + '\');" class="js-switch" style="display: none;" value="0">';
} else {
str = '<div class="onoffswitch switch noStyle"><input type="checkbox" onclick="changeIsTax(this,\'' + row.id + '\');" class="switch noStyle onoffswitch-checkbox" name="switch" id="switch" value="option1" ><label for="switch" class="onoffswitch-label"><div class="onoffswitch-inner" style=""></div><div class="onoffswitch-switch" style=""></div></label></div>';
str = '<input type="checkbox" id="isTaxCheck" onclick="changeIsTax(this,\'' + row.id + '\');" class="js-switch" style="display: none;" value="1" checked="checked">';
}
return str;
}
@@ -153,24 +321,184 @@
render: function (data, type, row, meta) {
var str = "";
if (row.role === '4') {
str = '<div><button class="btn btn-xs btn-primary" onclick="resetPwd(1,&quot;admin&quot;)"><i class="icon-refresh"></i>重置</button></div>';
str = '<div><button class="btn btn-xs btn-primary" onclick="resetPwd(\'' + row.username + '\')"><i class="icon-refresh"></i>重置</button></div>';
} else {
str = '<div><button class="btn btn-xs btn-primary" onclick="resetPwd(16,&quot;ruixin&quot;)"><i class="ec-refresh"></i>重置</button> <button class="btn btn-xs btn-primary" onclick="editSysUser(16,&quot;ruixin&quot;,&quot;ROLE_FACTORY&quot;,&quot;0a&quot;)"><i class="fa-edit"></i>修改</button> <button class="btn btn-xs btn-danger" onclick="deleteSecurityUser(\'' + row.id + '\')"><i class="fa-trash"></i>删除</button></div>';
str = '<div><button class="btn btn-xs btn-primary" onclick="resetPwd(\'' + row.username + '\')"><i class="ec-refresh"></i>重置</button> <button class="btn btn-xs btn-primary" onclick="editSysUser(\'' + row.username + '\',\'' + row.role + '\',\'' + row.code + '\')"><i class="fa-edit"></i>修改</button> <button class="btn btn-xs btn-danger" onclick="deleteSecurityUser(\'' + row.id + '\')"><i class="fa-trash"></i>删除</button></div>';
}
return str;
}
}
]
});
//角色类型切换重新读取
$('#selectrole').change(function () {
table.ajax.reload(null, true);
});
//用户名搜索重新读取
$('#selectusername').keyup(function () {
table.ajax.reload(null, true);
})
//回车事件
$(document).keyup(function (event) {
if (event.keyCode == 13) {
table.ajax.reload(null, true);
}
});
$("#datatable_length").append('&nbsp;&nbsp;&nbsp;&nbsp;<label><a href="addFactory" target="_blank" class="btn btn-primary"><i class="fa-edit"></i><span class="no-text-shadow">创建用户</span></a></label>');
$("#datatable_length").append('&nbsp;&nbsp;&nbsp;&nbsp;<label><a href="javascript:void(0);" id="insertUserBtn" class="btn btn-xs btn-primary"><i class="fa-edit"></i><span class="no-text-shadow">创建用户</span></a></label>');
//创建用户按钮,弹出创建用户页面
$('#insertUserBtn').click(function () {
$('#insertusername').val('');
$('#insertpassword').val('');
$('#insertpasswordrepeat').val('');
$('#insertUserModel').modal("show");
});
//选择角色下拉框,选择后切换隶属的下拉框
$('#role').change(function () {
var value = $('#role').val();
if (value === '2') {
$('#initvender').css("display", "inline");
$('#initfactory').css("display", "none");
$('#inita').css("display", "none");
} else if (value === '3') {
$('#initfactory').css("display", "inline");
$('#initvender').css("display", "none");
$('#inita').css("display", "none");
} else {
$('#initfactory').css("display", "none");
$('#initvender').css("display", "none");
$('#inita').css("display", "inline");
}
});
$('#updaterole').change(function () {
var value = $('#updaterole').val();
if (value === '2') {
$('#updateinitvender').css("display", "inline");
$('#updateinitfactory').css("display", "none");
$('#updateinita').css("display", "none");
} else if (value === '3') {
$('#updateinitfactory').css("display", "inline");
$('#updateinitvender').css("display", "none");
$('#updateinita').css("display", "none");
} else {
$('#updateinitfactory').css("display", "none");
$('#updateinitvender').css("display", "none");
$('#updateinita').css("display", "inline");
}
});
//创建用户保存按钮
$('#insertUserSureBtn').click(function () {
var rolevalue = '';
if ($('#insertusername').val() === '') {
alert("请输入正确的用户名!");
return false;
}
if ($('#insertpassword').val() === '') {
alert("请输入正确的密码!");
return false;
}
if ($('#insertpassword').val() !== $('#insertpasswordrepeat').val()) {
alert("请验证两次输入密码是否一致!");
return false;
}
if ($('#role').val() === '') {
alert("请选择身份!");
return false;
}
if ($('#role').val() === '2' && $('#initvender').val() === '') {
alert("请选择隶属鱼缸厂!");
return false;
}
if ($('#role').val() === '3' && $('#initfactory').val() === '') {
alert("请选择隶属电子厂!");
return false;
}
if ($('#role').val() === '2') {
rolevalue = $('#initvender').val();
} else if ($('#role').val() === '3') {
rolevalue = $('#initfactory').val();
}
$.ajax({
url: 'insertSecurityUser',
type: 'post',
data: {"username": $('#insertusername').val(), "password": $('#insertpassword').val(), "role": $('#role').val(), "rolename": $("#role").find("option:selected").text(), "code": rolevalue},
success: function (data) {
alert(data);
if (data === '成功') {
$('#insertUserModel').modal("hide");
table.ajax.reload(null, true);
}
},
error: function (data) {
alert(data);
}
});
});
//重置密码保存按钮
$('#updateuserbtn').click(function () {
if ($('#updatepassword').val() === '') {
alert("请输入正确的密码!");
return false;
}
if ($('#updatepassword').val() !== $('#updatepasswordrepeat').val()) {
alert("请验证两次输入密码是否一致!");
return false;
}
$.ajax({
url: 'updateSecurityUser',
type: 'post',
data: {"username": $('#updateusername').val(), "password": $('#updatepassword').val()},
success: function (data) {
alert(data);
if (data === '成功') {
$('#insertUserModel').modal("hide");
table.ajax.reload(null, true);
}
},
error: function (data) {
alert(data);
}
});
});
//修改用户权限保存
$('#updateuserRolebtn').click(function () {
var rolevalue = '';
if ($('#updaterole').val() === '') {
alert("请选择身份!");
return false;
}
if ($('#updaterole').val() === '2' && $('#updateinitvender').val() === '') {
alert("请选择隶属鱼缸厂!");
return false;
}
if ($('#updaterole').val() === '3' && $('#updateinitfactory').val() === '') {
alert("请选择隶属电子厂!");
return false;
}
var rolevalue = '';
if ($('#updaterole').val() === '2') {
rolevalue = $('#updateinitvender').val();
} else if ($('#updaterole').val() === '3') {
rolevalue = $('#updateinitfactory').val();
}
$.ajax({
url: 'updateSecurityUser',
type: 'post',
data: {"username": $('#updateroleusername').val(), "role": $('#updaterole').val(), "rolename": $("#updaterole").find("option:selected").text(), "code": rolevalue},
success: function (data) {
alert(data);
if (data === '成功') {
$('#updateUserRoleModel').modal("hide");
table.ajax.reload(null, true);
}
},
error: function (data) {
alert(data);
}
});
});
});
</script>
@@ -0,0 +1,207 @@
<%--
Document : list
Created on : 2017-8-16, 11:43:09
Author : Administrator
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<div id="searchDiv" style="float: left">
<label>摄像头ID</label>
<input type="text" id="cameraId" name="cameraId">
<label>激活码:</label>
<input type="text" id="activateCode" name="activateCode">
<label>激活时间:</label>
<input type="text" id="activateTime" name="activateTime" class="input-medium searchClass" maxlength="20">
<label>是否激活:</label>
<select id="isActivate" name="isActivate" class="input-medium searchClass">
<option value="">请选择</option>
<option value="1">已激活</option>
<option value="0">未激活</option>
</select>
<button class="btn btn-xs btn-primary" id="clearSelect">重置</button>
</div>
<table class="dataTable cell-border" id="datatable" >
<thead>
<tr>
<th>摄像头ID</th>
<th>激活码</th>
<th>激活时间</th>
<th>创建时间</th>
</tr>
</thead>
</table>
<div class="modal fade" id="activeCameraModel" tabindex="1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="exampleModalLabel">激活摄像头</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="control-label" style="width: 70px;">摄像头ID</label>
<input type="text" class="form-control" id="ActivateCameraId" name="ActivateCameraId" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">激活码:</label>
<input type="text" class="form-control" id="ActivateCode" name="ActivateCode" style="display: inline;width: 460px;">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="activeCameraBtn" data-toggle="modal" >保存</button>
</div>
</div>
</div>
</div>
<script>
function activeCamera(a, cameraId) {
$('#ActivateCameraId').val(a);
$('#activeCameraModel').modal("show");
}
$(document).ready(function () {
//日期控件
$('#activateTime').datepicker({
dateFormat: "yy-mm-dd"
});
var table = $('#datatable').on('draw.dt', function () {
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
elems.forEach(function (html) {
var switchery = new Switchery(html);
});
}).DataTable({
//记录用户状态
stateSave: true,
//中文自定义
language: {
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
},
//是否显示排序
bSort: false,
//是否显示过滤搜索
bFilter: false,
//页脚展示风格
pagingType: "full_numbers",
//是否启动服务器数据处理
serverSide: true,
autoWidth: false,
"lengthChange": false,
//ajax获取服务器数据
ajax: {
url: 'cameralistData',
type: 'post',
data: function (d) {
d.cameraId = $('#cameraId').val();
d.activateCode = $('#activateCode').val();
d.activateTime = $('#activateTime').val();
d.isActivate = $('#isActivate').val();
}
},
//数据展示
columns: [
{
"data": "cameraId",
},
{
"data": "activeCode",
render: function (data, type, row, meta) {
var str = "";
if (row.activeCode !== '') {
str = '<div style="text-align:center;">' + row.activeCode + '</div>';
} else {
str = '<div style="text-align:center;"><button class="btn btn-xs btn-primary" onclick="activeCamera(\'' + row.cameraId + '\',\'' + row.cameraId + '\')" id="activateBtn">激活</button></div>';
}
return str;
}
},
{
"data": "activeTime",
render: function (data, type, row, meta) {
var str = "";
if (row.activeCode !== '') {
str = row.activeTime;
} else {
str = '';
}
return str;
}
},
{
"data": "createTime",
}
]
});
$('#isActivate,#activateTime').change(function () {
table.ajax.reload(null, true);
});
$('#cameraId,#activateCode,#activateTime').keyup(function () {
table.ajax.reload(null, true);
});
$(document).keyup(function (event) {
if (event.keyCode == 13) {
table.ajax.reload(null, true);
}
});
$('#activeCameraBtn').click(function () {
if (window.confirm('你确定要激活吗?')) {
$.ajax({
url: 'activateCamera',
type: 'post',
data: {"cameraId": $('#ActivateCameraId').val(), "activateCode": $('#ActivateCode').val()},
success: function (data) {
if (data === '成功') {
location.reload();
} else {
alert(data);
}
},
error: function (data) {
console.log(data);
}
});
} else {
//alert("取消");
return false;
}
});
$('#clearSelect').click(function () {
$('#cameraId').val('');
$('#activateCode').val('');
$('#activateTime').val('');
$('#isActivate').val('');
table.ajax.reload(null, true);
});
});
</script>
@@ -0,0 +1,290 @@
<%--
Document : userlist
Created on : 2017-8-16, 14:11:49
Author : Administrator
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<table style="width: 100%">
<tbody>
<tr>
<td style="text-align: right;padding: 10px">摄像头ID</td>
<td><input type="text" id="cameraId" name="cameraId" class="input-medium searchClass" maxlength="20"></td>
<td style="text-align: right;padding: 10px">用户ID</td>
<td><input type="text" id="userId" name="userId" class="input-medium searchClass" maxlength="20"></td>
<td style="text-align: right;padding: 10px">手机号:</td>
<td><input type="text" id="phoneNumber" name="phoneNumber" class="input-medium searchClass" maxlength="20"></td>
</tr>
<tr>
<td style="text-align: right;padding: 10px">显示名称:</td>
<td><input type="text" id="showName" name="showName" class="input-medium searchClass" maxlength="20"></td>
<td style="text-align: right;padding: 10px">是否主控:</td>
<td>
<select id="isMaster" class="input-medium searchClass">
<option value="">请选择</option>
<option value="1">是</option>
<option value="0">否</option>
</select>
</td>
<td style="text-align: right;padding: 10px">是否激活:</td>
<td>
<select id="isActiva" class="input-medium searchClass">
<option value="">请选择</option>
<option value="1">是</option>
<option value="0">否</option>
</select>
</td>
</tr>
<tr>
<td colspan="3" style="text-align: right;padding: 10px">是否直播:</td>
<td >
<select id="isLive" class="input-medium searchClass">
<option value="">请选择</option>
<option value="1">是</option>
<option value="0">否</option>
</select>
</td>
</tr>
<tr>
<td colspan="3" style="text-align: right;padding: 10px"><button class="btn btn-xs btn-primary" id="clearSelect">重置</button></td>
</tr>
</tbody>
</table>
<table class="dataTable cell-border" id="datatable" >
<thead>
<tr>
<th>摄像头ID</th>
<th>用户ID</th>
<th>手机号</th>
<th>显示名称</th>
<th>是否主控</th>
<th>是否直播</th>
<th>激活码</th>
<th>激活时间</th>
<th>创建时间</th>
</tr>
</thead>
</table>
<div class="modal fade" id="activeCameraModel" tabindex="1" role="dialog" aria-labelledby="exampleModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="exampleModalLabel">激活摄像头</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="control-label" style="width: 70px;">摄像头ID</label>
<input type="text" class="form-control" id="ActivateCameraId" name="ActivateCameraId" style="display: inline;width: 460px;">
</div>
<div class="form-group">
<label for="message-text" class="control-label" style="width: 70px;">激活码:</label>
<input type="text" class="form-control" id="ActivateCode" name="ActivateCode" style="display: inline;width: 460px;">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" id="activeCameraBtn" data-toggle="modal" >保存</button>
</div>
</div>
</div>
</div>
<script>
function activeCamera(cameraId) {
$('#ActivateCameraId').val(cameraId);
$('#activeCameraModel').modal("show");
}
$(document).ready(function () {
//日期控件
$('#activateTime').datepicker({
dateFormat: "yy-mm-dd"
});
var table = $('#datatable').on('draw.dt', function () {
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
elems.forEach(function (html) {
var switchery = new Switchery(html);
});
}).DataTable({
//记录用户状态
stateSave: true,
//中文自定义
language: {
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
},
//是否显示排序
bSort: false,
//是否显示过滤搜索
bFilter: false,
//页脚展示风格
pagingType: "full_numbers",
//是否启动服务器数据处理
serverSide: true,
autoWidth: false,
"lengthChange": false,
//ajax获取服务器数据
ajax: {
url: 'camerauserlistData',
type: 'post',
data: function (d) {
d.cameraId = $('#cameraId').val();
d.userId = $('#userId').val();
d.phoneNumber = $('#phoneNumber').val();
d.showName = $('#showName').val();
d.isMaster = $('#isMaster').val();
d.isActiva = $('#isActiva').val();
d.isLive = $('#isLive').val();
}
},
//数据展示
columns: [
{
"data": "cameraId",
},
{
"data": "userId",
},
{
"data": "phoneNumber",
render: function (data, type, row, meta) {
var str = "";
if (row.phoneNumber !== undefined && row.phoneNumber !== '') {
str = row.phoneNumber;
} else {
str = '';
}
return str;
}
},
{
"data": "showName",
},
{
"data": "isMaster",
render: function (data, type, row, meta) {
var str = "";
if (row.isMaster === '1') {
str = '<span class="btn btn-xs btn-success">是</span>';
} else {
str = '<span class="btn btn-xs btn-danger">否</span>';
}
return str;
}
},
{
"data": "isLive",
render: function (data, type, row, meta) {
var str = "";
if (row.isLive === '1') {
str = '<span class="btn btn-xs btn-success">是</span>';
} else {
str = '<span class="btn btn-xs btn-danger">否</span>';
}
return str;
}
},
{
"data": "activeCode",
render: function (data, type, row, meta) {
var str = "";
if (row.activeCode !== '') {
str = '<div style="text-align:center;">' + row.activeCode + '</div>';
} else {
str = '<div style="text-align:center;"><button class="btn btn-xs btn-primary" onclick="activeCamera(\'' + row.cameraId + '\')" id="activateBtn">激活</button></div>';
}
return str;
}
},
{
"data": "activeTime",
render: function (data, type, row, meta) {
var str = "";
if (row.activeCode !== '') {
str = row.activeTime;
} else {
str = '';
}
return str;
}
},
{
"data": "createTime",
}
]
});
$('#isActiva,#isMaster,#isLive').change(function () {
table.ajax.reload(null, true);
});
$('#cameraId,#userId,#phoneNumber,#showName').keyup(function () {
table.ajax.reload(null, true);
});
$(document).keyup(function (event) {
if (event.keyCode == 13) {
table.ajax.reload(null, true);
}
});
$('#activeCameraBtn').click(function () {
if (window.confirm('你确定要激活吗?')) {
$.ajax({
url: 'activateCamera',
type: 'post',
data: {"cameraId": $('#ActivateCameraId').val(), "activateCode": $('#ActivateCode').val()},
success: function (data) {
if (data === '成功') {
location.reload();
} else {
alert(data);
}
},
error: function (data) {
console.log(data);
}
});
} else {
//alert("取消");
return false;
}
});
$('#clearSelect').click(function () {
$('#cameraId').val('');
$('#userId').val('');
$('#phoneNumber').val('');
$('#showName').val('');
$('#isMaster').val('');
$('#isActiva').val('');
$('#isLive').val('');
table.ajax.reload(null, true);
});
});
</script>
@@ -8,6 +8,7 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<!DOCTYPE html>
<div style="margin-left: 100px;">
<form id="querylist" action="authorizationQuery" method="get" style="float:left">
<label>电子厂:</label>
@@ -26,10 +27,10 @@
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">
<div id="testContainer" style="text-align: center;">
<c:if test="${map.factorylist != null && fn:length(map.factorylist) > 0}">
<c:forEach var="item" items="${map.factorylist}">
<div class="sidebar-panel" style="border:1px dashed #000;width: 185px;height: 76px;float: left">
<div style="border:1px dashed #000;width: 185px;height: 76px;display: inline-block;">
<div class="sidebar-panel-content" >
<div class="pie-chart3 easyPieChart" data-percent="${item.factorybindPrice}" style="float: left">
<span class="percent">${item.factorybindPrice}%</span>
@@ -55,23 +56,42 @@
</c:forEach>
</c:if>
<c:if test="${map.datalist != null && fn:length(map.datalist) > 0}">
<div class="sidebar-panel" style="border:1px dashed #000;width: 185px;height: 76px;float: left">
<div class="sidebar-panel-content" >
<div class="pie-chart3 easyPieChart" data-percent="${item.factorybindPrice}" style="float: left">
<span class="percent">${item.factorybindPrice}%</span>
</div>
<div style="margin-left:75px;margin-top: 11px;">
<div>
<span class="txt" style="color:#9abc32">${item.deviceNumber}个</span>
<c:forEach var="item" items="${map.datalist}">
<div style="border:1px dashed #000;width: 185px;height: 76px;display: inline-block;">
<div class="sidebar-panel-content" >
<div class="pie-chart3 easyPieChart" data-percent="${item.venderbindPrice}" style="float: left">
<span class="percent">${item.venderbindPrice}%</span>
</div>
<div>
<span class="txt">${item.date}</span>
<div style="margin-left:75px;margin-top: 11px;">
<div>
<span class="txt" style="color:#9abc32">${item.deviceNumber}个</span>
</div>
<div>
<a href="recorddetail?factoryCode=${factoryCode}&billMonth=${item.date}" target="_blank">${item.date}</a>
</div>
</div>
</div>
</div>
</div>
</c:forEach>
</c:if>
</div>
</br>
<div id="testContainer" style="text-align: center;">
<div style="width:300px;height: 100px;display: inline-block;">
<div class="tile lime">
<!-- tile start here -->
<div class="tile-icon">
<i class="ec-archive s64"></i>
</div>
<div class="tile-content" style="text-align:left">
<div class="number countTo" data-from="0" data-to="${map.deviceCount}">${map.deviceCount}</div>
<h3>设备数量</h3>
</div>
</div>
</div>
</div>
<script>
function select() {
@@ -96,7 +116,7 @@
//日期控件
$('#createTimeBefore,#createTimeAfter').datepicker({
format: "yyyy-mm-dd"
dateFormat: "yy-mm-dd"
});
$('#createTimeBefore').val('${createTimeBefore}');
+1 -1
View File
@@ -208,7 +208,7 @@
//日期控件
$('#createTimeBefore,#createTimeAfter').datepicker({
format: "yyyy-mm-dd"
dateFormat: "yy-mm-dd"
});
$('#createTimeBefore').val('${createTimeBefore}');
@@ -0,0 +1,198 @@
<%--
Document : record
Created on : 2017-8-16, 9:31:56
Author : Administrator
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<input type="hidden" value="${factoryCode}" id="factoryCode">
<input type="hidden" value="${billMonth}" id="billMonth">
<table class="dataTable cell-border" id="datatable" >
<thead>
<tr>
<th>操作类型</th>
<th>数量</th>
<th>操作IP</th>
<th>操作时间</th>
</tr>
</thead>
</table>
<script>
function Format(now, mask)
{
var d = now;
var zeroize = function (value, length)
{
if (!length)
length = 2;
value = String(value);
for (var i = 0, zeros = ''; i < (length - value.length); i++)
{
zeros += '0';
}
return zeros + value;
};
return mask.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])\1?|[lLZ])\b/g, function ($0)
{
switch ($0)
{
case 'd':
return d.getDate();
case 'dd':
return zeroize(d.getDate());
case 'ddd':
return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][d.getDay()];
case 'dddd':
return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][d.getDay()];
case 'M':
return d.getMonth() + 1;
case 'MM':
return zeroize(d.getMonth() + 1);
case 'MMM':
return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][d.getMonth()];
case 'MMMM':
return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][d.getMonth()];
case 'yy':
return String(d.getFullYear()).substr(2);
case 'yyyy':
return d.getFullYear();
case 'h':
return d.getHours() % 12 || 12;
case 'hh':
return zeroize(d.getHours() % 12 || 12);
case 'H':
return d.getHours();
case 'HH':
return zeroize(d.getHours());
case 'm':
return d.getMinutes();
case 'mm':
return zeroize(d.getMinutes());
case 's':
return d.getSeconds();
case 'ss':
return zeroize(d.getSeconds());
case 'l':
return zeroize(d.getMilliseconds(), 3);
case 'L':
var m = d.getMilliseconds();
if (m > 99)
m = Math.round(m / 10);
return zeroize(m);
case 'tt':
return d.getHours() < 12 ? 'am' : 'pm';
case 'TT':
return d.getHours() < 12 ? 'AM' : 'PM';
case 'Z':
return d.toUTCString().match(/[A-Z]+$/);
// Return quoted strings with the surrounding quotes removed
default:
return $0.substr(1, $0.length - 2);
}
});
}
$(document).ready(function () {
var a = $('#crumb');
a.children()[1].remove();
a.append('<li>授权统计<li>');
var b = $('.hasSub')[3];
b.children[0].className = 'expand active-state';
b.children[1].className = 'nav sub show';
b.children[0].children[0].style.transform = 'rotate(-180deg)';
b.children[1].children[3].children[0].className = 'active';
var table = $('#datatable').on('draw.dt', function () {
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
elems.forEach(function (html) {
var switchery = new Switchery(html);
});
}).DataTable({
//记录用户状态
stateSave: true,
//中文自定义
language: {
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
},
//是否显示排序
bSort: false,
//是否显示过滤搜索
bFilter: false,
//页脚展示风格
pagingType: "full_numbers",
//是否启动服务器数据处理
serverSide: true,
autoWidth: false,
"lengthChange": false,
//ajax获取服务器数据
ajax: {
url: 'paydetailDate',
type: 'post',
data: function (d) {
d.factoryCode = $('#factoryCode').val();
d.billMonth = $('#billMonth').val();
}
},
//数据展示
columns: [
{
"data": "recordType",
render: function (data, type, row, meta) {
var str = "";
if (row.recordType == '1') {
str = '授权';
} else {
str = '分配';
}
return str;
}
},
{
"data": "recordNumber",
},
{
"data": "recordIp",
},
{
"data": "createTime",
render: function (data, type, row, meta) {
var str = "";
str = new Date(row.createTime);
return Format(str, "yyyy-MM-dd HH:mm");
}
}
]
});
$(document).keyup(function (event) {
if (event.keyCode == 13) {
table.ajax.reload(null, true);
}
});
});
</script>
@@ -0,0 +1,37 @@
<%--
Document : test
Created on : 2017-8-15, 17:49:01
Author : Administrator
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<div id="testContainer">
<div><img src="1.png"></div>
<div><img src="1.png"></div>
<div><img src="1.png"></div>
<div><img src="1.png"></div>
<div><img src="1.png"></div>
<div><img src="1.png"></div>
<div><img src="1.png"></div>
<div><img src="1.png"></div>
</div>
<style type="text/css">
#testContainer {
text-align: center;
}
#testContainer > div {
display: inline-block;
}
#testContainer img {
width: 200px;
height: 200px;
}
#testContainer div{
border: 1px;
background-color: red;
}
</style>
<script></script>
+1 -1
View File
@@ -181,7 +181,7 @@
//日期控件
$('#loginTime1,#loginTime2,#createTime1,#createTime2').datepicker({
format: "yyyy-mm-dd"
dateFormat: "yy-mm-dd"
});
var table = $('#datatable').DataTable({
//记录用户状态
@@ -0,0 +1,170 @@
<%--
Document : remindWaterList
Created on : 2017-8-16, 9:59:59
Author : Administrator
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<div id="searchDiv" style="float: left">
<label>是否推送:</label>
<select id="ispush" name="ispush" class="input-medium searchClass">
<option value="">请选择</option>
<option value="1">已推送</option>
<option value="0">未推送</option>
</select>
<label>推送类型:</label>
<select id="phoneType" name="phoneType" class="input-medium searchClass">
<option value="">请选择</option>
<option value="android">android</option>
<option value="ios">ios</option>
</select>
<label>排序字段:</label>
<select id="sortField" name="sortField" class="input-medium searchClass">
<option value="">请选择</option>
<option value="userId">用户ID</option>
<option value="deviceId">设备ID</option>
</select>
<label>排序方式:</label>
<select id="sortMode" name="sortMode" class="input-medium searchClass">
<option value="">请选择</option>
<option value="asc">升序↑</option>
<option value="desc">降序↓</option>
</select>
<select id="selectField" name="selectField" class="input-medium searchClass">
<option value="user_id">用户ID</option>
<option value="device_id">设备ID</option>
<option value="mac_address">mac地址</option>
<option value="show_name">显示名称</option>
</select>
<input type="text" id="selectvalue" name="selectvalue">
</div>
<table class="dataTable cell-border" id="datatable" >
<thead>
<tr>
<th>设备ID</th>
<th>用户ID</th>
<th>手机号</th>
<th>mac地址</th>
<th>显示名称</th>
<th>推送类型</th>
<th>提醒日期</th>
<th>提醒周期</th>
<th>是否推送</th>
</tr>
</thead>
</table>
<script>
$(document).ready(function () {
var table = $('#datatable').on('draw.dt', function () {
var elems = Array.prototype.slice.call(document.querySelectorAll('.js-switch'));
elems.forEach(function (html) {
var switchery = new Switchery(html);
});
}).DataTable({
//记录用户状态
stateSave: true,
//中文自定义
language: {
"sProcessing": "处理中...",
"sLengthMenu": "显示 _MENU_ 项结果",
"sZeroRecords": "没有匹配结果",
"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
"sInfoPostFix": "",
"sSearch": "搜索:",
"sUrl": "",
"sEmptyTable": "表中数据为空",
"sLoadingRecords": "载入中...",
"sInfoThousands": ",",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "上页",
"sNext": "下页",
"sLast": "末页"
},
"oAria": {
"sSortAscending": ": 以升序排列此列",
"sSortDescending": ": 以降序排列此列"
}
},
//是否显示排序
bSort: false,
//是否显示过滤搜索
bFilter: false,
//页脚展示风格
pagingType: "full_numbers",
//是否启动服务器数据处理
serverSide: true,
autoWidth: false,
"lengthChange": false,
//ajax获取服务器数据
ajax: {
url: 'remindWaterListData',
type: 'post',
data: function (d) {
d.ispush = $('#ispush').val();
d.phoneType = $('#phoneType').val();
d.sortField = $('#sortField').val();
d.sortMode = $('#sortMode').val();
d.selectField = $('#selectField').val();
d.selectvalue = $('#selectvalue').val();
}
},
//数据展示
columns: [
{
"data": "deviceId",
},
{
"data": "userId",
},
{
"data": "phoneNumber",
},
{
"data": "macAddress",
},
{
"data": "showName",
},
{
"data": "loginType",
},
{
"data": "remindDate",
},
{
"data": "remindCycle",
},
{
"data": "isPush",
render: function (data, type, row, meta) {
var str = "";
if (row.isPush === '0') {
str = '<span class="badge">未推送</span>';
} else {
str = '<span class="badge badge-success mr10 mb10" style="background-color: #71d398;">已推送</span>';
}
return str;
}
}
]
});
$('#ispush,#phoneType,#sortField,#sortMode').change(function () {
table.ajax.reload(null, true);
});
$('#selectvalue').keyup(function () {
table.ajax.reload(null, true);
});
$(document).keyup(function (event) {
if (event.keyCode == 13) {
table.ajax.reload(null, true);
}
});
});
</script>