Browse Source

商品管理

yuhaitao14 7 years ago
parent
commit
2c60256666

+ 6 - 3
shop/src/main/java/com/zskk/shop/controller/admin/GoodsManagerController.java

@@ -8,6 +8,7 @@
 
 
 package com.zskk.shop.controller.admin;
 package com.zskk.shop.controller.admin;
 
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
@@ -23,6 +24,7 @@ import com.zskk.shop.controller.AbstractController;
 import com.zskk.shop.controller.bean.ControllerResult;
 import com.zskk.shop.controller.bean.ControllerResult;
 import com.zskk.shop.controller.bean.GoodBean;
 import com.zskk.shop.controller.bean.GoodBean;
 import com.zskk.shop.controller.bean.PageBean;
 import com.zskk.shop.controller.bean.PageBean;
+import com.zskk.shop.controller.bean.UserBean;
 import com.zskk.shop.dao.entry.GoodBase;
 import com.zskk.shop.dao.entry.GoodBase;
 import com.zskk.shop.dao.entry.GoodPrice;
 import com.zskk.shop.dao.entry.GoodPrice;
 import com.zskk.shop.service.GoodService;
 import com.zskk.shop.service.GoodService;
@@ -66,10 +68,11 @@ public class GoodsManagerController extends AbstractController{
 		return new ControllerResult(pageBean);
 		return new ControllerResult(pageBean);
 	}
 	}
 	
 	
-	@RequestMapping("edit")
+	@RequestMapping("editbase")
 	@ResponseBody
 	@ResponseBody
-	public ControllerResult exit(GoodBase base){
-		System.out.println(JSON.toJSONString(base));
+	public ControllerResult exitbase(GoodBase base, @RequestParam("price") BigDecimal price, @RequestParam("discountPrice") BigDecimal discountPrice){
+		UserBean user = this.getUser();
+		goodService.saveGoodBase(user, base, price, discountPrice);
 		return new ControllerResult(Boolean.TRUE);
 		return new ControllerResult(Boolean.TRUE);
 	}
 	}
 }
 }

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

@@ -17,6 +17,7 @@ public class GoodBean {
 	private String icon;
 	private String icon;
 	private String packageid;
 	private String packageid;
 	private String packageName;
 	private String packageName;
+	private Integer status;
 	private Integer ctime;
 	private Integer ctime;
 	
 	
 	private List<GoodAdBean> ads;
 	private List<GoodAdBean> ads;
@@ -82,4 +83,10 @@ public class GoodBean {
 	public void setPackageName(String packageName) {
 	public void setPackageName(String packageName) {
 		this.packageName = packageName;
 		this.packageName = packageName;
 	}
 	}
+	public Integer getStatus() {
+		return status;
+	}
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
 }
 }

+ 1 - 1
shop/src/main/java/com/zskk/shop/dao/GoodMapper.java

