diff --git a/pom.xml b/pom.xml index 91c03da..7d28eaa 100644 --- a/pom.xml +++ b/pom.xml @@ -131,12 +131,12 @@ 5.7.20 - - - org.apache.shiro - shiro-spring-boot-starter - 1.11.0 - + + + + + + diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java index 20acd4f..3d8441b 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/XymanagerAdminApplication.java @@ -1,9 +1,7 @@ package com.shxy.xymanager_admin; -import com.shxy.xymanager_service.service.DyLevelService; import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; diff --git a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TestController.java b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TestController.java index bb3d729..63a1ff7 100644 --- a/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TestController.java +++ b/xymanager_admin/src/main/java/com/shxy/xymanager_admin/controller/TestController.java @@ -6,6 +6,11 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.IncorrectCredentialsException; +import org.apache.shiro.authc.UnknownAccountException; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -18,20 +23,40 @@ import org.springframework.web.bind.annotation.RestController; @Slf4j public class TestController { -// @ApiOperation(value = "测试", notes = "测试notes", httpMethod = "POST") + @ApiOperation(value = "测试", notes = "测试notes", httpMethod = "POST") + @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) + @RequestMapping("/user/login") + @Log(title = "测试", type = "查询") + public String gettest() { + log.info("有一个沙雕点了链接"); + return "/api/index2"; + } + + @GetMapping("/user/logins") + @Log(title = "测试", type = "查询") + public String hhtest() { + log.info("有一个沙雕点了链接"); + return "/api/index2.html"; + } + + @ApiOperation(value = "登录", notes = "登录", httpMethod = "POST") // @ApiResponses({@ApiResponse(code = 200, message = "请求成功"), @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对")}) -// @RequestMapping("/getBannerList") -// @Log(title = "测试", type = "查询") -// public String gettest() { -// log.info("有一个沙雕点了链接"); -// return "index222"; -// } -// -// -// @GetMapping("") -// @Log(title = "测试", type = "查询") -// public String hhtest() { -// log.info("有一个沙雕点了链接"); -// return "index2"; -// } + @RequestMapping("/login") + @Log(title = "登录", type = "查询") + public String login(String username, String password) { + //获取主题对象 + Subject subject = SecurityUtils.getSubject(); + try { + subject.login(new UsernamePasswordToken(username,password)); + System.out.println("登录成功!!!"); + return "登录成功"; + } catch (UnknownAccountException e) { + e.printStackTrace(); + System.out.println("用户错误!!!"); + } catch (IncorrectCredentialsException e) { + System.out.println("密码错误!!!"); + } + return "登录失败"; + } + } diff --git a/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java b/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java index 2a044fb..b219aef 100644 --- a/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java +++ b/xymanager_admin/src/test/java/com/shxy/xymanager_admin/XymanagerAdminApplicationTests.java @@ -2,16 +2,23 @@ package com.shxy.xymanager_admin; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; +import com.shxy.xymanager_common.dto.ChannelAndTermDto; +import com.shxy.xymanager_common.dto.PhotoAndLineAndChannelDto; +import com.shxy.xymanager_common.dto.TermAndChannelLatestPhotoMapperDto; import com.shxy.xymanager_common.entity.DyLevel; import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.model.LineAndGtAndChannelListModel; import com.shxy.xymanager_common.util.MyDateUtils; +import com.shxy.xymanager_common.util.SaltUtil; import com.shxy.xymanager_dao.dao.*; +import io.swagger.models.auth.In; +import org.apache.shiro.crypto.hash.Md5Hash; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.math.BigInteger; +import java.util.ArrayList; import java.util.List; @SpringBootTest @@ -27,6 +34,9 @@ class XymanagerAdminApplicationTests { LinesDao linesDao; @Autowired private DyLevelDao dyLevelDao; + + @Autowired + private TerminalPhotoDao terminalPhotoDao; @Test void contextLoads() { @@ -88,13 +98,33 @@ class XymanagerAdminApplicationTests { // List beans = BeanUtil.copyToList(list, LineAndGtAndChannelListModel.Bean.class); // System.out.println(beans.toArray()); - BigInteger time = MyDateUtils.TimeSecond2MillSecond(1683682322); - DateTime date = MyDateUtils.date(time.longValue()); - BigInteger time1 = MyDateUtils.TimeSecond2MillSecond(1683683185); - DateTime date1 = MyDateUtils.date(time1.longValue()); - BigInteger time2 = MyDateUtils.TimeSecond2MillSecond(1683683196); - DateTime date2 = MyDateUtils.date(time2.longValue()); - System.out.println(date + " " + date2 ); +// BigInteger time = MyDateUtils.TimeSecond2MillSecond(1683682322); +// DateTime date = MyDateUtils.date(time.longValue()); +// BigInteger time1 = MyDateUtils.TimeSecond2MillSecond(1683683185); +// DateTime date1 = MyDateUtils.date(time1.longValue()); +// BigInteger time2 = MyDateUtils.TimeSecond2MillSecond(1683683196); +// DateTime date2 = MyDateUtils.date(time2.longValue()); +// System.out.println(date + " " + date2 ); + +// List list = new ArrayList<>(); +// list.add(10002); +// list.add(10005); +// List lists = terminalPhotoDao.selectTermAndChannelLatestPhotoList(list); +// System.out.println(lists); +// List list = terminalsDao.selectChannelAndTermList(CommonStatus.EFFECTIVE.value()); +// System.out.println(list); + + + //1.获取随机盐 + String salt = SaltUtil.getSalt(8); + //2.将随机盐保存到数据 +// user.setSalt(salt); + //3.明文密码进行md5 + salt + hash散列 + Md5Hash MD5 = new Md5Hash("123456",salt,1024); + System.out.println(MD5.toHex()); + System.out.println(""); +// user.setPassword(MD5.toHex()); +// userDao.save(user); } } diff --git a/xymanager_common/pom.xml b/xymanager_common/pom.xml index d90f373..c68d91e 100644 --- a/xymanager_common/pom.xml +++ b/xymanager_common/pom.xml @@ -123,6 +123,13 @@ org.springframework.boot spring-boot-starter-validation + + + + + + + org.springframework.boot diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java index d7045c8..8566b4b 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/Terminals.java @@ -41,6 +41,9 @@ public class Terminals implements Serializable { private Date updateTime; + /*展示名字 等价与displayname 用于方便*/ + private String name; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineAndTermModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineAndTermModel.java index 98e0874..a591fab 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineAndTermModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/DyLineAndTermModel.java @@ -62,7 +62,7 @@ public class DyLineAndTermModel implements Serializable { private String cmdid; @ApiModelProperty(value = "显示名", example = "名称名称") - private String displayName; + private String name; } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/ApplicationContextUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/ApplicationContextUtil.java new file mode 100644 index 0000000..921f531 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/ApplicationContextUtil.java @@ -0,0 +1,22 @@ +package com.shxy.xymanager_common.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + + private static ApplicationContext context; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + this.context = applicationContext; + } + + //根据bean名字获取工厂中指定bean 对象 + public static Object getBean(String beanName) { + return context.getBean(beanName); + } +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/SaltUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/SaltUtil.java new file mode 100644 index 0000000..4070f07 --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/SaltUtil.java @@ -0,0 +1,19 @@ +package com.shxy.xymanager_common.util; + +import java.util.Random; + +public class SaltUtil { + public static String getSalt(int n) { + char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890!@#$%^&*()".toCharArray(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < n; i++) { + char c = chars[new Random().nextInt(chars.length)]; + sb.append(c); + } + return sb.toString(); + } + + public static void main(String[] args) { + System.out.println(getSalt(4)); + } +} \ No newline at end of file diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/VerifyCodeUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/VerifyCodeUtils.java new file mode 100644 index 0000000..03be2ec --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/VerifyCodeUtils.java @@ -0,0 +1,269 @@ +package com.shxy.xymanager_common.util; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Arrays; +import java.util.Random; + +public class VerifyCodeUtils { + + //使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符 + public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ"; + private static Random random = new Random(); + + + /** + * 使用系统默认字符源生成验证码 + * + * @param verifySize 验证码长度 + * @return + */ + public static String generateVerifyCode(int verifySize) { + return generateVerifyCode(verifySize, VERIFY_CODES); + } + + /** + * 使用指定源生成验证码 + * + * @param verifySize 验证码长度 + * @param sources 验证码字符源 + * @return + */ + public static String generateVerifyCode(int verifySize, String sources) { + if (sources == null || sources.length() == 0) { + sources = VERIFY_CODES; + } + int codesLen = sources.length(); + Random rand = new Random(System.currentTimeMillis()); + StringBuilder verifyCode = new StringBuilder(verifySize); + for (int i = 0; i < verifySize; i++) { + verifyCode.append(sources.charAt(rand.nextInt(codesLen - 1))); + } + return verifyCode.toString(); + } + + /** + * 生成随机验证码文件,并返回验证码值 + * + * @param w + * @param h + * @param outputFile + * @param verifySize + * @return + * @throws IOException + */ + public static String outputVerifyImage(int w, int h, File outputFile, int verifySize) throws IOException { + String verifyCode = generateVerifyCode(verifySize); + outputImage(w, h, outputFile, verifyCode); + return verifyCode; + } + + /** + * 输出随机验证码图片流,并返回验证码值 + * + * @param w + * @param h + * @param os + * @param verifySize + * @return + * @throws IOException + */ + public static String outputVerifyImage(int w, int h, OutputStream os, int verifySize) throws IOException { + String verifyCode = generateVerifyCode(verifySize); + outputImage(w, h, os, verifyCode); + return verifyCode; + } + + /** + * 生成指定验证码图像文件 + * + * @param w + * @param h + * @param outputFile + * @param code + * @throws IOException + */ + public static void outputImage(int w, int h, File outputFile, String code) throws IOException { + if (outputFile == null) { + return; + } + File dir = outputFile.getParentFile(); + if (!dir.exists()) { + dir.mkdirs(); + } + try { + outputFile.createNewFile(); + FileOutputStream fos = new FileOutputStream(outputFile); + outputImage(w, h, fos, code); + fos.close(); + } catch (IOException e) { + throw e; + } + } + + /** + * 输出指定验证码图片流 + * + * @param w + * @param h + * @param os + * @param code + * @throws IOException + */ + public static void outputImage(int w, int h, OutputStream os, String code) throws IOException { + int verifySize = code.length(); + BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); + Random rand = new Random(); + Graphics2D g2 = image.createGraphics(); + g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + Color[] colors = new Color[5]; + Color[] colorSpaces = new Color[]{Color.WHITE, Color.CYAN, + Color.GRAY, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, + Color.PINK, Color.YELLOW}; + float[] fractions = new float[colors.length]; + for (int i = 0; i < colors.length; i++) { + colors[i] = colorSpaces[rand.nextInt(colorSpaces.length)]; + fractions[i] = rand.nextFloat(); + } + Arrays.sort(fractions); + + g2.setColor(Color.GRAY);// 设置边框色 + g2.fillRect(0, 0, w, h); + + Color c = getRandColor(200, 250); + g2.setColor(c);// 设置背景色 + g2.fillRect(0, 2, w, h - 4); + + //绘制干扰线 + Random random = new Random(); + g2.setColor(getRandColor(160, 200));// 设置线条的颜色 + for (int i = 0; i < 20; i++) { + int x = random.nextInt(w - 1); + int y = random.nextInt(h - 1); + int xl = random.nextInt(6) + 1; + int yl = random.nextInt(12) + 1; + g2.drawLine(x, y, x + xl + 40, y + yl + 20); + } + + // 添加噪点 + float yawpRate = 0.05f;// 噪声率 + int area = (int) (yawpRate * w * h); + for (int i = 0; i < area; i++) { + int x = random.nextInt(w); + int y = random.nextInt(h); + int rgb = getRandomIntColor(); + image.setRGB(x, y, rgb); + } + + shear(g2, w, h, c);// 使图片扭曲 + + g2.setColor(getRandColor(100, 160)); + int fontSize = h - 4; + Font font = new Font("Algerian", Font.ITALIC, fontSize); + g2.setFont(font); + char[] chars = code.toCharArray(); + for (int i = 0; i < verifySize; i++) { + AffineTransform affine = new AffineTransform(); + affine.setToRotation(Math.PI / 4 * rand.nextDouble() * (rand.nextBoolean() ? 1 : -1), (w / verifySize) * i + fontSize / 2, h / 2); + g2.setTransform(affine); + g2.drawChars(chars, i, 1, ((w - 10) / verifySize) * i + 5, h / 2 + fontSize / 2 - 10); + } + + g2.dispose(); + ImageIO.write(image, "jpg", os); + } + + private static Color getRandColor(int fc, int bc) { + if (fc > 255) + fc = 255; + if (bc > 255) + bc = 255; + int r = fc + random.nextInt(bc - fc); + int g = fc + random.nextInt(bc - fc); + int b = fc + random.nextInt(bc - fc); + return new Color(r, g, b); + } + + private static int getRandomIntColor() { + int[] rgb = getRandomRgb(); + int color = 0; + for (int c : rgb) { + color = color << 8; + color = color | c; + } + return color; + } + + private static int[] getRandomRgb() { + int[] rgb = new int[3]; + for (int i = 0; i < 3; i++) { + rgb[i] = random.nextInt(255); + } + return rgb; + } + + private static void shear(Graphics g, int w1, int h1, Color color) { + shearX(g, w1, h1, color); + shearY(g, w1, h1, color); + } + + private static void shearX(Graphics g, int w1, int h1, Color color) { + + int period = random.nextInt(2); + + boolean borderGap = true; + int frames = 1; + int phase = random.nextInt(2); + + for (int i = 0; i < h1; i++) { + double d = (double) (period >> 1) + * Math.sin((double) i / (double) period + + (6.2831853071795862D * (double) phase) + / (double) frames); + g.copyArea(0, i, w1, 1, (int) d, 0); + if (borderGap) { + g.setColor(color); + g.drawLine((int) d, i, 0, i); + g.drawLine((int) d + w1, i, w1, i); + } + } + + } + + private static void shearY(Graphics g, int w1, int h1, Color color) { + + int period = random.nextInt(40) + 10; // 50; + + boolean borderGap = true; + int frames = 20; + int phase = 7; + for (int i = 0; i < w1; i++) { + double d = (double) (period >> 1) + * Math.sin((double) i / (double) period + + (6.2831853071795862D * (double) phase) + / (double) frames); + g.copyArea(i, 0, 1, h1, 0, (int) d); + if (borderGap) { + g.setColor(color); + g.drawLine(i, (int) d, i, 0); + g.drawLine(i, (int) d + h1, i, h1); + } + + } + + } + + public static void main(String[] args) throws IOException { + //获取验证码 + String s = generateVerifyCode(4); + //将验证码放入图片中 + outputImage(260, 60, new File("/Users/chenyannan/Desktop/安工资料/aa.jpg"), s); + System.out.println(s); + } +} \ No newline at end of file diff --git a/xymanager_dao/src/main/resources/generatorConfig.xml b/xymanager_dao/src/main/resources/generatorConfig.xml index 488c64b..9d8673e 100644 --- a/xymanager_dao/src/main/resources/generatorConfig.xml +++ b/xymanager_dao/src/main/resources/generatorConfig.xml @@ -152,9 +152,47 @@ - + + + + + + + + +
+ +
+ + +
+ + +
+ + + +
+ diff --git a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml index fdbf6b2..cfe294d 100644 --- a/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml +++ b/xymanager_dao/src/main/resources/mappers/DyLevelDao.xml @@ -44,7 +44,7 @@ - + diff --git a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml index 8ddda1f..d088d12 100644 --- a/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml +++ b/xymanager_dao/src/main/resources/mappers/TerminalsDao.xml @@ -104,10 +104,11 @@ e.id as channel_id, e.channel_name as channel_name from - ((((terminals a left join `lines` b on a.line_id = b.id and a.status = #{status}) + ((((terminals a left join `lines` b on a.line_id = b.id ) left join tower c on a.tower_id = c.id) left join terminal_channel_mapper d on a.id = d.term_id) left join terminal_channels e on d.channel_id = e.id) + WHERE a.status = 1 order by a.create_time desc @@ -354,8 +355,8 @@ line_id = #{data.lineid}, - - tower_id = #{data.towerid}, + + tower_id = #{data.towerid}, cmdid = #{data.cmdid}, diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java index 69c216f..72af0a3 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java @@ -111,7 +111,6 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { if (item.getMediaType() == 0) { photoBean.setPath(photoaddress + item.getPath()); } else { - photoBean.setPath(videoaddress + item.getPath()); if (StringUtils.isNotBlank(item.getThumb())) { photoBean.setThumb(videoaddress + item.getThumb()); @@ -287,7 +286,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { public ServiceBody getLatestPhoto(TerminalPhotoVo vo) { /* Cma cma = new Cma(server, port);*/ DateTime now = DateTime.now(); - String cmd =Constants.CMD+"capture --cmdid=" + vo.getCmdid() + "\t" + "--channel=" + vo.getChannel() + "\t" + "--preset=255 --type=" + vo.getCaptureType(); + String cmd = Constants.CMD + "capture --cmdid=" + vo.getCmdid() + "\t" + "--channel=" + vo.getChannel() + "\t" + "--preset=255 --type=" + vo.getCaptureType(); ProcessExecUtils.exec(cmd); /* Boolean hasNew = cma.requestCapture(vo.getCmdid(), vo.getChannel(), vo.getPreset(), vo.getCaptureType());*/ return Asserts.success(now); @@ -322,52 +321,54 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { PageUtils.SetPage(pageindex, pagesize); List list = terminalsDao.selectChannelAndTermList(CommonStatus.EFFECTIVE.value()); - - List termidlist = new ArrayList<>(); - for (ChannelAndTermDto item : list) { - Integer termid = item.getTermid(); - termidlist.add(termid); - } - - List lines = linesDao.selectLineByDyId(null, CommonStatus.EFFECTIVE.value()); - - List list2 = terminalPhotoDao.selectTermAndChannelLatestPhotoList(termidlist); List beans = new ArrayList<>(); - for (ChannelAndTermDto item : list) { - TerminalPhotosModel.PhotosBean photosBean = new TerminalPhotosModel.PhotosBean(); - photosBean.setTermid(item.getTermid()); - photosBean.setLineid(item.getLineid()); - photosBean.setChannnelname(item.getChannelname()); - photosBean.setChannelid(item.getChannelid()); - photosBean.setDisplayname(item.getDisplayname()); - for (int z = 0; z < lines.size(); z++) { - Lines lines1 = lines.get(z); - if (item.getLineid() == lines1.getId()) { - photosBean.setLinename(lines1.getName()); - break; - } + + if (!CollectionUtil.isEmpty(list)) { + List termidlist = new ArrayList<>(); + for (ChannelAndTermDto item : list) { + Integer termid = item.getTermid(); + termidlist.add(termid); } - for (int y = 0; y < list2.size(); y++) { - TermAndChannelLatestPhotoMapperDto item2 = list2.get(y); - if (item.getTermid().intValue() == item2.getTermid().intValue() && item.getChannelid().intValue() == item2.getChannelid().intValue()) { - photosBean.setPath(item2.getPath()); - BigInteger recvtime = MyDateUtils.TimeSecond2MillSecond(item2.getRecvTime().longValue()); - photosBean.setRecvTime(MyDateUtils.date(recvtime.longValue())); - BigInteger phototime = MyDateUtils.TimeSecond2MillSecond(item2.getPhotoTime().longValue()); - photosBean.setPhotoTime(MyDateUtils.date(phototime.longValue())); - photosBean.setMediatype(item2.getMediatype()); - if (item2.getMediatype().intValue() == 0) { - photosBean.setPath(photoaddress + item2.getPath()); - } else { - photosBean.setPath(videoaddress + item2.getPath()); + List lines = linesDao.selectLineByDyId(null, CommonStatus.EFFECTIVE.value()); + + List list2 = terminalPhotoDao.selectTermAndChannelLatestPhotoList(termidlist); + for (ChannelAndTermDto item : list) { + TerminalPhotosModel.PhotosBean photosBean = new TerminalPhotosModel.PhotosBean(); + photosBean.setTermid(item.getTermid()); + photosBean.setLineid(item.getLineid()); + photosBean.setChannnelname(item.getChannelname()); + photosBean.setChannelid(item.getChannelid()); + photosBean.setDisplayname(item.getDisplayname()); + for (int z = 0; z < lines.size(); z++) { + Lines lines1 = lines.get(z); + if (item.getLineid() == lines1.getId()) { + photosBean.setLinename(lines1.getName()); + break; } - photosBean.setOrginalid(item2.getOrginalid()); - photosBean.setPresetId(item2.getPresetId()); - break; } + for (int y = 0; y < list2.size(); y++) { + TermAndChannelLatestPhotoMapperDto item2 = list2.get(y); + if (item.getTermid().intValue() == item2.getTermid().intValue() && item.getChannelid().intValue() == item2.getChannelid().intValue()) { + photosBean.setPath(item2.getPath()); + BigInteger recvtime = MyDateUtils.TimeSecond2MillSecond(item2.getRecvTime().longValue()); + photosBean.setRecvTime(MyDateUtils.date(recvtime.longValue())); + BigInteger phototime = MyDateUtils.TimeSecond2MillSecond(item2.getPhotoTime().longValue()); + photosBean.setPhotoTime(MyDateUtils.date(phototime.longValue())); + photosBean.setMediatype(item2.getMediatype()); + if (item2.getMediatype().intValue() == 0) { + photosBean.setPath(photoaddress + item2.getPath()); + } else { + photosBean.setPath(videoaddress + item2.getPath()); + } + photosBean.setOrginalid(item2.getOrginalid()); + photosBean.setPresetId(item2.getPresetId()); + break; + } + } + beans.add(photosBean); } - beans.add(photosBean); } + model.setList(beans); PageInfo pageData = PageUtils.getPageData(list); int currentpage = pageData.getPageNum(); @@ -407,7 +408,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { span1 = (short) 0; span2 = span; } - String cmd = Constants.CMD+"schedule --flag=1 --cmdid=" + dtoList.get(j).getCmid() + "\t" + "--channel=" + vo.getChannel() + "\t" + String cmd = Constants.CMD + "schedule --flag=1 --cmdid=" + dtoList.get(j).getCmid() + "\t" + "--channel=" + vo.getChannel() + "\t" + "--group=3 --hour1=" + startHour + "\t" + "--min1=" + startMin + "\t" + "--preset1=255 --hour2=" + endTimeHour + "\t" + "--min2=" + endTimeMin + "\t" + "--preset2=255 --hour3=" + span1 + "\t" + "--min3=" + span2 + "\t" + "--preset3=255"; ProcessExecUtils.exec(cmd); @@ -419,7 +420,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { @Override public ServiceBody getPhotoQueryParam(ReturnedPhotoParamsGetVo vo) { GetModel model = new GetModel(); - String cmd = Constants.CMD+"act=imgparams --cmdid=" + vo.getCmdId() + "\t" + "--clientid=10 --reqid=" + Constants.REQUEST_ID + "\t" + "--flag=0 --rf=7 --channel=" + vo.getChannelId(); + String cmd = Constants.CMD + "act=imgparams --cmdid=" + vo.getCmdId() + "\t" + "--clientid=10 --reqid=" + Constants.REQUEST_ID + "\t" + "--flag=0 --rf=7 --channel=" + vo.getChannelId(); ProcessExecUtils.exec(cmd); model.setRequestId(Integer.parseInt(Constants.REQUEST_ID.toString())); Constants.REQUEST_ID.addAndGet(1); @@ -433,7 +434,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { @Override public ServiceBody addOrUpdatePhotoParams(PhotoParamsVo vo) { - String cmd = Constants.CMD+"imgparams --flag=1 --cmdid=" + vo.getCmdId() + "\t" + "--color=" + vo.getColor() + "\t" + "--resolution=" + vo.getResolution() + "\t" + String cmd = Constants.CMD + "imgparams --flag=1 --cmdid=" + vo.getCmdId() + "\t" + "--color=" + vo.getColor() + "\t" + "--resolution=" + vo.getResolution() + "\t" + "--luminance=" + vo.getLuminance() + "\t" + "-contrast=" + vo.getContrast() + "\t" + "--saturation=" + vo.getSaturation() + "\t" + "--channel=" + vo.getChannelId(); ProcessExecUtils.exec(cmd); return Asserts.success("设置成功"); @@ -461,7 +462,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { TerminalScheduleRuleTimeListModel model = new TerminalScheduleRuleTimeListModel(); if (StringUtils.isNotBlank(result)) { JSONObject resultObj = JSONObject.parseObject(result); - if(null!=resultObj.get("groupData")) { + if (null != resultObj.get("groupData")) { List resultDtoList = JSONArray.parseArray(resultObj.get("groupData").toString(), PhotoTimeResultDto.class); if(CollectionUtil.isNotEmpty(resultDtoList)) { List resultList = Lists.newArrayList(); @@ -491,7 +492,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { @Override public ServiceBody selectPhotoTimeGet(TerminalPhotoTimeGetVo vo) { GetModel model = new GetModel(); - String cmd = Constants.CMD+"schedule --cmdid=" + vo.getCmdId() + "\t" + "--reqid=" + Constants.REQUEST_ID + "\t" + "--clientid=10 --flag=0 --rf=7 --channel=" + vo.getChannel(); + String cmd = Constants.CMD + "schedule --cmdid=" + vo.getCmdId() + "\t" + "--reqid=" + Constants.REQUEST_ID + "\t" + "--clientid=10 --flag=0 --rf=7 --channel=" + vo.getChannel(); ProcessExecUtils.exec(cmd); Integer requestId = Integer.parseInt(Constants.REQUEST_ID.toString()); model.setRequestId(requestId); diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java index 8322c33..f4d3b09 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalServiceImpl.java @@ -191,7 +191,7 @@ public class TerminalServiceImpl implements TerminalService { @Override public ServiceBody resetTerminal(String cmId) { // Cma cma = new Cma("47.96.238.157", 6891); - String cmd = Constants.CMD+"reset --flag=1 --cmdid=" + cmId + "\t" + "--mode=0"; + String cmd = Constants.CMD + "reset --flag=1 --cmdid=" + cmId + "\t" + "--mode=0"; Integer retCode = ProcessExecUtils.exec(cmd); // boolean reset = cma.reset(vo.getTermid().toString(), (short) 0x01); if (retCode == 0) { @@ -206,16 +206,16 @@ public class TerminalServiceImpl implements TerminalService { public ServiceBody getTerminalStatus(Integer termId) { TerminalStatusModel model = new TerminalStatusModel(); String cmdId = terminalsDao.getCmdIdByTermId(termId); - String cmd = Constants.CMD+"runningstatus --flag=0 --cmdid=" + cmdId; + String cmd = Constants.CMD + "runningstatus --flag=0 --cmdid=" + cmdId; ProcessExecUtils.exec(cmd); /* TerminalModel model = new TerminalModel();*/ - /* TerminalInfoDto dto = terminalsDao.getTerminalInfo(termId);*/ + /* TerminalInfoDto dto = terminalsDao.getTerminalInfo(termId);*/ /*if (null != dto) {*/ /* BigInteger updatetime = MyDateUtils.TimeSecond2MillSecond(dto.getWsUpdateTime().longValue()); BeanUtils.copyProperties(dto, model);*/ - DateTime now = DateTime.now(); - model.setQueryTime(now); + DateTime now = DateTime.now(); + model.setQueryTime(now); /* model.setWsUpdateTime(MyDateUtils.date(updatetime.longValue()).toString()); }*/ @@ -233,11 +233,11 @@ public class TerminalServiceImpl implements TerminalService { TerminalModel model = new TerminalModel(); TerminalInfoDto dto = terminalsDao.getTerminalInfo(vo.getTermId()); Boolean hasNew = false; - if(null!=dto) { + if (null != dto) { BeanUtils.copyProperties(dto, model); BigInteger wsUpdateTime = dto.getWsUpdateTime(); BigInteger queryTime = MyDateUtils.TimeMillSecond2Second(vo.getQueryTime()); - hasNew = wsUpdateTime.compareTo(queryTime) < 0 ? false : true; + hasNew = wsUpdateTime.compareTo(queryTime) < 0 ? false : true; } model.setIsNew(hasNew); @@ -252,7 +252,7 @@ public class TerminalServiceImpl implements TerminalService { @Override public ServiceBody updateTerminalId(TerminalIdUpdateVo vo) { TerminalUpdateModel model = new TerminalUpdateModel(); - String cmd = Constants.CMD+"termid --flag=1 --cmdid=" + vo.getCmdId() + "\t" + "--newcmdid=" + vo.getNewCmdId() ; + String cmd = Constants.CMD + "termid --flag=1 --cmdid=" + vo.getCmdId() + "\t" + "--newcmdid=" + vo.getNewCmdId(); Integer retCode = ProcessExecUtils.exec(cmd); model.setTermId(vo.getTermId()); if (retCode == 0) { @@ -275,12 +275,13 @@ public class TerminalServiceImpl implements TerminalService { public ServiceBody getTermListByChannel(TerminalChannelIdVo vo) { Integer id = vo.getId(); DyLineAndTermModel model = new DyLineAndTermModel(); - List list = dyLevelDao.selectTreeListByChannelId(id,CommonStatus.EFFECTIVE.value()); + List list = dyLevelDao.selectTreeListByChannelId(id, CommonStatus.EFFECTIVE.value()); boolean empty = CollectionUtil.isEmpty(list); if (empty) { model.setList(new ArrayList<>()); } else { - List beans = BeanUtil.copyToList(list, DyLineAndTermModel.DyListBean.class,CopyOptions.create().ignoreCase()); + List beans = BeanUtil.copyToList(list, DyLineAndTermModel.DyListBean.class, CopyOptions.create().ignoreCase()); + model.setList(beans); } return Asserts.success(model); @@ -288,7 +289,7 @@ public class TerminalServiceImpl implements TerminalService { @Override public ServiceBody terminalIdGet(TerminalIdUpdateVo vo) { - String cmd = Constants.CMD+"termid --clientid=10 --flag=0 --cmdid=" + vo.getCmdId() + "\t" + "--reqid=" + Constants.REQUEST_ID; + String cmd = Constants.CMD + "termid --clientid=10 --flag=0 --cmdid=" + vo.getCmdId() + "\t" + "--reqid=" + Constants.REQUEST_ID; ProcessExecUtils.exec(cmd); GetModel model = new GetModel(); model.setRequestId(Integer.parseInt(Constants.REQUEST_ID.toString()));