1
0
Prechádzať zdrojové kódy

修改门店关联快递逻辑

修改门店关联快递逻辑
hj123456 4 rokov pred
rodič
commit
7ed41a6c67

+ 17 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ExpressCompanySysController.java

@@ -8,6 +8,7 @@ import com.kmall.admin.entity.ShopAndAddrVo;
 import com.kmall.admin.entity.StoreEntity;
 import com.kmall.admin.service.ExpressCompanySysService;
 import com.kmall.admin.service.StoreService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
@@ -52,6 +53,17 @@ public class ExpressCompanySysController {
     }
 
     /**
+     * 根据第三方商户查看所有列表
+     */
+    @RequestMapping("/getCompantByThirdMerch")
+    @ResponseBody
+    public R getCompantByThirdMerch(@RequestParam Map<String, Object> params) {
+
+        List<ExpressCompanySysEntity> list = expressCompanySysService.queryExprCompByisValid();
+        return R.ok().put("list", list);
+    }
+
+    /**
      * 查看信息
      */
     @RequestMapping("/info/{id}")
@@ -121,6 +133,11 @@ public class ExpressCompanySysController {
         return R.ok().put("list", list);
     }
 
+    /**
+     * 添加添加门店快递关联
+     * @param shopAndAddrVo
+     * @return
+     */
     @PostMapping("/getshopaddr")
     @RequiresPermissions("expresscompanysys:showshopaddrsave")
     @ResponseBody

+ 19 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/shop/AddressInfoController.java

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.kmall.admin.entity.AddressInfoEntity;
+import com.kmall.admin.entity.ShopAndAddrVo;
 import com.kmall.admin.entity.shop.StoreAddrVo;
 import com.kmall.admin.service.AddressInfoService;
 import com.kmall.common.utils.PageUtils;
@@ -106,10 +107,28 @@ public class AddressInfoController {
         return R.ok().put("list", list);
     }
 
+    /**
+     * 修改状态
+     * @param storeAddrVo
+     * @return
+     */
     @RequestMapping("/getStatus")
     @ResponseBody
     public R getStatus(@RequestBody StoreAddrVo storeAddrVo) {
         addressInfoService.updateStatus(storeAddrVo);
         return R.ok();
     }
+
+    /**
+     * 添加门店关联快递公司
+     * @param shopAndAddrVo
+     * @return
+     */
+    @RequestMapping("/saveStoreAndComp")
+    @RequiresPermissions("addressinfo:saveStoreAndComp")
+    @ResponseBody
+    public R saveStoreAndComp(@RequestBody ShopAndAddrVo shopAndAddrVo) {
+        addressInfoService.save(shopAndAddrVo);
+        return R.ok();
+    }
 }

+ 20 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/AddressInfoDao.java

@@ -5,6 +5,8 @@ import com.kmall.admin.entity.AddressInfoEntity;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 门店和快递关联表Dao
  *
@@ -14,8 +16,26 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface AddressInfoDao extends BaseDao<AddressInfoEntity> {
 
+    /**
+     * 根据门店id和快递id查询
+     * @param storeId
+     * @param courieId
+     * @return
+     */
     AddressInfoEntity queryIds(@Param("storeId") String storeId, @Param("courieId") String courieId);
 
+    /**
+     * 根据门店id查询
+     * @param storeId
+     * @return
+     */
     AddressInfoEntity queryStatus(@Param("storeId") Integer storeId);
 
+    /**
+     * 根据快递id查询
+     * @param courieId
+     * @return
+     */
+    List<AddressInfoEntity> queryCourieId(@Param("courieId") Integer courieId);
+
 }

+ 7 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/ExpressCompanySysDao.java

@@ -4,6 +4,8 @@ package com.kmall.admin.dao;
 import com.kmall.admin.entity.ExpressCompanySysEntity;
 import com.kmall.manager.dao.BaseDao;
 
+import java.util.List;
+
 /**
  * 快递公司表Dao
  *
@@ -12,5 +14,9 @@ import com.kmall.manager.dao.BaseDao;
  * @date 2021-04-02 10:06:15
  */
 public interface ExpressCompanySysDao extends BaseDao<ExpressCompanySysEntity> {
-
+    /**
+     * 根据快递公司启用状态查询
+     * @return
+     */
+    List<ExpressCompanySysEntity> queryExprCompByisValid();
 }

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/service/AddressInfoService.java