@@ -123,7 +123,7 @@ public interface GoodMapper {
 	 * @param gid
 	 * @param gid
 	 * @return
 	 * @return
 	 */
 	 */
-	public List<GoodPrice> queryGoodPrices(Integer gid);
+	public GoodPrice queryGoodPrices(Integer gid);
 	
 	
 	/**
 	/**
 	 * 添加商品价格
 	 * 添加商品价格

+ 14 - 7
shop/src/main/java/com/zskk/shop/dao/entry/GoodBase.java

@@ -13,7 +13,8 @@ public class GoodBase {
 	private String name;
 	private String name;
 	private String describe;
 	private String describe;
 	private String icon;
 	private String icon;
-	private String status;
+	private Integer sort;
+	private Integer status;
 	private String packageid;		
 	private String packageid;		
 	private String packageName;
 	private String packageName;
 	private String uid;
 	private String uid;
@@ -36,12 +37,6 @@ public class GoodBase {
 	public void setIcon(String icon) {
 	public void setIcon(String icon) {
 		this.icon = icon;
 		this.icon = icon;
 	}
 	}
-	public String getStatus() {
-		return status;
-	}
-	public void setStatus(String status) {
-		this.status = status;
-	}
 	public String getUid() {
 	public String getUid() {
 		return uid;
 		return uid;
 	}
 	}
@@ -72,4 +67,16 @@ public class GoodBase {
 	public void setPackageName(String packageName) {
 	public void setPackageName(String packageName) {
 		this.packageName = packageName;
 		this.packageName = packageName;
 	}
 	}
+	public Integer getStatus() {
+		return status;
+	}
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+	public Integer getSort() {
+		return sort;
+	}
+	public void setSort(Integer sort) {
+		this.sort = sort;
+	}
 }
 }

+ 42 - 1
shop/src/main/java/com/zskk/shop/service/GoodService.java

@@ -8,21 +8,25 @@
 
 
 package com.zskk.shop.service;
 package com.zskk.shop.service;
 
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
 import com.zskk.shop.controller.bean.GoodAdBean;
 import com.zskk.shop.controller.bean.GoodAdBean;
 import com.zskk.shop.controller.bean.GoodBean;
 import com.zskk.shop.controller.bean.GoodBean;
 import com.zskk.shop.controller.bean.GoodDescribeBean;
 import com.zskk.shop.controller.bean.GoodDescribeBean;
 import com.zskk.shop.controller.bean.GoodPriceBean;
 import com.zskk.shop.controller.bean.GoodPriceBean;
+import com.zskk.shop.controller.bean.UserBean;
 import com.zskk.shop.dao.GoodMapper;
 import com.zskk.shop.dao.GoodMapper;
 import com.zskk.shop.dao.entry.GoodAd;
 import com.zskk.shop.dao.entry.GoodAd;
 import com.zskk.shop.dao.entry.GoodBase;
 import com.zskk.shop.dao.entry.GoodBase;
 import com.zskk.shop.dao.entry.GoodDescribe;
 import com.zskk.shop.dao.entry.GoodDescribe;
 import com.zskk.shop.dao.entry.GoodPrice;
 import com.zskk.shop.dao.entry.GoodPrice;
+import com.zskk.shop.utils.ToolsUtil;
 
 
 @Service
 @Service
 public class GoodService {
 public class GoodService {
@@ -70,13 +74,49 @@ public class GoodService {
 		return goodMapper.queryGoodBaseCount(status, search);
 		return goodMapper.queryGoodBaseCount(status, search);
 	}
 	}
 	
 	
+	/**
+	 * 编辑或添加商品基本信息
+	 * @param base
+	 * @return
+	 */
+	@Transactional
+	public Integer saveGoodBase(UserBean user, GoodBase base, BigDecimal price, BigDecimal discountPrice){
+		base.setStatus(GOOD_OFFLINE);
+		base.setSort(0);
+		base.setUid(user.getUserid());
+		base.setCtime(ToolsUtil.getNow());
+		if (base.getGid().equals(0)){
+			goodMapper.addGoodBase(base);
+			
+			GoodPrice priceObj = new GoodPrice();
+			priceObj.setCtime(base.getCtime());
+			priceObj.setDiscountPrice(discountPrice);
+			priceObj.setEtime(0);
+			priceObj.setGid(base.getGid());
+			priceObj.setPrice(price);
+			priceObj.setStatus(1);
+			priceObj.setStime(0);
+			priceObj.setUid(user.getUserid());
+			priceObj.setUseType(0);
+			goodMapper.addGoodPrice(priceObj);
+		}else{
+			goodMapper.updateGoodBase(base);
+			GoodPrice priceObj = goodMapper.queryGoodPrices(base.getGid());
+			priceObj.setPrice(price);
+			priceObj.setDiscountPrice(discountPrice);
+			goodMapper.updateGoodPrice(priceObj);
+		}
+		
+		return base.getGid();
+	}
+	
 	/**
 	/**
 	 * 查询商品价格 1.0版本没有支持时间和类型
 	 * 查询商品价格 1.0版本没有支持时间和类型
 	 * @param gid
 	 * @param gid
 	 * @return
 	 * @return
 	 */
 	 */
 	public GoodPrice queryGoodPrice(Integer gid){
 	public GoodPrice queryGoodPrice(Integer gid){
-		return goodMapper.queryGoodPrices(gid).get(0);
+		return goodMapper.queryGoodPrices(gid);
 	}
 	}
 	
 	
 	/**
 	/**
@@ -115,6 +155,7 @@ public class GoodService {
 		bean.setPackageid(base.getPackageid());
 		bean.setPackageid(base.getPackageid());
 		bean.setPackageName(bean.getPackageName());
 		bean.setPackageName(bean.getPackageName());
 		bean.setCtime(base.getCtime());
 		bean.setCtime(base.getCtime());
+		bean.setStatus(base.getStatus());
 		return bean;
 		return bean;
 	}
 	}
 	
 	

+ 3 - 3
shop/src/main/resource/mapper/GoodMapper.xml

@@ -60,9 +60,9 @@
 		from good_base
 		from good_base
 		where gid=#{gid}
 		where gid=#{gid}
 	</select>
 	</select>
-	<insert id="addGoodBase" parameterType="com.zskk.shop.dao.entry.GoodBase">
-		insert into good_base(gid, name, `describe`, icon, sort, status, uid, ctime)
-		values(#{gid}, #{name}, #{describe},, #{icon}, #{sort}, #{status}, #{uid}, #{ctime})
+	<insert id="addGoodBase" parameterType="com.zskk.shop.dao.entry.GoodBase" useGeneratedKeys="true" keyProperty="gid" keyColumn="gid">
+		insert into good_base(name, `describe`, icon, sort, status, uid, ctime)
+		values(#{name}, #{describe}, #{icon}, #{sort}, #{status}, #{uid}, #{ctime})
 	</insert>
 	</insert>
 	<update id="updateGoodBase" parameterType="com.zskk.shop.dao.entry.GoodBase">
 	<update id="updateGoodBase" parameterType="com.zskk.shop.dao.entry.GoodBase">
 		update good_base set name=#{name}, `describe`=#{describe}, icon=#{icon}, sort=#{sort}, status=#{status}]
 		update good_base set name=#{name}, `describe`=#{describe}, icon=#{icon}, sort=#{sort}, status=#{status}]

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

@@ -61,6 +61,6 @@ var post = function(url, params, vue) {
 
 
 export default {
 export default {
     getGoods: (params, vue) => post(`${serverPath}manage/goods`, params, vue),
     getGoods: (params, vue) => post(`${serverPath}manage/goods`, params, vue),
-    editGoods: (params, vue) => post(`${serverPath}manage/edit`, params, vue)
+    editGoodsBase: (params, vue) => post(`${serverPath}manage/editbase`, params, vue)
 
 
 }
 }

+ 26 - 4
shop/static/manager/src/components/page/EditGoods.vue

@@ -6,6 +6,12 @@
         <el-form-item label="商品简介">
         <el-form-item label="商品简介">
             <el-input v-model="form.describe"></el-input>
             <el-input v-model="form.describe"></el-input>
         </el-form-item>
         </el-form-item>
+        <el-form-item label="商品原价">
+            <el-input v-model="form.price"></el-input>
+        </el-form-item>
+        <el-form-item label="商品折扣价">
+            <el-input v-model="form.discountPrice"></el-input>
+        </el-form-item>
         <el-form-item label="商品图标">
         <el-form-item label="商品图标">
             <el-upload class="avatar-uploader" :action="uploadAction" :show-file-list="false" :on-success="onUploadSuccess" :before-upload="onBeforeUpload">
             <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">
                 <img v-if="form.icon" :src="form.icon" class="avatar">
@@ -27,8 +33,11 @@ export default {
     return {
     return {
       uploadAction: process.env.SERVER_PATH + 'upload',
       uploadAction: process.env.SERVER_PATH + 'upload',
       form: {
       form: {
+        gid: 0,
         name: '',
         name: '',
         describe: '',
         describe: '',
+        price:'',
+        discountPrice:'',
         icon: '',
         icon: '',
         status: false
         status: false
       }
       }
@@ -58,14 +67,27 @@ export default {
     },
     },
     save: function() {
     save: function() {
       let goods = {
       let goods = {
+        gid: this.form.gid,
         name: this.form.name,
         name: this.form.name,
         describe: this.form.describe,
         describe: this.form.describe,
-        icon: this.form.icon
+        icon: this.form.icon,
+        status: this.form.status ? 1 : 0,
+        price: this.form.price,
+        discountPrice: this.form.discountPrice
       }
       }
-
-      this.$http.editGoods(goods, this).then(data => {
-        console.log(data)
+        let that = this
+      this.$http.editGoodsBase(goods, this).then(data => {
+        if (data.code === 0){
+            this.$message({
+                message: '操作成功',
+                type: 'success',
+                onClose: function (){
+                    that.$router.push("/goodsManager")
+                }
+            });
+        }
       })
       })
+      
     }
     }
   }
   }
 }
 }

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

@@ -17,7 +17,8 @@
             <el-table-column label="商品图标" prop="icon">图标</el-table-column>
             <el-table-column label="商品图标" prop="icon">图标</el-table-column>
             <el-table-column label="商品名称" prop="name"></el-table-column>
             <el-table-column label="商品名称" prop="name"></el-table-column>
             <el-table-column label="简介" prop="describe"></el-table-column>
             <el-table-column label="简介" prop="describe"></el-table-column>
-            <el-table-column label="售价(员)" prop="price.discountPrice"></el-table-column>
+            <el-table-column label="原价" prop="price.price"></el-table-column>
+            <el-table-column label="折扣价" prop="price.discountPrice"></el-table-column>
             <el-table-column label="详细">
             <el-table-column label="详细">
                 <template slot-scope="scope">
                 <template slot-scope="scope">
                     <el-button type="text" size="small">编辑详细</el-button>
                     <el-button type="text" size="small">编辑详细</el-button>
@@ -72,6 +73,7 @@ export default {
       this.getItems()
       this.getItems()
     },
     },
     statusFormater: function(row) {
     statusFormater: function(row) {
+        console.log(row.status)
       if (row.status === 1) {
       if (row.status === 1) {
         return '在线'
         return '在线'
       } else {
       } else {