src/main/java/com/zy/asrs/controller/ImagePreviewController.java
@@ -1,10 +1,14 @@ package com.zy.asrs.controller; import com.core.common.R; import com.sun.prism.Image; import com.zy.asrs.entity.ImageView; import com.zy.asrs.utils.ImagePreviewUtils; import com.zy.common.web.BaseController; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -14,14 +18,16 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.file.Files; import java.util.*; @Slf4j @RestController @RequestMapping() public class ImagePreviewController extends BaseController { //上传图片 @ApiResponses({@ApiResponse(code = 200, message = "上传成功"), @ApiResponse(code = 400, message = "上传失败"), @ApiResponse(code = 500, message = "服务器内部错误")}) //@RequestMapping(value = "/saveImage", method = RequestMethod.POST) @RequestMapping(value = "/saveImage", method = RequestMethod.POST) public Map<String, Object> saveImage(@RequestParam("files") MultipartFile[] files) { Map<String, Object> map = new HashMap<>(); List<String> list = new ArrayList<>(); @@ -30,14 +36,14 @@ //获取文件后缀 String suffixName = ImagePreviewUtils.getSaveImagePath(mfile); //生成新文件名称 String newFileName = ImagePreviewUtils.getNewImageFileName(suffixName); //String newFileName = ImagePreviewUtils.getNewImageFileName(suffixName); //保存文件 File file = new File(ImagePreviewUtils.getNewImagePath(newFileName)); File file = new File(ImagePreviewUtils.getNewImagePath(mfile.getOriginalFilename())); boolean state = ImagePreviewUtils.saveImage(mfile, file); if (state) { // list.add(ImageUtil.getNewImagePath(newFileName)); //保存数据库的图片路径为 相对路径 list.add("uploadimage/" + newFileName); list.add("uploadimage/" + mfile.getOriginalFilename()); } } map.put("imgList", list); @@ -46,18 +52,16 @@ } //预览图片 //@RequestMapping("previewImage") @RequestMapping("/previewImage") @ApiOperation(value = "根据文件名实现预览功能") public void previewFile( HttpServletResponse response) throws IOException { showImg("D:\\"+"images\\"+"20251022efda188c-56b3-4c38-9940-78d0b61b43a1.png", response); } public static void showImg(String path, HttpServletResponse response){ if(path!=null&&!path.equals("")){ public String previewFile( HttpServletResponse response,String maktx) throws IOException { // String[] s = matnr.split("__"); showImg("D:\\"+"images\\"+maktx+".png", response,maktx); if("D:\\"+"images\\"+maktx+".png"!=null){ try { FileInputStream fis = new FileInputStream(path); FileInputStream fis = new FileInputStream("D:\\"+"images\\"+maktx+".png"); ServletOutputStream os = response.getOutputStream(); byte [] b = new byte[1024*8]; @@ -66,9 +70,37 @@ } } catch (FileNotFoundException e) { e.printStackTrace(); return "该简图不存在,请上传"; } catch (IOException e) { e.printStackTrace(); } } return ""; } public static void showImg(String path, HttpServletResponse response,String maktx){ } public static R showImgToBase64(String path, HttpServletResponse response,String maktx){ byte[] imageBytes = null; try { File file =new File(path); imageBytes = Files.readAllBytes(file.toPath()); }catch (IOException e){ e.printStackTrace(); return null; } String pics = Base64.getEncoder().encodeToString(imageBytes); List<String> list = new ArrayList<>(); List<ImageView> imageViewList = new ArrayList<>(); ImageView imageView = new ImageView(); //String s = "http://192.168.0.2/image/"+pics+".jpg"; list.add(pics); imageView.setPics(list); imageView.setMaktx(maktx); imageViewList.add(imageView); //log.info(s); log.info(pics); return R.ok().add(imageViewList); } } src/main/java/com/zy/asrs/entity/ImageView.java
New file @@ -0,0 +1,13 @@ package com.zy.asrs.entity; import lombok.Data; import java.util.List; @Data public class ImageView { //图片的base64 private List<String> pics; private String maktx; } src/main/java/com/zy/common/config/AdminInterceptor.java
@@ -116,7 +116,7 @@ // String deToken = Cools.deTokn(token, user.getPassword()); // long timestamp = Long.parseLong(deToken.substring(0, 13)); // 15分钟后过期 if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 900000){ if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 86400000){ Http.response(response, BaseRes.DENIED); return false; } src/main/java/com/zy/common/web/AuthController.java
@@ -18,6 +18,7 @@ import com.zy.system.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -382,4 +383,16 @@ return R.ok("激活成功,有效期至"+DateUtils.convert(exprTime)); } // @Scheduled(cron = "*/30 * * * * *") // public void deleteToken(){ // List<User> userList = userService.selectAll(); // for (User user : userList) { // UserLogin userLogin = userLoginService.selectByUserId(user.getId()); // if (System.currentTimeMillis() - userLogin.getCreateTime().getTime() > 30){ // userLoginService.delete(new EntityWrapper<UserLogin>().eq("user_id", userLogin.getId())); // } // } // } } src/main/java/com/zy/system/mapper/UserLoginMapper.java
@@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @Mapper @Repository public interface UserLoginMapper extends BaseMapper<UserLogin> { @@ -13,4 +15,7 @@ @Select("select count(1) from sys_user_login where yearweek(date_format(create_time,'%Y-%m-%d')) = yearweek(now())") int selectCountByCurrentWeek(); @Select("select * from sys_user_login where user_id = #{userId}") UserLogin selectByUserId(Long id); } src/main/java/com/zy/system/mapper/UserMapper.java
@@ -3,10 +3,15 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.system.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @Mapper @Repository public interface UserMapper extends BaseMapper<User> { @Select("select * from sys_user;") List<User> selectAll(); } src/main/java/com/zy/system/service/UserLoginService.java
@@ -3,8 +3,11 @@ import com.baomidou.mybatisplus.service.IService; import com.zy.system.entity.UserLogin; import java.util.List; public interface UserLoginService extends IService<UserLogin> { int selectCountByCurrentWeek(); UserLogin selectByUserId(Long id); } src/main/java/com/zy/system/service/UserService.java
@@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.service.IService; import com.zy.system.entity.User; import java.util.List; public interface UserService extends IService<User> { List<User> selectAll(); } src/main/java/com/zy/system/service/impl/UserLoginServiceImpl.java
@@ -7,6 +7,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; @Service("userLoginService") public class UserLoginServiceImpl extends ServiceImpl<UserLoginMapper, UserLogin> implements UserLoginService { @@ -17,4 +20,9 @@ public int selectCountByCurrentWeek() { return userLoginMapper.selectCountByCurrentWeek(); } @Override public UserLogin selectByUserId(Long id) { return userLoginMapper.selectByUserId(id); } } src/main/java/com/zy/system/service/impl/UserServiceImpl.java
@@ -4,9 +4,19 @@ import com.zy.system.entity.User; import com.zy.system.mapper.UserMapper; import com.zy.system.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; @Service("userService") public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> selectAll() { return userMapper.selectAll(); } } src/main/webapp/static/js/locDetl/locDetl.js
@@ -17,7 +17,12 @@ ,{field: 'brand', align: 'center',title: '品牌', hide: true} ,{field: 'unit', align: 'center',title: '单位', hide: true} ,{field: 'price', align: 'center',title: '单价', hide: true} ,{field: 'sku', align: 'center',title: '简图', hide: false} // ,{fixed: 'right', title:'简图', align: 'center', toolbar: '#operate1', width: 300} ,{field: 'right', align: 'center',title: '简图', templet:function(row){ var html = "<img src='http://127.0.0.1:8080/czkhasrs/previewImage?maktx=" +row.maktx+"'/>"; return html; }} ,{field: 'units', align: 'center',title: '单位量', hide: true} ,{field: 'barcode', align: 'center',title: '条码', hide: true} ,{field: 'origin', align: 'center',title: '产地', hide: true} @@ -371,6 +376,48 @@ }); } break; // 查看简图 case 'showPic': let imgHtml = '<div style="height:100%;display: flex;justify-content: space-around;align-items: center;flex-wrap: wrap;">'; $.ajax({ url: baseUrl+"/previewImage", headers: {'token': localStorage.getItem('token')}, data: { maktx: data.maktx }, method: 'GET', traditional:true, success: function (res) { if (res.code === 200){ res.data.forEach((item) => { let maktx = item.maktx; let pics = item.pics; pics.forEach((pic) => { let tmp = '<div><div><img width="600" src="' + pic + '" /></div><div>' + maktx + '</div></div>'; imgHtml += tmp; }) }) imgHtml += "</div>"; layer.open({ type: 1, title: '查看简图', area: [top.detailWidth, top.detailHeight], shadeClose: true, content: imgHtml, success: function(layero, index){ } }); } else if (res.code === 403){ top.location.href = baseUrl+"/"; } else { layer.msg(res.msg) } } }); console.log(imgHtml) break; } }); src/main/webapp/views/locDetl/locDetl.html
@@ -88,7 +88,9 @@ <script type="text/html" id="operate"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a> </script> <script type="text/html" id="operate1"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="showPic" >查看简图</a> </script> <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>