Explorar o código

活动形式管理积分页面优化

zhh %!s(int64=3) %!d(string=hai) anos
pai
achega
d41cf24337

+ 4 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkActivitiesController.java

@@ -108,6 +108,10 @@ public class MkActivitiesController {
             throw new RRException(r.get("msg").toString());
         }
 
+        if("0".equals(mkActivities.getMkaEndEarly())){
+            mkActivities.setMkdEndEarlyTime("");
+        }
+
         mkActivitiesService.update(mkActivities);
         return R.ok();
     }

+ 9 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkActivitiesAssociationDao.java

@@ -13,5 +13,14 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface MkActivitiesAssociationDao extends BaseDao<MkActivitiesAssociationEntity> {
 
+    /**
+     * 根据营销活动id更新营销活动关联表对应数据
+     *
+     * @author zhuhh
+     * @param mkActivitiesAssociationEntity
+     * @return
+     */
+    int updateByMkaId(MkActivitiesAssociationEntity mkActivitiesAssociationEntity);
+
     MkActivitiesAssociationEntity queryByMkCodeAndTopic(@Param("mkCode") String mkCode, @Param("mkaTopic") String mkaTopic, @Param("mkaStoreId") String mkaStoreId);
 }

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesScoreServiceImpl.java

@@ -6,7 +6,9 @@ import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.mk.MkActivitiesScoreDao;
 import com.kmall.admin.dto.ScoreReductionDTO;
 import com.kmall.admin.entity.mk.MkActivitiesScoreEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.mk.MkActivitiesScoreService;
+import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.utils.*;
 import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.BeanUtils;
