Browse Source

后台管理加商户权限和门店权限

zhang 6 years ago
parent
commit
57ef17d72e
47 changed files with 810 additions and 98 deletions
  1. 9 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java
  2. 14 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java
  3. 31 3
      kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java
  4. 20 1
      kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java
  5. 8 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CouponController.java
  6. 6 0
      kmall-admin/src/main/java/com/kmall/admin/controller/FreightController.java
  7. 5 7
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java
  8. 4 6
      kmall-admin/src/main/java/com/kmall/admin/controller/MerchController.java
  9. 5 13
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  10. 3 7
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderRefundController.java
  11. 20 17
      kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java
  12. 7 14
      kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java
  13. 8 4
      kmall-admin/src/main/java/com/kmall/admin/controller/SysSmsLogController.java
  14. 2 8
      kmall-admin/src/main/java/com/kmall/admin/controller/UserController.java
  15. 20 0
      kmall-admin/src/main/java/com/kmall/admin/entity/AdEntity.java
  16. 20 0
      kmall-admin/src/main/java/com/kmall/admin/entity/AttributeEntity.java
  17. 20 0
      kmall-admin/src/main/java/com/kmall/admin/entity/BrandEntity.java
  18. 20 0
      kmall-admin/src/main/java/com/kmall/admin/entity/CategoryEntity.java
  19. 20 0
      kmall-admin/src/main/java/com/kmall/admin/entity/CouponEntity.java
  20. 19 0
      kmall-admin/src/main/java/com/kmall/admin/entity/FreightEntity.java
  21. 27 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/AdServiceImpl.java
  22. 24 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/CategoryServiceImpl.java
  23. 24 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/CouponServiceImpl.java
  24. 26 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/FreightServiceImpl.java
  25. 54 0
      kmall-admin/src/main/java/com/kmall/admin/utils/ParamUtils.java
  26. 24 0
      kmall-admin/src/main/resources/mybatis/mapper/AdDao.xml
  27. 24 0
      kmall-admin/src/main/resources/mybatis/mapper/AttributeDao.xml
  28. 26 0
      kmall-admin/src/main/resources/mybatis/mapper/BrandDao.xml
  29. 26 0
      kmall-admin/src/main/resources/mybatis/mapper/CategoryDao.xml
  30. 18 0
      kmall-admin/src/main/resources/mybatis/mapper/CouponDao.xml
  31. 37 3
      kmall-admin/src/main/resources/mybatis/mapper/FreightDao.xml
  32. 3 0
      kmall-admin/src/main/resources/mybatis/mapper/MerchDao.xml
  33. 12 3
      kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml
  34. 8 2
      kmall-admin/src/main/resources/mybatis/mapper/OrderRefundDao.xml
  35. 10 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/attribute.html
  36. 10 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/brand.html
  37. 10 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/category.html
  38. 10 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/coupongrads.html
  39. 10 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/freight.html
  40. 19 1
      kmall-admin/src/main/webapp/js/shop/attribute.js
  41. 20 2
      kmall-admin/src/main/webapp/js/shop/brand.js
  42. 19 1
      kmall-admin/src/main/webapp/js/shop/category.js
  43. 22 4
      kmall-admin/src/main/webapp/js/shop/coupongrads.js
  44. 19 2
      kmall-admin/src/main/webapp/js/shop/freight.js
  45. 20 0
      kmall-common/src/main/java/com/kmall/common/entity/SysSmsLogEntity.java
  46. 21 0
      kmall-common/src/main/java/com/kmall/common/service/impl/SysSmsLogServiceImpl.java
  47. 26 0
      kmall-common/src/main/resources/mybatis/mapper/SysSmsLogDao.xml

+ 9 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java

@@ -2,9 +2,13 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.AdEntity;
 import com.kmall.admin.service.AdService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.api.contants.Dict;
