From 501c2ac75c5f1df4e74e058989a5e34d4d34a71f Mon Sep 17 00:00:00 2001 From: ifish7 Date: Tue, 22 Aug 2017 17:54:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ifish/bean/Tbl_Vender.java | 245 ---------- src/main/java/com/ifish/bean/Tbl_Version.java | 197 ++++++++ .../ifish/config/MyAccessDeniedHandler.java | 65 +++ .../com/ifish/config/MyUserDetailService.java | 1 + .../java/com/ifish/config/SecuredConfig.java | 36 +- src/main/java/com/ifish/config/UserInfo.java | 5 + src/main/java/com/ifish/config/WebConfig.java | 5 - .../java/com/ifish/controller/Device.java | 42 +- .../java/com/ifish/controller/Version.java | 112 +++++ .../java/com/ifish/helper/DeviceHelper.java | 214 +++++++- .../java/com/ifish/helper/DeviceHelperI.java | 24 +- .../java/com/ifish/helper/FactoryHelper.java | 42 +- .../com/ifish/helper/HardWareTypeHelper.java | 48 +- .../com/ifish/helper/HardWareTypeHelperI.java | 22 +- .../com/ifish/helper/PushMessageHelper.java | 3 + .../java/com/ifish/helper/RedisKeyHelper.java | 13 + .../com/ifish/helper/RedisKeyHelperI.java | 8 + .../java/com/ifish/helper/UserHelper.java | 4 +- .../java/com/ifish/helper/VersionHelper.java | 201 ++++++++ .../java/com/ifish/helper/VersionHelperI.java | 77 +++ .../com/ifish/mapper/Tbl_Device_Mapper.java | 11 + .../ifish/mapper/Tbl_Device_MapperSql.java | 24 +- .../ifish/mapper/Tbl_Factory_List_Mapper.java | 1 - .../mapper/Tbl_Hardware_Type_Mapper.java | 27 +- .../com/ifish/mapper/Tbl_Pay_Bill_Mapper.java | 3 + .../ifish/mapper/Tbl_Push_List_MapperSql.java | 13 +- .../com/ifish/mapper/Tbl_Version_Mapper.java | 96 ++++ .../ifish/mapper/Tbl_Version_MapperSql.java | 64 +++ src/main/java/com/ifish/util/IfishUtil.java | 43 ++ src/main/webapp/WEB-INF/layout/IndexPage.jsp | 23 +- src/main/webapp/WEB-INF/layout/header.jsp | 12 +- src/main/webapp/WEB-INF/layout/tiles.xml | 20 + .../WEB-INF/views/camera/activaCode.jsp | 10 +- .../webapp/WEB-INF/views/camera/userlist.jsp | 8 +- .../webapp/WEB-INF/views/device/bindlist.jsp | 15 +- .../WEB-INF/views/device/hardwareType.jsp | 244 ++++------ .../views/device/hardwareTypeDetail.jsp | 201 ++++++++ src/main/webapp/WEB-INF/views/device/list.jsp | 10 +- .../webapp/WEB-INF/views/factory/detail.jsp | 2 +- .../webapp/WEB-INF/views/factory/list.jsp | 2 +- src/main/webapp/WEB-INF/views/index.jsp | 431 +--------------- src/main/webapp/WEB-INF/views/pay/list.jsp | 4 +- .../webapp/WEB-INF/views/pushlist/list.jsp | 97 ++-- .../WEB-INF/views/query/authorization.jsp | 2 +- src/main/webapp/WEB-INF/views/user/list.jsp | 44 +- .../webapp/WEB-INF/views/vender/detail.jsp | 2 +- src/main/webapp/WEB-INF/views/vender/list.jsp | 2 +- .../webapp/WEB-INF/views/version/detail.jsp | 110 +++++ .../webapp/WEB-INF/views/version/list.jsp | 188 +++++++ src/main/webapp/static/mycss.css | 328 +++++++++++++ src/main/webapp/static/test.json | 460 ------------------ 51 files changed, 2419 insertions(+), 1442 deletions(-) delete mode 100644 src/main/java/com/ifish/bean/Tbl_Vender.java create mode 100644 src/main/java/com/ifish/bean/Tbl_Version.java create mode 100644 src/main/java/com/ifish/config/MyAccessDeniedHandler.java create mode 100644 src/main/java/com/ifish/controller/Version.java create mode 100644 src/main/java/com/ifish/helper/VersionHelper.java create mode 100644 src/main/java/com/ifish/helper/VersionHelperI.java create mode 100644 src/main/java/com/ifish/mapper/Tbl_Version_Mapper.java create mode 100644 src/main/java/com/ifish/mapper/Tbl_Version_MapperSql.java create mode 100644 src/main/webapp/WEB-INF/views/device/hardwareTypeDetail.jsp create mode 100644 src/main/webapp/WEB-INF/views/version/detail.jsp create mode 100644 src/main/webapp/WEB-INF/views/version/list.jsp create mode 100644 src/main/webapp/static/mycss.css delete mode 100644 src/main/webapp/static/test.json diff --git a/src/main/java/com/ifish/bean/Tbl_Vender.java b/src/main/java/com/ifish/bean/Tbl_Vender.java deleted file mode 100644 index c0a1010..0000000 --- a/src/main/java/com/ifish/bean/Tbl_Vender.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - * 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.bean; - -import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * 鱼缸场详情表(tbl_vender_list) - * - * @author bianj - * @version 1.0.0 2017-06-27 - */ -@Entity -@Table(name = "tbl_vender_list") -public class Tbl_Vender implements java.io.Serializable { - - /** - * 版本号 - */ - private static final long serialVersionUID = 2462685903502867014L; - - /** - * 鱼缸厂编号 - */ - @Id - @Column(name = "brand_code", unique = true, nullable = false, length = 20) - private String brandCode; - - /** - * logo - */ - @Column(name = "brand_logo", nullable = true, length = 100) - private String brandLogo; - - /** - * 鱼缸厂名称 - */ - @Column(name = "brand_name", nullable = false, length = 20) - private String brandName; - - /** - * 品牌介绍 - */ - @Column(name = "brand_introduce", nullable = true, length = 100) - private String brandIntroduce; - - /** - * app展示 - */ - @Column(name = "app_show", nullable = true, length = 1) - private String appShow; - - /** - * 联系电话 - */ - @Column(name = "contact_phone", nullable = true, length = 30) - private String contactPhone; - - /** - * 联系地址 - */ - @Column(name = "contact_address", nullable = true, length = 50) - private String contactAddress; - - /** - * 更新时间 - */ - @Column(name = "update_time", nullable = true) - private Date updateTime; - - /** - * 创建时间 - */ - @Column(name = "create_time", nullable = true) - private Date createTime; - - /** - * 获取鱼缸厂编号 - * - * @return 鱼缸厂编号 - */ - public String getBrandCode() { - return this.brandCode; - } - - /** - * 设置鱼缸厂编号 - * - * @param brandCode 鱼缸厂编号 - */ - public void setBrandCode(String brandCode) { - this.brandCode = brandCode; - } - - /** - * 获取logo - * - * @return logo - */ - public String getBrandLogo() { - return this.brandLogo; - } - - /** - * 设置logo - * - * @param brandLogo logo - */ - public void setBrandLogo(String brandLogo) { - this.brandLogo = brandLogo; - } - - /** - * 获取鱼缸厂名称 - * - * @return 鱼缸厂名称 - */ - public String getBrandName() { - return this.brandName; - } - - /** - * 设置鱼缸厂名称 - * - * @param brandName 鱼缸厂名称 - */ - public void setBrandName(String brandName) { - this.brandName = brandName; - } - - /** - * 获取品牌介绍 - * - * @return 品牌介绍 - */ - public String getBrandIntroduce() { - return this.brandIntroduce; - } - - /** - * 设置品牌介绍 - * - * @param brandIntroduce 品牌介绍 - */ - public void setBrandIntroduce(String brandIntroduce) { - this.brandIntroduce = brandIntroduce; - } - - /** - * 获取app展示 - * - * @return app展示 - */ - public String getAppShow() { - return this.appShow; - } - - /** - * 设置app展示 - * - * @param appShow app展示 - */ - public void setAppShow(String appShow) { - this.appShow = appShow; - } - - /** - * 获取联系电话 - * - * @return 联系电话 - */ - public String getContactPhone() { - return this.contactPhone; - } - - /** - * 设置联系电话 - * - * @param contactPhone 联系电话 - */ - public void setContactPhone(String contactPhone) { - this.contactPhone = contactPhone; - } - - /** - * 获取联系地址 - * - * @return 联系地址 - */ - public String getContactAddress() { - return this.contactAddress; - } - - /** - * 设置联系地址 - * - * @param contactAddress 联系地址 - */ - public void setContactAddress(String contactAddress) { - this.contactAddress = contactAddress; - } - - /** - * 获取更新时间 - * - * @return 更新时间 - */ - public Date getUpdateTime() { - return this.updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - /** - * 获取创建时间 - * - * @return 创建时间 - */ - public Date getCreateTime() { - return this.createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } -} diff --git a/src/main/java/com/ifish/bean/Tbl_Version.java b/src/main/java/com/ifish/bean/Tbl_Version.java new file mode 100644 index 0000000..f474241 --- /dev/null +++ b/src/main/java/com/ifish/bean/Tbl_Version.java @@ -0,0 +1,197 @@ +/* + * 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.bean; + +import java.util.Date; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * APP版本详情表(tbl_version) + * + * @author bianj + * @version 1.0.0 2017-08-14 + */ +@Entity +@Table(name = "tbl_version") +public class Tbl_Version implements java.io.Serializable { + + /** + * 版本号 + */ + private static final long serialVersionUID = -8289374797318946959L; + + /** + * 版本ID + */ + @Id + @Column(name = "version_id", unique = true, nullable = false, length = 10) + private Integer versionId; + + /** + * 版本号 + */ + @Column(name = "version_code", nullable = true, length = 20) + private String versionCode; + + /** + * 更新类型,1强制升级,0,不强制 + */ + @Column(name = "is_must_update", nullable = true, length = 1) + private String isMustUpdate; + + /** + * 下载地址 + */ + @Column(name = "app_address", nullable = true, length = 100) + private String appAddress; + + /** + * 更新内容 + */ + @Column(name = "upload_content", nullable = true, length = 200) + private String uploadContent; + + /** + * 创建时间 + */ + @Column(name = "create_time", nullable = true) + private Date createTime; + + /** + * 手机类型 + */ + @Column(name = "phone_type", nullable = true, length = 255) + private String phoneType; + + /** + * 获取版本ID + * + * @return 版本ID + */ + public Integer getVersionId() { + return this.versionId; + } + + /** + * 设置版本ID + * + * @param versionId 版本ID + */ + public void setVersionId(Integer versionId) { + this.versionId = versionId; + } + + /** + * 获取版本号 + * + * @return 版本号 + */ + public String getVersionCode() { + return this.versionCode; + } + + /** + * 设置版本号 + * + * @param versionCode 版本号 + */ + public void setVersionCode(String versionCode) { + this.versionCode = versionCode; + } + + /** + * 获取更新类型,1强制升级,0,不强制 + * + * @return 更新类型 + */ + public String getIsMustUpdate() { + return this.isMustUpdate; + } + + /** + * 设置更新类型,1强制升级,0,不强制 + * + * @param isMustUpdate 更新类型,1强制升级,0,不强制 + */ + public void setIsMustUpdate(String isMustUpdate) { + this.isMustUpdate = isMustUpdate; + } + + /** + * 获取下载地址 + * + * @return 下载地址 + */ + public String getAppAddress() { + return this.appAddress; + } + + /** + * 设置下载地址 + * + * @param appAddress 下载地址 + */ + public void setAppAddress(String appAddress) { + this.appAddress = appAddress; + } + + /** + * 获取更新内容 + * + * @return 更新内容 + */ + public String getUploadContent() { + return this.uploadContent; + } + + /** + * 设置更新内容 + * + * @param uploadContent 更新内容 + */ + public void setUploadContent(String uploadContent) { + this.uploadContent = uploadContent; + } + + /** + * 获取创建时间 + * + * @return 创建时间 + */ + public Date getCreateTime() { + return this.createTime; + } + + /** + * 设置创建时间 + * + * @param createTime 创建时间 + */ + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + /** + * 获取手机类型 + * + * @return 手机类型 + */ + public String getPhoneType() { + return this.phoneType; + } + + /** + * 设置手机类型 + * + * @param phoneType 手机类型 + */ + public void setPhoneType(String phoneType) { + this.phoneType = phoneType; + } +} diff --git a/src/main/java/com/ifish/config/MyAccessDeniedHandler.java b/src/main/java/com/ifish/config/MyAccessDeniedHandler.java new file mode 100644 index 0000000..3033efc --- /dev/null +++ b/src/main/java/com/ifish/config/MyAccessDeniedHandler.java @@ -0,0 +1,65 @@ +/* + * 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.config; + +import java.io.IOException; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.web.WebAttributes; +import org.springframework.security.web.access.AccessDeniedHandler; + +/** + * + * @author Administrator + */ +public class MyAccessDeniedHandler implements AccessDeniedHandler { + + /* (non-Javadoc) + * @see org.springframework.security.web.access.AccessDeniedHandler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.springframework.security.access.AccessDeniedException) + */ + private String errorPage; + + //~ Methods ======================================================================================================== + public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) + throws IOException, ServletException { + if (!response.isCommitted()) { + if (errorPage != null) { + // Put exception into request scope (perhaps of use to a view) + request.setAttribute(WebAttributes.ACCESS_DENIED_403, accessDeniedException); + + // Set the 403 status code. + response.setStatus(HttpServletResponse.SC_FORBIDDEN); + + // forward to error page. + RequestDispatcher dispatcher = request.getRequestDispatcher(errorPage); + dispatcher.forward(request, response); + } else { + response.sendError(HttpServletResponse.SC_FORBIDDEN, accessDeniedException.getMessage()); + } + } + } + + /** + * The error page to use. Must begin with a "/" and is interpreted relative + * to the current context root. + * + * @param errorPage the dispatcher path to display + * + * @throws IllegalArgumentException if the argument doesn't comply with the + * above limitations + */ + public void setErrorPage(String errorPage) { + if ((errorPage != null) && !errorPage.startsWith("/")) { + throw new IllegalArgumentException("errorPage must begin with '/'"); + } + + this.errorPage = errorPage; + } + +} diff --git a/src/main/java/com/ifish/config/MyUserDetailService.java b/src/main/java/com/ifish/config/MyUserDetailService.java index aea1efe..04ff4c3 100644 --- a/src/main/java/com/ifish/config/MyUserDetailService.java +++ b/src/main/java/com/ifish/config/MyUserDetailService.java @@ -55,6 +55,7 @@ public class MyUserDetailService implements UserDetailsService { userdetails.setAccountNonLocked(accountNonLocked); userdetails.setAccountNonExpired(accountNonExpired); userdetails.setCredentialsNonExpired(credentialsNonExpired); + userdetails.setAuthorities(authorities); return userdetails; } diff --git a/src/main/java/com/ifish/config/SecuredConfig.java b/src/main/java/com/ifish/config/SecuredConfig.java index a67883a..8ceef3f 100644 --- a/src/main/java/com/ifish/config/SecuredConfig.java +++ b/src/main/java/com/ifish/config/SecuredConfig.java @@ -15,9 +15,8 @@ import org.springframework.security.config.annotation.authentication.builders.Au import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.web.filter.CharacterEncodingFilter; -import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.access.AccessDeniedHandler; /** * @@ -26,10 +25,10 @@ import org.springframework.security.crypto.password.PasswordEncoder; @Configuration @EnableWebSecurity public class SecuredConfig extends WebSecurityConfigurerAdapter { - + @Autowired private UserHelper userHelper; - + @Override protected void configure(HttpSecurity http) throws Exception { //The CharacterEncodingFilter must be started before SecurityFilter. I moved it to security configuration: @@ -48,7 +47,23 @@ public class SecuredConfig extends WebSecurityConfigurerAdapter { //.antMatchers("/score/*").hasRole("4") //同上,utype为4的才能访问 .antMatchers("/index").authenticated() .antMatchers("/").authenticated() - .antMatchers("/admin/**").hasAnyRole("4") + .antMatchers("/userlist").hasAnyRole("4") + .antMatchers("/pushlist").hasAnyRole("4") + .antMatchers("/remindWaterList").hasAnyRole("4") + .antMatchers("/cameralist").hasAnyRole("4") + .antMatchers("/camerauserlist").hasAnyRole("4") + .antMatchers("/activeCodeList").hasAnyRole("4") + .antMatchers("/devicelist").hasAnyRole("4") + .antMatchers("/bindlist").hasAnyRole("4") + .antMatchers("/hardwareTypelist").hasAnyRole("4") + .antMatchers("/loginlist").hasAnyRole("4") + .antMatchers("/factorylist").hasAnyRole("4") + .antMatchers("/venderlist").hasAnyRole("4") + .antMatchers("/querylist").hasAnyRole("4") + .antMatchers("/authorizationQuery").hasAnyRole("4") + .antMatchers("/paylist").hasAnyRole("4") + .antMatchers("/adminUserList").hasAnyRole("4") + .antMatchers("/versionlist").hasAnyRole("4") .and() //相当于方法结束符,and结束的几个方法是并行的,没有顺序之分,最后一个方法不需要and结束 .formLogin()//配置FBA。登陆,若有role权限,formLogin不能少 .loginProcessingUrl("/login")//登陆后是否跳转前一个URL,参数为登陆的POST地址 @@ -67,10 +82,10 @@ public class SecuredConfig extends WebSecurityConfigurerAdapter { //.and() // .rememberMe().key("gkweb") //记住密码,cookie的name为remember-me,key的值相当于token // .tokenValiditySeconds(1209600) //cookie有效期,时间为秒 - .and().exceptionHandling().accessDeniedPage("/403") //请求异常,请求403 + .and().exceptionHandling().accessDeniedHandler(accessDeniedHandler()).accessDeniedPage("/403") //请求异常,请求403 ; } - + @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(new MyUserDetailService(userHelper)); @@ -80,10 +95,15 @@ public class SecuredConfig extends WebSecurityConfigurerAdapter { // .withUser("3").password("3").roles("ADMIN"); } - + @Bean(name = BeanIds.AUTHENTICATION_MANAGER) @Override public AuthenticationManager authenticationManagerBean() throws Exception { return super.authenticationManagerBean(); } + + @Bean + public AccessDeniedHandler accessDeniedHandler() { + return new MyAccessDeniedHandler(); + } } diff --git a/src/main/java/com/ifish/config/UserInfo.java b/src/main/java/com/ifish/config/UserInfo.java index d968539..661d0e0 100644 --- a/src/main/java/com/ifish/config/UserInfo.java +++ b/src/main/java/com/ifish/config/UserInfo.java @@ -191,6 +191,11 @@ public class UserInfo implements UserDetails, CredentialsContainer { this.accountNonLocked = accountNonLocked; } + public void setAuthorities(final Collection authorities) { + this.authorities = Collections + .unmodifiableSet(sortAuthorities(authorities)); + } + /** * @return the credentialsNonExpired */ diff --git a/src/main/java/com/ifish/config/WebConfig.java b/src/main/java/com/ifish/config/WebConfig.java index 397583b..8060617 100644 --- a/src/main/java/com/ifish/config/WebConfig.java +++ b/src/main/java/com/ifish/config/WebConfig.java @@ -5,21 +5,16 @@ */ package com.ifish.config; -import com.ifish.util.IfishFilePath; -import java.io.IOException; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; -import org.springframework.web.multipart.support.StandardServletMultipartResolver; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.tiles3.TilesConfigurer; import org.springframework.web.servlet.view.tiles3.TilesViewResolver; diff --git a/src/main/java/com/ifish/controller/Device.java b/src/main/java/com/ifish/controller/Device.java index 3b5ac34..3224bd6 100644 --- a/src/main/java/com/ifish/controller/Device.java +++ b/src/main/java/com/ifish/controller/Device.java @@ -9,6 +9,9 @@ import com.ifish.bean.Tbl_Device_User; import com.ifish.bean.Tbl_HardWare_Type; import com.ifish.bean.Tbl_Upgrade_Notes; import com.ifish.helper.DeviceHelper; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -159,6 +162,7 @@ public class Device { /** * 批量升级sdk * + * @param tbl_Upgrade_Notes * @param factoryCode * @param brandCode * @param hardwareType @@ -175,14 +179,16 @@ public class Device { /** * 设置,取消设备授权 * + * @param deviceId * @param device + * @param request * @param isblacklist * @return */ @RequestMapping(value = {"/deviceIsBlacklist"}, method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody - public Object deviceIsBlacklist(Integer deviceId, String isblacklist) { - return deviceHelper.deviceIsBlacklist(deviceId, isblacklist); + public Object deviceIsBlacklist(Integer deviceId, String isblacklist, HttpServletRequest request) { + return deviceHelper.deviceIsBlacklist(deviceId, isblacklist, request); } /** @@ -268,13 +274,24 @@ public class Device { return deviceHelper.getHardwareTypelistData(draw, start, length, showName); } + /** + * 设备类型详情页 + * + * @param hardwareType + * @return + */ + @RequestMapping(value = {"/hardwareTypedetail"}, method = RequestMethod.GET) + public ModelAndView getHardwareTypeDetail(String hardwareType) { + return deviceHelper.getHardwareTypeDetail(hardwareType); + } + /** * 插入一条设备信息 * * @param tbl_HardWare_Type * @return */ - @RequestMapping(value = {"/insertHardwareType"}, method = RequestMethod.POST) + @RequestMapping(value = {"/insertHardwareType"}, method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public Object insertHardwareType(Tbl_HardWare_Type tbl_HardWare_Type) { return deviceHelper.HardwareTypeOperation(tbl_HardWare_Type, "1"); @@ -286,7 +303,7 @@ public class Device { * @param tbl_HardWare_Type * @return */ - @RequestMapping(value = {"/updateHardwareType"}, method = RequestMethod.POST) + @RequestMapping(value = {"/updateHardwareType"}, method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public Object updateHardwareType(Tbl_HardWare_Type tbl_HardWare_Type) { return deviceHelper.HardwareTypeOperation(tbl_HardWare_Type, "2"); @@ -298,9 +315,24 @@ public class Device { * @param tbl_HardWare_Type * @return */ - @RequestMapping(value = {"/deleteHardwareType"}, method = RequestMethod.POST) + @RequestMapping(value = {"/deleteHardwareType"}, method = RequestMethod.POST, produces = "text/html;charset=utf-8") @ResponseBody public Object deleteHardwareType(Tbl_HardWare_Type tbl_HardWare_Type) { return deviceHelper.HardwareTypeOperation(tbl_HardWare_Type, "3"); } + + /** + * 测试工具分配授权设备接口 + * + * @param data + * @param subStr + * @param request + * @param response + * @return + */ + @RequestMapping(value = {"/saveMacAddress"}, method = RequestMethod.POST, produces = "text/html;charset=utf-8") + @ResponseBody + public Object saveMacAddress(Map data, String subStr, HttpServletRequest request, HttpServletResponse response) { + return deviceHelper.saveMacAddress(data, subStr, request, response); + } } diff --git a/src/main/java/com/ifish/controller/Version.java b/src/main/java/com/ifish/controller/Version.java new file mode 100644 index 0000000..f661ac3 --- /dev/null +++ b/src/main/java/com/ifish/controller/Version.java @@ -0,0 +1,112 @@ +/* + * 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.bean.Tbl_Version; +import com.ifish.helper.VersionHelperI; +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 Version { + + @Autowired + private VersionHelperI versionHelperI; + + /** + * 版本管理首页 + * + * @return + */ + @RequestMapping(value = {"/versionlist"}, method = RequestMethod.GET) + public ModelAndView getVersionlist() { + return versionHelperI.getVersionlist(); + } + + /** + * 版本管理页面数据 + * + * @param phoneType + * @param content + * @param draw + * @param start + * @param length + * @return + */ + @RequestMapping(value = {"/versionlistData"}, method = RequestMethod.POST) + @ResponseBody + public Object getVerisonlistData(String phoneType, String content, String draw, Integer start, Integer length) { + return versionHelperI.getVerisonlistData(phoneType, content, draw, start, length); + } + + /** + * 版本详情页 + * + * @param versionId + * @return + */ + @RequestMapping(value = {"/versiondetail"}, method = RequestMethod.GET) + public ModelAndView getVersionDetail(String versionId) { + return versionHelperI.getVersionDetail(versionId); + } + + /** + * 删除版本 + * + * @param versionId + * @return + */ + @RequestMapping(value = {"/deleteVersion"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8") + @ResponseBody + public Object deleteVersion(String versionId) { + return versionHelperI.deleteVersion(versionId); + } + + /** + * 新增一个版本信息 + * + * @param tbl_Version + * @return + */ + @RequestMapping(value = {"/addVersion"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8") + @ResponseBody + public Object addVerison(Tbl_Version tbl_Version) { + return versionHelperI.addVerison(tbl_Version); + } + + /** + * 修改一个版本信息 + * + * @param tbl_Version + * @return + */ + @RequestMapping(value = {"/updateVersion"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8") + @ResponseBody + public Object updateVersion(Tbl_Version tbl_Version) { + return versionHelperI.updateVersion(tbl_Version); + } + + /** + * 修改是否强制升级 + * + * @param versionId + * @param isMustUpdate + * @return + */ + @RequestMapping(value = {"/versionShowUpdate"}, method = RequestMethod.POST, produces = " text/html;charset=utf-8") + @ResponseBody + public Object versionShowUpdate(String versionId, String isMustUpdate) { + return versionHelperI.versionShowUpdate(versionId, isMustUpdate); + } +} diff --git a/src/main/java/com/ifish/helper/DeviceHelper.java b/src/main/java/com/ifish/helper/DeviceHelper.java index 10b87db..69e1f31 100644 --- a/src/main/java/com/ifish/helper/DeviceHelper.java +++ b/src/main/java/com/ifish/helper/DeviceHelper.java @@ -11,11 +11,14 @@ import com.ifish.bean.Tbl_Activa_Code; import com.ifish.bean.Tbl_Device; import com.ifish.bean.Tbl_Device_Statistics; import com.ifish.bean.Tbl_Device_User; +import com.ifish.bean.Tbl_Factory_List; import com.ifish.bean.Tbl_HardWare_Type; import com.ifish.bean.Tbl_Login_Record; +import com.ifish.bean.Tbl_Operate_record; import com.ifish.bean.Tbl_Push_List; import com.ifish.bean.Tbl_Upgrade_Notes; import com.ifish.bean.Tbl_User; +import com.ifish.bean.Tbl_Vender_List; import com.ifish.enums.PushTypeEnum; import com.ifish.enums.ResultEnum; import com.ifish.mapper.Tbl_Device_Mapper; @@ -27,6 +30,8 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -892,20 +897,31 @@ public class DeviceHelper implements DeviceHelperI { /** * 设置,取消设备授权 * + * @param deviceId * @param device + * @param request * @param isblacklist * @return */ @Override - public Object deviceIsBlacklist(Integer deviceId, String isblacklist) { + public Object deviceIsBlacklist(Integer deviceId, String isblacklist, HttpServletRequest request) { try { Tbl_Device device = new Tbl_Device(); device.setDeviceId(deviceId); device.setIsBlacklist(isblacklist); int i = tbl_Device_Mapper.updateTbl_Device(device); if (i > 0) { + redisKeyHelperI.deleteRedisByTbl_Device(device); if (isblacklist.equals("0")) { + device = getDeviceById(deviceId); tbl_Device_Mapper.setAuthorizeTime(new Date(), deviceId); + Tbl_Operate_record operateRecord = new Tbl_Operate_record(); + operateRecord.setCreateTime(new Date()); + operateRecord.setRecordIp(IfishUtil.getIp(request)); + operateRecord.setRecordNumber(1); + operateRecord.setRecordType("1"); + operateRecord.setFactoryCode(device.getFactoryCode()); + tbl_Device_Mapper.insertTbl_Operate_records(operateRecord); } else { tbl_Device_Mapper.setAuthorizeTime(null, deviceId); } @@ -1068,7 +1084,7 @@ public class DeviceHelper implements DeviceHelperI { @Override public ModelAndView getHardwareTypelist() { ModelAndView mv = new ModelAndView(); - mv.setViewName("deviceloginlist"); + mv.setViewName("hardwareTypelist"); mv.addObject("pagetitle", "设备类型"); mv.addObject("title", "设备类型"); @@ -1117,6 +1133,51 @@ public class DeviceHelper implements DeviceHelperI { return map; } + /** + * 设备详情页 + * + * @param hardwareType + * @return + */ + @Override + public ModelAndView getHardwareTypeDetail(String hardwareType) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("hardwareTypedetail"); + mv.addObject("pagetitle", "设备详情"); + mv.addObject("title", "设备详情"); + List list = tbl_Factory_List_Mapper.getFactoryListData(0, 1000); + mv.addObject("factorylist", list); + try { + if (StringUtils.isNotBlank(hardwareType)) { + Tbl_HardWare_Type hardWare_Type = hardWareTypeHelperI.getHardwareTypeByTypeCode(hardwareType); + if (hardWare_Type != null) { + mv.addObject("hardWareType", hardWare_Type); + mv.addObject("type", "update"); + } else { + + } + } + } catch (Exception e) { + } + + mv.addObject("myjs", "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "" + + "" + + " \n" + + " \n" + + " \n" + + " \n" + + " "); + return mv; + } + /** * 设备类型数据操作 * @@ -1133,9 +1194,158 @@ public class DeviceHelper implements DeviceHelperI { } } //修改数据 else if (operation.equals("2")) { + if (hardWareTypeHelperI.updateHardwareType(tbl_HardWare_Type) > 0) { + redisKeyHelperI.deleteTbl_HardWare_Type(tbl_HardWare_Type); + return "成功"; + } } //删除数据 else if (operation.equals("3")) { + if (hardWareTypeHelperI.deleteHardwareType(tbl_HardWare_Type) > 0) { + redisKeyHelperI.deleteTbl_HardWare_Type(tbl_HardWare_Type); + return "成功"; + } + } + return "失败"; + } + + /** + * 测试工具分配授权接口 + * + * @param data + * @param subStr + * @param request + * @param response + * @return + */ + @Override + public Object saveMacAddress(Map data, String subStr, HttpServletRequest request, HttpServletResponse response) { + response.setHeader("Access-Control-Allow-Origin", "*"); + try { + String ip = IfishUtil.getIp(request); + JSONObject json = JSONObject.parseObject(subStr); + String brandCode = json.getString("brandCode"); + String factoryCode = json.getString("factoryCode"); + String isBlacklist = json.getString("isBlacklist"); + String macs = json.getString("mac"); + String hardType = json.getString("hardType"); + String[] mac = macs.equals("") ? null : macs.split(","); + String[] hardTypes = hardType.equals("") ? null : hardType.split(","); + Map map = saveDevices(factoryCode, isBlacklist, brandCode, ip, mac, hardTypes); + JSONObject returnJson = new JSONObject(map); + return returnJson.toString(); + } catch (Exception e) { + } return null; } + + public Map saveDevices(String factoryCode, String isBlacklist, String brandCode, String ip, String[] macs, String[] hardTypes) { + Map map = new HashMap(); + try { + //保存设备信息 + if (macs != null && hardTypes != null) { + //编号 + String code = IfishUtil.getCode(); + //为空则默认授权 + if (!(isBlacklist != null && isBlacklist != "")) { + isBlacklist = "0"; + } + //授权数量 + int j = 0; + for (int i = 0; i < macs.length; i++) { + String macAddress = macs[i]; + Tbl_Device device = getDeviceByMacAddress(macAddress); + if (device != null) { + Tbl_Device_Statistics device_Statistics = getDeviceStatisticsByMacAddress(macAddress); + boolean flag = false; + if (device_Statistics == null) { + device_Statistics.setDeviceId(device.getDeviceId()); + device_Statistics.setMacAddress(macAddress); + flag = true; + } + device.setFactoryCode(factoryCode); + device.setBrandCode(brandCode); + device.setHardwareType(hardTypes[i]); + device_Statistics.setFactoryCode(factoryCode); + device_Statistics.setBrandCode(brandCode); + device_Statistics.setHardwareType(hardTypes[i]); + //原来未授权 + if (device.getIsBlacklist().equals("1")) { + //授权 + if (isBlacklist.equals("0")) { + j++; + device.setIsBlacklist(isBlacklist); + device_Statistics.setAuthorizeTime(new Date()); + } + } + //编号 + device_Statistics.setCreateCode(code); + //分配日期 + device_Statistics.setCreateDate(new Date()); + tbl_Device_Mapper.updateTbl_Device(device); + redisKeyHelperI.deleteRedisByTbl_Device(device); + if (flag) { + tbl_Device_Mapper.insertDeviceStatistics(device_Statistics); + } else { + tbl_Device_Mapper.updateDeviceStatistics(device_Statistics); + redisKeyHelperI.deleteRedisByTbl_Device_Statistics(device_Statistics); + } + } else { + device = new Tbl_Device(); + device.setFactoryCode(factoryCode); + device.setBrandCode(brandCode); + device.setHardwareType(hardTypes[i]); + Tbl_Device_Statistics device_Statistics = new Tbl_Device_Statistics(); + device_Statistics.setDeviceId(device.getDeviceId()); + device_Statistics.setMacAddress(macAddress); + device_Statistics.setFactoryCode(factoryCode); + device_Statistics.setBrandCode(brandCode); + device_Statistics.setHardwareType(hardTypes[i]); + //授权 + if (isBlacklist.equals("0")) { + j++; + device.setIsBlacklist(isBlacklist); + device_Statistics.setAuthorizeTime(new Date()); + } + //编号 + device_Statistics.setCreateCode(code); + //分配日期 + device_Statistics.setCreateDate(new Date()); + tbl_Device_Mapper.insertDevice(device); + tbl_Device_Mapper.insertDeviceStatistics(device_Statistics); + } + } + //分配 + Tbl_Operate_record operateRecord = new Tbl_Operate_record(); + operateRecord.setCreateTime(new Date()); + operateRecord.setRecordIp(ip); + operateRecord.setRecordNumber(macs.length); + operateRecord.setRecordType("0"); + operateRecord.setFactoryCode(factoryCode); + //编号 + operateRecord.setCreateCode(code); + tbl_Device_Mapper.insertTbl_Operate_records(operateRecord); + //授权 + if (j > 0) { + Tbl_Operate_record operateRecord1 = new Tbl_Operate_record(); + operateRecord1.setCreateTime(new Date()); + operateRecord1.setRecordIp(ip); + operateRecord1.setRecordNumber(j); + operateRecord1.setRecordType("1"); + operateRecord1.setFactoryCode(factoryCode); + tbl_Device_Mapper.insertTbl_Operate_records(operateRecord1); + } + map.put("parm", "result"); + map.put("parm1", macs.length); + map.put("parm2", j); + if (macs.length > 0) { + map.put("parm3", code); + } else { + map.put("parm3", ""); + } + } + } catch (Exception e) { + } + return map; + } } diff --git a/src/main/java/com/ifish/helper/DeviceHelperI.java b/src/main/java/com/ifish/helper/DeviceHelperI.java index 9750149..f486165 100644 --- a/src/main/java/com/ifish/helper/DeviceHelperI.java +++ b/src/main/java/com/ifish/helper/DeviceHelperI.java @@ -11,6 +11,9 @@ import com.ifish.bean.Tbl_Device_User; import com.ifish.bean.Tbl_HardWare_Type; import com.ifish.bean.Tbl_Upgrade_Notes; import java.util.List; +import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; /** @@ -227,7 +230,7 @@ public interface DeviceHelperI { * @param isblacklist * @return */ - public Object deviceIsBlacklist(Integer deviceId, String isblacklist); + public Object deviceIsBlacklist(Integer deviceId, String isblacklist, HttpServletRequest request); /** * 设备绑定列表查询页面 @@ -280,6 +283,14 @@ public interface DeviceHelperI { */ public ModelAndView getHardwareTypelist(); + /** + * 设备详情页 + * + * @param hardwareType + * @return + */ + public ModelAndView getHardwareTypeDetail(String hardwareType); + /** * 设备类型列表页面数据 * @@ -299,4 +310,15 @@ public interface DeviceHelperI { * @return */ public Object HardwareTypeOperation(Tbl_HardWare_Type tbl_HardWare_Type, String operation); + + /** + * 测试工具分配授权接口 + * + * @param data + * @param subStr + * @param request + * @param response + * @return + */ + public Object saveMacAddress(Map data, String subStr, HttpServletRequest request, HttpServletResponse response); } diff --git a/src/main/java/com/ifish/helper/FactoryHelper.java b/src/main/java/com/ifish/helper/FactoryHelper.java index 9135c9d..cda2cf3 100644 --- a/src/main/java/com/ifish/helper/FactoryHelper.java +++ b/src/main/java/com/ifish/helper/FactoryHelper.java @@ -417,6 +417,32 @@ public class FactoryHelper implements FactoryHelperI { List list = tbl_Factory_List_Mapper.getFactoryListData(0, 1000); mv.addObject("factorylist", list); mv.addObject("factoryCode", factoryCode); + if (StringUtils.isBlank(createTimeBefore)) { + //获取上个月数据 + Format format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, -1); + //上个月第一天 + calendar.set(Calendar.DAY_OF_MONTH, 1); + createTimeBefore = format.format(calendar.getTime()); + + //上个月最后一天 + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + calendar.set(Calendar.DAY_OF_MONTH, maxDay); + createTimeAfter = format.format(calendar.getTime()); + } + if (StringUtils.isBlank(createTimeAfter)) { + //获取上个月数据 + Format format = new SimpleDateFormat("yyyy-MM-dd"); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, -1); + //上个月最后一天 + int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); + calendar.set(Calendar.DAY_OF_MONTH, maxDay); + createTimeAfter = format.format(calendar.getTime()); + } + mv.addObject("createTimeBefore", createTimeBefore); + mv.addObject("createTimeAfter", createTimeAfter); mv.addObject("map", authorizationData(factoryCode, createTimeBefore, createTimeAfter)); mv.addObject("myjs", "\n" + " \n" @@ -443,21 +469,7 @@ public class FactoryHelper implements FactoryHelperI { */ public Map authorizationData(String factoryCode, String createTimeBefore, String createTimeAfter) { Map map = new HashMap(); - if (StringUtils.isBlank(createTimeBefore) && StringUtils.isBlank(createTimeAfter)) { - //获取上个月数据 - Format format = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.MONTH, -1); - //上个月第一天 - calendar.set(Calendar.DAY_OF_MONTH, 1); - createTimeBefore = format.format(calendar.getTime()); - - //上个月最后一天 - int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); - calendar.set(Calendar.DAY_OF_MONTH, maxDay); - createTimeAfter = format.format(calendar.getTime()); - } -//百分比 + //百分比 NumberFormat numberFormat = NumberFormat.getInstance(); //设置精确到小数点后0位 numberFormat.setMaximumFractionDigits(0); diff --git a/src/main/java/com/ifish/helper/HardWareTypeHelper.java b/src/main/java/com/ifish/helper/HardWareTypeHelper.java index a34dcff..a630930 100644 --- a/src/main/java/com/ifish/helper/HardWareTypeHelper.java +++ b/src/main/java/com/ifish/helper/HardWareTypeHelper.java @@ -6,7 +6,7 @@ package com.ifish.helper; import com.ifish.bean.Tbl_HardWare_Type; -import com.ifish.bean.Tbl_Vender; +import com.ifish.bean.Tbl_Vender_List; import com.ifish.mapper.Tbl_Hardware_Type_Mapper; import com.ifish.util.IfishUtil; import org.apache.commons.lang3.StringUtils; @@ -65,12 +65,12 @@ public class HardWareTypeHelper implements HardWareTypeHelperI { * @throws Exception */ @Override - public Tbl_Vender getVenderListByBrandCode(String code) throws Exception { - Tbl_Vender venderList = new Tbl_Vender(); + public Tbl_Vender_List getVenderListByBrandCode(String code) throws Exception { + Tbl_Vender_List venderList = new Tbl_Vender_List(); String key = redisKeyHelperI.getTbl_Vender_ListRedisKeyByCode(code); String redisString = redisHelperI.getRedis(key); if (StringUtils.isNotBlank(redisString)) { - venderList = (Tbl_Vender) IfishUtil.JsonToBean(redisString, Tbl_Vender.class); + venderList = (Tbl_Vender_List) IfishUtil.JsonToBean(redisString, Tbl_Vender_List.class); } else { venderList = tbl_Hardware_Type_Mapper.getVenderListByBrandCode(code); redisHelperI.setRedis(key, IfishUtil.ObjectToJson(venderList)); @@ -86,12 +86,12 @@ public class HardWareTypeHelper implements HardWareTypeHelperI { * @throws Exception */ @Override - public Tbl_Vender getVenderListByHardwareTypeCode(String code) throws Exception { - Tbl_Vender venderList = new Tbl_Vender(); + public Tbl_Vender_List getVenderListByHardwareTypeCode(String code) throws Exception { + Tbl_Vender_List venderList = new Tbl_Vender_List(); String key = redisKeyHelperI.getTbl_Vender_ListRedisKeyByCode(code); String redisString = redisHelperI.getRedis(key); if (StringUtils.isNotBlank(redisString)) { - venderList = (Tbl_Vender) IfishUtil.JsonToBean(redisString, Tbl_Vender.class); + venderList = (Tbl_Vender_List) IfishUtil.JsonToBean(redisString, Tbl_Vender_List.class); } else { venderList = tbl_Hardware_Type_Mapper.getVenderListByHardwareTypeCode(code); redisHelperI.setRedis(key, IfishUtil.ObjectToJson(venderList)); @@ -116,4 +116,38 @@ public class HardWareTypeHelper implements HardWareTypeHelperI { } return 0; } + + /** + * 修改一条设备信息 + * + * @param tbl_HardWare_Type + * @return + */ + @Override + public Integer updateHardwareType(Tbl_HardWare_Type tbl_HardWare_Type) { + + try { + Integer i = tbl_Hardware_Type_Mapper.updateHardwareType(tbl_HardWare_Type); + redisKeyHelperI.deleteTbl_HardWare_Type(tbl_HardWare_Type); + return i; + } catch (Exception e) { + } + return 0; + } + + /** + * 删除一条设备信息 + * + * @param tbl_HardWare_Type + * @return + */ + @Override + public Integer deleteHardwareType(Tbl_HardWare_Type tbl_HardWare_Type) { + try { + Integer i = tbl_Hardware_Type_Mapper.deleteHardwareType(tbl_HardWare_Type); + return i; + } catch (Exception e) { + } + return 0; + } } diff --git a/src/main/java/com/ifish/helper/HardWareTypeHelperI.java b/src/main/java/com/ifish/helper/HardWareTypeHelperI.java index eed0307..def19eb 100644 --- a/src/main/java/com/ifish/helper/HardWareTypeHelperI.java +++ b/src/main/java/com/ifish/helper/HardWareTypeHelperI.java @@ -6,7 +6,7 @@ package com.ifish.helper; import com.ifish.bean.Tbl_HardWare_Type; -import com.ifish.bean.Tbl_Vender; +import com.ifish.bean.Tbl_Vender_List; /** * @@ -29,7 +29,7 @@ public interface HardWareTypeHelperI { * @return * @throws Exception */ - Tbl_Vender getVenderListByBrandCode(String code) throws Exception; + Tbl_Vender_List getVenderListByBrandCode(String code) throws Exception; /** * 根据设备型号获取厂家信息 @@ -38,7 +38,7 @@ public interface HardWareTypeHelperI { * @return * @throws Exception */ - public Tbl_Vender getVenderListByHardwareTypeCode(String code) throws Exception; + public Tbl_Vender_List getVenderListByHardwareTypeCode(String code) throws Exception; /** * 插入一条设备类型信息 @@ -48,4 +48,20 @@ public interface HardWareTypeHelperI { */ Integer insertHardwareType(Tbl_HardWare_Type tbl_HardWare_Type); + /** + * 修改一条设备信息 + * + * @param tbl_HardWare_Type + * @return + */ + public Integer updateHardwareType(Tbl_HardWare_Type tbl_HardWare_Type); + + /** + * 删除一条设备信息 + * + * @param tbl_HardWare_Type + * @return + */ + public Integer deleteHardwareType(Tbl_HardWare_Type tbl_HardWare_Type); + } diff --git a/src/main/java/com/ifish/helper/PushMessageHelper.java b/src/main/java/com/ifish/helper/PushMessageHelper.java index 21f41bf..0c6ce24 100644 --- a/src/main/java/com/ifish/helper/PushMessageHelper.java +++ b/src/main/java/com/ifish/helper/PushMessageHelper.java @@ -220,6 +220,9 @@ public class PushMessageHelper implements PushMessageHelperI { redisHelperI.setRedis(key, allCount.toString()); } } + if (pushType.equals("remind_water")) { + allCount = count; + } } catch (Exception e) { } diff --git a/src/main/java/com/ifish/helper/RedisKeyHelper.java b/src/main/java/com/ifish/helper/RedisKeyHelper.java index 879d7a2..941fca3 100644 --- a/src/main/java/com/ifish/helper/RedisKeyHelper.java +++ b/src/main/java/com/ifish/helper/RedisKeyHelper.java @@ -8,6 +8,7 @@ package com.ifish.helper; import com.ifish.bean.Tbl_Device; import com.ifish.bean.Tbl_Device_Statistics; import com.ifish.bean.Tbl_Device_User; +import com.ifish.bean.Tbl_HardWare_Type; import com.ifish.bean.Tbl_Live_Message; import com.ifish.bean.Tbl_Live_Room; import com.ifish.bean.Tbl_Push_List; @@ -633,4 +634,16 @@ public class RedisKeyHelper implements RedisKeyHelperI { redisHelperI.delRedisByTagKey(RedisKey.VENDER_CODE); } + /** + * 删除设备类型缓存 + * + * @param tbl_HardWare_Type + */ + @Override + public void deleteTbl_HardWare_Type(Tbl_HardWare_Type tbl_HardWare_Type) { + if (StringUtils.isNotBlank(tbl_HardWare_Type.getHardwareType())) { + redisHelperI.delRedisByTagKey(getTbl_HardWare_TypeRedisKeyByTypeCode(tbl_HardWare_Type.getHardwareType())); + } + } + } diff --git a/src/main/java/com/ifish/helper/RedisKeyHelperI.java b/src/main/java/com/ifish/helper/RedisKeyHelperI.java index bb36d7f..d820c99 100644 --- a/src/main/java/com/ifish/helper/RedisKeyHelperI.java +++ b/src/main/java/com/ifish/helper/RedisKeyHelperI.java @@ -8,6 +8,7 @@ package com.ifish.helper; import com.ifish.bean.Tbl_Device; import com.ifish.bean.Tbl_Device_Statistics; import com.ifish.bean.Tbl_Device_User; +import com.ifish.bean.Tbl_HardWare_Type; import com.ifish.bean.Tbl_Live_Message; import com.ifish.bean.Tbl_Live_Room; import com.ifish.bean.Tbl_Push_List; @@ -388,4 +389,11 @@ public interface RedisKeyHelperI { */ public void deleteTbl_Vender_List_RedisKey(); + /** + * 删除设备类型缓存 + * + * @param tbl_HardWare_Type + */ + public void deleteTbl_HardWare_Type(Tbl_HardWare_Type tbl_HardWare_Type); + } diff --git a/src/main/java/com/ifish/helper/UserHelper.java b/src/main/java/com/ifish/helper/UserHelper.java index 87be1f6..3a6651f 100644 --- a/src/main/java/com/ifish/helper/UserHelper.java +++ b/src/main/java/com/ifish/helper/UserHelper.java @@ -11,7 +11,7 @@ import com.ifish.bean.Tbl_Device_User; 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.bean.Tbl_Vender_List; import com.ifish.mapper.Tbl_Push_List_Mapper; import com.ifish.mapper.Tbl_User_Mapper; import com.ifish.util.IfishUtil; @@ -243,7 +243,7 @@ public class UserHelper implements UserHelperI { } else { //设备信息 Tbl_HardWare_Type hardWare_Type = hardWareTypeHelperI.getHardwareTypeByTypeCode(device.getHardwareType()); - Tbl_Vender vender = hardWareTypeHelperI.getVenderListByHardwareTypeCode(hardWare_Type.getHardwareType()); + Tbl_Vender_List vender = hardWareTypeHelperI.getVenderListByHardwareTypeCode(hardWare_Type.getHardwareType()); Tbl_Device_Statistics device_Statistics = deviceHelper.getDeviceStatisticsByDeviceId(device.getDeviceId()); Map map = new HashMap(); //设备ID diff --git a/src/main/java/com/ifish/helper/VersionHelper.java b/src/main/java/com/ifish/helper/VersionHelper.java new file mode 100644 index 0000000..734db01 --- /dev/null +++ b/src/main/java/com/ifish/helper/VersionHelper.java @@ -0,0 +1,201 @@ +/* + * 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_Version; +import com.ifish.mapper.Tbl_Version_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 VersionHelper implements VersionHelperI { + + @Autowired + private Tbl_Version_Mapper tbl_Version_Mapper; + + /** + * 版本管理首页 + * + * @return + */ + @Override + public ModelAndView getVersionlist() { + ModelAndView mv = new ModelAndView(); + mv.setViewName("versionlist"); + mv.addObject("pagetitle", "版本管理"); + mv.addObject("title", "版本管理"); + mv.addObject("myjs", "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "" + + "" + + " \n" + + " \n" + + " \n" + + " \n" + + "" + + " \n" + + " "); + return mv; + } + + /** + * 版本管理页面数据 + * + * @param phoneType + * @param content + * @param draw + * @param start + * @param length + * @return + */ + @Override + public Object getVerisonlistData(String phoneType, String content, String draw, Integer start, Integer length) { + List list = tbl_Version_Mapper.getVersionListData(phoneType, content, start, length); + for (Map map : list) { + String dateTime = IfishUtil.format((Date) map.get("createTime")); + map.put("createTime", dateTime); + } + Integer allCount = tbl_Version_Mapper.getAllVersionListDataCount(); + Integer count = 0; + if (StringUtils.isNotBlank(phoneType) || StringUtils.isNotBlank(content)) { + count = tbl_Version_Mapper.getVeriosnListDataCountBySelect(phoneType, content); + } else { + count = allCount; + } + Map map = new HashMap(); + map.put("data", list); + map.put("draw", draw); + map.put("recordsTotal", allCount); + map.put("recordsFiltered", count); + return map; + } + + /** + * 版本详情页 + * + * @param versionId + * @return + */ + @Override + public ModelAndView getVersionDetail(String versionId) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("versiondetail"); + mv.addObject("pagetitle", "版本详情"); + mv.addObject("title", "版本详情"); + if (StringUtils.isNotBlank(versionId)) { + Tbl_Version tbl_Version = tbl_Version_Mapper.getTbl_VersionById(versionId); + mv.addObject("version", tbl_Version); + mv.addObject("type", "update"); + } + mv.addObject("myjs", "\n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + " \n" + + "" + + "" + + " \n" + + " \n" + + " \n" + + " \n" + + " "); + return mv; + } + + /** + * 删除版本管理 + * + * @param versionId + * @return + */ + @Override + public Object deleteVersion(String versionId) { + try { + int i = tbl_Version_Mapper.deleteTbl_VersionById(versionId); + if (i > 0) { + return "成功"; + } + } catch (Exception e) { + } + return "失败"; + } + + /** + * 新增一个版本信息 + * + * @param tbl_Version + * @return + */ + @Override + public Object addVerison(Tbl_Version tbl_Version) { + try { + int i = tbl_Version_Mapper.addTbl_Version(tbl_Version); + if (i > 0) { + return "成功"; + } + } catch (Exception e) { + } + return "失败"; + } + + /** + * 修改一个版本信息 + * + * @param tbl_Version + * @return + */ + @Override + public Object updateVersion(Tbl_Version tbl_Version) { + try { + int i = tbl_Version_Mapper.updateTbl_Version(tbl_Version); + if (i > 0) { + return "成功"; + } + } catch (Exception e) { + } + return "失败"; + } + + /** + * 修改版本是否强制升级 + * + * @param versionId + * @param isMustUpdate + * @return + */ + @Override + public Object versionShowUpdate(String versionId, String isMustUpdate) { + try { + int i = tbl_Version_Mapper.updateTbl_VersionisMustUpdate(isMustUpdate, versionId); + if (i > 0) { + return "成功"; + } + } catch (Exception e) { + } + return "失败"; + } + +} diff --git a/src/main/java/com/ifish/helper/VersionHelperI.java b/src/main/java/com/ifish/helper/VersionHelperI.java new file mode 100644 index 0000000..10ee185 --- /dev/null +++ b/src/main/java/com/ifish/helper/VersionHelperI.java @@ -0,0 +1,77 @@ +/* + * 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_Version; +import org.springframework.web.servlet.ModelAndView; + +/** + * + * @author Administrator + */ +public interface VersionHelperI { + + /** + * 版本管理首页 + * + * @return + */ + public ModelAndView getVersionlist(); + + /** + * 版本管理页面数据 + * + * @param phoneType + * @param content + * @param draw + * @param start + * @param length + * @return + */ + public Object getVerisonlistData(String phoneType, String content, String draw, Integer start, Integer length); + + /** + * 版本详情页 + * + * @param versionId + * @return + */ + public ModelAndView getVersionDetail(String versionId); + + /** + * 新增一个版本信息 + * + * @param tbl_Version + * @return + */ + public Object addVerison(Tbl_Version tbl_Version); + + /** + * 删除版本管理 + * + * @param versionId + * @return + */ + public Object deleteVersion(String versionId); + + /** + * 修改一个版本信息 + * + * @param tbl_Version + * @return + */ + public Object updateVersion(Tbl_Version tbl_Version); + + /** + * 修改版本是否强制升级 + * + * @param versionId + * @param isMustUpdate + * @return + */ + public Object versionShowUpdate(String versionId, String isMustUpdate); + +} diff --git a/src/main/java/com/ifish/mapper/Tbl_Device_Mapper.java b/src/main/java/com/ifish/mapper/Tbl_Device_Mapper.java index 598d89f..a138d98 100644 --- a/src/main/java/com/ifish/mapper/Tbl_Device_Mapper.java +++ b/src/main/java/com/ifish/mapper/Tbl_Device_Mapper.java @@ -11,6 +11,7 @@ import com.ifish.bean.Tbl_Device_Statistics; import com.ifish.bean.Tbl_Device_User; import com.ifish.bean.Tbl_HardWare_Type; import com.ifish.bean.Tbl_Login_Record; +import com.ifish.bean.Tbl_Operate_record; import com.ifish.bean.Tbl_Upgrade_Notes; import java.util.Date; import java.util.List; @@ -518,4 +519,14 @@ public interface Tbl_Device_Mapper { */ @Select("SELECT COUNT(1) FROM Tbl_hardware_type ") Integer getAllHardware_Type_MapperListCount(); + + /** + * 插入一套分配授权数据 + * + * @param tbl_Operate_record + * @return + */ + @Insert("INSERT INTO tbl_operate_record(record_number,record_ip,factory_code,record_type,create_time,create_code) VALUES (" + + "#{record.recordNumber},#{record.recordIp},#{record.factoryCode},#{record.recordType},NOW(),#{record.createCode})") + Integer insertTbl_Operate_records(@Param("record") Tbl_Operate_record tbl_Operate_record); } diff --git a/src/main/java/com/ifish/mapper/Tbl_Device_MapperSql.java b/src/main/java/com/ifish/mapper/Tbl_Device_MapperSql.java index 5d86d60..28169bf 100644 --- a/src/main/java/com/ifish/mapper/Tbl_Device_MapperSql.java +++ b/src/main/java/com/ifish/mapper/Tbl_Device_MapperSql.java @@ -8,6 +8,7 @@ package com.ifish.mapper; import com.ifish.bean.Tbl_Device; import com.ifish.bean.Tbl_Device_Statistics; import com.ifish.bean.Tbl_Device_User; +import com.ifish.bean.Tbl_HardWare_Type; import com.ifish.bean.Tbl_Upgrade_Notes; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; @@ -849,7 +850,7 @@ public class Tbl_Device_MapperSql { if (StringUtils.isNotBlank(showName)) { sb.append(" where hardware_name like '%").append(showName).append("%'"); } - sb.append(" order by create_time limit ").append(start).append(",").append(length); + sb.append(" order by hardware_type limit ").append(start).append(",").append(length); return sb.toString(); } @@ -869,4 +870,25 @@ public class Tbl_Device_MapperSql { } return sb.toString(); } + + /** + * 修改一条设备类型信息 + * + * @param tbl_HardWare_Type + * @return + */ + public String updateHardwareType(@Param("hard") Tbl_HardWare_Type tbl_HardWare_Type) { + StringBuilder sb = new StringBuilder(); +// UPDATE tbl_hardware_type set hardware_name=#{hard.hardwareName},factory_code=#{hard.factoryCode},hardware_desc=#{hard.hardwareDesc}," +// + "control_amount=#{hard.controlAmount},timer_amount=#{hard.timerAmount},is_custom_icon=#{hard.isCustomIcon},icon_link=#{hard.iconLink},all_icon_name=#{hard.allIconName},update_time=NOW(),is_lightness" +// + "=#{hard.isLightness},is_sark_lamp=#{hard.isSarkLamp},is_work_model=#{hard.isWorkModel},all_show_name=#{hard.allShowName},default_show_name=#{hard.defaultShowName},default_icon_name=#{hard.defaultIconName}" +// + " WHERE hardware_type=#{hard.hardwareType} + sb.append("UPDATE tbl_hardware_type set hardware_name='" + tbl_HardWare_Type.getHardwareName() + "',factory_code='" + tbl_HardWare_Type.getFactoryCode() + "',hardware_desc='" + tbl_HardWare_Type.getHardwareDesc() + + "',control_amount='" + tbl_HardWare_Type.getControlAmount() + "',timer_amount='" + tbl_HardWare_Type.getTimerAmount() + "',is_custom_icon='" + tbl_HardWare_Type.getIsCustomIcon() + "',icon_link='" + tbl_HardWare_Type.getIconLink() + + "',all_icon_name='" + tbl_HardWare_Type.getAllIconName() + "',update_time=NOW(),is_lightness='" + tbl_HardWare_Type.getIsLightness() + "',is_sark_lamp='" + tbl_HardWare_Type.getIsSarkLamp() + "',is_work_model='" + + tbl_HardWare_Type.getIsWorkModel() + "',all_show_name='" + tbl_HardWare_Type.getAllShowName() + "',default_show_name='" + tbl_HardWare_Type.getDefaultShowName() + "',default_icon_name='" + + tbl_HardWare_Type.getDefaultIconName() + "' WHERE hardware_type='" + tbl_HardWare_Type.getHardwareType() + "'"); + + return sb.toString(); + } } diff --git a/src/main/java/com/ifish/mapper/Tbl_Factory_List_Mapper.java b/src/main/java/com/ifish/mapper/Tbl_Factory_List_Mapper.java index be3d8c8..ad132ef 100644 --- a/src/main/java/com/ifish/mapper/Tbl_Factory_List_Mapper.java +++ b/src/main/java/com/ifish/mapper/Tbl_Factory_List_Mapper.java @@ -7,7 +7,6 @@ package com.ifish.mapper; import com.ifish.bean.Tbl_Factory_List; import com.ifish.bean.Tbl_HardWare_Type; -import com.ifish.bean.Tbl_Vender; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Delete; diff --git a/src/main/java/com/ifish/mapper/Tbl_Hardware_Type_Mapper.java b/src/main/java/com/ifish/mapper/Tbl_Hardware_Type_Mapper.java index 69d83ba..0e5d68b 100644 --- a/src/main/java/com/ifish/mapper/Tbl_Hardware_Type_Mapper.java +++ b/src/main/java/com/ifish/mapper/Tbl_Hardware_Type_Mapper.java @@ -6,12 +6,13 @@ package com.ifish.mapper; import com.ifish.bean.Tbl_HardWare_Type; -import com.ifish.bean.Tbl_Vender; +import com.ifish.bean.Tbl_Vender_List; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; +import org.apache.ibatis.annotations.UpdateProvider; /** * @@ -26,7 +27,7 @@ public interface Tbl_Hardware_Type_Mapper { * @return */ @Select("select hardware_type,hardware_name,control_amount,timer_amount,is_work_model,is_custom_icon,all_icon_name,all_show_name,default_icon_name,default_show_name," - + "icon_link,is_lightness,is_sark_lamp,hardware_desc,update_time,create_time from tbl_hardware_type where hardware_type=#{type}") + + "icon_link,is_lightness,is_sark_lamp,hardware_desc,update_time,create_time,factory_code from tbl_hardware_type where hardware_type=#{type}") Tbl_HardWare_Type getHardwareTypeByTypeCode(@Param("type") String type); /** @@ -36,7 +37,7 @@ public interface Tbl_Hardware_Type_Mapper { * @return */ @Select("select brand_code,brand_name,brand_introduce,brand_logo from tbl_vender_list where brand_code=#{code}") - Tbl_Vender getVenderListByBrandCode(@Param("code") String code); + Tbl_Vender_List getVenderListByBrandCode(@Param("code") String code); /** * 根据设备型号获取厂家信息 @@ -46,7 +47,7 @@ public interface Tbl_Hardware_Type_Mapper { * @throws Exception */ @Select("select a.brand_code,brand_name,brand_introduce,brand_logo from tbl_vender_list a LEFT JOIN tbl_vender_hardware b ON a.brand_code = b.brand_code where b.hardware_type=#{code}") - Tbl_Vender getVenderListByHardwareTypeCode(@Param("code") String code); + Tbl_Vender_List getVenderListByHardwareTypeCode(@Param("code") String code); /** * 插入一条设备类型数据 @@ -66,8 +67,20 @@ public interface Tbl_Hardware_Type_Mapper { * @param tbl_HardWare_Type * @return */ - @Update("") +// @Update("UPDATE tbl_hardware_type set hardware_name=#{hard.hardwareName},factory_code=#{hard.factoryCode},hardware_desc=#{hard.hardwareDesc}," +// + "control_amount=#{hard.controlAmount},timer_amount=#{hard.timerAmount},is_custom_icon=#{hard.isCustomIcon},icon_link=#{hard.iconLink},all_icon_name=#{hard.allIconName},update_time=NOW(),is_lightness" +// + "=#{hard.isLightness},is_sark_lamp=#{hard.isSarkLamp},is_work_model=#{hard.isWorkModel},all_show_name=#{hard.allShowName},default_show_name=#{hard.defaultShowName},default_icon_name=#{hard.defaultIconName}" +// + " WHERE hardware_type=#{hard.hardwareType}") + @UpdateProvider(type = Tbl_Device_MapperSql.class, method = "updateHardwareType") Integer updateHardwareType(@Param("hard") Tbl_HardWare_Type tbl_HardWare_Type); - - + + /** + * 删除一条设备信息 + * + * @param tbl_HardWare_Type + * @return + */ + @Delete("delete from tbl_hardware_type where hardware_type=#{hard.hardwareType}") + Integer deleteHardwareType(@Param("hard") Tbl_HardWare_Type tbl_HardWare_Type); + } diff --git a/src/main/java/com/ifish/mapper/Tbl_Pay_Bill_Mapper.java b/src/main/java/com/ifish/mapper/Tbl_Pay_Bill_Mapper.java index f736e98..fcded3e 100644 --- a/src/main/java/com/ifish/mapper/Tbl_Pay_Bill_Mapper.java +++ b/src/main/java/com/ifish/mapper/Tbl_Pay_Bill_Mapper.java @@ -9,6 +9,7 @@ import com.ifish.bean.Tbl_Operate_record; import com.ifish.bean.Tbl_Payee_Info; import java.util.List; import java.util.Map; +import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.SelectProvider; @@ -106,4 +107,6 @@ public interface Tbl_Pay_Bill_Mapper { */ @Select("Select count(1) from tbl_operate_record where record_type='1' and factory_code = #{code} AND #{date}=date_format(create_time,'%Y-%m')") Integer getOperate_recordsCount(@Param("code") String factoryCode, @Param("date") String billMonth); + + } diff --git a/src/main/java/com/ifish/mapper/Tbl_Push_List_MapperSql.java b/src/main/java/com/ifish/mapper/Tbl_Push_List_MapperSql.java index e22048c..7e9386b 100644 --- a/src/main/java/com/ifish/mapper/Tbl_Push_List_MapperSql.java +++ b/src/main/java/com/ifish/mapper/Tbl_Push_List_MapperSql.java @@ -69,6 +69,8 @@ public class Tbl_Push_List_MapperSql { } if (StringUtils.isNotBlank(pushType)) { sb.append(" AND a.push_type = #{pushType}"); + } else { + sb.append(" AND a.push_type <> 'remind_water'"); } if (StringUtils.isNotBlank(sdkVersion)) { sb.append(" AND c.sdk_version = #{sdkversion}"); @@ -115,6 +117,8 @@ public class Tbl_Push_List_MapperSql { } if (StringUtils.isNotBlank(pushType)) { sb.append(" AND a.push_type = #{pushType}"); + } else { + sb.append(" AND a.push_type <> 'remind_water'"); } if (StringUtils.isNotBlank(sdkVersion)) { sb.append(" AND c.sdk_version = #{sdkversion}"); @@ -125,13 +129,6 @@ public class Tbl_Push_List_MapperSql { if (StringUtils.isNotBlank(mac)) { sb.append(" AND b.mac_address = #{mac}"); } - if (StringUtils.isBlank(sortField)) { - sortField = "push_id"; - } - if (StringUtils.isBlank(sortMode)) { - sortMode = "DESC"; - } - sb.append("ORDER BY a." + sortField + " " + sortMode); return sb.toString(); } @@ -143,7 +140,7 @@ public class Tbl_Push_List_MapperSql { public String getPushListDataAllCount() { StringBuilder sb = new StringBuilder(); sb.append("SELECT COUNT(1) "); - sb.append(" from tbl_push_list a"); + sb.append(" from tbl_push_list a where a.push_type <> 'remind_water'"); return sb.toString(); } diff --git a/src/main/java/com/ifish/mapper/Tbl_Version_Mapper.java b/src/main/java/com/ifish/mapper/Tbl_Version_Mapper.java new file mode 100644 index 0000000..007363d --- /dev/null +++ b/src/main/java/com/ifish/mapper/Tbl_Version_Mapper.java @@ -0,0 +1,96 @@ +/* + * 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 com.ifish.bean.Tbl_Version; +import java.util.List; +import java.util.Map; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +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_Version_Mapper { + + /** + * 查询版本数据 + * + * @param phoneType + * @param context + * @param start + * @param length + * @return + */ + @SelectProvider(type = Tbl_Version_MapperSql.class, method = "getVersionListData") + List getVersionListData(@Param("type") String phoneType, String context, Integer start, Integer length); + + /** + * 查询版本数据数量 + * + * @param phoneType + * @param context + * @return + */ + @SelectProvider(type = Tbl_Version_MapperSql.class, method = "getVeriosnListDataCountBySelect") + Integer getVeriosnListDataCountBySelect(@Param("type") String phoneType, String context); + + /** + * 查询版本数据总数 + */ + @Select("SELECT COUNT(1) FROM Tbl_version") + Integer getAllVersionListDataCount(); + + /** + * 根据ID获取版本对象 + * + * @param versionId + * @return + */ + @Select("SELECT * FROM Tbl_version WHERE version_id = #{versionId}") + Tbl_Version getTbl_VersionById(@Param("versionId") String versionId); + + /** + * 根据ID删除一个版本管理数据 + */ + @Delete("DELETE FROM Tbl_version WHERE version_id = #{id}") + Integer deleteTbl_VersionById(@Param("id") String versionId); + + /** + * 插入一条版本信息 + * + * @param tbl_Version + * @return + */ + @Insert("INSERT INTO TBL_VERSION(version_code,is_must_update,app_address,upload_content,create_time,phone_type) VALUES(#{version.versionCode},#{version.isMustUpdate},#{version.appAddress}," + + "#{version.uploadContent},NOW(),#{version.phoneType})") + Integer addTbl_Version(@Param("version") Tbl_Version tbl_Version); + + /** + * 修改一个版本信息 + * + * @param tbl_Version + * @return + */ + @Update("UPDATE TBL_VERSION SET version_code=#{version.versionCode},is_must_update=#{version.isMustUpdate},app_address=#{version.appAddress}," + + "upload_content=#{version.uploadContent},phone_type=#{version.phoneType} WHERE version_id = #{version.versionId}") + Integer updateTbl_Version(@Param("version") Tbl_Version tbl_Version); + + /** + * 修改强制升级 + * + * @param isMustUpdate + * @param versionId + * @return + */ + @Update("UPDATE TBL_VERSION SET is_must_update=#{isMustUpdate} WHERE version_id = #{versionId}") + Integer updateTbl_VersionisMustUpdate(@Param("isMustUpdate") String isMustUpdate, @Param("versionId") String versionId); +} diff --git a/src/main/java/com/ifish/mapper/Tbl_Version_MapperSql.java b/src/main/java/com/ifish/mapper/Tbl_Version_MapperSql.java new file mode 100644 index 0000000..9186c17 --- /dev/null +++ b/src/main/java/com/ifish/mapper/Tbl_Version_MapperSql.java @@ -0,0 +1,64 @@ +/* + * 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_Version_MapperSql { + + /** + * 查询版本数据 + * + * @param phoneType + * @param context + * @param start + * @param length + * @return + */ + public String getVersionListData(@Param("type") String phoneType, String context, Integer start, Integer length) { + StringBuilder sb = new StringBuilder(); + + sb.append("SELECT version_id versionId,version_code versionCode,is_must_update isMustUpdate,app_address appAddress,upload_content uploadContent,create_time createTime,phone_type phoneType "); + sb.append(" from tbl_version WHERE 1=1 "); + if (StringUtils.isNotBlank(phoneType)) { + sb.append(" AND phone_type = #{type}"); + } + if (StringUtils.isNotBlank(context)) { + sb.append(" AND upload_content like '%").append(context).append("%'"); + } + sb.append(" ORDER BY version_id DESC LIMIT ").append(start).append(",").append(length); + + return sb.toString(); + } + + /** + * 查询版本数据数量 + * + * @param phoneType + * @param context + * @return + */ + public String getVeriosnListDataCountBySelect(@Param("type") String phoneType, String context) { + StringBuilder sb = new StringBuilder(); + + sb.append("SELECT count(1) "); + sb.append(" from tbl_version WHERE 1=1 "); + if (StringUtils.isNotBlank(phoneType)) { + sb.append(" AND phone_type = #{type}"); + } + if (StringUtils.isNotBlank(context)) { + sb.append(" AND upload_content like '%").append(context).append("%'"); + } + + return sb.toString(); + } + +} diff --git a/src/main/java/com/ifish/util/IfishUtil.java b/src/main/java/com/ifish/util/IfishUtil.java index b515c0e..aba4806 100644 --- a/src/main/java/com/ifish/util/IfishUtil.java +++ b/src/main/java/com/ifish/util/IfishUtil.java @@ -23,6 +23,7 @@ import java.util.Map; import java.util.Random; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.JavaType; @@ -491,4 +492,46 @@ public class IfishUtil { } return sb.toString(); } + + /** + * 获取IP + * + * @param request + * @return + */ + public static String getIp(HttpServletRequest request) { + String ip = request.getHeader("X-Forwarded-For"); + if (!org.springframework.util.StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) { + //多次反向代理后会有多个ip值,第一个ip才是真实ip + int index = ip.indexOf(","); + if (index != -1) { + return ip.substring(0, index); + } else { + return ip; + } + } + ip = request.getHeader("X-Real-IP"); + if (!org.springframework.util.StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) { + return ip; + } + return request.getRemoteAddr(); + } + + /** + * 生成编号 + * + * @return + */ + public static String getCode() { + Calendar calendar = Calendar.getInstance(); + String hexYear = String.format("%04d", calendar.get(Calendar.YEAR)); + String hexMonth = String.format("%02d", (calendar.get(Calendar.MONTH) + 1)); + String hexDate = String.format("%02d", calendar.get(Calendar.DATE)); + String hexHours = String.format("%02d", calendar.get(Calendar.HOUR_OF_DAY)); + String hexMinutes = String.format("%02d", calendar.get(Calendar.MINUTE)); + String hexSeconds = String.format("%02d", calendar.get(Calendar.SECOND)); + String millisecond = String.format("%03d", calendar.get(Calendar.MILLISECOND)); + String code = "BH" + hexYear + hexMonth + hexDate + "_" + hexHours + hexMinutes + hexSeconds + millisecond; + return code; + } } diff --git a/src/main/webapp/WEB-INF/layout/IndexPage.jsp b/src/main/webapp/WEB-INF/layout/IndexPage.jsp index 525822c..2ddde54 100644 --- a/src/main/webapp/WEB-INF/layout/IndexPage.jsp +++ b/src/main/webapp/WEB-INF/layout/IndexPage.jsp @@ -39,6 +39,7 @@ + @@ -67,8 +68,7 @@ - - + @@ -82,6 +82,13 @@ ${myjs} + @@ -120,7 +127,7 @@
  • 设备绑定
  • -
  • 设备类型 +
  • 设备类型
  • 登陆记录
  • @@ -146,12 +153,12 @@ + +
  • 版本管理 +
  • + + diff --git a/src/main/webapp/WEB-INF/layout/header.jsp b/src/main/webapp/WEB-INF/layout/header.jsp index 24c5eab..07c60a3 100644 --- a/src/main/webapp/WEB-INF/layout/header.jsp +++ b/src/main/webapp/WEB-INF/layout/header.jsp @@ -19,15 +19,21 @@