1
0
Преглед на файлове

分销商逻辑功能admin端前后端修改

hyq преди 6 години
родител
ревизия
343b4babfd
променени са 30 файла, в които са добавени 969 реда и са изтрити 200 реда
  1. 31 7
      kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java
  2. 2 0
      kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java
  3. 3 0
      kmall-admin/src/main/java/com/kmall/admin/controller/ThirdMerchExpressController.java
  4. 21 17
      kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkDistController.java
  5. 66 19
      kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkDistHierController.java
  6. 1 1
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkDistHierDao.java
  7. 0 1
      kmall-admin/src/main/java/com/kmall/admin/entity/ThirdMerchantBizEntity.java
  8. 13 2
      kmall-admin/src/main/java/com/kmall/admin/entity/mk/MkDistHierEntity.java
  9. 28 1
      kmall-admin/src/main/java/com/kmall/admin/fromcomm/controller/SysMenuController.java
  10. 10 0
      kmall-admin/src/main/java/com/kmall/admin/fromcomm/entity/SysUserEntity.java
  11. 6 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/CategoryServiceImpl.java
  12. 12 12
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkDistHierServiceImpl.java
  13. 2 2
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkDistSellAllocationServiceImpl.java
  14. 4 4
      kmall-admin/src/main/resources/mybatis/mapper/CategoryDao.xml
  15. 16 2
      kmall-admin/src/main/resources/mybatis/mapper/ThirdMerchExpressDao.xml
  16. 4 1
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkDistDao.xml
  17. 7 18
      kmall-admin/src/main/resources/mybatis/mapper/mk/MkDistHierDao.xml
  18. 7 2
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mkdisthier.html
  19. 11 1
      kmall-admin/src/main/webapp/WEB-INF/page/shop/category.html
  20. 3 3
      kmall-admin/src/main/webapp/WEB-INF/page/shop/thirdmerchantbiz.html
  21. 98 0
      kmall-admin/src/main/webapp/WEB-INF/page/sys/thirdmerchswitch.html
  22. 1 1
      kmall-admin/src/main/webapp/index.html
  23. 116 74
      kmall-admin/src/main/webapp/js/mk/mkdisthier.js
  24. 257 0
      kmall-admin/src/main/webapp/js/mk/mkdisthier2.js
  25. 2 2
      kmall-admin/src/main/webapp/js/mk/mkdistsellallocation.js
  26. 5 5
      kmall-admin/src/main/webapp/js/mk/mkdistsellstatis.js
  27. 22 5
      kmall-admin/src/main/webapp/js/shop/category.js
  28. 18 18
      kmall-admin/src/main/webapp/js/shop/thirdmerchantbiz.js
  29. 201 0
      kmall-admin/src/main/webapp/js/sys/thirdmerchswitch.js
  30. 2 2
      kmall-admin/src/main/webapp/statics/plugins/treegrid/tree.table.js

+ 31 - 7
kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java