@@ -48,11 +50,25 @@ public class MkActivitiesScoreServiceImpl implements MkActivitiesScoreService {
 
     @Override
     public int save(MkActivitiesScoreEntity mkActivitiesScore) {
+
+        SysUserEntity user = ShiroUtils.getUserEntity();
+
+        mkActivitiesScore.setCreaterSn(user.getUserId() + "");
+        mkActivitiesScore.setCreateTime(new Date());
+        mkActivitiesScore.setModerSn(user.getUserId() + "");
+        mkActivitiesScore.setUpdateTime(mkActivitiesScore.getCreateTime());
+
         return mkActivitiesScoreDao.save(mkActivitiesScore);
     }
 
     @Override
     public int update(MkActivitiesScoreEntity mkActivitiesScore) {
+
+        SysUserEntity user = ShiroUtils.getUserEntity();
+
+        mkActivitiesScore.setModerSn(user.getUserId() + "");
+        mkActivitiesScore.setUpdateTime(new Date());
+
         return mkActivitiesScoreDao.update(mkActivitiesScore);
     }
 

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkActivitiesServiceImpl.java

@@ -84,7 +84,7 @@ public class MkActivitiesServiceImpl implements MkActivitiesService {
 
         MkActivitiesAssociationEntity mkActivitiesAssociation = new MkActivitiesAssociationEntity();
         BeanUtils.copyProperties(mkActivities, mkActivitiesAssociation);
-        mkActivitiesAssociationDao.update(mkActivitiesAssociation);
+        mkActivitiesAssociationDao.updateByMkaId(mkActivitiesAssociation);
 
         return 1;
     }

+ 15 - 0
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesAssociationDao.xml

@@ -143,6 +143,21 @@
 		</foreach>
 	</delete>
 
+	<update id="updateByMkaId" parameterType="com.kmall.admin.entity.mk.MkActivitiesAssociationEntity">
+		update mk_activities_association
+		<set>
+			<if test="mkCode != null">`mk_code` = #{mkCode}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="thirdMerchSn != null">`third_merch_sn` = #{thirdMerchSn}, </if>
+			<if test="mkaStoreId != null">`mka_store_id` = #{mkaStoreId}, </if>
+			<if test="mkaStatus != null">`mka_status` = #{mkaStatus}, </if>
+			<if test="mkaStartTime != null">`mka_start_time` = #{mkaStartTime}, </if>
+			<if test="mkdEndTime != null">`mkd_end_time` = #{mkdEndTime}, </if>
+			<if test="mkaEndEarly != null">`mka_end_early` = #{mkaEndEarly}, </if>
+			<if test="mkdEndEarlyTime != null">`mkd_end_early_time` = #{mkdEndEarlyTime}</if>
+		</set>
+		where `mka_id` = #{mkaId}
+	</update>
 
 
 </mapper>

+ 6 - 0
kmall-admin/src/main/resources/mybatis/mapper/mk/MkActivitiesScoreDao.xml

@@ -55,6 +55,9 @@
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
+		<if test="prodBarcode != null and prodBarcode.trim() != ''">
+			AND `prod_barcode` LIKE concat('%',#{prodBarcode},'%')
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -74,6 +77,9 @@
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
+		<if test="prodBarcode != null and prodBarcode.trim() != ''">
+			AND `prod_barcode` LIKE concat('%',#{prodBarcode},'%')
+		</if>
 	</select>
 
 	<select id="queryEntityByProdBarcodeAndSkuAndStoreIdAndTime"

+ 4 - 1
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkactivitiesscore.html

@@ -12,6 +12,9 @@
                 <i-col span="4">
                     <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
                 </i-col>
+                <i-col span="4">
+                    <i-input v-model="q.prodBarcode" @on-enter="query" placeholder="商品条码"/>
+                </i-col>
                 <i-button @click="query">查询</i-button>
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
@@ -61,7 +64,7 @@
                 <i-input v-model="mkActivitiesScore.mkaId" placeholder="营销活动编号"/>
             </Form-item>
             <Form-item label="截止日期" prop="deadline">
-                <i-input v-model="mkActivitiesScore.deadline" placeholder="截止日期"/>
+                <Date-picker type="datetime" format="yyyy-MM-dd HH:mm:ss" v-model="mkActivitiesScore.deadline" @on-change="getDeadLine" placeholder="截止日期" style="width: 240px"></Date-picker>
             </Form-item>
             <!--<Form-item label="创建时间" prop="createTime">
                 <i-input v-model="mkActivitiesScore.createTime" placeholder="创建时间"/>

+ 47 - 18
kmall-admin/src/main/webapp/js/mk/mkactivitiesscore.js

@@ -24,16 +24,26 @@ $(function () {
         datatype: "json",
         colModel: [
 			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
-			{label: '商品条码', name: 'prodBarcode', index: 'prod_barcode', width: 80},
-			{label: 'sku', name: 'sku', index: 'sku', width: 80},
+			{label: '商品条码', name: 'prodBarcode', index: 'prod_barcode', width: 150},
+			{label: 'sku', name: 'sku', index: 'sku', width: 150},
 			{label: '门店id', name: 'storeId', index: 'store_id', width: 80},
 			{label: '抵扣比例', name: 'scoreLimit', index: 'score_limit', width: 80},
-			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 80},
-			{label: '截止日期', name: 'deadline', index: 'deadline', width: 80},
-			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
-			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
-			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
-			{label: '修改时间', name: 'updateTime', index: 'update_time', width: 80}],
+			{label: '营销活动编号', name: 'mkaId', index: 'mka_id', width: 100},
+			{label: '截止日期', name: 'deadline', index: 'deadline', width: 200,
+				formatter: function (value) {
+					return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+				}}
+			// {label: '创建时间', name: 'createTime', index: 'create_time', width: 200,
+			// 	formatter: function (value) {
+			// 		return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+			// 	}},
+			// {label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 100},
+			// {label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
+			// {label: '修改时间', name: 'updateTime', index: 'update_time', width: 200,
+			// 	formatter: function (value) {
+			// 		return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+			// 	}}
+			],
 		viewrecords: true,
 		postData: {'mkaId': vm.mkaId},
         height: 550,
@@ -43,7 +53,9 @@ $(function () {
         rownumWidth: 25,
         autowidth: true,
         multiselect: true,
-        pager: "#jqGridPager",
+		shrinkToFit: true,
+		autoScroll: true,
+		pager: "#jqGridPager",
         jsonReader: {
             root: "page.list",
             page: "page.currPage",
@@ -56,7 +68,8 @@ $(function () {
             order: "order"
         },
         gridComplete: function () {
-            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
+			$("#jqGrid").setGridWidth($(window).width());
         }
     });
 });
@@ -68,12 +81,24 @@ let vm = new Vue({
         title: null,
 		mkActivitiesScore: {},
 		ruleValidate: {
-			name: [
-				{required: true, message: '名称不能为空', trigger: 'blur'}
+			sku: [
+				{required: true, message: 'sku不能为空', trigger: 'blur'},
+				{max: 32, message: 'sku长度不能超过32', trigger: 'blur'}
+			],
+			prodBarcode: [
+				{required: true, message: '商品条码不能为空', trigger: 'blur'},
+				{max: 32, message: '商品条码长度不能超过32', trigger: 'blur'}
+			],
+			scoreLimit: [
+				{required: true, message: '抵扣比例不能为空', trigger: 'blur'}
+			],
+			deadLine: [
+				{required: true, message: '截止日期不能为空', trigger: 'blur'}
 			]
 		},
 		q: {
-		    name: ''
+		    name: '',
+			prodBarcode: ''
 		},
 		isMkactivitiesShow: true,
 		mkCode: '',
@@ -104,8 +129,8 @@ let vm = new Vue({
             let url = vm.mkActivitiesScore.id == null ? "../mkactivitiesscore/save" : "../mkactivitiesscore/update";
 
 			//添加上层的门店编号与营销方式编号
-			vm.mkActivitiesHalfPrice.shopSn = vm.storeId;
-			vm.mkActivitiesHalfPrice.mkaId = vm.mkaId;
+			vm.mkActivitiesScore.storeId = vm.storeId;
+			vm.mkActivitiesScore.mkaId = vm.mkaId;
 
             $.ajax({
 				type: "POST",
@@ -154,7 +179,8 @@ let vm = new Vue({
 		},
         reloadSearch: function() {
             vm.q = {
-                name: ''
+                name: '',
+				prodBarcode: ''
             }
             vm.reload();
 		},
@@ -162,7 +188,7 @@ 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, 'prodBarcode': vm.q.prodBarcode},
                 page: page
             }).trigger("reloadGrid");
             vm.handleReset('formValidate');
@@ -180,7 +206,6 @@ let vm = new Vue({
 			window.location.href = "/mk/mkactivityform.html?mkCode="+vm.mkCode;
 		},
 		uploadExcelSuccess: function (data) {
-			// console.log(data);
 			if(data.code==0){
 				alert('导入成功', function (index) {
 					$("#jqGrid").trigger("reloadGrid");
@@ -209,6 +234,10 @@ let vm = new Vue({
 			});
 			return promise; //通过返回一个promis对象解决
 
+		},
+		// 获取时间
+		getDeadLine: function (e) {
+			vm.mkActivitiesScore.deadLine = e;
 		}
 	}
 });

+ 29 - 24
kmall-admin/src/main/webapp/js/mk/mkactivityform.js

@@ -44,7 +44,7 @@ $(function () {
             order: "order"
         },
         gridComplete: function () {
-            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
         }
     });
 
@@ -63,8 +63,16 @@ $(function () {
         url: '../mkactivityform/queryMkactivitiesList',
         datatype: "json",
         colModel: [
+            {label: '操作', width: 100, align: 'center',
+                formatter: function (value, col, row) {
+                    htmlStr = "<button class='btn btn-outline btn-primary' " +
+                        "onclick='vm.showMkactivitiesGoods(\""+row.mkaId+"\",\""+row.mkaStoreId+"\",\""+row.mkaTopic+"\")'>管理商品</button>";
+
+                    return htmlStr;
+                }
+            },
             {label: 'mkaId', name: 'mkaId', index: 'mka_id', key: true, hidden: true},
-            {label: '营销方式', name: 'mkaTopic', index: 'mka_topic', width: 80, align: 'center',
+            {label: '营销方式', name: 'mkaTopic', index: 'mka_topic', width: 100, align: 'center',
                 formatter:function(value){
                     var mkaTopicName ;
                     if(value === 'lscx')
@@ -87,11 +95,11 @@ $(function () {
                         mkaTopicName = marketing.drjbj;
                     return mkaTopicName == null? value : mkaTopicName;
                 }},
-            {label: '商户名称', name: 'merchName', width: 80, align: 'center'},
-            {label: '第三方商户', name: 'thirdMerchName', width: 80, align: 'center'},
-            {label: '门店编号', name: 'mkaStoreId', width: 80, align: 'center',hidden: true},
-            {label: '活动门店', name: 'storeName', width: 80, align: 'center'},
-            {label: '是否启用', name: 'mkaStatus', index: 'mka_status', width: 60, align: 'center',
+            {label: '商户名称', name: 'merchName', width: 200, align: 'center'},
+            {label: '第三方商户', name: 'thirdMerchName', width: 200, align: 'center'},
+            {label: '门店编号', name: 'mkaStoreId', width: 200, align: 'center',hidden: true},
+            {label: '活动门店', name: 'storeName', width: 200, align: 'center'},
+            {label: '是否启用', name: 'mkaStatus', index: 'mka_status', width: 100, align: 'center',
                 formatter: function (value) {
                     if (value == '0') {
                         return '否';
@@ -101,10 +109,10 @@ $(function () {
                     return '';
                 }
             },
-            {label: '活动优先级', name: 'priority', index: 'priority', width: 80, align: 'center'},
-            {label: '开始时间', name: 'mkaStartTime', index: 'mka_start_time', width: 80, align: 'center'},
-            {label: '结束时间', name: 'mkdEndTime', index: 'mkd_end_time', width: 80, align: 'center'},
-            {label: '是否提前结束', name: 'mkaEndEarly', index: 'mka_end_early', width: 60, align: 'center',
+            {label: '活动优先级', name: 'priority', index: 'priority', width: 100, align: 'center'},
+            {label: '开始时间', name: 'mkaStartTime', index: 'mka_start_time', width: 200, align: 'center'},
+            {label: '结束时间', name: 'mkdEndTime', index: 'mkd_end_time', width: 200, align: 'center'},
+            {label: '是否提前结束', name: 'mkaEndEarly', index: 'mka_end_early', width: 200, align: 'center',
                 formatter: function (value) {
                     if (value == '0') {
                         return '否';
@@ -114,25 +122,20 @@ $(function () {
                     return '';
                 }
             },
-            {label: '提前结束时间', name: 'mkdEndEarlyTime', index: 'mkd_end_early_time', width: 80, align: 'center'},
-            {label: '操作', width: 80, align: 'center',
-                formatter: function (value, col, row) {
-                    htmlStr = "<button class='btn btn-outline btn-primary' " +
-                        "onclick='vm.showMkactivitiesGoods(\""+row.mkaId+"\",\""+row.mkaStoreId+"\",\""+row.mkaTopic+"\")'>管理商品</button>";
-
-                    return htmlStr;
-                }
-            }],
+            {label: '提前结束时间', name: 'mkdEndEarlyTime', index: 'mkd_end_early_time', width: 200, align: 'center'}
+            ],
         viewrecords: true,
-        height: 550,
+        height: '100%',
         width:1680,
         postData: {'mkCode': vm.mkCode, 'topic': vm.q.topic},
         rowNum: 10,
         rowList: [10, 30, 50],
         rownumbers: true,
         rownumWidth: 25,
-        autowidth: false,
+        autowidth: true,
         multiselect: true,
+        autoScroll: true,   //开启水平滚动条
+        shrinkToFit: false,
         pager: "#jqGridPagerOrder",
         jsonReader: {
             root: "page.list",
@@ -146,11 +149,13 @@ $(function () {
             order: "order"
         },
         gridComplete: function () {
-            $("#jqGridOrder").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+            $("#jqGridOrder").closest(".ui-jqgrid-bdiv").css({"overflow-x": "scroll"});
+            $("#jqGridOrder").setGridWidth($(window).width());
         }
     });
 
-
+    // 启动冻结列
+    $("#jqGridOrder").jqGrid("setFrozenColumns");
 
 });