提交 cf420c34 authored 作者: zgy's avatar zgy

修改商品功能

上级 6d90217b
......@@ -156,13 +156,11 @@ public class TbCfStationItemController extends ApiBaseAction {
return R.ok().put("descripiton", descripiton);
}
/* @RequestMapping("/updateItemNum")
@RequestMapping("/changeItemStatus")
@RequiresPermissions("tbcfstationitem:changeItemStatus")
@ResponseBody
public R updateItemNum(@RequestParam("itemId") String itemId) {
TbCfStationItemEntity item = tbCfStationItemService.queryObject(itemId);
Long num = item.getItemNum() + COUNT_NUM;
item.setItemNum(num);
tbCfStationItemService.update(item);
public R changeItemStatus(@RequestParam("status") Integer status, @RequestBody String[] itemIds) {
tbCfStationItemService.changeItemStatus(status, itemIds);
return R.ok();
}*/
}
}
package com.platform.dao;
import com.platform.entity.TbCfStationItemEntity;
import org.apache.ibatis.annotations.Param;
/**
* 站点商品Dao
......@@ -9,5 +10,5 @@ import com.platform.entity.TbCfStationItemEntity;
* @date 2019-09-20 11:03:38
*/
public interface TbCfStationItemDao extends BaseDao<TbCfStationItemEntity> {
int changeItemStatus(@Param("status") Integer status, @Param("itemIds") String[] itemIds);
}
package com.platform.service;
import com.platform.entity.TbCfDescripitonEntity;
import com.platform.utils.R;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
......@@ -69,4 +71,5 @@ public interface TbCfDescripitonService {
* @return 删除条数
*/
int deleteBatch(String[] descripitionIds);
}
package com.platform.service;
import com.platform.entity.TbCfStationItemEntity;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
......@@ -68,4 +69,12 @@ public interface TbCfStationItemService {
* @return 删除条数
*/
int deleteBatch(String[] itemIds);
/**
* 修改商品状态
* @param status
* @param itemIds
* @return
*/
int changeItemStatus(Integer status,String[] itemIds);
}
......@@ -61,4 +61,6 @@ public class TbCfDescripitonServiceImpl implements TbCfDescripitonService {
public int deleteBatch(String[] descripitionIds) {
return tbCfDescripitonDao.deleteBatch(descripitionIds);
}
}
......@@ -59,4 +59,9 @@ public class TbCfStationItemServiceImpl implements TbCfStationItemService {
public int deleteBatch(String[] itemIds) {
return tbCfStationItemDao.deleteBatch(itemIds);
}
@Override
public int changeItemStatus(Integer status, String[] itemIds) {
return tbCfStationItemDao.changeItemStatus(status, itemIds);
}
}
......@@ -59,17 +59,21 @@
i.create_time,
i.item_categorytwo,
i.item_descrition_id,
e.template_title dname,
d.descripition_name dname,
t.goodstwotype_title title,
o.goodstype_title goodtype
FROM
tb_cf_station_item i
left JOIN tb_cf_goodstype o ON o.goodstype_id = i.item_category
left JOIN tb_cf_goodstwotype t ON i.item_categorytwo=t.goodstwotype_id
left JOIN tb_cf_descripiton d ON i.item_descrition_id=d.descripition_id
left JOIN tb_cf_express_template e ON i.item_descrition_id = e.template_id
WHERE 1=1
<if test="name != null and name.trim() != ''">
AND name LIKE concat('%',#{name},'%')
AND item_name LIKE concat('%',#{name},'%')
</if>
<if test="code != null and code.trim() != ''">
AND item_code=#{code}
</if>
<choose>
<when test="sidx != null and sidx.trim() != ''">
......@@ -89,7 +93,10 @@
select count(*) from tb_cf_station_item
WHERE 1=1
<if test="name != null and name.trim() != ''">
AND name LIKE concat('%',#{name},'%')
AND item_name LIKE concat('%',#{name},'%')
</if>
<if test="code != null and code.trim() != ''">
AND item_code=#{code}
</if>
</select>
......@@ -161,5 +168,10 @@
</foreach>
</delete>
<update id="changeItemStatus">
update tb_cf_station_item set enable_flag=#{status} where item_id in
<foreach item="itemId" collection="itemIds" open="(" separator="," close=")">
#{itemId}
</foreach>
</update>
</mapper>
\ No newline at end of file
......@@ -4,8 +4,8 @@
<title>站点商品</title>
#parse("sys/header.html")
<style>
.ui-jqgrid .ui-jqgrid-bdiv{
height:auto!important;
.ui-jqgrid .ui-jqgrid-bdiv {
height: auto !important;
}
</style>
</head>
......@@ -15,10 +15,17 @@
<Row :gutter="16">
<div class="search-group">
<i-col span="4">
<i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
<i-input v-model="q.code" @on-enter="query" placeholder="商品编号">
<span slot="prepend">商品编号:</span>
</i-input>
</i-col>
<i-button @click="query">查询</i-button>
<i-button @click="reloadSearch">重置</i-button>
<i-col span="4">
<i-input v-model="q.name" @on-enter="query" placeholder="商品名称">
<span slot="prepend">商品名称:</span>
</i-input>
</i-col>
<i-button @click="query" type="primary"><i class="fa fa-search"></i>查询</i-button>
<i-button @click="reloadSearch" type="primary"><i class="fa fa-refresh"></i>重置</i-button>
</div>
<div class="buttons-group">
#if($shiro.hasPermission("tbcfstationitem:save"))
......@@ -27,8 +34,16 @@
#if($shiro.hasPermission("tbcfstationitem:update"))
<i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
#end
#if($shiro.hasPermission("tbcfstationitem:changeItemStatus"))
<i-button type="success" @click="changeItemStatus(1)"><i class="fa fa-chevron-up"></i>&nbsp;上架
</i-button>
#end
#if($shiro.hasPermission("tbcfstationitem:changeItemStatus"))
<i-button type="warning" @click="changeItemStatus(2)"><i class="fa fa-chevron-down"></i>&nbsp;下架
</i-button>
#end
#if($shiro.hasPermission("tbcfstationitem:delete"))
<i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
<i-button type="error" @click="changeItemStatus(0)"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
#end
</div>
</Row>
......@@ -41,15 +56,15 @@
<Form-item label="商品编号" prop="itemCode">
<i-input v-model="tbCfStationItem.itemCode" placeholder="商品编号"/>
</Form-item>
<Form-item label="商品名" prop="itemName">
<Form-item label="商品名" prop="itemName">
<i-input v-model="tbCfStationItem.itemName" placeholder="商品名字"/>
</Form-item>
<Form-item label="商品标题简介" prop="itemBrief">
<Form-item label="商品标题" prop="itemBrief">
<i-input v-model="tbCfStationItem.itemBrief" placeholder="商品标题简介"/>
</Form-item>
<Form-item label="商品链接" prop="itemUrl">
<!-- <Form-item label="商品链接" prop="itemUrl">
<i-input v-model="tbCfStationItem.itemUrl" placeholder="商品链接"/>
</Form-item>
</Form-item>-->
<Form-item label="商品价格" prop="itemPrice">
<i-input v-model="tbCfStationItem.itemPrice" placeholder="商品价格"/>
</Form-item>
......@@ -66,7 +81,9 @@
<div style="display: flex;position: relative;">
<div v-for="item in uploadList" style="margin-left: 5px;">
<img :src="item" width="100" height="100" id="itemImg">
<i class="ivu-icon ivu-icon-ios-trash-outline" style="cursor:pointer;display: flex;font-size: 24px;position: relative;left:11" @click="delImg1(item)"></i>
<i class="ivu-icon ivu-icon-ios-trash-outline"
style="cursor:pointer;display: flex;font-size: 24px;position: relative;left:11"
@click="delImg1(item)"></i>
</div>
</div>
</Form-item>
......@@ -76,37 +93,41 @@
<input type="file" placeholder="商品图片" @change="tirggerFile($event)"/>
</Form-item>
-->
<Form-item label="所属平台" prop="platformCode">
<!--<Form-item label="所属平台" prop="platformCode">
<i-input v-model="tbCfStationItem.platformCode" placeholder="所属平台"/>
</Form-item>
<Form-item label="平台名" prop="platformName">
<i-input v-model="tbCfStationItem.platformName" placeholder="平台名"/>
</Form-item>
<Form-item label="启用状态" prop="enableFlag">
<i-input v-model="tbCfStationItem.enableFlag" placeholder="启用状态"/>
</Form-item>-->
<Form-item label="状态" prop="enableFlag">
<i-input v-model="tbCfStationItem.enableFlag" placeholder="状态"/>
</Form-item>
<Form-item label="商品一级分类" prop="itemCategory">
<i-select placeholder="请选择" v-model="tbCfStationItem.itemCategory" @on-change="changeGoodstype">
<i-option v-for="(el,i) in Goodstype" :key = 'i'
:value="el.goodstypeId">{{el.goodstypeTitle}}</i-option>
<i-option v-for="(el,i) in Goodstype" :key='i'
:value="el.goodstypeId">{{el.goodstypeTitle}}
</i-option>
</i-select>
</Form-item>
<Form-item label="商品二级分类" prop="itemCategorytwo">
<i-select placeholder="请选择" v-model="tbCfStationItem.itemCategorytwo" @on-change="changeGoodstype2">
<i-option v-for="(el,i) in Goodstype2" :key = 'i'
:value="el.goodstwotypeId">{{el.goodstwotypeTitle}}</i-option>
<i-option v-for="(el,i) in Goodstype2" :key='i'
:value="el.goodstwotypeId">{{el.goodstwotypeTitle}}
</i-option>
</i-select>
</Form-item>
<Form-item label="商品品名" prop="itemDescritionId">
<i-select placeholder="请选择" v-model="tbCfStationItem.itemDescritionId">
<i-option v-for="(el,i) in Goodstype3" :key = 'i'
:value="el.descripitionId">{{el.descripitionName}}</i-option>
<i-option v-for="(el,i) in Goodstype3" :key='i'
:value="el.descripitionId">{{el.descripitionName}}
</i-option>
</i-select>
</Form-item>
<Form-item>
<i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
<i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
<i-button type="warning" @click="reload" style="margin-left: 8px"/>
返回</i-button>
<i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
</Form-item>
</i-form>
......
......@@ -709,6 +709,18 @@ yesOrNoFormat = function (cellvalue) {
return returnStr;
};
itemStatusFormat = function (cellvalue) {
var returnStr;
if (cellvalue == '1') {
returnStr = "已上架";
} else if (cellvalue == '2') {
returnStr = "已下架";
} else if (cellvalue == '0') {
returnStr = "已删除";
}
return returnStr;
}
/**
* 跳转页面
* @param cellvalue
......
......@@ -3,20 +3,20 @@ $(function () {
url: '../tbcfstationitem/list',
colModel: [
{label: 'itemId', name: 'itemId', index: 'item_id', key: true, hidden: true},
{label: '商品编号', name: 'itemCode', index: 'item_code', width: 80},
{label: '商品名字', name: 'itemName', index: 'item_name', width: 80},
{label: '商品标题简介', name: 'itemBrief', index: 'item_brief', width: 80},
{label: '商品链接', name: 'itemUrl', index: 'item_url', width: 80,formatter:linkFormat},
{label: '商品图片', name: 'itemImg', index: 'item_img', width: 80,formatter: imageFormat},
{label: '商品价格', name: 'itemPrice', index: 'item_price', width: 80},
{label: '点击量', name: 'itemNum', index: 'item_num', width: 80},
{label: '所属平台', name: 'platformCode', index: 'platform_code', width: 80},
{label: '平台名', name: 'platformName', index: 'platform_name', width: 80},
{label: '启用状态', name: 'enableFlag', index: 'enable_flag', width: 80},
{label: '商品图片', name: 'itemImg', index: 'item_img', width: 35, formatter: imageFormat},
{label: '商品编号', name: 'itemCode', index: 'item_code', width: 60},
{label: '商品名字', name: 'itemName', index: 'item_name', width: 120},
{label: '商品标题', name: 'itemBrief', index: 'item_brief', width: 120},
/*{label: '商品链接', name: 'itemUrl', index: 'item_url', width: 80,formatter:linkFormat},*/
{label: '商品价格', name: 'itemPrice', index: 'item_price', width: 60},
{label: '点击量', name: 'itemNum', index: 'item_num', width: 60},
/*{label: '所属平台', name: 'platformCode', index: 'platform_code', width: 80},
{label: '平台名', name: 'platformName', index: 'platform_name', width: 80},*/
{label: '状态', name: 'enableFlag', index: 'enable_flag', width: 60, formatter: itemStatusFormat},
{label: '创建日期', name: 'createTime', index: 'create_time', width: 80},
{label: '商品一级分类', name: 'goodtype', index: 'goodtype', width: 80},
{label: '商品二级分类', name: 'title', index: 'title', width: 80},
{label: '商品品名', name: 'dname', index: 'dname', width: 80}]
{label: '商品品名', name: 'dname', index: 'itemDescritionId', width: 80}]
});
});
......@@ -26,10 +26,10 @@ let vm = new Vue({
showList: true,
title: null,
tbCfStationItem: {},
Goodstype:null,
Goodstype2:null,
uploadList : [],
Goodstype3:null,
Goodstype: null,
Goodstype2: null,
uploadList: [],
Goodstype3: null,
ruleValidate: {
name: [
{required: true, message: '名称不能为空', trigger: 'blur'}
......@@ -41,9 +41,9 @@ let vm = new Vue({
},
methods: {
//获取一级分类
changeGoodstype(){
changeGoodstype() {
// console.log(this.tbCfStationItem.itemCategory);
let url = "../tbcfstationitem/queryByItemType?typeId="+this.tbCfStationItem.itemCategory;
let url = "../tbcfstationitem/queryByItemType?typeId=" + this.tbCfStationItem.itemCategory;
// console.log('url',url)
let that = this;
Ajax.request({
......@@ -51,14 +51,14 @@ let vm = new Vue({
type: "get",
contentType: "application/json",
successCallback: function (r) {
if(r.code===0){
if (r.code === 0) {
that.Goodstype2 = r.list
}
}
});
},
changeGoodstype2(){
let url = "../tbcfstationitem/queryByItemTypeTwo?typeTwoId="+this.tbCfStationItem.itemCategorytwo;
changeGoodstype2() {
let url = "../tbcfstationitem/queryByItemTypeTwo?typeTwoId=" + this.tbCfStationItem.itemCategorytwo;
let that = this;
Ajax.request({
url: url,
......@@ -66,7 +66,7 @@ let vm = new Vue({
contentType: "application/json",
successCallback: function (r) {
if(r.code===0){
if (r.code === 0) {
that.Goodstype3 = r.descripiton
}
}
......@@ -107,7 +107,7 @@ let vm = new Vue({
},
del: function (event) {
let itemIds = getSelectedRows("#jqGrid");
if (itemIds == null){
if (itemIds == null) {
return;
}
......@@ -125,9 +125,26 @@ let vm = new Vue({
});
});
},
getInfo: function(itemId){
changeItemStatus: function (status) {
let itemIds = getSelectedRows("#jqGrid");
if (itemIds == null) {
return;
}
Ajax.request({
url: "../tbcfstationitem/changeItemStatus?status=" + status,
params: JSON.stringify(itemIds),
type: "POST",
contentType: "application/json",
successCallback: function () {
alert('操作成功', function (index) {
vm.reload();
});
}
});
},
getInfo: function (itemId) {
Ajax.request({
url: "../tbcfstationitem/info/"+itemId,
url: "../tbcfstationitem/info/" + itemId,
async: true,
successCallback: function (r) {
vm.tbCfStationItem = r.tbCfStationItem;
......@@ -139,12 +156,12 @@ let vm = new Vue({
vm.showList = true;
let page = $("#jqGrid").jqGrid('getGridParam', 'page');
$("#jqGrid").jqGrid('setGridParam', {
postData: {'name': vm.q.name},
postData: {'name': vm.q.name,'code':vm.q.code},
page: page
}).trigger("reloadGrid");
vm.handleReset('formValidate');
},
reloadSearch: function() {
reloadSearch: function () {
vm.q = {
name: ''
};
......@@ -185,14 +202,14 @@ let vm = new Vue({
}*/
/** ******************************************************************************************** */
handleSuccess (response, file, fileList) {
handleSuccess(response, file, fileList) {
// "http://diaosaas-prod.oss-cn-shenzhen.aliyuncs.com/education/155728894307110106.jpg"
vm.uploadList.push(response);
$("#itemImg").show();
},
handleBeforeUpload (file) {
handleBeforeUpload(file) {
// 上传图片大小不超过5M
if (file.size > 5 * 1024 * 1024 ) {
if (file.size > 5 * 1024 * 1024) {
alert('请上传不超过5M的图片');
return false;
}
......@@ -207,7 +224,7 @@ let vm = new Vue({
// return this.checkImageWH(file,750,320);
},
// 限制上传图片的宽高
checkImageWH : function(file, width, height) {
checkImageWH: function (file, width, height) {
let self = this;
return new Promise(function (resolve, reject) {
let filereader = new FileReader();
......@@ -237,12 +254,12 @@ let vm = new Vue({
});
},
// 删除上传图片
delImg1:function(url){
delImg1: function (url) {
if (vm.title != "详情") {
vm.uploadList.remove(url);
console.log(url);
Ajax.request({
url: "../api/osstest/deletetest?url="+url,
url: "../api/osstest/deletetest?url=" + url,
async: false,
type: "POST",
contentType: "application/json",
......@@ -257,9 +274,9 @@ let vm = new Vue({
/** ******************************************************************************************** */
},
created(){
created() {
var that = this
$.get('../tbcfgoodstype/queryAll',function (res) {
$.get('../tbcfgoodstype/queryAll', function (res) {
//console.log("成功");
that.Goodstype = res.list;
})
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论