Browse Source

编辑商品

yuhaitao14 7 years ago
parent
commit
cb219f4247

+ 41 - 0
shop/src/main/java/com/zskk/shop/controller/UploadController.java

@@ -0,0 +1,41 @@
+/**
+* @版权信息 (@copyright Copyright 2017-XXXX JDJR.COM All Right Reserved);
+* @see
+* @author 于海涛 京东金融【技术研发部-证券及营销平台研发部-营销平台研发部】
+* @version 1.0
+* @date 2018年6月4日
+*/
+
+package com.zskk.shop.controller;
+
+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.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.zskk.shop.controller.bean.ControllerResult;
+import com.zskk.shop.exception.ErrorConstant;
+import com.zskk.shop.service.OssService;
+import com.zskk.shop.utils.SecretUtil;
+
+@Controller
+public class UploadController {
+	
+	@Autowired
+	private OssService ossService;
+
+	@RequestMapping("/upload")
+	@ResponseBody
+	public ControllerResult upload(@RequestParam("file") MultipartFile file){
+		try{
+			byte[] data = file.getBytes();
+			String md5 	= SecretUtil.md5(data);
+			String path = ossService.upload(data, md5);
+			return new ControllerResult(path);
+		}catch (Exception e) {
+			return new ControllerResult(ErrorConstant.PARAM_ERROR);
+		}
+	}
+}

+ 14 - 0
shop/src/main/java/com/zskk/shop/controller/bean/GoodBean.java

