厂家管理,系统用户,摄像头页面
This commit is contained in:
@@ -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;
|
||||
@@ -25,6 +26,9 @@ 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,7 +158,7 @@ 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);
|
||||
|
||||
@@ -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,8 +79,13 @@ public class Tbl_Pay_Bill_MapperSql {
|
||||
sb.append(" and factory_code = #{code}");
|
||||
}
|
||||
if (StringUtils.isNotBlank(billMonth)) {
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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">×</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">×</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">×</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,"admin")"><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,"ruixin")"><i class="ec-refresh"></i>重置</button> <button class="btn btn-xs btn-primary" onclick="editSysUser(16,"ruixin","ROLE_FACTORY","0a")"><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(' <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(' <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">×</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">×</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">
|
||||
<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.factorybindPrice}" style="float: left">
|
||||
<span class="percent">${item.factorybindPrice}%</span>
|
||||
<div class="pie-chart3 easyPieChart" data-percent="${item.venderbindPrice}" style="float: left">
|
||||
<span class="percent">${item.venderbindPrice}%</span>
|
||||
</div>
|
||||
<div style="margin-left:75px;margin-top: 11px;">
|
||||
<div>
|
||||
<span class="txt" style="color:#9abc32">${item.deviceNumber}个</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="txt">${item.date}</span>
|
||||
<a href="recorddetail?factoryCode=${factoryCode}&billMonth=${item.date}" target="_blank">${item.date}</a>
|
||||
</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}');
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user