@@ -25,8 +25,14 @@ public interface AddressInfoService {
      */
     AddressInfoEntity queryObject(Integer id);
 
+    /**
+     * 根据门店id和快递id查询
+     * @param shopAndAddrVo
+     * @return
+     */
     AddressInfoEntity queryIds(ShopAndAddrVo shopAndAddrVo);
 
+    List<AddressInfoEntity> queryCourieId(Integer courieId);
     /**
      * 分页查询
      *
@@ -51,6 +57,11 @@ public interface AddressInfoService {
      */
     int save(AddressInfoEntity addressInfo);
 
+    /**
+     * 添加门店关联快递公司
+     * @param shopAndAddrVo
+     * @return
+     */
     int save(ShopAndAddrVo shopAndAddrVo);
 
     /**
@@ -61,6 +72,11 @@ public interface AddressInfoService {
      */
     int update(AddressInfoEntity addressInfo);
 
+    /**
+     * 修改状态
+     * @param storeAddrVo
+     * @return
+     */
     int updateStatus(StoreAddrVo storeAddrVo);
     /**
      * 根据主键删除

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/service/ExpressCompanySysService.java

@@ -33,6 +33,12 @@ public interface ExpressCompanySysService {
     List<ExpressCompanySysEntity> queryList(Map<String, Object> map);
 
     /**
+     * 根据快递公司启用状态查询
+     * @return
+     */
+    List<ExpressCompanySysEntity> queryExprCompByisValid();
+
+    /**
      * 分页统计总数
      *
      * @param map 参数

+ 10 - 1
kmall-admin/src/main/java/com/kmall/admin/service/impl/AddressInfoServiceImpl.java

@@ -41,6 +41,11 @@ public class AddressInfoServiceImpl implements AddressInfoService {
     }
 
     @Override
+    public List<AddressInfoEntity> queryCourieId(Integer courieId) {
+        return addressInfoDao.queryCourieId(courieId);
+    }
+
+    @Override
     public List<AddressInfoEntity> queryList(Map<String, Object> map) {
         return addressInfoDao.queryList(map);
     }
@@ -59,7 +64,11 @@ public class AddressInfoServiceImpl implements AddressInfoService {
     public int save(ShopAndAddrVo shopAndAddrVo) {
         int exprId = Integer.parseInt(shopAndAddrVo.getExprId());
         int outletsId = Integer.parseInt(shopAndAddrVo.getOutletsId());
-        AddressInfoEntity addressInfo =new AddressInfoEntity();
+        AddressInfoEntity addressInfo = addressInfoDao.queryIds(outletsId + "", exprId + "");
+        if (addressInfo!=null) {
+            throw new RRException("该门店已选择快递公司,不能重复添加!");
+        }
+        addressInfo =new AddressInfoEntity();
         addressInfo.setCourieId(exprId);
         addressInfo.setStoreId(outletsId);
         addressInfo.setIsValid(0);

+ 20 - 2
kmall-admin/src/main/java/com/kmall/admin/service/impl/ExpressCompanySysServiceImpl.java

@@ -17,7 +17,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * 快递公司表Service实现类
+ * 快递公司表Service实现类a
  *
  * @author emato
  * @email admin@qhdswl.com
@@ -25,6 +25,7 @@ import java.util.Map;
  */
 @Service("expressCompanySysService")
 public class ExpressCompanySysServiceImpl implements ExpressCompanySysService {
+
     @Autowired
     private ExpressCompanySysDao expressCompanySysDao;
     @Autowired
@@ -41,6 +42,11 @@ public class ExpressCompanySysServiceImpl implements ExpressCompanySysService {
     }
 
     @Override
+    public List<ExpressCompanySysEntity> queryExprCompByisValid() {
+        return expressCompanySysDao.queryExprCompByisValid();
+    }
+
+    @Override
     public int queryTotal(Map<String, Object> map) {
         return expressCompanySysDao.queryTotal(map);
     }
@@ -58,7 +64,19 @@ public class ExpressCompanySysServiceImpl implements ExpressCompanySysService {
         SysUserEntity sysUserEntity = ShiroUtils.getUserEntity();
         expressCompanySys.setModerSn(sysUserEntity.getUsername());
         expressCompanySys.setModTime(new Date());
-        return expressCompanySysDao.update(expressCompanySys);
+        int update = expressCompanySysDao.update(expressCompanySys);
+        Integer isValid = expressCompanySys.getIsValid();
+        Integer companySysId = expressCompanySys.getId();
+        if (isValid.equals(0)) {
+//            new Thread(()->{
+                List<AddressInfoEntity> addressList = addressInfoService.queryCourieId(companySysId);
+                addressList.forEach(addressInfoEntity -> {
+                    addressInfoEntity.setIsValid(0);
+                    addressInfoService.update(addressInfoEntity);
+//                });
+            });
+        }
+        return update;
     }
 
     @Override

+ 9 - 0
kmall-admin/src/main/resources/mybatis/mapper/shop/AddressInfoDao.xml

@@ -58,6 +58,15 @@
 	        and courie_id = #{courieId}
     </select>
 
+	<select id="queryCourieId" resultType="com.kmall.admin.entity.AddressInfoEntity">
+		select
+		<include refid="addrInfo"></include>
+		from mall2_express_address_info
+		where
+	    courie_id = #{courieId}
+	    and is_valid = 1
+	</select>
+
 	<select id="queryStatus" resultType="com.kmall.admin.entity.AddressInfoEntity">
 		select
 		<include refid="addrInfo"></include>

+ 7 - 0
kmall-admin/src/main/resources/mybatis/mapper/shop/ExpressCompanySysDao.xml

@@ -32,6 +32,13 @@
 		where id = #{id}
 	</select>
 
+	<select id="queryExprCompByisValid" resultType="com.kmall.admin.entity.ExpressCompanySysEntity">
+		select
+		<include refid="expeSql"></include>
+		from mall2_express_company
+		where is_valid = 1
+	</select>
+
 	<select id="queryList" resultType="com.kmall.admin.entity.ExpressCompanySysEntity">
 		select
 		<include refid="expeSql"></include>

+ 43 - 23
kmall-admin/src/main/webapp/WEB-INF/page/shop/addressinfo.html

@@ -16,7 +16,7 @@
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("addressinfo:save"))
+                #if($shiro.hasPermission("addressinfo:saveStoreAndComp"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
                 #end
                 #if($shiro.hasPermission("addressinfo:update"))
@@ -25,6 +25,7 @@
                 #if($shiro.hasPermission("addressinfo:delete"))
                 <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
                 #end
+
             </div>
         </Row>
 	    <table id="jqGrid"></table>
@@ -34,28 +35,47 @@
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
 		<i-form ref="formValidate" :model="addressInfo" :rules="ruleValidate" :label-width="80">
-            <Form-item label="商家编号" prop="storeName">
-                <i-input v-model="addressInfo.storeName" placeholder="商家编号" readonly="readonly"/>
-            </Form-item>
-            <Form-item label="快递编号" prop="expressName">
-                <i-input v-model="addressInfo.expressName" placeholder="快递编号" readonly="readonly"/>
-            </Form-item>
-            <Form-item label="是否启用" prop="isValid">
-                <!--                <i-input v-model="expressCompanySys.isStatus" placeholder="默认0:未启用 1: 启用"/>-->
-                <Radio-group v-model="addressInfo.isValid">
-                    <Radio label="1">
-                        <span>正常</span>
-                    </Radio>
-                    <Radio label="0">
-                        <span>禁用</span>
-                    </Radio>
-                </Radio-group>
-            </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="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
-            </Form-item>
+            <div v-if="status == 1">
+                <Form-item label="商家编号" prop="storeName">
+                    <i-input v-model="addressInfo.storeName" placeholder="商家编号" readonly="readonly"/>
+                </Form-item>
+                <Form-item label="快递编号" prop="expressName">
+                    <i-input v-model="addressInfo.expressName" placeholder="快递编号" readonly="readonly"/>
+                </Form-item>
+                <Form-item label="是否启用" prop="isValid">
+                    <Radio-group v-model="addressInfo.isValid">
+                        <Radio label="1">
+                            <span>正常</span>
+                        </Radio>
+                        <Radio label="0">
+                            <span>禁用</span>
+                        </Radio>
+                    </Radio-group>
+                </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="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+                </Form-item>
+            </div>
+            <div v-if="status == 2">
+                <Form-item label="快递公司" prop="expcomId">
+                    <i-select v-model="addressInfo.expcomId" placeholder="快递公司名称" label-in-value>
+                        <i-option v-for="expcom in expressCompanySys" :value="expcom.id" :key="expcom.id">{{expcom.expressName}}</i-option>
+                    </i-select>
+                </Form-item>
+                <Form-item label="门店名称" prop="storeId">
+                    <i-select v-model="addressInfo.storeId" placeholder="门店名称" label-in-value>
+                        <i-option v-for="store in storeList" :value="store.id" :key="store.id">{{store.storeName}}</i-option>
+                    </i-select>
+                </Form-item>
+                <Form-item>
+                    <i-button type="primary" @click="handleComSubmit('formValidate')">提交</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>
+            </div>
+
         </i-form>
 	</Card>
 </div>

+ 2 - 2
kmall-admin/src/main/webapp/WEB-INF/page/sys/expresscompanysys.html

@@ -16,9 +16,9 @@
                 <i-button @click="reloadSearch">重置</i-button>
             </div>
             <div class="buttons-group">
-                #if($shiro.hasPermission("expresscompanysys:showshopaddrsave"))
+                <!--#if($shiro.hasPermission("expresscompanysys:showshopaddrsave"))
                 <i-button type="info" @click="showShopAddrSave"><i class="fa fa-plus"></i>&nbsp;选中分配门店 </i-button>
-                #end
+                #end-->
                 #if($shiro.hasPermission("expresscompanysys:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
                 #end

+ 55 - 4
kmall-admin/src/main/webapp/js/shop/addressinfo.js

@@ -54,11 +54,18 @@ let vm = new Vue({
         showList: true,
         title: null,
 		storeId: '',
+		expcomId:'',
+		status:'',
 		addressInfo: {},
+		storeList: [],
+		expressCompanySys:[],
 		ruleValidate: {
-			storeId: [
-				{required: true, message: '名称不能为空', trigger: 'blur'}
-			]
+			/*storeId: [
+				{required: true, message: '门店不能为空', trigger: 'blur'}
+			],*/
+			/*expcomId: [
+				{required: true, message: '快递公司不能为空', trigger: 'blur'}
+			],*/
 		},
 		q: {
 			storeId: ''
@@ -72,6 +79,11 @@ let vm = new Vue({
 			vm.showList = false;
 			vm.title = "新增";
 			vm.addressInfo = {};
+			vm.storeList = [];
+			vm.expressCompanySys=[];
+			vm.status=2;
+			vm.getStoresByMerch();
+			vm.getCompantByThirdMerch();
 		},
 		update: function (event) {
             let id = getSelectedRow();
@@ -80,7 +92,7 @@ let vm = new Vue({
 			}
 			vm.showList = false;
             vm.title = "修改";
-
+			vm.status=1;
             vm.getInfo(id)
 		},
 		saveOrUpdate: function (event) {
@@ -125,6 +137,38 @@ let vm = new Vue({
 				});
 			});
 		},
+		getStoresByMerch: function (opt) {
+			$.get("../expresscompanysys/getStoresByMerch", function (r) {
+				vm.storeList = r.list;
+			});
+		},
+		getCompantByThirdMerch: function (opt) {
+			$.get("../expresscompanysys/getCompantByThirdMerch", function (r) {
+				vm.expressCompanySys = r.list;
+			});
+		},
+		saveStoreAndComp: function (event) {
+			let url = "../addressinfo/saveStoreAndComp";
+			let storesId = vm.addressInfo.storeId;
+			let expcomId = vm.addressInfo.expcomId;
+			let pames={"outletsId":storesId,"exprId":expcomId};
+			console.log(JSON.stringify(pames));
+			$.ajax({
+				type: "POST",
+				url: url,
+				contentType: "application/json",
+				data: JSON.stringify(pames),
+				success: function (r) {
+					if (r.code === 0) {
+						alert('操作成功', function (index) {
+							vm.reload();
+						});
+					} else {
+						alert(r.msg);
+					}
+				}
+			});
+		},
 		checketStatus: function (event) {
 
 			let id = getSelectedRow();
@@ -174,6 +218,7 @@ let vm = new Vue({
 		},
 		reload: function (event) {
 			vm.showList = true;
+			vm.status='';
             let page = $("#jqGrid").jqGrid('getGridParam', 'page');
 			$("#jqGrid").jqGrid('setGridParam', {
                 postData: {'storeId': vm.q.storeId},
@@ -186,6 +231,12 @@ let vm = new Vue({
                 vm.saveOrUpdate()
             });
         },
+		handleComSubmit: function (name) {
+			handleSubmitValidate(this, name, function () {
+				// vm.saveOrUpdate()
+				vm.saveStoreAndComp();
+			});
+		},
         handleReset: function (name) {
             handleResetForm(this, name);
         }