@@ -15,6 +15,8 @@ public class GoodBean {
 	private String name;
 	private String describe;
 	private String icon;
+	private String packageid;
+	private String packageName;
 	private Integer ctime;
 	
 	private List<GoodAdBean> ads;
@@ -68,4 +70,16 @@ public class GoodBean {
 	public void setDescribe(String describe) {
 		this.describe = describe;
 	}
+	public String getPackageid() {
+		return packageid;
+	}
+	public void setPackageid(String packageid) {
+		this.packageid = packageid;
+	}
+	public String getPackageName() {
+		return packageName;
+	}
+	public void setPackageName(String packageName) {
+		this.packageName = packageName;
+	}
 }

+ 2 - 0
shop/src/main/java/com/zskk/shop/service/GoodService.java

@@ -112,6 +112,8 @@ public class GoodService {
 		bean.setName(base.getName());
 		bean.setDescribe(base.getDescribe());
 		bean.setIcon(base.getIcon());
+		bean.setPackageid(base.getPackageid());
+		bean.setPackageName(bean.getPackageName());
 		bean.setCtime(base.getCtime());
 		return bean;
 	}

+ 38 - 0
shop/src/main/java/com/zskk/shop/service/OssService.java

@@ -0,0 +1,38 @@
+package com.zskk.shop.service;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import com.qiniu.common.QiniuException;
+import com.qiniu.common.Zone;
+import com.qiniu.storage.Configuration;
+import com.qiniu.storage.UploadManager;
+import com.qiniu.util.Auth;
+
+@Service
+public class OssService {
+	private static final String AK = "9mRGBQF0d_kxbHTJrYajWKXioKCvQyBSFupBatdr";
+	private static final String SK = "1t9ngfWH6rTYkjVkLZttCsUHPl866bOn8STv1ZtX";
+	private static final String BUCKET = "aibei";
+
+	@Value("${zskk.oss_host}")
+	private String ossHost;
+
+	public String getToken() {
+		Auth auth = Auth.create(AK, SK);
+		return auth.uploadToken(BUCKET);
+	}
+
+	/**
+	 * 上传文件
+	 * 
+	 * @param filePath
+	 * @param key
+	 * @throws QiniuException
+	 */
+	public String upload(byte[] data, String key) throws QiniuException {
+		UploadManager uploadManager = new UploadManager(new Configuration(Zone.autoZone()));
+		uploadManager.put(data, key, getToken());
+		return ossHost + "/" + key;
+	}
+}

+ 1 - 1
shop/src/main/resource/application-dev.properties

@@ -6,7 +6,7 @@ spring.datasource.password=123456
 spring.datasource.driverClassName=com.mysql.jdbc.Driver
 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
 
-zskk.myhost=http://testshop.pacsonline.cn/
+zskk.myhost=http://shop.pacsonline.cn/
 zskk.secret=6244c0f6da164d4db51fdb27cff15c95
 zskk.tjcenter=http://kunlun.pacsonline.cn/
 zskk.tjkey=Kq2gNG2WnWeJG3ug1SedNo2oGZHujs49

+ 3 - 1
shop/src/main/resource/application.properties

@@ -14,4 +14,6 @@ spring.thymeleaf.mode=HTML5
 logging.level.Error=DEBUG
 logging.level.Debug=DEBUG
 logging.level.SysDebug=DEBUG
-logging.level.SysError=DEBUG
+logging.level.SysError=DEBUG
+
+zskk.oss_host=http://static.cyyzjk.com

+ 80 - 2
shop/static/manager/src/components/page/EditGoods.vue

@@ -1,8 +1,86 @@
 <template>
-    
+    <el-form ref="form" :model="form" label-width="80px">
+        <el-form-item label="商品名称">
+            <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="商品简介">
+            <el-input v-model="form.describe"></el-input>
+        </el-form-item>
+        <el-form-item label="商品图标">
+            <el-upload class="avatar-uploader" :action="uploadAction" :show-file-list="false" :on-success="onUploadSuccess" :before-upload="onBeforeUpload">
+                <img v-if="form.icon" :src="form.icon" class="avatar">
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+            </el-upload>
+            <p class="zy">
+                注意:图标比例一定要1:1
+            </p>
+        </el-form-item>
+    </el-form>
 </template>
 <script>
 export default {
-    
+  data() {
+    return {
+      uploadAction: process.env.SERVER_PATH + 'upload',
+      form: {
+        name: '',
+        describe: '',
+        icon: ''
+      }
+    }
+  },
+  methods: {
+    onBeforeUpload: function(file) {
+      const isJPG = file.type === 'image/jpeg'
+      const isPNG = file.type === 'image/png'
+
+      if (!isJPG && !isPNG) {
+        this.$message.error('上传商品图标只能是 JPG/PNG 格式!')
+        return false
+      } else {
+        return true
+      }
+    },
+    onUploadSuccess: function(res, file) {
+        if (res.code != 0){
+            this.$message.error('上传图片失败 原因:' + res.msg + "(" + res.code + ")")
+            return;
+        }else{
+            this.form.icon = res.obj;
+        }
+    }
+  }
 }
 </script>
+
+
+<style>
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+  width: 178px;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 178px;
+  height: 178px;
+  line-height: 178px;
+  text-align: center;
+}
+.avatar {
+  width: 178px;
+  height: 178px;
+  display: block;
+}
+
+.zy {
+    color: red;
+}
+</style>

+ 1 - 1
shop/static/manager/src/components/page/GoodsManager.vue

@@ -25,7 +25,7 @@
             </el-table-column>
             <el-table-column label="状态" prop="status" :formatter="statusFormater">
             </el-table-column>
-            <el-table-column label="绑定套餐"></el-table-column>
+            <el-table-column label="绑定套餐" prop="packageName"></el-table-column>
             <el-table-column label="操作">
                 <template slot-scope="scope">
                     <el-button type="text" size="small">预览</el-button>

+ 1 - 1
shop/static/manager/src/router/index.js

@@ -18,7 +18,7 @@ export default new Router({
         {
             path: '/demo',
             name: 'demo',
-            component: resolve => require(['../components/page/GoodsManager'], resolve)
+            component: resolve => require(['../components/page/EditGoods'], resolve)
         }
     ]
 })