@@ -33,6 +33,15 @@ public class CategoryController {
     @RequiresPermissions("category:list")
     public R list(@RequestParam Map<String, Object> params) {
         ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        String categoryName = (String) params.get("categoryName");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(categoryName)){
+            try{
+                categoryName = new String(categoryName.getBytes("iso-8859-1"),"utf-8");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            params.put("categoryName", categoryName);
+        }
         //查询列表数据
         Query query = new Query(params);
 
@@ -95,15 +104,24 @@ public class CategoryController {
     public R queryAll(@RequestParam Map<String, Object> params) {
 
         ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        String categoryName = (String) params.get("categoryName");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(categoryName)){
+            try{
+                categoryName = new String(categoryName.getBytes("iso-8859-1"),"utf-8");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            params.put("categoryName", categoryName);
+        }
 
         List<CategoryEntity> list = categoryService.queryList(params);
         //添加顶级菜单
-        CategoryEntity root = new CategoryEntity();
-        root.setId(0);
-        root.setName("一级分类");
-        root.setParentId(-1);
-        root.setOpen(true);
-        list.add(root);
+//        CategoryEntity root = new CategoryEntity();
+//        root.setId(0);
+//        root.setName("一级分类");
+//        root.setParentId(-1);
+//        root.setOpen(true);
+//        list.add(root);
         return R.ok().put("list", list);
     }
 
@@ -136,7 +154,13 @@ public class CategoryController {
         map.put("parentId", "0");
         ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", "thirdPartyMerchCode");
         List<CategoryEntity> list = categoryService.queryList(map);
-        return R.ok().put("list", list);
+        List<CategoryEntity> categoryEntities = new ArrayList<>();
+        for (CategoryEntity e: list) {
+            if(e.getSortOrder() != 0){
+                categoryEntities.add(e);
+            }
+        }
+        return R.ok().put("list", categoryEntities);
     }
 
     /**

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java

@@ -226,6 +226,8 @@ public class StoreController {
         Map<Object, Object> params = new HashMap<Object, Object>();
         params.put("scene", store.getId());//参数
         params.put("page", "pages/index/index");//页面
+//        params.put("scene", "1181135&40&1111");//参数
+//        params.put("page", "pages/goods/goods");//页面
         params.put("width", 430);
         String mapToXml = JSON.toJSONString(params);
 

+ 3 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ThirdMerchExpressController.java

@@ -6,6 +6,7 @@ import java.util.Map;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.ThirdMerchExpressEntity;
 import com.kmall.admin.service.ThirdMerchExpressService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -33,6 +34,7 @@ public class ThirdMerchExpressController {
     @RequiresPermissions("thirdmerchexpress:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -112,6 +114,7 @@ public class ThirdMerchExpressController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<ThirdMerchExpressEntity> list = thirdMerchExpressService.queryList(params);
 

+ 21 - 17
kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkDistController.java

@@ -1,12 +1,15 @@
 package com.kmall.admin.controller.mk;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.mk.MkDistEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.mk.MkDistService;
 import com.kmall.admin.utils.ParamUtils;
+import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,12 +48,10 @@ public class MkDistController {
         }
         //查询列表数据
         Query query = new Query(params);
-
         List<MkDistEntity> mkDistList = mkDistService.queryList(query);
         int total = mkDistService.queryTotal(query);
 
         PageUtils pageUtil = new PageUtils(mkDistList, total, query.getLimit(), query.getPage());
-
         return R.ok().put("page", pageUtil);
     }
 
@@ -62,7 +63,6 @@ public class MkDistController {
     @ResponseBody
     public R info(@PathVariable("distId") Integer distId) {
         MkDistEntity mkDist = mkDistService.queryObject(distId);
-
         return R.ok().put("mkDist", mkDist);
     }
 
@@ -86,7 +86,6 @@ public class MkDistController {
             throw new RRException(r.get("msg").toString());
         }
         mkDistService.save(mkDist);
-
         return R.ok();
     }
 
@@ -110,7 +109,6 @@ public class MkDistController {
             throw new RRException(r.get("msg").toString());
         }
         mkDistService.update(mkDist);
-
         return R.ok();
     }
 
@@ -122,7 +120,6 @@ public class MkDistController {
     @ResponseBody
     public R delete(@RequestBody Integer[]distIds) {
         mkDistService.deleteBatch(distIds);
-
         return R.ok();
     }
 
@@ -134,28 +131,35 @@ public class MkDistController {
     public R queryAll(@RequestParam Map<String, Object> params) {
         ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<MkDistEntity> list = mkDistService.queryList(params);
-
         return R.ok().put("list", list);
     }
+
     /**
-     * 查看所有子分销商列表
+     * 修改层级时查看上级分销商
+     * @param params
+     * @return
      */
-    @RequestMapping("/queryChildAll")
+    @RequestMapping("/queryAllById")
     @ResponseBody
-    public R queryChildAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
-        List<MkDistEntity> list = mkDistService.queryList(params);
-
+    public R queryAllById(@RequestParam Map<String, Object> params) {
+        List<MkDistEntity> list = new ArrayList<>();
+        String distId = (String)params.get("distId");
+        if(StringUtils.isNotEmpty(distId)){
+            MkDistEntity mkDistEntity = mkDistService.queryObject(Integer.parseInt(distId));
+            list.add(mkDistEntity);
+        }
         return R.ok().put("list", list);
     }
 
-
+    /**
+     * 根据商品id查询分销商
+     * @param params
+     * @return
+     */
     @RequestMapping("/queryDistByGoodsId")
     @ResponseBody
     public R queryDistByGoodsId(@RequestParam Map<String, Object> params) {
-
         MkDistEntity mkDistEntity = mkDistService.queryDistByGoodsId(params);
-
         return R.ok().put("mkDistEntity", mkDistEntity);
     }
 
@@ -163,8 +167,8 @@ public class MkDistController {
     @ResponseBody
     public R queryAllByHier(@RequestParam Map<String, Object> params) {
         ParamUtils.setQueryPowerByRoleType(params, "storeKey", "merchSn", "thirdPartyMerchCode");
+        params.put("hierLvl", "1");
         List<MkDistEntity> list = mkDistService.queryAllByHier(params);
-
         return R.ok().put("list", list);
     }
 

+ 66 - 19
kmall-admin/src/main/java/com/kmall/admin/controller/mk/MkDistHierController.java

@@ -12,10 +12,12 @@ import com.kmall.admin.entity.mk.MkDistEntity;
 import com.kmall.admin.entity.mk.MkDistHierEntity;
 import com.kmall.admin.entity.mk.MkDistHierLvlEntity;
 import com.kmall.admin.entity.mk.MkDistSellAllocationEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.service.mk.MkDistHierService;
 import com.kmall.admin.service.mk.MkDistSellAllocationService;
 import com.kmall.admin.service.mk.MkDistService;
 import com.kmall.admin.utils.ParamUtils;
+import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.utils.*;
 import io.swagger.models.auth.In;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -149,7 +151,31 @@ public class MkDistHierController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
         ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        String distHierName = (String) params.get("distHierName");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(distHierName)){
+            try{
+                distHierName = new String(distHierName.getBytes("iso-8859-1"),"utf-8");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            params.put("distHierName", distHierName);
+        }
         List<MkDistHierEntity> list = mkDistHierService.queryList(params);
+        for (MkDistHierEntity distHierEntity: list) {
+//            distHierEntity.setName(distHierEntity.getDistName());
+//            distHierEntity.setParentName(distHierEntity.getPdDistName());
+            if(distHierEntity.getHierLvl().equalsIgnoreCase("1")){
+                distHierEntity.setParentId(0L);
+            }
+        }
+        //添加顶级菜单
+//        MkDistHierEntity root = new MkDistHierEntity();
+//        root.setDistHierId(0);
+//        root.setDistHierName("一级分销");
+//        root.setPdistId(-1);
+//        root.setOpen(true);
+//        list.add(null);
+
 
         return R.ok().put("list", list);
     }
@@ -199,7 +225,7 @@ public class MkDistHierController {
             }
             for (int i = 0; i< hierLvl-1; i++){
                 Map<String, Object> lvlMap = new HashMap<>();
-                lvlMap.put("pdistId", pdistId);
+                lvlMap.put("distId", pdistId);
                 lvlMap.put("hierLvl", hierLvl-1-i);
                 List<MkDistHierEntity> lvlList = mkDistHierService.queryListByTree(lvlMap);
                 treeList.add(lvlList.get(0));
@@ -209,32 +235,53 @@ public class MkDistHierController {
         List<ExpendDistDto> expendDistDtoList = new ArrayList<>();
 
         String goodsId = (String) params.get("goodsId");
-        String storeId = (String) params.get("storeId");
+        Integer storeId = (Integer) params.get("storeId");
         Map<String, Object> allocationMap = new HashMap<>();
         allocationMap.put("goodsId", goodsId);
         allocationMap.put("storeId", storeId);
         String expendDistLines = "";
         List<MkDistSellAllocationEntity> allocationEntityList =  mkDistSellAllocationService.queryAllocationByMap(allocationMap);
-        if(allocationEntityList.size() > 0){
+        if(allocationEntityList.size() == 0){
+            SysUserEntity user = ShiroUtils.getUserEntity();
+            Map<String, Object> distHierMap = new HashMap<>();
+            if(StringUtils.isNotEmpty(user.getMerchSn())) {
+                distHierMap.put("merchSn", user.getMerchSn());
+            }
+            if(StringUtils.isNotEmpty(String.valueOf(storeId))) {
+                distHierMap.put("storeId", storeId);
+            }
+            if(StringUtils.isNotEmpty(user.getThirdPartyMerchCode())) {
+                distHierMap.put("thirdPartyMerchCode", user.getThirdPartyMerchCode());
+            }
+            List<MkDistHierEntity> distHierEntityList = mkDistHierService.queryList(distHierMap);
+            for (int i=0; i < distHierEntityList.size(); i++) {
+                MkDistHierEntity distHier = distHierEntityList.get(i);
+                MkDistEntity mkDistEntity = mkDistService.queryObject(distHier.getDistId());
+                ExpendDistDto expendDistDto = new ExpendDistDto();
+                expendDistDto.setExpendDistId(distHier.getDistId());
+                expendDistDto.setExpendDistName(mkDistEntity.getDistName());
+                expendDistDto.setExpendDistLvl(distHier.getHierLvl());
+                expendDistDtoList.add(expendDistDto);
+            }
+        }else{
             expendDistLines = allocationEntityList.get(0).getExpendDistLines();
-        }
-        String[] lines = null;
-        if(StringUtils.isNotEmpty(expendDistLines)){
-            lines = expendDistLines.split(",");
-        }
-
-        for (int i=0; i < treeList.size(); i++) {
-            MkDistHierEntity distHier = treeList.get(i);
-            ExpendDistDto expendDistDto = new ExpendDistDto();
-            expendDistDto.setExpendDistId(distHier.getDistId());
-            MkDistEntity mkDistEntity = mkDistService.queryObject(distHier.getDistId());
-            expendDistDto.setExpendDistName(mkDistEntity.getDistName());
-            expendDistDto.setExpendDistLvl(distHier.getHierLvl());
+            String[] lines = null;
+            if(StringUtils.isNotEmpty(expendDistLines)){
+                lines = expendDistLines.split(",");
+            }
+            for (int i=0; i < treeList.size(); i++) {
+                MkDistHierEntity distHier = treeList.get(i);
+                MkDistEntity mkDistEntity = mkDistService.queryObject(distHier.getDistId());
+                ExpendDistDto expendDistDto = new ExpendDistDto();
+                expendDistDto.setExpendDistId(distHier.getDistId());
+                expendDistDto.setExpendDistName(mkDistEntity.getDistName());
+                expendDistDto.setExpendDistLvl(distHier.getHierLvl());
 
-            if(treeList.size() == lines.length){
-                expendDistDto.setExpendDistLine(BigDecimal.valueOf(Double.parseDouble(lines[i])));
+                if(treeList.size() == lines.length){
+                    expendDistDto.setExpendDistLine(BigDecimal.valueOf(Double.parseDouble(lines[i])));
+                }
+                expendDistDtoList.add(expendDistDto);
             }
-            expendDistDtoList.add(expendDistDto);
         }
         return R.ok().put("list", expendDistDtoList);
     }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/mk/MkDistHierDao.java

@@ -66,7 +66,7 @@ public interface MkDistHierDao extends BaseDao<MkDistHierEntity> {
      * @param distChnlId
      * @return
      */
-    MkDistHierEntity selectDistHierByChnlIdAndOneLvl(@Param("distChnlId")Integer distChnlId);
+    MkDistHierEntity selectDistHierByChnlIdAndOneLvl(@Param("distChnlId") Integer distChnlId, @Param("distHierId")Integer distHierId);
 
     /**
      * 根据子级分销商查询层级关系

+ 0 - 1
kmall-admin/src/main/java/com/kmall/admin/entity/ThirdMerchantBizEntity.java

@@ -33,7 +33,6 @@ public class ThirdMerchantBizEntity implements Serializable {
 
     private String isStoreUserShare;
 
-
     /**
      * 是否有效,0:有效,1:无效
      */

+ 13 - 2
kmall-admin/src/main/java/com/kmall/admin/entity/mk/MkDistHierEntity.java

@@ -1,5 +1,7 @@
 package com.kmall.admin.entity.mk;
 
+import com.kmall.manager.entity.Tree;
+
 import java.io.Serializable;
 import java.util.Date;
 import java.util.List;
@@ -12,8 +14,7 @@ import java.util.List;
  * @email admin@qhdswl.com
  * @date 2019-04-09 18:04:46
  */
-public class MkDistHierEntity implements Serializable {
-    private static final long serialVersionUID = 1L;
+public class MkDistHierEntity extends Tree {
 
     /**
      * 分销层级id
@@ -92,6 +93,16 @@ public class MkDistHierEntity implements Serializable {
 
     private String name;
 
+    private Long parentId;
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
     private List<MkDistHierLvlEntity> lvlEntitieyList;
 
     public List<MkDistHierLvlEntity> getLvlEntitieyList() {

+ 28 - 1
kmall-admin/src/main/java/com/kmall/admin/fromcomm/controller/SysMenuController.java

@@ -1,14 +1,20 @@
 package com.kmall.admin.fromcomm.controller;
 
+import com.kmall.admin.entity.ThirdMerchantBizEntity;
+import com.kmall.admin.fromcomm.entity.SysUserEntity;
+import com.kmall.admin.service.ThirdMerchantBizService;
+import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.annotation.SysLog;
 import com.kmall.admin.fromcomm.entity.SysMenuEntity;
 import com.kmall.admin.fromcomm.service.SysMenuService;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.utils.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -25,6 +31,8 @@ import java.util.Map;
 public class SysMenuController extends AbstractController {
     @Autowired
     private SysMenuService sysMenuService;
+    @Autowired
+    private ThirdMerchantBizService thirdMerchantBizService;
 
     /**
      * 所有菜单列表
@@ -155,8 +163,27 @@ public class SysMenuController extends AbstractController {
     @RequestMapping("/user")
     public R user() {
         List<SysMenuEntity> menuList = sysMenuService.getUserMenuList(getUserId());
+        List<SysMenuEntity> sysMenuEntityList = new ArrayList<>();
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if(user != null) {
+            ThirdMerchantBizEntity entity = thirdMerchantBizService.getThirdMerchangByCode(user.getThirdPartyMerchCode());
+            if(entity != null){
+                for (SysMenuEntity sysMenuEntity: menuList) {
+                    if(Dict.status.item_0.getItem().equalsIgnoreCase(entity.getIsDistSellStart())){//不显示
+                        if(sysMenuEntity.getPerms() == null || !sysMenuEntity.getPerms().equalsIgnoreCase("mkPlatform")) {
+                            sysMenuEntityList.add(sysMenuEntity);
+                        }
+                    }
+                }
+                if(Dict.status.item_1.getItem().equalsIgnoreCase(entity.getIsDistSellStart())){
+                    sysMenuEntityList = menuList;
+                }
+            }else{
+                sysMenuEntityList = menuList;
+            }
+        }
 
-        return R.ok().put("menuList", menuList);
+        return R.ok().put("menuList", sysMenuEntityList);
     }
 
     /**

+ 10 - 0
kmall-admin/src/main/java/com/kmall/admin/fromcomm/entity/SysUserEntity.java

@@ -96,6 +96,16 @@ public class SysUserEntity
 
     private String roleName;
 
+    private String thirdPartyMerchName;
+
+    public String getThirdPartyMerchName() {
+        return thirdPartyMerchName;
+    }
+
+    public void setThirdPartyMerchName(String thirdPartyMerchName) {
+        this.thirdPartyMerchName = thirdPartyMerchName;
+    }
+
     public String getRoleName() {
         return roleName;
     }

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

@@ -67,6 +67,9 @@ public class CategoryServiceImpl implements CategoryService {
         if (Integer.valueOf(r.get("code").toString()) != 0) {
             throw new RRException(r.get("msg").toString());
         }
+        if(category.getLevel().equalsIgnoreCase("L1")){
+            category.setParentId(0);
+        }
 
         return categoryDao.save(category);
     }
@@ -82,6 +85,9 @@ public class CategoryServiceImpl implements CategoryService {
         if (Integer.valueOf(r.get("code").toString()) != 0) {
             throw new RRException(r.get("msg").toString());
         }
+        if(category.getLevel().equalsIgnoreCase("L1")){
+            category.setParentId(0);
+        }
 
         return categoryDao.update(category);
     }

+ 12 - 12
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkDistHierServiceImpl.java

@@ -75,9 +75,9 @@ public class MkDistHierServiceImpl implements MkDistHierService {
     private MkDistHierEntity getOneLvlDistByCurrentDistId(Integer distIdParam, Integer pdistIdParam){
         MkDistHierEntity oneLvlDistEntity = new MkDistHierEntity();
         //获取子级层级信息
-        MkDistHierEntity mkDistHierEntity = mkDistHierDao.selectDistHierByDistId(distIdParam);
+        MkDistHierEntity mkDistHierEntity = mkDistHierDao.selectDistHierByDistId(pdistIdParam);
         if(mkDistHierEntity == null){
-            mkDistHierEntity = mkDistHierDao.selectDistHierByDistId(pdistIdParam);
+            mkDistHierEntity = mkDistHierDao.selectDistHierByDistId(distIdParam);
         }
         if(mkDistHierEntity != null){
             //子级层级级别
@@ -139,7 +139,7 @@ public class MkDistHierServiceImpl implements MkDistHierService {
         if (distHierEntity != null) {
             throw new RRException("上级分销商【"+ pdistName +"】,下级分销商【"+ distName +"】已存在上下层级关系,不能再次交叉添加");
         }
-        MkDistHierEntity hierByChnlIdAndOneLvl = mkDistHierDao.selectDistHierByChnlIdAndOneLvl(mkDistHier.getDistChnlId());
+        MkDistHierEntity hierByChnlIdAndOneLvl = mkDistHierDao.selectDistHierByChnlIdAndOneLvl(mkDistHier.getDistChnlId(),null);
         if(mkDistHier.getHierLvl().equalsIgnoreCase("1")){
             if(hierByChnlIdAndOneLvl != null){
                 throw new RRException("分销渠道【"+ chnlName +"】的一级分销商已存在,请修改层级级别");
@@ -165,13 +165,13 @@ public class MkDistHierServiceImpl implements MkDistHierService {
         //查询当前子级分销商是否已创建层级关系
         MkDistHierEntity checkChildDistEntity = mkDistHierDao.selectDistHierByDistId(mkDistHier.getDistId());
         if (checkChildDistEntity != null){
-            throw new RRException("当前选择的子级分销商【"+ distName +"】已创建层级关系,请重新选择子级分销商");
+            throw new RRException("当前选择的子级分销商【"+ distName +"】已与其他分销商创建层级关系,请重新选择子级分销商");
         }
         //判断分销商的层级是否已存在
         Map hierMap = new HashMap();
-        hierMap.put("pdistId",mkDistHier.getPdistId());
-        hierMap.put("distChnlId",mkDistHier.getDistChnlId());
-        hierMap.put("hierLvl", mkDistHier.getHierLvl());
+        hierMap.put("pdistId" , mkDistHier.getPdistId());
+        hierMap.put("distChnlId" , mkDistHier.getDistChnlId());
+        hierMap.put("hierLvl" , mkDistHier.getHierLvl());
         MkDistHierEntity hierEntity = mkDistHierDao.queryObjectByHierMap(hierMap);
         if(hierEntity != null){
             throw new RRException("当前选择的子级分销商【" + distName + "】的层级级别【"+ mkDistHier.getHierLvl() +"】已存在");
@@ -248,7 +248,7 @@ public class MkDistHierServiceImpl implements MkDistHierService {
             throw new RRException("上级分销商【"+ pdistName +"】,下级分销商【"+ distName +"】已存在上下层级关系,不能再次交叉添加");
         }
 
-        MkDistHierEntity hierByChnlIdAndOneLvl = mkDistHierDao.selectDistHierByChnlIdAndOneLvl(mkDistHier.getDistChnlId());
+        MkDistHierEntity hierByChnlIdAndOneLvl = mkDistHierDao.selectDistHierByChnlIdAndOneLvl(mkDistHier.getDistChnlId(), mkDistHier.getDistHierId());
         if(!mkDistHier.getHierLvl().equalsIgnoreCase("1")){
             if(hierByChnlIdAndOneLvl == null){
                 throw new RRException("分销渠道【"+ chnlName +"】的一级分销商不存在,不能跨一级以上创建,请先创建该分销渠道的一级分销商,层级级别选择1");
@@ -265,7 +265,7 @@ public class MkDistHierServiceImpl implements MkDistHierService {
         MkDistHierEntity oneLvlEntity = getOneLvlDistByCurrentDistId(mkDistHier.getDistId(), mkDistHier.getPdistId());
         if(oneLvlEntity != null){
             Integer distChnlId = oneLvlEntity.getDistChnlId();
-            if(! mkDistHier.getDistChnlId().equals(distChnlId)){
+            if(!mkDistHier.getDistChnlId().equals(distChnlId)){
                 MkDistChnlEntity chnlByOneLvlEntity = mkDistChnlDao.queryObject(distChnlId);
                 throw new RRException("当前所选的分销渠道与上级分销商【" + pdistName + "】不存在层级关系,请选择该上级分销商的分销渠道【" +
                         chnlByOneLvlEntity.getDistFlag() + "】");
@@ -274,7 +274,7 @@ public class MkDistHierServiceImpl implements MkDistHierService {
         //查询当前子级分销商是否已创建层级关系
         MkDistHierEntity checkChildDistEntity = mkDistHierDao.selectDistHierByDistId(mkDistHier.getDistId());
         if (checkChildDistEntity != null && !checkChildDistEntity.getDistHierId().equals(mkDistHier.getDistHierId())){
-            throw new RRException("当前选择的子级分销商【"+ distName +"】已创建层级关系,请重新选择");
+            throw new RRException("当前选择的子级分销商【"+ distName +"】已与其他分销商创建层级关系,请重新选择");
         }
 
         //判断该上级分销商的层级是否已存在
@@ -311,7 +311,7 @@ public class MkDistHierServiceImpl implements MkDistHierService {
         if(StringUtils.isNotEmpty(value)) {
             //查询上级分销商已存在的层级信息
             MkDistHierEntity distByPdistIdEntity = mkDistHierDao.selectDistHierByDistId(mkDistHier.getPdistId());
-            if(distByPdistIdEntity != null){
+            if(distByPdistIdEntity != null && !distByPdistIdEntity.getDistHierId().equals(mkDistHier.getDistHierId())){
                 Integer distHierLvl = Integer.parseInt(distByPdistIdEntity.getHierLvl());
                 if(distHierLvl == Integer.parseInt(value)){
                     throw new RRException("该上级分销商【"+ pdistName +"】的层级级别为【"+ distHierLvl +"】级,不能再创建层级为【"+ mkDistHier.getHierLvl() +"】的信息");
@@ -342,7 +342,7 @@ public class MkDistHierServiceImpl implements MkDistHierService {
 
     @Override
     public int deleteBatch(Integer[] distHierIds) {
-        for(int j=0;j<distHierIds.length;j++) {
+        for(int j=0; j<distHierIds.length; j++) {
             MkDistHierEntity hierEntity = mkDistHierDao.queryObject(distHierIds[j]);
             //查询该分销层级关系是否已与渠道销售分配信息关联
             Map<String, Object> allocationMap = new HashMap<>();

+ 2 - 2
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/MkDistSellAllocationServiceImpl.java

@@ -112,7 +112,7 @@ public class MkDistSellAllocationServiceImpl implements MkDistSellAllocationServ
         List<MkDistSellAllocationEntity> allocationEntityList =  mkDistSellAllocationDao.queryAllocationByMap(allocationMap);
         if(allocationEntityList.size() > 0){
             throw new RRException("门店【"+storeEntity.getStoreName()+"】商品【"+ goodsEntity.getName() +
-                    "】,在当前所选的层级关系下已存在渠道销售分配信息!层级关系:分销渠道【"+ chnlEntity.getDistFlag() +"】商户所属分销商【"+ mkDistEntity.getDistName() +"】");
+                    "】商户所属分销商【"+ mkDistEntity.getDistName() +"】,已存在渠道销售分配信息!请选择其他商品");
         }
         StringBuffer expendDistLines = new StringBuffer();
         StringBuffer expendDistIds = new StringBuffer();
@@ -239,7 +239,7 @@ public class MkDistSellAllocationServiceImpl implements MkDistSellAllocationServ
         List<MkDistSellAllocationEntity> allocationEntityList =  mkDistSellAllocationDao.queryAllocationByMap(allocationMap);
         if(allocationEntityList.size() > 0){
             throw new RRException("门店【"+storeEntity.getStoreName()+"】商品【"+ goodsEntity.getName() +
-                    "】,在当前所选的层级关系下已存在渠道销售分配信息!层级关系:分销渠道【"+ chnlEntity.getDistFlag() +"】商户所属分销商【"+ mkDistEntity.getDistName() +"】");
+                    "】商户所属分销商【"+ mkDistEntity.getDistName() +"】,已存在渠道销售分配信息!请选择其他商品");
         }
         StringBuffer expendDistLines = new StringBuffer();
         StringBuffer expendDistIds = new StringBuffer();

+ 4 - 4
kmall-admin/src/main/resources/mybatis/mapper/CategoryDao.xml

@@ -115,8 +115,8 @@
 		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
 			AND s.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
-		<if test="name != null and name.trim() != ''">
-			AND b.name LIKE concat('%',#{name},'%')
+		<if test="categoryName != null and categoryName.trim() != ''">
+			AND b.name LIKE concat('%',#{categoryName},'%')
 		</if>
 		<if test="parentId != null and parentId != ''">
 			AND `parent_id` = #{parentId}
@@ -153,8 +153,8 @@
 		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
 			AND s.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
-		<if test="name != null and name.trim() != ''">
-			AND b.`name` LIKE concat('%',#{name},'%')
+		<if test="categoryName != null and categoryName.trim() != ''">
+			AND b.name LIKE concat('%',#{categoryName},'%')
 		</if>
 		<if test="parentId != null and parentId != ''">
 			AND b.`parent_id` = #{parentId}

+ 16 - 2
kmall-admin/src/main/resources/mybatis/mapper/ThirdMerchExpressDao.xml

@@ -68,11 +68,18 @@
 		e.`mod_time`,
 		e.`tstm`,
 		b.third_party_merch_name thirdPartyMerchName
-		from third_merch_express e left join third_merchant_biz b on e.third_party_merch_code = b.third_party_merch_code
+		from third_merch_express e
+		left join third_merchant_biz b on e.third_party_merch_code = b.third_party_merch_code
 		WHERE 1=1
 		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
 			AND e.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
+		<if test="merchSn != null and merchSn.trim() != ''">
+			AND b.merch_sn = #{merchSn}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND e.third_party_merch_code = (select third_party_merch_code from mall_store where id = #{storeId})
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -88,11 +95,18 @@
 	
  	<select id="queryTotal" resultType="int">
 		select count(*)
-		from third_merch_express e left join third_merchant_biz b on e.third_party_merch_code = b.third_party_merch_code
+		from third_merch_express e
+		left join third_merchant_biz b on e.third_party_merch_code = b.third_party_merch_code
 		WHERE 1=1
 		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
 			AND e.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
+		<if test="merchSn != null and merchSn.trim() != ''">
+			AND b.merch_sn = #{merchSn}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND e.third_party_merch_code = (select third_party_merch_code from mall_store where id = #{storeId})
+		</if>
 	</select>
 	 
 	<insert id="save" parameterType="com.kmall.admin.entity.ThirdMerchExpressEntity" useGeneratedKeys="true" keyProperty="id">

+ 4 - 1
kmall-admin/src/main/resources/mybatis/mapper/mk/MkDistDao.xml

@@ -186,7 +186,10 @@
 		left join mall_supplier s on d.supplier_id = s.id
 		left join mall_store st on d.store_id = st.id
 		WHERE 1=1
-		and dist_id in (select dist_id from mk_dist_hier )
+		and dist_id in (select dist_id from mk_dist_hier where 1=1
+		<if test="hierLvl != null and hierLvl != ''">
+			AND hier_lvl = #{hierLvl}
+		</if>)
 		<if test="distName != null and distName.trim() != ''">
 			AND dist_name LIKE concat('%',#{distName},'%')
 		</if>

+ 7 - 18
kmall-admin/src/main/resources/mybatis/mapper/mk/MkDistHierDao.xml

@@ -102,11 +102,10 @@
 	</select>
 
 	<select id="queryList" resultType="com.kmall.admin.entity.mk.MkDistHierEntity">
-		SELECT * FROM (
 		select
 		h.`dist_hier_id`,
 		h.`dist_chnl_id`,
-		h.`pdist_id`,
+		h.`pdist_id` 'parentId',
 		h.`dist_id`,
 		h.`dist_hier_name`,
 		h.`dist_hier_nname`,
@@ -119,7 +118,7 @@
 		h.`create_time`,
 		h.`moder_sn`,
 		h.`mod_time`,
-		h.`tstm`,d1.dist_name pdDistName,d2.dist_name distName,dc.dist_flag distFlag,s.child_supplier_name childSupplierName
+		h.`tstm`,d1.dist_name 'parentName',d2.dist_name 'name',dc.dist_flag 'distFlag',s.child_supplier_name 'childSupplierName'
 		from mk_dist_hier h
 		left join mk_dist_chnl dc on h.dist_chnl_id = dc.dist_chnl_id
 		left join mk_dist d1 on h.pdist_id = d1.dist_id
@@ -148,12 +147,7 @@
 			AND t.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
 		<if test="storeId != null and storeId != ''">
-			AND pdist_id = ( SELECT pdist_id FROM
-			mk_dist_hier h LEFT JOIN mk_dist d ON h.dist_id = d.dist_id
-			LEFT JOIN mall_store s ON d.store_id = s.id WHERE s.id = #{storeId} )
-			AND h.hier_lvl <![CDATA[ <= ]]> ( SELECT hier_lvl FROM
-			mk_dist_hier h LEFT JOIN mk_dist d ON h.dist_id = d.dist_id
-			LEFT JOIN mall_store s ON d.store_id = s.id WHERE s.id = #{storeId} )
+			AND st2.id = #{storeId}
 		</if>
 
         <choose>
@@ -167,9 +161,6 @@
 		<if test="offset != null and limit != null">
 			limit #{offset}, #{limit}
 		</if>
-		)a
-		GROUP BY
-		a.dist_id ,a.hier_lvl
 	</select>
 
  	<select id="queryTotal" resultType="int">
@@ -198,12 +189,7 @@
 			AND t.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
 		<if test="storeId != null and storeId != ''">
-			AND pdist_id = ( SELECT pdist_id FROM
-			mk_dist_hier h LEFT JOIN mk_dist d ON h.dist_id = d.dist_id
-			LEFT JOIN mall_store s ON d.store_id = s.id WHERE s.id = #{storeId} )
-			AND h.hier_lvl <![CDATA[ <= ]]> ( SELECT hier_lvl FROM
-			mk_dist_hier h LEFT JOIN mk_dist d ON h.dist_id = d.dist_id
-			LEFT JOIN mall_store s ON d.store_id = s.id WHERE s.id = #{storeId} )
+			AND st2.id = #{storeId}
 		</if>
 	</select>
 
@@ -273,6 +259,9 @@
 	</select>-->
 	<select id="selectDistHierByChnlIdAndOneLvl" resultType="com.kmall.admin.entity.mk.MkDistHierEntity">
 		SELECT * FROM `mk_dist_hier` where 1=1 and dist_chnl_id = #{distChnlId} and hier_lvl = 1
+		<if test="distHierId != null and distHierId != ''">
+			and dist_hier_id != #{distHierId}
+		</if>
 	</select>
 	<select id="selectDistHierByDistId" resultType="com.kmall.admin.entity.mk.MkDistHierEntity">
 		SELECT * FROM `mk_dist_hier` where 1=1 and dist_id = #{distId}

+ 7 - 2
kmall-admin/src/main/webapp/WEB-INF/page/mk/mkdisthier.html

@@ -13,7 +13,7 @@
                     <i-input v-model="q.distHierName" @on-enter="query" placeholder="名称"/>
                 </i-col>
                 <i-col span="4">
-                    <i-select v-model="q.distId" placeholder="分销商"  >
+                    <i-select v-model="q.pdistId" placeholder="一级分销商"  >
                         <i-option v-for="dist in queryMkDistList" :value="dist.distId" :key="dist.distId">{{dist.distName}}
                         </i-option>
                     </i-select>
@@ -48,10 +48,15 @@
             </Form-item>
             <Form-item label="上级分销商" prop="pdistId">
                 <!--<i-input v-model="mkDistHier.pdistId" placeholder="上级分销商id"/>-->
-                <i-select v-model="mkDistHier.pdistId" placeholder="上级分销商" label-in-value >
+                <i-select v-model="mkDistHier.pdistId" placeholder="上级分销商" label-in-value v-show="!isOperatorShow">
                     <i-option v-for="mkDist in mkDistList" :value="mkDist.distId" :key="mkDist.distId">{{mkDist.distName}}
                     </i-option>
                 </i-select>
+                <i-select v-model="mkDistHier.pdistId" placeholder="上级分销商" label-in-value v-show="isOperatorShow" disabled>
+                    <i-option v-for="mkDist in mkUpDistList" :value="mkDist.distId" :key="mkDist.distId">{{mkDist.distName}}
+                    </i-option>
+                </i-select>
+
             </Form-item>
             <Form-item label="子级分销商" prop="distId">
                 <!--<i-input v-model="mkDistHier.distId" placeholder="分销商id"/>-->

+ 11 - 1
kmall-admin/src/main/webapp/WEB-INF/page/shop/category.html

@@ -10,10 +10,20 @@
         <Row :gutter="16">
             <div class="search-group">
                 <i-col span="4">
-                    <i-button type="ghost" @click="reload"><i class="fa fa-refresh"></i>&nbsp;刷新</i-button>
+                    <i-select v-model="q.storeId" placeholder="门店" filterable label-in-value>
+                        <i-option v-for="store in stores" :value="store.id"
+                                  :key="store.id">{{store.storeName}}
+                        </i-option>
+                    </i-select>
                 </i-col>
+                <i-col span="4">
+                    <i-input v-model="q.categoryName" @on-enter="query" placeholder="分类名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch"><i class="fa fa-refresh"></i>&nbsp;重置</i-button>
             </div>
             <div class="buttons-group">
+                <!--<i-button type="ghost" @click="reload"><i class="fa fa-refresh"></i>&nbsp;刷新</i-button>-->
                 #if($shiro.hasPermission("category:save"))
                 <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
                 #end

+ 3 - 3
kmall-admin/src/main/webapp/WEB-INF/page/shop/thirdmerchantbiz.html

@@ -33,7 +33,7 @@
 
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
-		<i-form ref="formValidate" :model="thirdMerchantBiz" :rules="ruleValidate" :label-width="80">
+		<i-form ref="formValidate" :model="thirdMerchantBiz" :rules="ruleValidate" :label-width="120">
             <Form-item label="商户" prop="merchSn">
                 <i-select v-model="thirdMerchantBiz.merchSn" filterable placeholder="商户" label-in-value>
                     <i-option v-for="merch in merchList" :value="merch.merchSn" :key="merch.merchSn">{{merch.merchName}}</i-option>
@@ -46,8 +46,8 @@
                 <i-input v-model="thirdMerchantBiz.thirdPartyMerchName" placeholder="第三方商户名称"/>
             </Form-item>
             <Row>
-                <i-col span="16" style="margin-top: -10px;">
-                    <span style="margin-left: 140px;color: red;font-size: 12px;">* 选择是,该商户下的所有门店商品库存将共享扣减</span>
+                <i-col span="16" style="margin-top: -10px;" v-show="isOperate">
+                    <span style="margin-left: 120px;color: red;font-size: 12px;">* 选择是,该商户下的所有门店商品库存将共享扣减</span>
                 </i-col>
             </Row>
             <Form-item label="库存是否共享" prop="isStockShare" v-show="isOperate">

+ 98 - 0
kmall-admin/src/main/webapp/WEB-INF/page/sys/thirdmerchswitch.html

@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>第三方商户表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("thirdmerchantbiz:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改第三方商户权限控制</i-button>
+                #end
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="thirdMerchantBiz" :rules="ruleValidate" :label-width="120">
+            <Form-item label="商户" prop="merchSn">
+                <i-select v-model="thirdMerchantBiz.merchSn" filterable placeholder="商户" label-in-value disabled>
+                    <i-option v-for="merch in merchList" :value="merch.merchSn" :key="merch.merchSn">{{merch.merchName}}</i-option>
+                </i-select>
+            </Form-item>
+            <Form-item label="第三方商户代码" prop="thirdPartyMerchCode">
+                <i-input v-model="thirdMerchantBiz.thirdPartyMerchCode" placeholder="第三方商户代码" disabled/>
+            </Form-item>
+            <Form-item label="第三方商户名称" prop="thirdPartyMerchName">
+                <i-input v-model="thirdMerchantBiz.thirdPartyMerchName" placeholder="第三方商户名称" disabled/>
+            </Form-item>
+            <Row>
+                <i-col span="16" style="margin-top: -10px;">
+                    <span style="color: red;font-size: 12px;">* 选择是,该商户下的所有门店商品库存将共享扣减</span>
+                </i-col>
+            </Row>
+            <Form-item label="库存是否共享" prop="isStockShare">
+                <Radio-group v-model="thirdMerchantBiz.isStockShare" >
+                    <Radio label="1" disabled>
+                        <span>是</span>
+                    </Radio>
+                    <Radio label="0" disabled>
+                        <span>否</span>
+                    </Radio>
+                </Radio-group>
+            </Form-item>
+            <!--<Form-item label="门店用户是否共享" prop="isStoreUserShare" v-show="isOperate">-->
+                <!--<Radio-group v-model="thirdMerchantBiz.isStoreUserShare">-->
+                    <!--<Radio label="1">-->
+                        <!--<span>是</span>-->
+                    <!--</Radio>-->
+                    <!--<Radio label="0">-->
+                        <!--<span>否</span>-->
+                    <!--</Radio>-->
+                <!--</Radio-group>-->
+            <!--</Form-item>-->
+            <Form-item label="商户地图是否显示" prop="isMapShow">
+                <Radio-group v-model="thirdMerchantBiz.isMapShow">
+                    <Radio label="1">
+                        <span>是</span>
+                    </Radio>
+                    <Radio label="0">
+                        <span>否</span>
+                    </Radio>
+                </Radio-group>
+            </Form-item>
+            <Form-item label="渠道分销是否启用" prop="isDistSellStart">
+                <Radio-group v-model="thirdMerchantBiz.isDistSellStart">
+                    <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>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/sys/thirdmerchswitch.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 1 - 1
kmall-admin/src/main/webapp/index.html

@@ -31,7 +31,7 @@
             <ul class="nav" id="side-menu">
                 <li class="nav-header">
                     <div class="dropdown profile-element"
-                         style="text-align: center;font-size: 18px;font-weight: 600;color: white;">{{user.roleType == 1 ? '中网管理后台':''}}{{user.roleType == 2 ? store.storeName:''}}{{user.roleType == 3 ? user.merchName:''}}
+                         style="text-align: center;font-size: 18px;font-weight: 600;color: white;">{{user.roleType == 1 ? '中网管理后台':''}}{{user.roleType == 2 ? store.storeName:''}}{{user.roleType == 3 ? user.merchName:''}}{{user.roleType == 4 ? user.thirdPartyMerchCode:''}}
                     </div>
                     <div class="logo-element">{{user.username}}
                     </div>

+ 116 - 74
kmall-admin/src/main/webapp/js/mk/mkdisthier.js

@@ -1,66 +1,77 @@
 $(function () {
-    $("#jqGrid").jqGrid({
-        url: '../mkdisthier/list',
-        datatype: "json",
-        colModel: [
-			{label: 'distHierId', name: 'distHierId', index: 'dist_hier_id', key: true, hidden: true},
-			{label: '分销渠道id', name: 'distChnlId', index: 'dist_chnl_id', width: 80, hidden: true},
-			{label: '上级分销商id', name: 'pdistId', index: 'pdist_id', width: 80, hidden: true},
-			{label: '分销商id', name: 'distId', index: 'dist_id', width: 80, hidden: true},
-            {label: '所属供应商', name: 'supplierId', index: 'supplier_id', width: 80, hidden: true},
-            {label: '层级级别', name: 'hierLvl', index: 'hier_lvl', width: 50, align: 'center'},
-            {label: '上级分销商', name: 'pdDistName', index: 'pdDistName', width: 80},
-            {label: '下级分销商', name: 'distName', index: 'distName', width: 80},
-            {label: '分销渠道名称', name: 'distFlag', index: 'distFlag', width: 80},
-			{label: '分销层级名称', name: 'distHierName', index: 'dist_hier_name', width: 140},
-			{label: '分销层级昵称', name: 'distHierNname', index: 'dist_hier_nname', width: 80},
-            {label: '所属供应商', name: 'childSupplierName', index: 'childSupplierName', width: 80},
-			{label: '是否有效', name: 'isValid', index: 'is_valid', width: 60,
-                formatter: function (value) {
-                    if (value == '0') {
-                        return '有效';
-                    } else if (value == '1') {
-                        return '无效';
-                    }
-                    return '';
-                }},
-            {label: '排序', name: 'sortOrder', index: 'sort_order', width: 80},
-            {label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 60},
-            {label: '创建时间', name: 'createTime', index: 'create_time', width: 100,
-                formatter: function (value) {
-                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
-                }},
-            {label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 60},
-            {label: '修改时间', name: 'modTime', index: 'mod_time', width: 100,
-                formatter: function (value) {
-                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
-                }}],
-		viewrecords: true,
-        height: 385,
-        rowNum: 10,
-        rowList: [10, 30, 50],
-        rownumbers: true,
-        rownumWidth: 25,
-        autowidth: true,
-        multiselect: true,
-        pager: "#jqGridPager",
-        jsonReader: {
-            root: "page.list",
-            page: "page.currPage",
-            total: "page.totalPage",
-            records: "page.totalCount"
-        },
-        prmNames: {
-            page: "page",
-            rows: "limit",
-            order: "order"
-        },
-        gridComplete: function () {
-            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
-        }
-    });
+    initialPage();
+    getGrid();
 });
 
+function initialPage() {
+    $(window).resize(function () {
+        TreeGrid.table.resetHeight({height: $(window).height() - 100});
+    });
+}
+
+function getGrid() {
+    var colunms = TreeGrid.initColumn();
+    var table = new TreeTable(TreeGrid.id, '../mkdisthier/queryAll', colunms, {'distHierName': vm.q.distHierName,'pdistId':vm.q.pdistId});
+    table.setExpandColumn(2);
+    table.setIdField("distHierId");
+    table.setCodeField("distId");
+    table.setParentCodeField("parentId");
+    table.setExpandAll(false);
+    table.setHeight($(window).height() - 100);
+    table.init();
+    TreeGrid.table = table;
+}
+var TreeGrid = {
+    id: "jqGrid",
+    table: null,
+    layerIndex: -1
+};
+/**
+ * 初始化表格的列
+ */
+TreeGrid.initColumn = function () {
+    var columns = [
+        {field: 'selectItem', radio: true},
+        {title: '编号', field: 'distHierId', visitable: false, align: 'center', valign: 'middle', width: '50px'},
+        // {title: '编号', field: 'distId', visitable: false, align: 'center', valign: 'middle', width: '50px'},
+        // {title: 'parentId', field: 'parentId',  align: 'center', valign: 'middle', width: 50},
+        {title: '上级分销商', field: 'parentName', width: 80},
+        {title: '子级分销商', field: 'name', width: 80},
+        {title: '级别', field: 'hierLvl', width: '50px', align: 'center',
+            formatter: function (item) {
+                if (item.hierLvl != '') {
+                    return item.hierLvl+'级';
+                }
+                return '';
+            }},
+        {title: '分销渠道名称', field: 'distFlag', width: 80},
+        {title: '分销层级名称', field: 'distHierName', width: 140},
+        {title: '分销层级昵称', field: 'distHierNname', width: 80},
+        {title: '所属供应商', field: 'childSupplierName', width: 80},
+        {title: '是否有效', field: 'isValid',  width: '80px',
+            formatter: function (item) {
+                if (item.isValid == '0') {
+                    return '有效';
+                } else if (item.isValid == '1') {
+                    return '无效';
+                }
+                return '';
+            }},
+        {title: '排序', field: 'sortOrder', width: '50px'},
+        {title: '创建人编号', field: 'createrSn',  width: '90px'},
+        {title: '创建时间', field: 'createTime',  width: 100,
+            formatter: function (item) {
+                return transDate(item.createTime, 'yyyy-MM-dd hh:mm:ss');
+            }},
+        {title: '修改人编号', field: 'moderSn', width: '90px'},
+        {title: '修改时间', field: 'modTime', width: 100,
+            formatter: function (item) {
+                return transDate(item.modTime, 'yyyy-MM-dd hh:mm:ss');
+            }}
+        ]
+    return columns;
+};
+
 let vm = new Vue({
 	el: '#rrapp',
 	data: {
@@ -74,12 +85,13 @@ let vm = new Vue({
 		},
 		q: {
             distHierName: '',
-            distId:''
+            pdistId:''
 		},
         suppliers:[],
 		mkDistList:[],
 		mkDistChnlList:[],
         mkChildDistList:[],
+        mkUpDistList:[],
         lvlEntitieyList: [],
         isOperatorShow: false,
         hierLvl: '',
@@ -87,6 +99,9 @@ let vm = new Vue({
     },
 	methods: {
 		query: function () {
+            // $('#jqGrid').treegrid('load', {'distHierName': vm.q.distHierName,'distId':vm.q.distId});
+            // TreeGrid.table.refresh({'distHierName': vm.q.distHierName,'distId':vm.q.distId});
+            // TreeGrid.table.refresh();
 			vm.reload();
 		},
 		add: function () {
@@ -103,11 +118,18 @@ let vm = new Vue({
 			vm.getLvlList();
 		},
 		update: function (event) {
-            let distHierId = getSelectedRow();
-			if (distHierId == null) {
-				return;
-			}
-			vm.showList = false;
+            // let distHierId = getSelectedRow();
+			// if (distHierId == null) {
+			// 	return;
+			// }
+
+            var id = TreeGrid.table.getSelectedRow();
+            if (id.length == 0) {
+                iview.Message.error("请选择一条记录");
+                return;
+            }
+            let distHierId = id[0].id;
+            vm.showList = false;
             vm.title = "修改";
             vm.isOperatorShow = true;
 
@@ -136,10 +158,18 @@ let vm = new Vue({
 			});
 		},
 		del: function (event) {
-            let distHierIds = getSelectedRows();
-			if (distHierIds == null){
-				return;
-			}
+            // let distHierIds = getSelectedRows();
+			// if (distHierIds == null){
+			// 	return;
+			// }
+            var distHierId = TreeGrid.table.getSelectedRow(), distHierIds = [];
+            if (distHierId.length == 0) {
+                iview.Message.error("请选择一条记录");
+                return;
+            }
+            $.each(distHierId, function (idx, item) {
+                distHierIds[idx] = item.id;
+            });
 
 			confirm('确定要删除选中的记录?', function () {
 				$.ajax({
@@ -150,7 +180,7 @@ let vm = new Vue({
 				    success: function (r) {
 						if (r.code == 0) {
 							alert('操作成功', function (index) {
-								$("#jqGrid").trigger("reloadGrid");
+                                vm.reload();
 							});
 						} else {
 							alert(r.msg);
@@ -162,6 +192,7 @@ let vm = new Vue({
 		getInfo: function(distHierId){
 			$.get("../mkdisthier/info/"+distHierId, function (r) {
                 vm.mkDistHier = r.mkDistHier;
+                vm.upDist(vm.mkDistHier.pdistId);
             });
 		},
         showSupplier: function (supplierId) {
@@ -204,6 +235,13 @@ let vm = new Vue({
                 vm.mkDistList = r.list;
             });
         },
+        upDist: function (distId) {
+		    if(distId){
+                $.get("../mkdist/queryAllById?distId="+distId, function (r) {
+                    vm.mkUpDistList = r.list;
+                });
+            }
+        },
         changeChildDist: function (option) {
 		    var distId = option.value;
             $.get("../mkdist/queryChildAll?childDistId="+distId, function (r) {
@@ -218,18 +256,22 @@ let vm = new Vue({
         reloadSearch: function() {
             vm.q = {
                 distHierName: '',
-                distId:''
+                pdistId:''
             }
             vm.reload();
 		},
 		reload: function (event) {
-			vm.showList = true;
+            vm.showList = true;
+            // TreeGrid.table.refresh();
+            initialPage();
+            getGrid();
+			/*vm.showList = true;
             let page = $("#jqGrid").jqGrid('getGridParam', 'page');
 			$("#jqGrid").jqGrid('setGridParam', {
                 postData: {'distHierName': vm.q.distHierName,'distId':vm.q.distId},
                 page: page
             }).trigger("reloadGrid");
-            vm.handleReset('formValidate');
+            vm.handleReset('formValidate');*/
 		},
         handleSubmit: function (name) {
             handleSubmitValidate(this, name, function () {

+ 257 - 0
kmall-admin/src/main/webapp/js/mk/mkdisthier2.js

@@ -0,0 +1,257 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mkdisthier/list',
+        datatype: "json",
+        colModel: [
+			{label: 'distHierId', name: 'distHierId', index: 'dist_hier_id', key: true, hidden: true},
+			{label: '分销渠道id', name: 'distChnlId', index: 'dist_chnl_id', width: 80, hidden: true},
+			{label: '上级分销商id', name: 'pdistId', index: 'pdist_id', width: 80, hidden: true},
+			{label: '分销商id', name: 'distId', index: 'dist_id', width: 80, hidden: true},
+            {label: '所属供应商', name: 'supplierId', index: 'supplier_id', width: 80, hidden: true},
+            {label: '层级级别', name: 'hierLvl', index: 'hier_lvl', width: 50, align: 'center'},
+            {label: '上级分销商', name: 'pdDistName', index: 'pdDistName', width: 80},
+            {label: '下级分销商', name: 'distName', index: 'distName', width: 80},
+            {label: '分销渠道名称', name: 'distFlag', index: 'distFlag', width: 80},
+			{label: '分销层级名称', name: 'distHierName', index: 'dist_hier_name', width: 140},
+			{label: '分销层级昵称', name: 'distHierNname', index: 'dist_hier_nname', width: 80},
+            {label: '所属供应商', name: 'childSupplierName', index: 'childSupplierName', width: 80},
+			{label: '是否有效', name: 'isValid', index: 'is_valid', width: 60,
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '有效';
+                    } else if (value == '1') {
+                        return '无效';
+                    }
+                    return '';
+                }},
+            {label: '排序', name: 'sortOrder', index: 'sort_order', width: 80},
+            {label: '创建人编号', name: 'createrSn', index: 'creater_sn', width: 60},
+            {label: '创建时间', name: 'createTime', index: 'create_time', width: 100,
+                formatter: function (value) {
+                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+                }},
+            {label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 60},
+            {label: '修改时间', name: 'modTime', index: 'mod_time', width: 100,
+                formatter: function (value) {
+                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+                }}],
+		viewrecords: true,
+        height: 385,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		mkDistHier: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+            distHierName: '',
+            distId:''
+		},
+        suppliers:[],
+		mkDistList:[],
+		mkDistChnlList:[],
+        mkChildDistList:[],
+        mkUpDistList:[],
+        lvlEntitieyList: [],
+        isOperatorShow: false,
+        hierLvl: '',
+        queryMkDistList:[]
+    },
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.suppliers = [];
+            vm.mkDistList = [];
+            vm.mkDistChnlList = [];
+			vm.mkDistHier = {isValid:0};
+            vm.isOperatorShow = false;
+			// vm.showSupplier();
+			// vm.getMkDistList();
+			vm.getMkDistChnlList();
+			vm.getLvlList();
+		},
+		update: function (event) {
+            let distHierId = getSelectedRow();
+			if (distHierId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+            vm.isOperatorShow = true;
+
+            // vm.showSupplier();
+            // vm.getMkDistList();
+            vm.getMkDistChnlList();
+            vm.getInfo(distHierId);
+            vm.getLvlList();
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mkDistHier.distHierId == null ? "../mkdisthier/save" : "../mkdisthier/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mkDistHier),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let distHierIds = getSelectedRows();
+			if (distHierIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mkdisthier/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(distHierIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(distHierId){
+			$.get("../mkdisthier/info/"+distHierId, function (r) {
+                vm.mkDistHier = r.mkDistHier;
+                vm.upDist(vm.mkDistHier.pdistId);
+            });
+		},
+        showSupplier: function (supplierId) {
+            $.get("../supplier/queryAll?supplierId="+supplierId, function (r) {
+                vm.suppliers = r.list;
+            });
+        },
+        // changeLvl: function (opt) {
+        //     var distId = opt.value;
+        //     if(distId){
+        //         $.get("../mkdisthier/queryNextLvlByDistId?distId="+distId+"&isOperatorShow="+vm.isOperatorShow, function (r) {
+        //             console.log(r.lvlEntitieyList)
+        //             if(r.lvlEntitieyList){
+        //                 vm.lvlEntitieyList = r.lvlEntitieyList;
+        //             }else{
+        //                 vm.getLvlList();
+        //             }
+        //             console.log(vm.lvlEntitieyList)
+        //         });
+        //     }
+        // },
+        getLvlList: function () {
+            $.get("../mkdisthier/queryAllConfig", function (r) {
+                vm.lvlEntitieyList = r.lvlEntitieyList;
+            });
+        },
+        changeDist: function (option) {
+		    var distChnlId = option.value;
+		    if(distChnlId){
+                $.get("../mkdistchnl/info/"+distChnlId, function (r) {
+                    var thirdMerchSn = r.mkDistChnl.thirdMerchSn;
+                    var supplierId = r.mkDistChnl.supplierId;
+                    vm.getMkDistList(thirdMerchSn,supplierId);
+                    vm.showSupplier(supplierId);
+                });
+            }
+        },
+        getMkDistList: function (thirdMerchSn,supplierId) {
+            $.get("../mkdist/queryAll?thirdMerchSn="+thirdMerchSn+"&supplierId="+supplierId, function (r) {
+                vm.mkDistList = r.list;
+            });
+        },
+        upDist: function (distId) {
+		    if(distId){
+                $.get("../mkdist/queryAllById?distId="+distId, function (r) {
+                    vm.mkUpDistList = r.list;
+                });
+            }
+        },
+        changeChildDist: function (option) {
+		    var distId = option.value;
+            $.get("../mkdist/queryChildAll?childDistId="+distId, function (r) {
+                vm.mkChildDistList = r.list;
+            });
+        },
+        getMkDistChnlList: function () {
+            $.get("../mkdistchnl/queryAll", function (r) {
+                vm.mkDistChnlList = r.list;
+            });
+        },
+        reloadSearch: function() {
+            vm.q = {
+                distHierName: '',
+                distId:''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'distHierName': vm.q.distHierName,'distId':vm.q.distId},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	},
+    mounted() {
+        $.get("../mkdist/queryAllByHier", function (r) {
+            vm.queryMkDistList = r.list;
+        });
+    }
+});

+ 2 - 2
kmall-admin/src/main/webapp/js/mk/mkdistsellallocation.js

@@ -19,8 +19,8 @@ $(function () {
                     }
                     return '';
                 }},
-			{label: '支出分销商id', name: 'expendDistIds', index: 'expend_dist_ids', width: 120},
-			{label: '支出分销商对应额度(点数/金额)', name: 'expendDistLines', index: 'expend_dist_lines', width: 120},
+			{label: '子级分销商id规则', name: 'expendDistIds', index: 'expend_dist_ids', width: 120},
+			{label: '子级分销额度分配(点数/金额)', name: 'expendDistLines', index: 'expend_dist_lines', width: 120},
             {label: '是否有效', name: 'isValid', index: 'is_valid', width: 60,
                 formatter: function (value) {
                     if (value == '0') {

+ 5 - 5
kmall-admin/src/main/webapp/js/mk/mkdistsellstatis.js

@@ -19,11 +19,11 @@ $(function () {
                     }
                     return '';
                 }},
-            {label: '支出分销商id规则', name: 'expendDistIds', index: 'expendDistIds', width: 80, align: 'center'},
-            {label: '支出分销商额度规则', name: 'expendDistLines', index: 'expendDistLines', width: 80, align: 'center'},
-			{label: '支出分销商', name: 'expendDistName', index: 'expend_dist_id', width: 80, align: 'center'},
-			{label: '支出分销商金额【点数/金额】', name: 'expendDistPrice', index: 'expend_dist_price', width: 100, align: 'center'},
-			{label: '支出分销商等级', name: 'expendDistLevel', index: 'expend_dist_level', width: 70, align: 'center',
+            {label: '子级分销商id规则', name: 'expendDistIds', index: 'expendDistIds', width: 80, align: 'center'},
+            {label: '子级分销额度分配规则', name: 'expendDistLines', index: 'expendDistLines', width: 80, align: 'center'},
+			{label: '子级分销商', name: 'expendDistName', index: 'expend_dist_id', width: 80, align: 'center'},
+			{label: '子级分销商额度【点数/金额】', name: 'expendDistPrice', index: 'expend_dist_price', width: 100, align: 'center'},
+			{label: '子级分销商等级', name: 'expendDistLevel', index: 'expend_dist_level', width: 70, align: 'center',
                 formatter: function (value) {
                     if (value == '1') {
                         return '一级';

+ 22 - 5
kmall-admin/src/main/webapp/js/shop/category.js

@@ -11,7 +11,7 @@ function initialPage() {
 
 function getGrid() {
     var colunms = TreeGrid.initColumn();
-    var table = new TreeTable(TreeGrid.id, '../category/queryAll', colunms);
+    var table = new TreeTable(TreeGrid.id, '../category/queryAll', colunms, {'categoryName': vm.q.categoryName,'storeId':vm.q.storeId});
     table.setExpandColumn(2);
     table.setIdField("id");
     table.setCodeField("id");
@@ -96,12 +96,20 @@ var vm = new Vue({
         },
         categoryList: [],
         storeList: [],
+        stores: [],
         merchList: []
     },
     methods: {
         query: function () {
             vm.reload();
         },
+        reloadSearch: function() {
+            vm.q = {
+                categoryName: '',
+                storeId:''
+            }
+            vm.reload();
+        },
         add: function () {
             vm.showList = false;
             vm.title = "新增";
@@ -189,9 +197,11 @@ var vm = new Vue({
             });
         },
         getParentCategory: function (storeId) {
-            $.get("../category/getCategorySelect?storeId="+storeId, function (r) {
-                vm.categoryList = r.list;
-            });
+            if(storeId){
+                $.get("../category/getCategorySelect?storeId="+storeId, function (r) {
+                    vm.categoryList = r.list;
+                });
+            }
         },
         getCategory: function (opt) {
             var storeId = opt.value;
@@ -199,7 +209,9 @@ var vm = new Vue({
         },
         reload: function (event) {
             vm.showList = true;
-            TreeGrid.table.refresh();
+            // TreeGrid.table.refresh();
+            initialPage();
+            getGrid();
         },
         handleSubmit: function (name) {
             handleSubmitValidate(this, name, function () {
@@ -249,5 +261,10 @@ var vm = new Vue({
             var url = vm.category.wapBannerUrl;
             eyeImage(url);
         }
+    },
+    mounted() {
+        $.get("../store/queryAll", function (r) {
+            vm.stores = r.list;
+        });
     }
 });

+ 18 - 18
kmall-admin/src/main/webapp/js/shop/thirdmerchantbiz.js

@@ -7,15 +7,15 @@ $(function () {
             {label: '商户编号', name: 'merchSn', index: 'merch_sn', width: 80, align: 'center'},
 			{label: '第三方商户代码', name: 'thirdPartyMerchCode', index: 'third_party_merch_code', width: 80, align: 'center'},
 			{label: '第三方商户名称', name: 'thirdPartyMerchName', index: 'third_party_merch_name', width: 80, align: 'center'},
-            {label: '库存是否共享', name: 'isStockShare', index: 'isStockShare', width: 80, align: 'center',
-                formatter: function (value) {
-                    if (value == '0') {
-                        return '否';
-                    } else if (value == '1') {
-                        return '是';
-                    }
-                    return '';
-                }},
+            // {label: '库存是否共享', name: 'isStockShare', index: 'isStockShare', width: 80, align: 'center',
+            //     formatter: function (value) {
+            //         if (value == '0') {
+            //             return '否';
+            //         } else if (value == '1') {
+            //             return '是';
+            //         }
+            //         return '';
+            //     }},
             // {label: '门店用户是否共享', name: 'isStoreUserShare', index: 'isStoreUserShare', width: 80, align: 'center',
             //     formatter: function (value) {
             //         if (value == '0') {
@@ -25,15 +25,15 @@ $(function () {
             //         }
             //         return '';
             //     }},
-            {label: '商户地图是否显示', name: 'isMapShow', index: 'isMapShow', width: 80, align: 'center',
-                formatter: function (value) {
-                    if (value == '0') {
-                        return '否';
-                    } else if (value == '1') {
-                        return '是';
-                    }
-                    return '';
-                }},
+            // {label: '商户地图是否显示', name: 'isMapShow', index: 'isMapShow', width: 80, align: 'center',
+            //     formatter: function (value) {
+            //         if (value == '0') {
+            //             return '否';
+            //         } else if (value == '1') {
+            //             return '是';
+            //         }
+            //         return '';
+            //     }},
             // {label: '渠道分销是否启用', name: 'isDistSellStart', index: 'isDistSellStart', width: 80, align: 'center',
             //     formatter: function (value) {
             //         if (value == '0') {

+ 201 - 0
kmall-admin/src/main/webapp/js/sys/thirdmerchswitch.js

@@ -0,0 +1,201 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../thirdmerchantbiz/list',
+        datatype: "json",
+        colModel: [
+			{label: 'thirdMerchSn', name: 'thirdMerchSn', index: 'third_merch_sn', key: true, hidden: true},
+            {label: '商户编号', name: 'merchSn', index: 'merch_sn', width: 80, align: 'center'},
+			{label: '第三方商户代码', name: 'thirdPartyMerchCode', index: 'third_party_merch_code', width: 80, align: 'center'},
+			{label: '第三方商户名称', name: 'thirdPartyMerchName', index: 'third_party_merch_name', width: 80, align: 'center'},
+            {label: '库存是否共享', name: 'isStockShare', index: 'isStockShare', width: 80, align: 'center',
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '禁用';
+                    } else if (value == '1') {
+                        return '启用';
+                    }
+                    return '';
+                }},
+            // {label: '门店用户是否共享', name: 'isStoreUserShare', index: 'isStoreUserShare', width: 80, align: 'center',
+            //     formatter: function (value) {
+            //         if (value == '0') {
+            //             return '否';
+            //         } else if (value == '1') {
+            //             return '是';
+            //         }
+            //         return '';
+            //     }},
+            {label: '商户地图是否显示', name: 'isMapShow', index: 'isMapShow', width: 80, align: 'center',
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '禁用';
+                    } else if (value == '1') {
+                        return '启用';
+                    }
+                    return '';
+                }},
+            {label: '渠道分销是否启用', name: 'isDistSellStart', index: 'isDistSellStart', width: 80, align: 'center',
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '禁用';
+                    } else if (value == '1') {
+                        return '启用';
+                    }
+                    return '';
+                }},
+			{label: '是否有效', name: 'isValid', index: 'is_valid', width: 80, align: 'center',
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '有效';
+                    } else if (value == '1') {
+                        return '无效';
+                    }
+                    return '';
+                }}],
+		viewrecords: true,
+        height: 385,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		thirdMerchantBiz: {isValid: '', isStockShare:'',isStoreUserShare:'',isMapShow:''},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		},
+        merchList: [],
+        isOperate: false
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+            vm.getMerchList();
+			vm.thirdMerchantBiz = {isValid: 0,isStockShare:0,isStoreUserShare:0,isMapShow:0,isDistSellStart:0};
+			vm.isOperate = true;
+		},
+		update: function (event) {
+            let thirdMerchSn = getSelectedRow();
+			if (thirdMerchSn == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+            vm.isOperate = false;
+            vm.getMerchList();
+
+            vm.getInfo(thirdMerchSn)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.thirdMerchantBiz.thirdMerchSn == null ? "../thirdmerchantbiz/save" : "../thirdmerchantbiz/update";
+
+            // confirm('库存是否共享,商户地图是否显示字段添加成功后则不可修改!请确认后添加?', function () {
+            confirm('该信息需与商户确认后再行修改,是否确认修改?', function () {
+                $.ajax({
+                    type: "POST",
+                    url: url,
+                    contentType: "application/json",
+                    data: JSON.stringify(vm.thirdMerchantBiz),
+                    success: function (r) {
+                        if (r.code === 0) {
+                            alert('操作成功', function (index) {
+                                vm.reload();
+                            });
+                        } else {
+                            alert(r.msg);
+                        }
+                    }
+                });
+            })
+		},
+		del: function (event) {
+            let thirdMerchSns = getSelectedRows();
+			if (thirdMerchSns == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../thirdmerchantbiz/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(thirdMerchSns),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+        getMerchList: function() {
+            $.get("../merch/queryAll", function (r) {
+                vm.merchList = r.list;
+            });
+        },
+		getInfo: function(thirdMerchSn){
+			$.get("../thirdmerchantbiz/info/"+thirdMerchSn, function (r) {
+                vm.thirdMerchantBiz = r.thirdMerchantBiz;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 2 - 2
kmall-admin/src/main/webapp/statics/plugins/treegrid/tree.table.js

@@ -4,13 +4,13 @@
  * @author cyf
  */
 (function () {
-    var TreeTable = function (tableId, url, columns) {
+    var TreeTable = function (tableId, url, columns,data) {
         this.btInstance = null;					//jquery和bootstrapTreeTable绑定的对象
         this.bstableId = tableId;
         this.url = url;
         this.method = "GET";
         this.columns = columns;
-        this.data = {};// ajax的参数
+        this.data = data;// ajax的参数
         this.expandColumn = null;// 展开显示的列 
         this.id = 'menuId';// 选取记录返回的值
         this.code = 'menuId';// 用于设置父子关系