+import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -31,6 +35,9 @@ public class AdController {
     @RequestMapping("/list")
     @RequiresPermissions("ad:list")
     public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         //查询列表数据
         Query query = new Query(params);
 
@@ -93,6 +100,8 @@ public class AdController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<AdEntity> list = adService.queryList(params);
 
         return R.ok().put("list", list);

+ 14 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java

@@ -3,6 +3,9 @@ package com.kmall.admin.controller;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.AttributeEntity;
 import com.kmall.admin.service.AttributeService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.api.contants.Dict;
+import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +33,9 @@ public class AttributeController {
     @RequestMapping("/list")
     @RequiresPermissions("attribute:list")
     public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         //查询列表数据
         Query query = new Query(params);
 
@@ -63,6 +69,8 @@ public class AttributeController {
         ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
         builder.put("name", "名称");
         builder.put("attributeCategoryId", "所属分类");
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
         R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
         if (Integer.valueOf(r.get("code").toString()) != 0) {
             throw new RRException(r.get("msg").toString());
@@ -82,6 +90,8 @@ public class AttributeController {
         ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
         builder.put("name", "名称");
         builder.put("attributeCategoryId", "所属分类");
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
         R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
         if (Integer.valueOf(r.get("code").toString()) != 0) {
             throw new RRException(r.get("msg").toString());
@@ -108,6 +118,8 @@ public class AttributeController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<AttributeEntity> list = attributeService.queryList(params);
 
         return R.ok().put("list", list);
@@ -116,6 +128,8 @@ public class AttributeController {
     @RequestMapping("/query")
     public R query(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<AttributeEntity> list = attributeService.queryList(params);
 
         return R.ok().put("list", list);

+ 31 - 3
kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java

@@ -1,10 +1,12 @@
 package com.kmall.admin.controller;
 
+import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.BrandEntity;
 import com.kmall.admin.service.BrandService;
-import com.kmall.common.utils.PageUtils;
-import com.kmall.common.utils.Query;
-import com.kmall.common.utils.R;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.api.contants.Dict;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -31,6 +33,9 @@ public class BrandController {
     @RequestMapping("/list")
     @RequiresPermissions("brand:list")
     public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         //查询列表数据
         Query query = new Query(params);
 
@@ -59,6 +64,17 @@ public class BrandController {
     @RequestMapping("/save")
     @RequiresPermissions("brand:save")
     public R save(@RequestBody BrandEntity brand) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(brand);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
+
         brandService.save(brand);
 
         return R.ok();
@@ -70,6 +86,16 @@ public class BrandController {
     @RequestMapping("/update")
     @RequiresPermissions("brand:update")
     public R update(@RequestBody BrandEntity brand) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(brand);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         brandService.update(brand);
 
         return R.ok();
@@ -92,6 +118,8 @@ public class BrandController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<BrandEntity> list = brandService.queryList(params);
 
         return R.ok().put("list", list);

+ 20 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java

@@ -2,6 +2,9 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.CategoryEntity;
 import com.kmall.admin.service.CategoryService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.api.contants.Dict;
+import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +34,8 @@ public class CategoryController {
     @RequestMapping("/list")
     @RequiresPermissions("category:list")
     public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         //查询列表数据
         Query query = new Query(params);
 
@@ -92,6 +97,8 @@ public class CategoryController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<CategoryEntity> list = categoryService.queryList(params);
         //添加顶级菜单
         CategoryEntity root = new CategoryEntity();
@@ -108,7 +115,11 @@ public class CategoryController {
      */
     @RequestMapping("/getAreaTree")
     public R getAreaTree() {
-        List<CategoryEntity> list = categoryService.queryList(new HashMap<String, Object>());
+
+        Map<String, Object> map = new HashMap<>();
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+
+        List<CategoryEntity> list = categoryService.queryList(map);
         for (CategoryEntity sysRegionEntity : list) {
             sysRegionEntity.setValue(sysRegionEntity.getId() + "");
             sysRegionEntity.setLabel(sysRegionEntity.getName());
@@ -126,6 +137,7 @@ public class CategoryController {
     @RequestMapping("/getCategorySelect")
     public R getCategorySelect(@RequestParam Map<String, Object> map) {
         map.put("parentId", "0");
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
         List<CategoryEntity> list = categoryService.queryList(map);
         return R.ok().put("list", list);
     }
@@ -140,6 +152,8 @@ public class CategoryController {
         String parentId = map.get("parentId").toString();
         List<CategoryEntity> list = new ArrayList<>();
         if (StringUtils.isNotEmpty(parentId)) {
+            ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+
             list = categoryService.queryList(map);
         }
 
@@ -148,6 +162,9 @@ public class CategoryController {
 
     @RequestMapping("/query")
     public R query(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         params.put("isShow", 1);
         List<CategoryEntity> list = categoryService.queryList(params);
         //添加顶级菜单
@@ -162,6 +179,8 @@ public class CategoryController {
 
     @RequestMapping("/getCategory")
     public R getCategory(@RequestParam Map<String, Object> map) {
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+
         List<CategoryEntity> list = categoryService.queryList(map);
         return R.ok().put("list", list);
     }

+ 8 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CouponController.java

@@ -2,9 +2,12 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.CouponEntity;
 import com.kmall.admin.service.CouponService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -31,6 +34,9 @@ public class CouponController {
     @RequestMapping("/list")
     @RequiresPermissions("coupon:list")
     public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         //查询列表数据
         Query query = new Query(params);
 
@@ -93,6 +99,8 @@ public class CouponController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<CouponEntity> list = couponService.queryList(params);
 
         return R.ok().put("list", list);

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/FreightController.java

@@ -5,9 +5,12 @@ import java.util.Map;
 
 import com.kmall.admin.entity.FreightEntity;
 import com.kmall.admin.service.FreightService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
 import com.kmall.common.utils.R;
+import com.kmall.common.utils.ShiroUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -31,6 +34,7 @@ public class FreightController {
     @RequestMapping("/list")
     @RequiresPermissions("freight:list")
     public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         //查询列表数据
         Query query = new Query(params);
 
@@ -92,6 +96,8 @@ public class FreightController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<FreightEntity> list = freightService.queryList(params);
 
         return R.ok().put("list", list);

+ 5 - 7
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -6,6 +6,7 @@ import com.kmall.admin.entity.GoodsGalleryEntity;
 import com.kmall.admin.service.GoodsGalleryService;
 import com.kmall.admin.service.GoodsService;
 import com.kmall.admin.service.OfflineCartService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.constant.JxlsXmlTemplateName;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
@@ -46,11 +47,7 @@ public class GoodsController {
     @RequiresPermissions("goods:list")
     public R list(@RequestParam Map<String, Object> params) {
 
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        //判断是否是店员和商户
-        if ("2".equals(user.getRoleType()) || "3".equals(user.getRoleType())) {
-            params.put("merchSn", user.getMerchSn());
-        }
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
         //查询列表数据
         Query query = new Query(params);
 
@@ -117,7 +114,7 @@ public class GoodsController {
      */
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
         params.put("isDelete", 0);
         List<GoodsEntity> list = goodsService.queryList(params);
 
@@ -133,6 +130,7 @@ public class GoodsController {
      */
     @RequestMapping("/historyList")
     public R historyList(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
         //查询列表数据
         Query query = new Query(params);
 
@@ -161,7 +159,7 @@ public class GoodsController {
      */
     @RequestMapping("/queryTotal")
     public R queryTotal(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
         params.put("isDelete", 0);
         int sum = goodsService.queryTotal(params);
         return R.ok().put("goodsSum", sum);

+ 4 - 6
kmall-admin/src/main/java/com/kmall/admin/controller/MerchController.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.kmall.admin.entity.MerchEntity;
 import com.kmall.admin.service.MerchService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
@@ -35,6 +36,8 @@ public class MerchController {
     @RequiresPermissions("merch:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", true);
+
         //查询列表数据
         Query query = new Query(params);
 
@@ -101,12 +104,7 @@ public class MerchController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        SysUserEntity user = ShiroUtils.getUserEntity();
-
-        //判断是否是店员和商户
-        if ("2".equals(user.getRoleType()) || "3".equals(user.getRoleType())) {
-            params.put("roleMerchSn", user.getMerchSn());
-        }
+        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", true);
 
         List<MerchEntity> list = merchService.queryList(params);
 

+ 5 - 13
kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java

@@ -5,6 +5,7 @@ import com.kmall.admin.service.*;
 import com.kmall.admin.service.OrderExceptionRecordService;
 import com.kmall.admin.service.OrderProcessRecordService;
 import com.kmall.admin.service.OrderService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.api.contants.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.*;
@@ -51,12 +52,7 @@ public class OrderController {
     @RequestMapping("/list")
     @RequiresPermissions("order:list")
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if (user.getRoleType().equalsIgnoreCase("2")) {
-                params.put("storeId", user.getStoreId());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         //查询列表数据
         Query query = new Query(params);
         query.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_0.getItem());
@@ -126,7 +122,7 @@ public class OrderController {
      */
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         List<OrderEntity> list = orderService.queryList(params);
 
         return R.ok().put("list", list);
@@ -137,6 +133,7 @@ public class OrderController {
      */
     @RequestMapping("/queryTotal")
     public R queryTotal(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         int sum = orderService.queryTotal(params);
 
         return R.ok().put("sum", sum);
@@ -373,12 +370,7 @@ public class OrderController {
     @RequestMapping("/offilineOrderList")
     @RequiresPermissions("order:offilineOrderList")
     public R offilineOrderList(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if (user.getRoleType().equalsIgnoreCase("2")) {
-                params.put("storeId", user.getStoreId());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         //查询列表数据
         Query query = new Query(params);
         query.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_1.getItem());

+ 3 - 7
kmall-admin/src/main/java/com/kmall/admin/controller/OrderRefundController.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.kmall.admin.entity.OrderRefundEntity;
 import com.kmall.admin.service.OrderRefundService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
@@ -35,12 +36,7 @@ public class OrderRefundController {
     @RequiresPermissions("orderrefund:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if(user != null) {
-            if (user.getRoleType().equalsIgnoreCase("2")) {
-                params.put("storeId", user.getStoreId());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         //查询列表数据
         Query query = new Query(params);
 
@@ -106,7 +102,7 @@ public class OrderRefundController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         List<OrderRefundEntity> list = orderRefundService.queryList(params);
 
         return R.ok().put("list", list);

+ 20 - 17
kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java

@@ -1,7 +1,10 @@
 package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.ProductStoreRelaEntity;
+import com.kmall.admin.entity.StoreEntity;
 import com.kmall.admin.service.ProductStoreRelaService;
+import com.kmall.admin.service.StoreService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.api.contants.Dict;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
@@ -29,6 +32,8 @@ import java.util.Map;
 public class ProductStoreRelaController {
     @Autowired
     private ProductStoreRelaService productStoreRelaService;
+    @Autowired
+    private StoreService storeService;
 
     /**
      * 查看列表
@@ -36,14 +41,7 @@ public class ProductStoreRelaController {
     @RequestMapping("/list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if ("2".equals(user.getRoleType())) {
-                params.put("storeId", user.getStoreId());
-            } else if ("3".equals(user.getRoleType())) {
-                params.put("merchSn", user.getMerchSn());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         //查询列表数据
         Query query = new Query(params);
 
@@ -73,6 +71,13 @@ public class ProductStoreRelaController {
     @RequiresPermissions("productstorerela:save")
     @ResponseBody
     public R save(@RequestBody ProductStoreRelaEntity productStoreRela) {
+
+        if (productStoreRela.getStoreId() != null) {
+            StoreEntity store = storeService.queryObject(productStoreRela.getStoreId().intValue());
+            if (store != null) {
+                productStoreRela.setMerchSn(store.getMerchSn());
+            }
+        }
         productStoreRelaService.save(productStoreRela);
 
         return R.ok();
@@ -89,6 +94,12 @@ public class ProductStoreRelaController {
             null == productStoreRela.getStoreId()) {
             return R.error("信息不全,保存失败");
         }
+
+        StoreEntity store = storeService.queryObject(productStoreRela.getStoreId().intValue());
+        if (store != null) {
+            productStoreRela.setMerchSn(store.getMerchSn());
+        }
+
         productStoreRelaService.update(productStoreRela);
         return R.ok();
     }
@@ -111,15 +122,7 @@ public class ProductStoreRelaController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if (user.getRoleType().equalsIgnoreCase("2")) {
-                params.put("id", user.getStoreId());
-            } else if (user.getRoleType().equalsIgnoreCase("3")) {
-                params.put("merchSn", user.getMerchSn());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
 
         List<ProductStoreRelaEntity> list = productStoreRelaService.queryList(params);
 

+ 7 - 14
kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java

@@ -2,6 +2,7 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.StoreEntity;
 import com.kmall.admin.service.StoreService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
@@ -35,12 +36,8 @@ public class StoreController {
     @RequiresPermissions("store:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if(user != null) {
-            if (user.getRoleType().equalsIgnoreCase("2")) {
-                params.put("id", user.getStoreId());
-            }
-        }
+
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
         //查询列表数据
         Query query = new Query(params);
 
@@ -107,14 +104,7 @@ public class StoreController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if ("2".equals(user.getRoleType())) {
-                params.put("id", user.getStoreId());
-            } else if ("3".equals(user.getRoleType())) {
-                params.put("merchSn", user.getMerchSn());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
 
         List<StoreEntity> list = storeService.queryList(params);
 
@@ -128,6 +118,9 @@ public class StoreController {
     @RequestMapping("/getStoresByMerch")
     @ResponseBody
     public R getStoresByMerch(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
+
         List<StoreEntity> list = storeService.queryList(params);
         return R.ok().put("list", list);
     }

+ 8 - 4
kmall-admin/src/main/java/com/kmall/admin/controller/SysSmsLogController.java

@@ -1,14 +1,13 @@
 package com.kmall.admin.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.entity.SmsConfig;
 import com.kmall.common.entity.SysSmsLogEntity;
+import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.service.SysConfigService;
 import com.kmall.common.service.SysSmsLogService;
-import com.kmall.common.utils.ConfigConstant;
-import com.kmall.common.utils.PageUtils;
-import com.kmall.common.utils.Query;
-import com.kmall.common.utils.R;
+import com.kmall.common.utils.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -39,6 +38,9 @@ public class SysSmsLogController {
     @RequiresPermissions("sys:smslog:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         //查询列表数据
         Query query = new Query(params);
 
@@ -105,6 +107,8 @@ public class SysSmsLogController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
 
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+
         List<SysSmsLogEntity> list = smsLogService.queryList(params);
 
         return R.ok().put("list", list);

+ 2 - 8
kmall-admin/src/main/java/com/kmall/admin/controller/UserController.java

@@ -2,6 +2,7 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.UserEntity;
 import com.kmall.admin.service.UserService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
 import com.kmall.common.utils.Query;
@@ -38,14 +39,7 @@ public class UserController {
     @RequiresPermissions("user:list")
     public R list(@RequestParam Map<String, Object> params) {
 
-        SysUserEntity user = ShiroUtils.getUserEntity();
-
-        //判断当前用户是店员还是商户
-        if ("2".equals(user.getRoleType())) {
-            params.put("storeId", user.getStoreId());
-        }else if ("3".equals(user.getRoleType())) {
-            params.put("merchSn", user.getMerchSn());
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
         //查询列表数据
         Query query = new Query(params);
 

+ 20 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/AdEntity.java

@@ -43,6 +43,26 @@ public class AdEntity implements Serializable {
     //排序
     private Integer sortOrder;
 
+    private Integer storeId;
+
+    private String merchSn;
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
     public Integer getSortOrder() {
         return sortOrder;
     }

+ 20 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/AttributeEntity.java

@@ -33,6 +33,26 @@ public class AttributeEntity implements Serializable {
     //所属种类名称
     private String categoryName;
 
+    private Integer storeId;
+
+    private String merchSn;
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
     /**
      * 设置:
      */

+ 20 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/BrandEntity.java

@@ -40,6 +40,26 @@ public class BrandEntity implements Serializable {
     //排序
     private Integer newSortOrder;
 
+    private Integer storeId;
+
+    private String merchSn;
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
     /**
      * 设置:主键
      */

+ 20 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/CategoryEntity.java

@@ -46,6 +46,26 @@ public class CategoryEntity extends Tree<CategoryEntity> {
     //翻译用字段
     private String show;
 
+    private Integer storeId;
+
+    private String merchSn;
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
     public String getShow() {
         return show;
     }

+ 20 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/CouponEntity.java

@@ -41,6 +41,26 @@ public class CouponEntity implements Serializable {
 
     private String isAll;
 
+    private Integer storeId;
+
+    private String merchSn;
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
     /**
      * 设置:主键
      */

+ 19 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/FreightEntity.java

@@ -41,8 +41,27 @@ public class FreightEntity implements Serializable {
 
     private Integer isDelete = 0;
 
+    private Integer storeId;
+
+    private String merchSn;
+
     private List<FreightItemEntity> freightItemEntityList;
 
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
     /**
      * 设置:主键
      */

+ 27 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/AdServiceImpl.java

@@ -1,8 +1,13 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.AdDao;
 import com.kmall.admin.entity.AdEntity;
 import com.kmall.admin.service.AdService;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -38,11 +43,33 @@ public class AdServiceImpl implements AdService {
 
     @Override
     public int save(AdEntity ad) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(ad);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        builder.put("adPositionId", "广告位置");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return adDao.save(ad);
     }
 
     @Override
     public int update(AdEntity ad) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(ad);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        builder.put("adPositionId", "广告位置");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return adDao.update(ad);
     }
 

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

@@ -1,12 +1,16 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.CategoryDao;
 import com.kmall.admin.dao.GoodsDao;
 import com.kmall.admin.entity.CategoryEntity;
 import com.kmall.admin.entity.GoodsEntity;
 import com.kmall.admin.service.CategoryService;
 import com.kmall.api.contants.Dict;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
 import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -52,11 +56,31 @@ public class CategoryServiceImpl implements CategoryService {
                 throw new RRException("请选择父级分类!");
             }
         }
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(category);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return categoryDao.save(category);
     }
 
     @Override
     public int update(CategoryEntity category) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(category);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return categoryDao.update(category);
     }
 

+ 24 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/CouponServiceImpl.java

@@ -1,5 +1,6 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.CouponDao;
 import com.kmall.admin.dao.CouponGoodsDao;
 import com.kmall.admin.dao.UserCouponDao;
@@ -9,7 +10,10 @@ import com.kmall.admin.entity.CouponGoodsEntity;
 import com.kmall.admin.entity.UserCouponEntity;
 import com.kmall.admin.entity.UserEntity;
 import com.kmall.admin.service.CouponService;
+import com.kmall.common.utils.MapBeanUtil;
 import com.kmall.common.utils.R;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,11 +58,31 @@ public class CouponServiceImpl implements CouponService {
 
     @Override
     public int save(CouponEntity coupon) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(coupon);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return couponDao.save(coupon);
     }
 
     @Override
     public int update(CouponEntity coupon) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(coupon);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return couponDao.update(coupon);
     }
 

+ 26 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/FreightServiceImpl.java

@@ -1,5 +1,6 @@
 package com.kmall.admin.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.dao.FreightDao;
 import com.kmall.admin.dao.FreightItemDao;
 import com.kmall.admin.dao.GoodsDao;
@@ -7,7 +8,10 @@ import com.kmall.admin.entity.FreightEntity;
 import com.kmall.admin.entity.FreightItemEntity;
 import com.kmall.admin.entity.GoodsEntity;
 import com.kmall.admin.service.FreightService;
+import com.kmall.common.utils.MapBeanUtil;
+import com.kmall.common.utils.R;
 import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ValidatorUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -61,12 +65,23 @@ public class FreightServiceImpl implements FreightService {
     @Transactional
     public int save(FreightEntity freight) {
         Map<String, Object> map = new HashMap<>();
+        map.put("storeId", freight.getStoreId());
+        map.put("merchSn", freight.getMerchSn());
         map.put("name", freight.getName());
         List<FreightEntity> list = queryList(map);
         if (list != null && list.size() != 0) {
             throw new RRException("运费模版名称已存在!");
         }
 
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(freight);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         Integer id = freightDao.queryMaxId() + 1;
         freight.setId(id);
 
@@ -99,12 +114,23 @@ public class FreightServiceImpl implements FreightService {
     public int update(FreightEntity freight) {
         Map<String, Object> map = new HashMap<>();
         map.put("id", freight.getId());
+        map.put("storeId", freight.getStoreId());
+        map.put("merchSn", freight.getMerchSn());
         map.put("name", freight.getName());
         List<FreightEntity> list = queryEntity(map);
         if (list != null && list.size() != 0) {
             throw new RRException("运费模版名称已存在!");
         }
 
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(freight);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         if (Boolean.valueOf(freight.getIsDefault())) {
             freight.setIsDefault("1");
         } else {

+ 54 - 0
kmall-admin/src/main/java/com/kmall/admin/utils/ParamUtils.java

@@ -0,0 +1,54 @@
+package com.kmall.admin.utils;
+
+import com.kmall.api.contants.Dict;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ShiroUtils;
+
+import java.util.Map;
+
+/**
+ * 参数工具类
+ */
+public class ParamUtils {
+
+    /**
+     * 根据用户类型设置查询权限
+     *
+     * @param params   查询参数
+     * @param storeKey 当用户是门店时,放入的key,值为门店id
+     * @param merchKey 当用户是商户时,放入的key,值为商户编号
+     * @param bothSet  为true时,不管是门店还是商户都只设置storeKey和merchKey中不为null的值
+     */
+    public static void setQueryPowerByRoleType(Map params, String storeKey, String merchKey, boolean bothSet) {
+        SysUserEntity user = ShiroUtils.getUserEntity();
+        if (user != null) {
+            if (bothSet) {
+                if (Dict.roleType.item_2.getItem().equals(user.getRoleType()) ||
+                    Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+                    if (storeKey == null && merchKey == null) {
+                        throw new RRException("参数错误");
+                    }
+
+                    if (storeKey != null && merchKey != null) {
+                        throw new RRException("参数错误");
+                    }
+
+                    if (storeKey != null) {
+                        params.put(storeKey, user.getStoreId());
+                    } else if (merchKey != null) {
+                        params.put(merchKey, user.getMerchSn());
+                    }
+                }
+            } else {
+                if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
+                    params.put(storeKey, user.getStoreId());
+                } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+                    params.put(merchKey, user.getMerchSn());
+                }
+            }
+
+        }
+    }
+}
+

+ 24 - 0
kmall-admin/src/main/resources/mybatis/mapper/AdDao.xml

@@ -8,6 +8,8 @@
         <result property="adPositionId" column="ad_position_id"/>
         <result property="mediaType" column="media_type"/>
         <result property="name" column="name"/>
+        <result property="storeId" column="store_id"/>
+        <result property="merchSn" column="merch_sn"/>
         <result property="link" column="link"/>
         <result property="imageUrl" column="image_url"/>
         <result property="content" column="content"/>
@@ -22,6 +24,8 @@
 			ad_position_id,
 			media_type,
 			name,
+			store_id,
+			merch_sn,
 			link,
 			image_url,
 			sort_order,
@@ -38,6 +42,8 @@
         mall_ad.ad_position_id,
         mall_ad.media_type,
         mall_ad.name,
+        mall_ad.store_id,
+        mall_ad.merch_sn,
         mall_ad.link,
         mall_ad.image_url,
         mall_ad.sort_order,
@@ -47,6 +53,12 @@
         mall_ad_position.name ad_Position_Name
         from mall_ad LEFT JOIN mall_ad_position on mall_ad.ad_position_id = mall_ad_position.id
         where 1=1
+        <if test="storeId != null and storeId != ''">
+            AND store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND merch_sn = #{merchSn}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND mall_ad.name LIKE concat('%',#{name},'%')
         </if>
@@ -66,6 +78,12 @@
     <select id="queryTotal" resultType="int">
 		select count(*) from mall_ad
 		WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND merch_sn = #{merchSn}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
@@ -76,6 +94,8 @@
 			`ad_position_id`,
 			`media_type`,
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`link`,
 			`image_url`,
 			`sort_order`,
@@ -86,6 +106,8 @@
 			#{adPositionId},
 			#{mediaType},
 			#{name},
+			#{storeId},
+			#{merchSn},
 			#{link},
 			#{imageUrl},
 			#{sortOrder},
@@ -100,6 +122,8 @@
             <if test="adPositionId != null">`ad_position_id` = #{adPositionId},</if>
             <if test="mediaType != null">`media_type` = #{mediaType},</if>
             <if test="name != null">`name` = #{name},</if>
+            <if test="storeId != null">`store_id` = #{storeId}, </if>
+            <if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
             <if test="link != null">`link` = #{link},</if>
             <if test="imageUrl != null">`image_url` = #{imageUrl},</if>
             <if test="sortOrder != null">`sort_order` = #{sortOrder},</if>

+ 24 - 0
kmall-admin/src/main/resources/mybatis/mapper/AttributeDao.xml

@@ -7,6 +7,8 @@
         <result property="id" column="id"/>
         <result property="attributeCategoryId" column="attribute_category_id"/>
         <result property="name" column="name"/>
+        <result property="storeId" column="store_id"/>
+        <result property="merchSn" column="merch_sn"/>
         <result property="inputType" column="input_type"/>
         <result property="value" column="value"/>
         <result property="sortOrder" column="sort_order"/>
@@ -17,6 +19,8 @@
 			id,
 			attribute_category_id,
 			name,
+			store_id,
+			merch_sn,
 			input_type,
 			value,
 			sort_order
@@ -29,6 +33,8 @@
         a.id,
         a.attribute_category_id,
         a.NAME,
+        a.store_id,
+        a.merch_sn,
         a.input_type,
         a.VALUE,
         a.sort_order,
@@ -36,6 +42,12 @@
         FROM mall_attribute a
         LEFT JOIN mall_category c ON a.attribute_category_id = c.id
         WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND a.store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND a.merch_sn = #{merchSn}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND a.name LIKE concat('%', #{name},'%')
         </if>
@@ -62,6 +74,12 @@
 		select count(*) from mall_attribute a
         LEFT JOIN mall_category c ON a.attribute_category_id = c.id
         WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND a.store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND a.merch_sn = #{merchSn}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND a.name LIKE concat('%', #{name},'%')
         </if>
@@ -77,12 +95,16 @@
 		insert into mall_attribute(
 			`attribute_category_id`,
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`input_type`,
 			`value`,
 			`sort_order`)
 		values(
 			#{attributeCategoryId},
 			#{name},
+			#{storeId},
+			#{merchSn},
 			#{inputType},
 			#{value},
 			#{sortOrder})
@@ -93,6 +115,8 @@
         <set>
             <if test="attributeCategoryId != null">`attribute_category_id` = #{attributeCategoryId},</if>
             <if test="name != null">`name` = #{name},</if>
+            <if test="storeId != null">`store_id` = #{storeId}, </if>
+            <if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
             <if test="inputType != null">`input_type` = #{inputType},</if>
             <if test="value != null">`value` = #{value},</if>
             <if test="sortOrder != null">`sort_order` = #{sortOrder}</if>

+ 26 - 0
kmall-admin/src/main/resources/mybatis/mapper/BrandDao.xml

@@ -6,6 +6,8 @@
     <resultMap type="com.kmall.admin.entity.BrandEntity" id="brandMap">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
+        <result property="storeId" column="store_id"/>
+        <result property="merchSn" column="merch_sn"/>
         <result property="listPicUrl" column="list_pic_url"/>
         <result property="simpleDesc" column="simple_desc"/>
         <result property="picUrl" column="pic_url"/>
@@ -22,6 +24,8 @@
 		select
 			`id`,
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`list_pic_url`,
 			`simple_desc`,
 			`pic_url`,
@@ -40,6 +44,8 @@
         select
         `id`,
         `name`,
+        `store_id`,
+		`merch_sn`,
         `list_pic_url`,
         `simple_desc`,
         `pic_url`,
@@ -58,6 +64,8 @@
         select
         `id`,
         `name`,
+        `store_id`,
+        `merch_sn`,
         `list_pic_url`,
         `simple_desc`,
         `pic_url`,
@@ -70,6 +78,12 @@
         `new_sort_order`
         from mall_brand
         WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND merch_sn = #{merchSn}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
@@ -89,6 +103,12 @@
     <select id="queryTotal" resultType="int">
         select count(*) from mall_brand
         WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND merch_sn = #{merchSn}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
@@ -97,6 +117,8 @@
     <insert id="save" parameterType="com.kmall.admin.entity.BrandEntity" useGeneratedKeys="true" keyProperty="id">
 		insert into mall_brand(
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`list_pic_url`,
 			`simple_desc`,
 			`pic_url`,
@@ -109,6 +131,8 @@
 			`new_sort_order`)
 		values(
 			#{name},
+			#{storeId},
+			#{merchSn},
 			#{listPicUrl},
 			#{simpleDesc},
 			#{picUrl},
@@ -125,6 +149,8 @@
         update mall_brand
         <set>
             <if test="name != null">`name` = #{name},</if>
+            <if test="storeId != null">`store_id` = #{storeId}, </if>
+            <if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
             <if test="listPicUrl != null">`list_pic_url` = #{listPicUrl},</if>
             <if test="simpleDesc != null">`simple_desc` = #{simpleDesc},</if>
             <if test="picUrl != null">`pic_url` = #{picUrl},</if>

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

@@ -6,6 +6,8 @@
     <resultMap type="com.kmall.admin.entity.CategoryEntity" id="categoryMap">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
+		<result property="storeId" column="store_id"/>
+		<result property="merchSn" column="merch_sn"/>
         <result property="keywords" column="keywords"/>
         <result property="frontDesc" column="front_desc"/>
         <result property="parentId" column="parent_id"/>
@@ -25,6 +27,8 @@
 		select
 			`id`,
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`keywords`,
 			`front_desc`,
 			`parent_id`,
@@ -46,6 +50,8 @@
 		select
 		`id`,
 		`name`,
+		`store_id`,
+		`merch_sn`,
 		`keywords`,
 		`front_desc`,
 		`parent_id`,
@@ -68,6 +74,8 @@
 		select
     		`id`,
     		`name`,
+			`store_id`,
+			`merch_sn`,
     		`keywords`,
     		`front_desc`,
     		`parent_id`,
@@ -84,6 +92,12 @@
 			`is_show` as `show`
 		from mall_category
 		WHERE 1=1
+		<if test="storeId != null and storeId != ''">
+			AND store_id = #{storeId}
+		</if>
+		<if test="merchSn != null and merchSn.trim() != ''">
+			AND merch_sn = #{merchSn}
+		</if>
 		<if test="name != null and name.trim() != ''">
 			AND `name` LIKE concat('%',#{name},'%')
 		</if>
@@ -112,6 +126,12 @@
  	<select id="queryTotal" resultType="int">
 		select count(*) from mall_category
 		WHERE 1=1
+		<if test="storeId != null and storeId != ''">
+			AND store_id = #{storeId}
+		</if>
+		<if test="merchSn != null and merchSn.trim() != ''">
+			AND merch_sn = #{merchSn}
+		</if>
 		<if test="name != null and name.trim() != ''">
 			AND `name` LIKE concat('%',#{name},'%')
 		</if>
@@ -130,6 +150,8 @@
 		insert into mall_category(
 			`id`,
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`keywords`,
 			`front_desc`,
 			`parent_id`,
@@ -146,6 +168,8 @@
 		values(
 			#{id},
 			#{name},
+			#{storeId},
+			#{merchSn},
 			#{keywords},
 			#{frontDesc},
 			#{parentId},
@@ -165,6 +189,8 @@
 		update mall_category
 		<set>
 			<if test="name != null">`name` = #{name}, </if>
+			<if test="storeId != null">`store_id` = #{storeId}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
 			<if test="keywords != null">`keywords` = #{keywords}, </if>
 			<if test="frontDesc != null">`front_desc` = #{frontDesc}, </if>
 			<if test="parentId != null">`parent_id` = #{parentId}, </if>

+ 18 - 0
kmall-admin/src/main/resources/mybatis/mapper/CouponDao.xml

@@ -6,6 +6,8 @@
     <resultMap type="com.kmall.admin.entity.CouponEntity" id="couponMap">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
+        <result property="storeId" column="store_id"/>
+        <result property="merchSn" column="merch_sn"/>
         <result property="typeMoney" column="type_money"/>
         <result property="sendType" column="send_type"/>
         <result property="minAmount" column="min_amount"/>
@@ -24,6 +26,12 @@
             <if test="name != null and name.trim() != ''">
                 AND a.name LIKE concat('%',#{name},'%')
             </if>
+            <if test="storeId != null and storeId != ''">
+                AND store_id = #{storeId}
+            </if>
+            <if test="merchSn != null and merchSn.trim() != ''">
+                AND merch_sn = #{merchSn}
+            </if>
         </where>
     </sql>
 
@@ -31,6 +39,8 @@
 		select
 			`id`,
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`type_money`,
 			`send_type`,
 			`min_amount`,
@@ -49,6 +59,8 @@
         select
         `id`,
         `name`,
+        `store_id`,
+        `merch_sn`,
         `type_money`,
         `send_type`,
         `min_amount`,
@@ -82,6 +94,8 @@
     <insert id="save" parameterType="com.kmall.admin.entity.CouponEntity" useGeneratedKeys="true" keyProperty="id">
 		insert into mall_coupon(
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`type_money`,
 			`send_type`,
 			`min_amount`,
@@ -94,6 +108,8 @@
 			`is_all`)
 		values(
 			#{name},
+			#{storeId},
+			#{merchSn},
 			#{typeMoney},
 			#{sendType},
 			#{minAmount},
@@ -110,6 +126,8 @@
         update mall_coupon
         <set>
             <if test="name != null">`name` = #{name},</if>
+            <if test="storeId != null">`store_id` = #{storeId}, </if>
+            <if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
             <if test="typeMoney != null">`type_money` = #{typeMoney},</if>
             <if test="sendType != null">`send_type` = #{sendType},</if>
             <if test="minAmount != null">`min_amount` = #{minAmount},</if>

+ 37 - 3
kmall-admin/src/main/resources/mybatis/mapper/FreightDao.xml

@@ -6,16 +6,20 @@
     <resultMap type="com.kmall.admin.entity.FreightEntity" id="freightMap">
         <result property="id" column="id"/>
         <result property="name" column="name"/>
-        <result property="templateType" column="template_type"/>
-        <result property="pricingManner" column="pricing_manner"/>
+		<result property="storeId" column="store_id"/>
+		<result property="merchSn" column="merch_sn"/>
+		<result property="templateType" column="template_type"/>
+		<result property="pricingManner" column="pricing_manner"/>
 		<result property="defaultFreight" column="default_freight"/>
-        <result property="isDefault" column="is_default"/>
+		<result property="isDefault" column="is_default"/>
     </resultMap>
 
 	<select id="queryObject" resultType="com.kmall.admin.entity.FreightEntity">
 		select
 			`id`,
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`template_type`,
 			`pricing_manner`,
 			`default_freight`,
@@ -28,6 +32,8 @@
 		select
 		`id`,
 		`name`,
+		`store_id`,
+		`merch_sn`,
 		`template_type`,
 		`pricing_manner`,
 		`default_freight`,
@@ -40,12 +46,20 @@
 		select
     		`id`,
     		`name`,
+			`store_id`,
+			`merch_sn`,
     		`template_type`,
     		`pricing_manner`,
 			`default_freight`,
     		`is_default`
 		from mall_freight
 		WHERE 1=1
+		<if test="storeId != null and storeId != ''">
+			AND store_id = #{storeId}
+		</if>
+		<if test="merchSn != null and merchSn.trim() != ''">
+			AND merch_sn = #{merchSn}
+		</if>
 		<if test="name != null and name.trim() != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
@@ -69,12 +83,20 @@
 		select
 		`id`,
 		`name`,
+		`store_id`,
+		`merch_sn`,
 		`template_type`,
 		`pricing_manner`,
 		`default_freight`,
 		`is_default`
 		from mall_freight
 		WHERE 1=1
+		<if test="storeId != null and storeId != ''">
+			AND store_id = #{storeId}
+		</if>
+		<if test="merchSn != null and merchSn.trim() != ''">
+			AND merch_sn = #{merchSn}
+		</if>
 		<if test="name != null and name != ''">
 			AND name LIKE concat('%',#{name},'%')
 		</if>
@@ -97,6 +119,12 @@
  	<select id="queryTotal" resultType="int">
 		select count(*) from mall_freight
 		WHERE 1=1
+		<if test="storeId != null and storeId != ''">
+			AND store_id = #{storeId}
+		</if>
+		<if test="merchSn != null and merchSn.trim() != ''">
+			AND merch_sn = #{merchSn}
+		</if>
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
@@ -108,12 +136,16 @@
 	<insert id="save" parameterType="com.kmall.admin.entity.FreightEntity" useGeneratedKeys="true" keyProperty="id">
 		insert into mall_freight(
 			`name`,
+			`store_id`,
+			`merch_sn`,
 			`template_type`,
 			`pricing_manner`,
 			`default_freight`,
 			`is_default`)
 		values(
 			#{name},
+			#{storeId},
+			#{merchSn},
 			#{templateType},
 			#{pricingManner},
 			#{defaultFreight},
@@ -124,6 +156,8 @@
 		update mall_freight 
 		<set>
 			<if test="name != null">`name` = #{name}, </if>
+			<if test="storeId != null">`store_id` = #{storeId}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
 			<if test="templateType != null">`template_type` = #{templateType}, </if>
 			<if test="pricingManner != null">`pricing_manner` = #{pricingManner}, </if>
 			<if test="defaultFreight != null">`default_freight` = #{defaultFreight},</if>

+ 3 - 0
kmall-admin/src/main/resources/mybatis/mapper/MerchDao.xml

@@ -102,6 +102,9 @@
  	<select id="queryTotal" resultType="int">
 		select count(*) from mall_merch
 		WHERE 1=1
+		<if test="roleMerchSn != null and roleMerchSn.trim() != ''">
+			AND merch_sn = #{roleMerchSn}
+		</if>
 		<if test="merchName != null and merchName.trim() != ''">
 			AND merch_name LIKE concat('%',#{merchName},'%')
 		</if>

+ 12 - 3
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -95,9 +95,12 @@
         LEFT JOIN mall_user u ON o.user_id = u.id
         LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
         WHERE 1=1
-        <if test="storeId != null">
+        <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND o.merch_sn = #{merchSn}
+        </if>
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>
@@ -137,9 +140,12 @@
 
     <select id="queryTotal" resultType="int">
         select count(*) from mall_order o WHERE 1=1
-        <if test="storeId != null">
+        <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND o.merch_sn = #{merchSn}
+        </if>
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>
@@ -177,9 +183,12 @@
         LEFT JOIN sys_user u ON o.user_id = u.user_id
         LEFT JOIN mall_order_process_record p ON o.order_sn = p.order_sn
         WHERE 1=1
-        <if test="storeId != null">
+        <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND o.merch_sn = #{merchSn}
+        </if>
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>

+ 8 - 2
kmall-admin/src/main/resources/mybatis/mapper/OrderRefundDao.xml

@@ -87,9 +87,12 @@
         <if test="orderId != null">
             AND o.id = #{orderId}
         </if>
-        <if test="storeId != null">
+        <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND o.merch_sn = #{merchSn}
+        </if>
         <if test="shippingStatus != null and shippingStatus.trim() != ''">
             AND o.shipping_status = #{shippingStatus}
         </if>
@@ -133,9 +136,12 @@
         <if test="userName != null and userName.trim() != ''">
             AND u.username LIKE concat('%',#{userName},'%')
         </if>
-        <if test="storeId != null">
+        <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND o.merch_sn = #{merchSn}
+        </if>
         <if test="orderId != null">
             AND o.id = #{orderId}
         </if>

+ 10 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/attribute.html

@@ -36,6 +36,16 @@
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
         <i-form ref="formValidate" :model="attribute" :rules="ruleValidate" :label-width="80">
+            <Form-item label="商户" prop="merchSn">
+                <i-select v-model="attribute.merchSn" filterable placeholder="商户" @on-change="getStoresByMerch" label-in-value>
+                    <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="storeId">
+                <i-select v-model="attribute.storeId" filterable 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 label="名称" prop="name">
                 <i-input v-model="attribute.name" placeholder="名称"/>
             </Form-item>

+ 10 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/brand.html

@@ -33,6 +33,16 @@
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
         <i-form ref="formValidate" :model="brand" :rules="ruleValidate" :label-width="100">
+            <Form-item label="商户" prop="merchSn">
+                <i-select v-model="brand.merchSn" filterable placeholder="商户" @on-change="getStoresByMerch" label-in-value>
+                    <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="storeId">
+                <i-select v-model="brand.storeId" filterable 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 label="品牌名称" prop="name">
                 <i-input v-model="brand.name" placeholder="品牌名称"/>
             </Form-item>

+ 10 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/category.html

@@ -32,6 +32,16 @@
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
         <i-form ref="formValidate" :model="category" :rules="ruleValidate" :label-width="100">
+            <Form-item label="商户" prop="merchSn">
+                <i-select v-model="category.merchSn" filterable placeholder="商户" @on-change="getStoresByMerch" label-in-value>
+                    <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="storeId">
+                <i-select v-model="category.storeId" filterable 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 label="分类名称" prop="name">
                 <i-input v-model="category.name" placeholder="分类名称"/>
             </Form-item>

+ 10 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/coupongrads.html

@@ -38,6 +38,16 @@
     <Card v-show="showDiv == 2">
         <p slot="title">{{title}}</p>
         <i-form ref="formValidate" :model="coupon" :rules="ruleValidate" :label-width="160">
+            <Form-item label="商户" prop="merchSn">
+                <i-select v-model="coupon.merchSn" filterable placeholder="商户" @on-change="getStoresByMerch" label-in-value>
+                    <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="storeId">
+                <i-select v-model="coupon.storeId" filterable 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 label="优惠券名称" prop="name">
                 <i-input v-model="coupon.name" placeholder="优惠券名称"/>
             </Form-item>

+ 10 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/freight.html

@@ -32,6 +32,16 @@
     <Card v-show="!showList">
         <p slot="title">{{title}}</p>
         <i-form ref="formValidate" :model="freight" :rules="ruleValidate" :label-width="140">
+            <Form-item label="商户" prop="merchSn">
+                <i-select v-model="freight.merchSn" filterable placeholder="商户" @on-change="getStoresByMerch" label-in-value>
+                    <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="storeId">
+                <i-select v-model="freight.storeId" filterable 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 label="模版名称" prop="name">
                 <i-input v-model="freight.name" placeholder="模版名称"/>
             </Form-item>

+ 19 - 1
kmall-admin/src/main/webapp/js/shop/attribute.js

@@ -51,7 +51,9 @@ var vm = new Vue({
             name: '',
             categoryName: ''
         },
-        categories: []
+        categories: [],
+        storeList: [],
+        merchList: []
     },
     methods: {
         query: function () {
@@ -64,6 +66,9 @@ var vm = new Vue({
             vm.attribute = { sortOrder: '' };
             vm.categories = [];
             this.getCategories();
+            vm.storeList = [];
+            vm.merchList = [];
+            vm.getMerchList();
         },
         update: function (event) {
             var id = getSelectedRow();
@@ -74,6 +79,8 @@ var vm = new Vue({
             vm.title = "修改";
 
             vm.getInfo(id);
+            vm.getMerchList();
+            vm.getStoresByMerch();
             this.getCategories();
         },
         saveOrUpdate: function (event) {
@@ -123,6 +130,17 @@ var vm = new Vue({
                 vm.attribute = r.attribute;
             });
         },
+        getStoresByMerch: function (opt) {
+            var value = opt.value;
+            $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
+                vm.storeList = r.list;
+            });
+        },
+        getMerchList: function() {
+            $.get("../merch/queryAll", function (r) {
+                vm.merchList = r.list;
+            });
+        },
         reload: function (event) {
             vm.showList = true;
             var page = $("#jqGrid").jqGrid('getGridParam', 'page');

+ 20 - 2
kmall-admin/src/main/webapp/js/shop/brand.js

@@ -99,7 +99,9 @@ var vm = new Vue({
         },
         q: {
             name: ''
-        }
+        },
+        storeList: [],
+        merchList: []
     },
     methods: {
         query: function () {
@@ -109,6 +111,9 @@ var vm = new Vue({
             vm.showList = false;
             vm.title = "新增";
             vm.brand = {listPicUrl: '', picUrl: '', appListPicUrl: '', newPicUrl: '', isShow: 1, isNew: 0};
+            vm.storeList = [];
+            vm.merchList = [];
+            vm.getMerchList();
         },
         update: function (event) {
             var id = getSelectedRow();
@@ -118,7 +123,9 @@ var vm = new Vue({
             vm.showList = false;
             vm.title = "修改";
 
-            vm.getInfo(id)
+            vm.getInfo(id);
+            vm.getMerchList();
+            vm.getStoresByMerch();
         },
         saveOrUpdate: function (event) {
             var url = vm.brand.id == null ? "../brand/save" : "../brand/update";
@@ -167,6 +174,17 @@ var vm = new Vue({
                 vm.brand = r.brand;
             });
         },
+        getStoresByMerch: function (opt) {
+            var value = opt.value;
+            $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
+                vm.storeList = r.list;
+            });
+        },
+        getMerchList: function() {
+            $.get("../merch/queryAll", function (r) {
+                vm.merchList = r.list;
+            });
+        },
         reload: function (event) {
             vm.showList = true;
             var page = $("#jqGrid").jqGrid('getGridParam', 'page');

+ 19 - 1
kmall-admin/src/main/webapp/js/shop/category.js

@@ -85,7 +85,9 @@ var vm = new Vue({
         q: {
             name: ''
         },
-        categoryList: []
+        categoryList: [],
+        storeList: [],
+        merchList: []
     },
     methods: {
         query: function () {
@@ -96,6 +98,9 @@ var vm = new Vue({
             vm.title = "新增";
             vm.category = {isShow: 1, type: 0, level: 'L1', bannerUrl: '', iconUrl: '', imgUrl: '', wapBannerUrl: ''};
             this.getParentCategory();
+            vm.storeList = [];
+            vm.merchList = [];
+            vm.getMerchList();
         },
         update: function (event) {
             var id = TreeGrid.table.getSelectedRow();
@@ -106,6 +111,8 @@ var vm = new Vue({
             vm.showList = false;
             vm.title = "修改";
             vm.getInfo(id[0].id);
+            vm.getMerchList();
+            vm.getStoresByMerch();
             this.getParentCategory();
         },
         getParentCategory: function () {
@@ -163,6 +170,17 @@ var vm = new Vue({
                 vm.category = r.category;
             });
         },
+        getStoresByMerch: function (opt) {
+            var value = opt.value;
+            $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
+                vm.storeList = r.list;
+            });
+        },
+        getMerchList: function() {
+            $.get("../merch/queryAll", function (r) {
+                vm.merchList = r.list;
+            });
+        },
         reload: function (event) {
             vm.showList = true;
             TreeGrid.table.refresh();

+ 22 - 4
kmall-admin/src/main/webapp/js/shop/coupongrads.js

@@ -41,7 +41,7 @@ $(function () {
             {label: '订单最大金额', name: 'maxAmount', index: 'maxAmount', width: 80},
             {label: '金额', name: 'typeMoney', index: 'type_money', width: 80},
             // {label: '最小商品金额', name: 'minGoodsAmount', index: 'min_goods_amount', width: 80},
-            {label: '有效天数', name: 'invalidDays', index: 'invalidDays', width: 80},
+            {label: '有效天数', name: 'invalidDays', index: 'invalidDays', width: 80}
             /*{
                 label: '操作', width: 70, align: 'center', sortable: false,
                     formatter: function (value, col, row) {
@@ -68,12 +68,14 @@ var vm = new Vue({
         coupon: {sendType: 0, status: 1, couponType: 0, name: '', minAmount: 0, maxAmount: 0, minGoodsAmount: 0},
         ruleValidate: {
             name: [
-                {required: true, message: '优惠券名称不能为空', trigger: 'blur'},
-            ],
+                {required: true, message: '优惠券名称不能为空', trigger: 'blur'}
+            ]
         },
         q: {
             name: ''
         },
+        storeList: [],
+        merchList: []
     },
     methods: {
         query: function () {
@@ -91,6 +93,9 @@ var vm = new Vue({
                 maxAmount: 0,
                 minGoodsAmount: 0
             };
+            vm.storeList = [];
+            vm.merchList = [];
+            vm.getMerchList();
         },
         update: function (event) {
             var id = getSelectedRow();
@@ -100,7 +105,9 @@ var vm = new Vue({
             vm.showDiv = 2;
             vm.title = "修改";
 
-            vm.getInfo(id)
+            vm.getInfo(id);
+            vm.getMerchList();
+            vm.getStoresByMerch();
         },
         saveOrUpdate: function (event) {
             var url = vm.coupon.id == null ? "../coupon/save" : "../coupon/update";
@@ -145,6 +152,17 @@ var vm = new Vue({
                 }
             });
         },
+        getStoresByMerch: function (opt) {
+            var value = opt.value;
+            $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
+                vm.storeList = r.list;
+            });
+        },
+        getMerchList: function() {
+            $.get("../merch/queryAll", function (r) {
+                vm.merchList = r.list;
+            });
+        },
         reload: function (event) {
             vm.showDiv = 1;
             var page = $("#jqGrid").jqGrid('getGridParam', 'page');

+ 19 - 2
kmall-admin/src/main/webapp/js/shop/freight.js

@@ -83,7 +83,9 @@ let vm = new Vue({
             continuePiece: '',
             renew: '',
             isDelete: 0
-        }]
+        }],
+        storeList: [],
+        merchList: []
     },
     methods: {
         changeUnit: function(value) {
@@ -142,6 +144,20 @@ let vm = new Vue({
                 renew: '',
                 isDelete: 0
             }];
+            vm.storeList = [];
+            vm.merchList = [];
+            vm.getMerchList();
+        },
+        getStoresByMerch: function (opt) {
+            var value = opt.value;
+            $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
+                vm.storeList = r.list;
+            });
+        },
+        getMerchList: function() {
+            $.get("../merch/queryAll", function (r) {
+                vm.merchList = r.list;
+            });
         },
         update: function (event) {
             let id = getSelectedRow();
@@ -150,8 +166,9 @@ let vm = new Vue({
             }
             vm.showList = false;
             vm.title = "修改";
-
             vm.getInfo(id)
+            vm.getMerchList();
+            vm.getStoresByMerch();
         },
         saveOrUpdate: function (event) {
             let url = vm.freight.id == null ? "../freight/save" : "../freight/update";

+ 20 - 0
kmall-common/src/main/java/com/kmall/common/entity/SysSmsLogEntity.java

@@ -79,6 +79,26 @@ public class SysSmsLogEntity implements Serializable {
 
     private String smsCode;
 
+    private Integer storeId;
+
+    private String merchSn;
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public String getMerchSn() {
+        return merchSn;
+    }
+
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
     public String getSmsCode() {
         return smsCode;
     }

+ 21 - 0
kmall-common/src/main/java/com/kmall/common/service/impl/SysSmsLogServiceImpl.java

@@ -1,5 +1,6 @@
 package com.kmall.common.service.impl;
 
+import com.google.common.collect.ImmutableBiMap;
 import com.kmall.common.dao.SysSmsLogDao;
 import com.kmall.common.entity.SmsConfig;
 import com.kmall.common.entity.SysSmsLogEntity;
@@ -41,11 +42,31 @@ public class SysSmsLogServiceImpl implements SysSmsLogService {
 
     @Override
     public int save(SysSmsLogEntity smsLog) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(smsLog);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return smsLogDao.save(smsLog);
     }
 
     @Override
     public int update(SysSmsLogEntity smsLog) {
+
+        Map<String, Object> valideDate = MapBeanUtil.fromObject(smsLog);
+        ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
+        builder.put("merchSn", "商户");
+        builder.put("storeId", "门店");
+        R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
+        if (Integer.valueOf(r.get("code").toString()) != 0) {
+            throw new RRException(r.get("msg").toString());
+        }
+
         return smsLogDao.update(smsLog);
     }
 

+ 26 - 0
kmall-common/src/main/resources/mybatis/mapper/SysSmsLogDao.xml

@@ -8,6 +8,8 @@
         <result property="userId" column="user_id"/>
         <result property="content" column="content"/>
         <result property="mobile" column="mobile"/>
+        <result property="storeId" column="store_id"/>
+        <result property="merchSn" column="merch_sn"/>
         <result property="stime" column="stime"/>
         <result property="sign" column="sign"/>
         <result property="type" column="type"/>
@@ -27,6 +29,8 @@
 			`user_id`,
 			`content`,
 			`mobile`,
+			`store_id`,
+			`merch_sn`,
 			`stime`,
 			`sign`,
 			`type`,
@@ -48,6 +52,8 @@
         sys_sms_log.user_id,
         sys_sms_log.content,
         sys_sms_log.mobile,
+        sys_sms_log.store_id,
+        sys_sms_log.merch_sn,
         sys_sms_log.stime,
         sys_sms_log.sign,
         sys_sms_log.type,
@@ -63,6 +69,12 @@
         from sys_sms_log
         LEFT JOIN mall_user ON mall_user.id = sys_sms_log.user_id
         WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND merch_sn = #{merchSn}
+        </if>
         <if test="sendId != null and sendId != ''">
             AND sys_sms_log.send_id LIKE concat('%',#{sendId},'%')
         </if>
@@ -82,6 +94,12 @@
     <select id="queryTotal" resultType="int">
         select count(*) from sys_sms_log
         WHERE 1=1
+        <if test="storeId != null and storeId != ''">
+            AND store_id = #{storeId}
+        </if>
+        <if test="merchSn != null and merchSn.trim() != ''">
+            AND merch_sn = #{merchSn}
+        </if>
         <if test="sendId != null and sendId != ''">
             AND send_id LIKE concat('%',#{sendId},'%')
         </if>
@@ -92,6 +110,8 @@
 			`user_id`,
 			`content`,
 			`mobile`,
+			`store_id`,
+			`merch_sn`,
 			`stime`,
 			`sign`,
 			`type`,
@@ -107,6 +127,8 @@
 			#{userId},
 			#{content},
 			#{mobile},
+			#{storeId},
+			#{merchSn},
 			#{stime},
 			#{sign},
 			#{type},
@@ -126,6 +148,8 @@
             <if test="userId != null">`user_id` = #{userId},</if>
             <if test="content != null">`content` = #{content},</if>
             <if test="mobile != null">`mobile` = #{mobile},</if>
+            <if test="storeId != null">`store_id` = #{storeId}, </if>
+            <if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
             <if test="stime != null">`stime` = #{stime},</if>
             <if test="sign != null">`sign` = #{sign},</if>
             <if test="type != null">`type` = #{type},</if>
@@ -158,6 +182,8 @@
         a.user_id,
         a.content,
         a.mobile,
+        a.store_id,
+        a.merch_sn,
         a.stime,
         a.sign,
         a.type,