Forráskód Böngészése

logo添加删除功能

zhuth 7 éve
szülő
commit
7f52398206

+ 17 - 10
kanban-console/src/main/java/com/uas/kanban/controller/LogoController.java

@@ -11,7 +11,10 @@ import org.springframework.web.multipart.MultipartFile;
 
 import com.uas.kanban.base.BaseController;
 import com.uas.kanban.dao.LogoDao;
+import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.model.Logo;
+import com.uas.kanban.service.LogoService;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -38,7 +41,7 @@ public class LogoController extends BaseController<Logo> {
     private Logger logger = LoggerFactory.getLogger(LogoController.class);
 
     @Autowired
-    private LogoDao logoDao;
+    private LogoService logoService;
     
     @RequestMapping(value = "/upload")
     @ResponseBody
@@ -60,10 +63,7 @@ public class LogoController extends BaseController<Logo> {
         }
         try {
             file.transferTo(targetFile);
-            Logo logo = new Logo();
-            logo.setName(fileName);
-            logo.setPath(targetFile.getAbsolutePath());
-            Logo saveLogo = logoDao.save(logo);
+            Logo saveLogo = logoService.upload(fileName, targetFile.getAbsolutePath());
             message.put("success", true);
             message.put("message", "成功上传文件至 :" + targetFile.getCanonicalPath());
             message.put("logoCode", saveLogo.getCode());
@@ -80,11 +80,10 @@ public class LogoController extends BaseController<Logo> {
         return message;
     }
     
-    @RequestMapping(value = "/getLogo", method = RequestMethod.GET)
+    @RequestMapping(value = "/getLogoImgByCode", method = RequestMethod.GET)
     @ResponseBody
-	public String getLogo(String logoCode, HttpServletRequest request, HttpServletResponse response)
-			throws IOException {
-		Logo logo = logoDao.getLogoByCode(logoCode);
+	public String getLogoImgByCode(String logoCode, HttpServletRequest request, HttpServletResponse response) throws IOException {
+		Logo logo = logoService.getLogoByCode(logoCode);
 		ServletOutputStream out = null;
 		FileInputStream ips = null;
 		try {
@@ -95,6 +94,7 @@ public class LogoController extends BaseController<Logo> {
 			// 图片缺失时使用缺省图片
 			if (!logoFile.exists()) {
 				logoFile = new File(NO_LOGO_PATH);
+				logger.info("code:" + logoCode + "对应logo文件不存在");
 	        }
 			ips = new FileInputStream(logoFile);
 			response.setContentType("multipart/form-data");
@@ -106,8 +106,9 @@ public class LogoController extends BaseController<Logo> {
 				out.write(buffer, 0, len);
 			}
 			out.flush();
+			logger.info("code:" + logoCode + "返回logo图片" + imgPath);
 		} catch (Exception e) {
-
+			logger.error("", e);
 			e.printStackTrace();
 		} finally {
 			out.close();
@@ -115,4 +116,10 @@ public class LogoController extends BaseController<Logo> {
 		}
 		return null;
 	}
+
+    @RequestMapping(value = "/delete")
+    @ResponseBody
+	public Logo delete(String logoCode, HttpServletRequest request, HttpServletResponse response) throws OperationException {
+		return logoService.deleteLogoByCode(logoCode);
+	}
 }

+ 5 - 0
kanban-console/src/main/java/com/uas/kanban/service/LogoService.java

@@ -16,4 +16,9 @@ import com.uas.kanban.model.Logo;
  */
 public interface LogoService {
 	
+	public Logo upload(String fileName, String filePath);
+	
+	public Logo getLogoByCode(String logoCode);
+	
+	public Logo deleteLogoByCode(String logoCode) throws OperationException;
 }

+ 31 - 4
kanban-console/src/main/java/com/uas/kanban/service/impl/LogoServiceImpl.java

@@ -3,8 +3,7 @@
  */
 package com.uas.kanban.service.impl;
 
-import java.util.List;
-
+import java.io.File;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -12,7 +11,6 @@ import com.uas.kanban.annotation.NotEmpty;
 import com.uas.kanban.base.BaseService;
 import com.uas.kanban.dao.LogoDao;
 import com.uas.kanban.exception.OperationException;
-import com.uas.kanban.model.Kanban;
 import com.uas.kanban.model.Logo;
 import com.uas.kanban.service.LogoService;
 
@@ -27,7 +25,13 @@ public class LogoServiceImpl extends BaseService<Logo> implements LogoService {
 	@Autowired
 	private LogoDao logoDao;
 	
-	
+	@Override
+	public Logo upload(@NotEmpty("fileName") String fileName, @NotEmpty("filePath") String filePath) {
+		Logo logo = new Logo();
+	    logo.setName(fileName);
+	    logo.setPath(filePath);
+		return logoDao.save(logo);
+	}
 	
 	@Override
 	public Logo save(@NotEmpty("json") String json) {
@@ -35,5 +39,28 @@ public class LogoServiceImpl extends BaseService<Logo> implements LogoService {
 		logoDao.save(logo);
 		return logo;
 	}
+
+
+	@Override
+	public Logo getLogoByCode(String logoCode) {
+		return logoDao.getLogoByCode(logoCode);
+	}
+
+	@Override
+	public Logo deleteLogoByCode(String logoCode) throws OperationException  {
+		Logo logo = logoDao.getLogoByCode(logoCode);
+		// 获取图片存放路径
+		String imgPath = logo.getPath();
+		File logoFile = new File(imgPath);
+		
+		// 删除文件
+		if (logoFile.exists() && logoFile.isFile()) {
+			logoFile.delete();
+	    }
+		
+		// 删除记录
+		super.deleteOne(logoCode);
+		return logo;
+	}
 	
 }

+ 35 - 2
kanban-console/src/main/webapp/resources/app/view/boardmodel/LogoWin.js

@@ -20,7 +20,7 @@ Ext.define('erp.view.boardmodel.LogoWin', {
 					'<tpl for=".">',
 					'<div class="x-logo-item">',
 						'<span class="x-loge-text">{name}</span></br>',
-						'<img src="' + basePath + 'logo/getLogo?logoCode={code}" class="x-logo-img" />',
+						'<img src="' + basePath + 'logo/getLogoImgByCode?logoCode={code}" class="x-logo-img" />',
 					'</div>',
 			    	'</tpl>',
 				'</div>'
@@ -65,10 +65,23 @@ Ext.define('erp.view.boardmodel.LogoWin', {
 					}
 				}
 			}, {
+				xtype: 'button',
+				text: '删除',
+				handler: function() {
+					var selected = me.view.getSelectionModel().getSelection();
+					if(selected.length > 0) {
+						Ext.Msg.confirm('警告', '是否删除选中Logo?', function(yes) {
+							if(yes == 'yes') {
+								me.deleteLogo(selected[0].get('code'));
+							}
+						});
+					}
+				}
+			}, '->', {
 				xtype: 'button',
 				text: '确定',
 				handler: function() {
-					me.titleWin.insertValue('logo/getLogo?logoCode=' + me.selectedLogo.get('code'));
+					me.titleWin.insertValue('logo/getLogoImgByCode?logoCode=' + me.selectedLogo.get('code'));
 					me.close();
 				}
 			}]
@@ -108,11 +121,31 @@ Ext.define('erp.view.boardmodel.LogoWin', {
 				if(response.responseText == '') return;
 				var data = JSON.parse(response.responseText);
 				if(success) {
+					me.view.store.removeAll();
 					me.view.store.add(data);
 				}else {
 					showErrorMsg('失败', res.message);
 				}
 			}
 		});
+	},
+	deleteLogo: function(logoCode) {
+		var me = this;
+		Ext.Ajax.request({
+			url:'logo/delete',
+			method:'POST',
+			params: {
+				logoCode: logoCode
+			},
+			callback:function(options,success,response){
+				if(response.responseText == '') return;
+				var data = JSON.parse(response.responseText);
+				if(success) {
+					me.loadAllLogo();
+				}else {
+					showErrorMsg('失败', res.message);
+				}
+			}
+		});
 	}
 });