Browse Source

Merge branch 'master' of http://git.ds-bay.com/project/kmall-pt

csk 6 years ago
parent
commit
696b2581ec
100 changed files with 5088 additions and 656 deletions
  1. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java
  2. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/AddressController.java
  3. 3 3
      kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java
  4. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java
  5. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/CartController.java
  6. 7 8
      kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java
  7. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/CollectController.java
  8. 19 1
      kmall-admin/src/main/java/com/kmall/admin/controller/CommentController.java
  9. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/CouponController.java
  10. 3 10
      kmall-admin/src/main/java/com/kmall/admin/controller/ExportExceptionDataController.java
  11. 3 10
      kmall-admin/src/main/java/com/kmall/admin/controller/FeedbackController.java
  12. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/FootprintController.java
  13. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/FreightController.java
  14. 6 38
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java
  15. 3 10
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsIssueController.java
  16. 3 10
      kmall-admin/src/main/java/com/kmall/admin/controller/HelpIssueController.java
  17. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/MerchController.java
  18. 109 0
      kmall-admin/src/main/java/com/kmall/admin/controller/MngChangeController.java
  19. 6 6
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  20. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderRefundController.java
  21. 7 5
      kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java
  22. 1 1
      kmall-admin/src/main/java/com/kmall/admin/controller/SearchHistoryController.java
  23. 26 3
      kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java
  24. 109 0
      kmall-admin/src/main/java/com/kmall/admin/controller/StoreMngChangeController.java
  25. 11 2
      kmall-admin/src/main/java/com/kmall/admin/controller/SupplierController.java
  26. 2 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysOssController.java
  27. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/SysSmsLogController.java
  28. 12 16
      kmall-admin/src/main/java/com/kmall/admin/controller/ThirdMerchantBizController.java
  29. 2 2
      kmall-admin/src/main/java/com/kmall/admin/controller/UserController.java
  30. 17 0
      kmall-admin/src/main/java/com/kmall/admin/dao/MngChangeDao.java
  31. 17 0
      kmall-admin/src/main/java/com/kmall/admin/dao/StoreMngChangeDao.java
  32. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/CouponEntity.java
  33. 303 0
      kmall-admin/src/main/java/com/kmall/admin/entity/MngChangeEntity.java
  34. 9 0
      kmall-admin/src/main/java/com/kmall/admin/entity/OrderRefundEntity.java
  35. 169 0
      kmall-admin/src/main/java/com/kmall/admin/entity/ScheduleJobEntity.java
  36. 133 0
      kmall-admin/src/main/java/com/kmall/admin/entity/ScheduleJobLogEntity.java
  37. 304 0
      kmall-admin/src/main/java/com/kmall/admin/entity/StoreMngChangeEntity.java
  38. 10 0
      kmall-admin/src/main/java/com/kmall/admin/entity/SupplierEntity.java
  39. 22 0
      kmall-admin/src/main/java/com/kmall/admin/fromcomm/entity/SysUserEntity.java
  40. 21 4
      kmall-admin/src/main/java/com/kmall/admin/fromcomm/service/impl/SysUserServiceImpl.java
  41. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/MngChangeService.java
  42. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/StoreMngChangeService.java
  43. 45 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java
  44. 58 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/MngChangeServiceImpl.java
  45. 58 6
      kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java
  46. 45 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java
  47. 58 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/StoreMngChangeServiceImpl.java
  48. 25 22
      kmall-admin/src/main/java/com/kmall/admin/utils/ParamUtils.java
  49. 54 54
      kmall-admin/src/main/resources/logback.xml
  50. 12 4
      kmall-admin/src/main/resources/mybatis/mapper/AdDao.xml
  51. 8 0
      kmall-admin/src/main/resources/mybatis/mapper/AddressDao.xml
  52. 7 0
      kmall-admin/src/main/resources/mybatis/mapper/AttributeDao.xml
  53. 6 0
      kmall-admin/src/main/resources/mybatis/mapper/BrandDao.xml
  54. 8 0
      kmall-admin/src/main/resources/mybatis/mapper/CartDao.xml
  55. 14 7
      kmall-admin/src/main/resources/mybatis/mapper/CategoryDao.xml
  56. 7 0
      kmall-admin/src/main/resources/mybatis/mapper/CollectDao.xml
  57. 9 0
      kmall-admin/src/main/resources/mybatis/mapper/CommentDao.xml
  58. 20 14
      kmall-admin/src/main/resources/mybatis/mapper/CouponDao.xml
  59. 8 0
      kmall-admin/src/main/resources/mybatis/mapper/FootprintDao.xml
  60. 12 5
      kmall-admin/src/main/resources/mybatis/mapper/FreightDao.xml
  61. 199 0
      kmall-admin/src/main/resources/mybatis/mapper/MngChangeDao.xml
  62. 50 11
      kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml
  63. 9 0
      kmall-admin/src/main/resources/mybatis/mapper/OrderRefundDao.xml
  64. 9 0
      kmall-admin/src/main/resources/mybatis/mapper/ProductStoreRelaDao.xml
  65. 8 0
      kmall-admin/src/main/resources/mybatis/mapper/SearchHistoryDao.xml
  66. 6 0
      kmall-admin/src/main/resources/mybatis/mapper/StoreDao.xml
  67. 198 0
      kmall-admin/src/main/resources/mybatis/mapper/StoreMngChangeDao.xml
  68. 25 6
      kmall-admin/src/main/resources/mybatis/mapper/SupplierDao.xml
  69. 13 4
      kmall-admin/src/main/resources/mybatis/mapper/SysSmsLogDao.xml
  70. 6 1
      kmall-admin/src/main/resources/mybatis/mapper/SysUserDao.xml
  71. 2 2
      kmall-admin/src/main/resources/mybatis/mapper/ThirdMerchantBizDao.xml
  72. 18 10
      kmall-admin/src/main/resources/mybatis/mapper/UserDao.xml
  73. 1 1
      kmall-admin/src/main/webapp/WEB-INF/page/shop/goods.html
  74. 99 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/mngchange.html
  75. 99 0
      kmall-admin/src/main/webapp/WEB-INF/page/shop/storemngchange.html
  76. 6 1
      kmall-admin/src/main/webapp/WEB-INF/page/shop/supplier.html
  77. 11 4
      kmall-admin/src/main/webapp/WEB-INF/page/sys/user.html
  78. 1 1
      kmall-admin/src/main/webapp/index.html
  79. 3 3
      kmall-admin/src/main/webapp/js/shop/goods.js
  80. 198 0
      kmall-admin/src/main/webapp/js/shop/mngchange.js
  81. 197 0
      kmall-admin/src/main/webapp/js/shop/storemngchange.js
  82. 14 1
      kmall-admin/src/main/webapp/js/shop/supplier.js
  83. 9 9
      kmall-admin/src/main/webapp/js/shop/thirdmerchantbiz.js
  84. 71 5
      kmall-admin/src/main/webapp/js/sys/user.js
  85. 1 1
      kmall-admin/src/main/webapp/login.html
  86. 2 2
      kmall-api/src/main/java/com/kmall/api/api/ApiOrderController.java
  87. 10 6
      kmall-api/src/main/java/com/kmall/api/dao/ApiMngChangeMapper.java
  88. 9 5
      kmall-api/src/main/java/com/kmall/api/dao/ApiStoreMngChangeMapper.java
  89. 273 0
      kmall-api/src/main/java/com/kmall/api/entity/MngChangeVo.java
  90. 273 0
      kmall-api/src/main/java/com/kmall/api/entity/StoreMngChangeVo.java
  91. 99 7
      kmall-api/src/main/java/com/kmall/api/service/ApiOrderService.java
  92. 2 1
      kmall-api/src/main/resources/mybatis/mapper/ApiGoodsMapper.xml
  93. 156 149
      kmall-api/src/main/resources/mybatis/mapper/ApiMngChangeMapper.xml
  94. 156 159
      kmall-api/src/main/resources/mybatis/mapper/ApiStoreMngChangeMapper.xml
  95. 38 2
      kmall-common/src/main/java/com/kmall/common/constant/Dict.java
  96. 296 0
      kmall-common/src/main/java/com/kmall/common/entity/SysUserEntity.java
  97. 6 0
      kmall-schedule/src/main/java/com/kmall/schedule/dao/QzOrderMapper.java
  98. 273 0
      kmall-schedule/src/main/java/com/kmall/schedule/entity/MngChangeJobEntity.java
  99. 273 0
      kmall-schedule/src/main/java/com/kmall/schedule/entity/StoreMngChangeJobEntity.java
  100. 5 5
      kmall-schedule/src/main/java/com/kmall/schedule/quartz/OrderTask.java

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

@@ -33,7 +33,7 @@ public class AdController {
     @RequiresPermissions("ad:list")
     public R list(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         //查询列表数据
         Query query = new Query(params);
@@ -97,7 +97,7 @@ public class AdController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<AdEntity> list = adService.queryList(params);
 

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

@@ -32,7 +32,7 @@ public class AddressController {
     @RequestMapping("/list")
     @RequiresPermissions("address:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 

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

@@ -32,7 +32,7 @@ public class AttributeController {
     @RequiresPermissions("attribute:list")
     public R list(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         //查询列表数据
         Query query = new Query(params);
@@ -116,7 +116,7 @@ public class AttributeController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<AttributeEntity> list = attributeService.queryList(params);
 
@@ -126,7 +126,7 @@ public class AttributeController {
     @RequestMapping("/query")
     public R query(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<AttributeEntity> list = attributeService.queryList(params);
 

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

@@ -32,7 +32,7 @@ public class BrandController {
     @RequiresPermissions("brand:list")
     public R list(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         //查询列表数据
         Query query = new Query(params);
@@ -117,7 +117,7 @@ public class BrandController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<BrandEntity> list = brandService.queryList(params);
 

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

@@ -33,7 +33,7 @@ public class CartController {
 	@RequestMapping("/list")
 	@RequiresPermissions("cart:list")
 	public R list(@RequestParam Map<String, Object> params){
-		ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+		ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 		//查询列表数据
         Query query = new Query(params);
 

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

@@ -32,8 +32,7 @@ public class CategoryController {
     @RequestMapping("/list")
     @RequiresPermissions("category:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
-
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -95,7 +94,7 @@ public class CategoryController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<CategoryEntity> list = categoryService.queryList(params);
         //添加顶级菜单
@@ -115,7 +114,7 @@ public class CategoryController {
     public R getAreaTree() {
 
         Map<String, Object> map = new HashMap<>();
-        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<CategoryEntity> list = categoryService.queryList(map);
         for (CategoryEntity sysRegionEntity : list) {
@@ -135,7 +134,7 @@ public class CategoryController {
     @RequestMapping("/getCategorySelect")
     public R getCategorySelect(@RequestParam Map<String, Object> map) {
         map.put("parentId", "0");
-        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", "thirdPartyMerchCode");
         List<CategoryEntity> list = categoryService.queryList(map);
         return R.ok().put("list", list);
     }
@@ -150,7 +149,7 @@ public class CategoryController {
         String parentId = map.get("parentId").toString();
         List<CategoryEntity> list = new ArrayList<>();
         if (StringUtils.isNotEmpty(parentId)) {
-            ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+            ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", "thirdPartyMerchCode");
 
             list = categoryService.queryList(map);
         }
@@ -161,7 +160,7 @@ public class CategoryController {
     @RequestMapping("/query")
     public R query(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         params.put("isShow", 1);
         List<CategoryEntity> list = categoryService.queryList(params);
@@ -177,7 +176,7 @@ public class CategoryController {
 
     @RequestMapping("/getCategory")
     public R getCategory(@RequestParam Map<String, Object> map) {
-        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(map, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<CategoryEntity> list = categoryService.queryList(map);
         return R.ok().put("list", list);

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

@@ -34,7 +34,7 @@ public class CollectController {
 	@RequiresPermissions("collect:list")
 	public R list(@RequestParam Map<String, Object> params){
 
-		ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+		ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 		//查询列表数据
         Query query = new Query(params);
 

+ 19 - 1
kmall-admin/src/main/java/com/kmall/admin/controller/CommentController.java

@@ -32,7 +32,25 @@ public class CommentController {
     @RequestMapping("/list")
     @RequiresPermissions("comment:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", true);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        String valueName = (String) params.get("valueName");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(valueName)){
+            try{
+                valueName = new String(valueName.getBytes("iso-8859-1"),"utf-8");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            params.put("valueName", valueName);
+        }
+        String userName = (String) params.get("userName");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(userName)){
+            try{
+                userName = new String(userName.getBytes("iso-8859-1"),"utf-8");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            params.put("userName", userName);
+        }
         //查询列表数据
         Query query = new Query(params);
 

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

@@ -33,7 +33,7 @@ public class CouponController {
     @RequiresPermissions("coupon:list")
     public R list(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         //查询列表数据
         Query query = new Query(params);
@@ -97,7 +97,7 @@ public class CouponController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<CouponEntity> list = couponService.queryList(params);
 

+ 3 - 10
kmall-admin/src/main/java/com/kmall/admin/controller/ExportExceptionDataController.java

@@ -5,6 +5,7 @@ import java.util.Map;
 
 import com.kmall.admin.entity.ExportExceptionDataEntity;
 import com.kmall.admin.service.ExportExceptionDataService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
@@ -36,15 +37,7 @@ public class ExportExceptionDataController {
     @RequiresPermissions("exportexceptiondata:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
-                params.put("storeId", user.getStoreId());
-                params.put("merchSn", user.getMerchSn());
-            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
-                params.put("merchSn", user.getMerchSn());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -74,7 +67,7 @@ public class ExportExceptionDataController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<ExportExceptionDataEntity> list = exportExceptionDataService.queryList(params);
 
         return R.ok().put("list", list);

+ 3 - 10
kmall-admin/src/main/java/com/kmall/admin/controller/FeedbackController.java

@@ -2,6 +2,7 @@ package com.kmall.admin.controller;
 
 import com.kmall.admin.entity.FeedbackEntity;
 import com.kmall.admin.service.FeedbackService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.common.utils.PageUtils;
@@ -34,15 +35,7 @@ public class FeedbackController {
     @RequestMapping("/list")
     @RequiresPermissions("feedback:list")
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
-                params.put("storeId", user.getStoreId());
-                params.put("merchSn", user.getMerchSn());
-            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
-                params.put("merchSn", user.getMerchSn());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -103,7 +96,7 @@ public class FeedbackController {
      */
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<FeedbackEntity> list = feedbackService.queryList(params);
 
         return R.ok().put("list", list);

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

@@ -31,7 +31,7 @@ public class FootprintController {
     @RequestMapping("/list")
     @RequiresPermissions("footprint:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -92,7 +92,7 @@ public class FootprintController {
      */
     @RequestMapping("/queryTotal")
     public R queryTotal(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         int hitCount = footprintService.queryTotal(params);
 
         return R.ok().put("hitCount", hitCount);

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

@@ -32,7 +32,7 @@ public class FreightController {
     @RequestMapping("/list")
     @RequiresPermissions("freight:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -135,7 +135,7 @@ public class FreightController {
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<FreightEntity> list = freightService.queryList(params);
 

+ 6 - 38
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -50,23 +50,15 @@ public class GoodsController {
     @RequestMapping("/list")
     @RequiresPermissions("goods:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
-        if (Dict.roleType.item_2.getItem().equals(ShiroUtils.getUserEntity().getRoleType())) {
-            StoreEntity storeEntity = storeService.queryObject(ShiroUtils.getUserEntity().getStoreId());
-            if(StringUtils.isNotEmpty(storeEntity.getThirdPartyMerchCode())) {
-                params.put("thirdPartyMerchCode", storeEntity.getThirdPartyMerchCode());
-            }else{
-                throw new RRException("请维护门店信息中的第三方商户编号信息!再进行商品查看");
-            }
-        }
-        String goodsName = (String) params.get("goodsName");
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+        String goodsName = (String) params.get("name");
         if(org.apache.commons.lang3.StringUtils.isNotEmpty(goodsName)){
             try{
                 goodsName = new String(goodsName.getBytes("iso-8859-1"),"utf-8");
             }catch (Exception e){
                 e.printStackTrace();
             }
-            params.put("goodsName", goodsName);
+            params.put("name", goodsName);
         }
         //查询列表数据
         Query query = new Query(params);
@@ -134,15 +126,7 @@ public class GoodsController {
      */
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
-        if (Dict.roleType.item_2.getItem().equals(ShiroUtils.getUserEntity().getRoleType())) {
-            StoreEntity storeEntity = storeService.queryObject(ShiroUtils.getUserEntity().getStoreId());
-            if(StringUtils.isNotEmpty(storeEntity.getThirdPartyMerchCode())) {
-                params.put("thirdPartyMerchCode", storeEntity.getThirdPartyMerchCode());
-            }else{
-                throw new RRException("请维护门店信息中的第三方商户编号信息!再进行商品查看");
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
         params.put("isDelete", Integer.parseInt(Dict.isDelete.item_0.getItem()));
         params.put("isOnSale", Integer.parseInt(Dict.isOnSale.item_1.getItem()));
         List<GoodsEntity> list = goodsService.queryList(params);
@@ -158,15 +142,7 @@ public class GoodsController {
      */
     @RequestMapping("/historyList")
     public R historyList(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
-        if (Dict.roleType.item_2.getItem().equals(ShiroUtils.getUserEntity().getRoleType())) {
-            StoreEntity storeEntity = storeService.queryObject(ShiroUtils.getUserEntity().getStoreId());
-            if(StringUtils.isNotEmpty(storeEntity.getThirdPartyMerchCode())) {
-                params.put("thirdPartyMerchCode", storeEntity.getThirdPartyMerchCode());
-            }else{
-                throw new RRException("请维护门店信息中的第三方商户编号信息!再进行商品查看");
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -195,15 +171,7 @@ public class GoodsController {
      */
     @RequestMapping("/queryTotal")
     public R queryTotal(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
-        if (Dict.roleType.item_2.getItem().equals(ShiroUtils.getUserEntity().getRoleType())) {
-            StoreEntity storeEntity = storeService.queryObject(ShiroUtils.getUserEntity().getStoreId());
-            if(StringUtils.isNotEmpty(storeEntity.getThirdPartyMerchCode())) {
-                params.put("thirdPartyMerchCode", storeEntity.getThirdPartyMerchCode());
-            }else{
-                throw new RRException("请维护门店信息中的第三方商户编号信息!再进行商品查看");
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
         params.put("isDelete", 0);
         int sum = goodsService.queryTotal(params);
         return R.ok().put("goodsSum", sum);

+ 3 - 10
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsIssueController.java

@@ -3,6 +3,7 @@ package com.kmall.admin.controller;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.GoodsIssueEntity;
 import com.kmall.admin.service.GoodsIssueService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
@@ -33,15 +34,7 @@ public class GoodsIssueController {
     @RequestMapping("/list")
     @RequiresPermissions("goodsissue:list")
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
-                params.put("storeId", user.getStoreId());
-                params.put("merchSn", user.getMerchSn());
-            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
-                params.put("merchSn", user.getMerchSn());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
         List<GoodsIssueEntity> goodsIssueList = goodsIssueService.queryList(query);
@@ -117,7 +110,7 @@ public class GoodsIssueController {
      */
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<GoodsIssueEntity> list = goodsIssueService.queryList(params);
 
         return R.ok().put("list", list);

+ 3 - 10
kmall-admin/src/main/java/com/kmall/admin/controller/HelpIssueController.java

@@ -3,6 +3,7 @@ package com.kmall.admin.controller;
 import com.google.common.collect.ImmutableBiMap;
 import com.kmall.admin.entity.HelpIssueEntity;
 import com.kmall.admin.service.HelpIssueService;
+import com.kmall.admin.utils.ParamUtils;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.common.constant.Dict;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
@@ -35,15 +36,7 @@ public class HelpIssueController {
     @RequiresPermissions("helpissue:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        SysUserEntity user = ShiroUtils.getUserEntity();
-        if (user != null) {
-            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
-                params.put("storeId", user.getStoreId());
-                params.put("merchSn", user.getMerchSn());
-            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
-                params.put("merchSn", user.getMerchSn());
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -127,7 +120,7 @@ public class HelpIssueController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<HelpIssueEntity> list = helpIssueService.queryList(params);
 
         return R.ok().put("list", list);

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

@@ -34,7 +34,7 @@ public class MerchController {
     @RequiresPermissions("merch:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", true);
+        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", null);
 
         //查询列表数据
         Query query = new Query(params);
@@ -102,7 +102,7 @@ public class MerchController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", true);
+        ParamUtils.setQueryPowerByRoleType(params, null, "roleMerchSn", null);
 
         List<MerchEntity> list = merchService.queryList(params);
 

+ 109 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/MngChangeController.java

@@ -0,0 +1,109 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.MngChangeEntity;
+import com.kmall.admin.service.MngChangeService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 库存变化表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+@Controller
+@RequestMapping("mngchange")
+public class MngChangeController {
+    @Autowired
+    private MngChangeService mngChangeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mngchange:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<MngChangeEntity> mngChangeList = mngChangeService.queryList(query);
+        int total = mngChangeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mngChangeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("mngchange:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        MngChangeEntity mngChange = mngChangeService.queryObject(id);
+
+        return R.ok().put("mngChange", mngChange);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mngchange:save")
+    @ResponseBody
+    public R save(@RequestBody MngChangeEntity mngChange) {
+        mngChangeService.save(mngChange);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mngchange:update")
+    @ResponseBody
+    public R update(@RequestBody MngChangeEntity mngChange) {
+        mngChangeService.update(mngChange);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mngchange:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        mngChangeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+
+        List<MngChangeEntity> list = mngChangeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -66,7 +66,7 @@ public class OrderController {
     @RequestMapping("/list")
     @RequiresPermissions("order:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
         query.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_0.getItem());
@@ -155,7 +155,7 @@ public class OrderController {
      */
     @RequestMapping("/queryAll")
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<OrderEntity> list = orderService.queryList(params);
 
         return R.ok().put("list", list);
@@ -166,7 +166,7 @@ public class OrderController {
      */
     @RequestMapping("/queryTotal")
     public R queryTotal(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         int sum = orderService.queryTotal(params);
 
         return R.ok().put("sum", sum);
@@ -543,7 +543,7 @@ public class OrderController {
      */
     @RequestMapping("/getUserOrderInfo")
     public R getUserOrderInfo(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         int result = orderService.getUserOrderInfo(params);
 
         return R.ok().put("result", result);
@@ -583,7 +583,7 @@ public class OrderController {
     @RequestMapping("/offilineOrderList")
     @RequiresPermissions("order:offilineOrderList")
     public R offilineOrderList(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
         query.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_1.getItem());
@@ -702,7 +702,7 @@ public class OrderController {
     @RequiresPermissions(value = {"order:export"})
     @RequestMapping(value = "export")
     public Object export(@RequestParam Map<String, Object> params, HttpServletResponse response, HttpServletRequest request) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         params.put("isOnfiilineOrder", Dict.isOnfflineOrder.item_0.getItem());
 

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

@@ -39,7 +39,7 @@ public class OrderRefundController {
     @RequiresPermissions("orderrefund:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -116,7 +116,7 @@ public class OrderRefundController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<OrderRefundEntity> list = orderRefundService.queryList(params);
 
         return R.ok().put("list", list);

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

@@ -41,7 +41,7 @@ public class ProductStoreRelaController {
     @RequestMapping("/list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         String goodsName = (String) params.get("goodsName");
         if(org.apache.commons.lang3.StringUtils.isNotEmpty(goodsName)){
             try{
@@ -57,9 +57,11 @@ public class ProductStoreRelaController {
         List<ProductStoreRelaEntity> productStoreRelaList = productStoreRelaService.queryList(query);
         for (ProductStoreRelaEntity pro: productStoreRelaList) {
             if(org.apache.commons.lang3.StringUtils.isNotEmpty(pro.getIsStockShare())) {
-                if (pro.getGoodsBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())) {
-                    if(pro.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
-                        pro.setStockNum(pro.getGoodsNumber());
+                if(org.apache.commons.lang3.StringUtils.isNotEmpty(pro.getGoodsBizType())) {
+                    if (pro.getGoodsBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())) {
+                        if (pro.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
+                            pro.setStockNum(pro.getGoodsNumber());
+                        }
                     }
                 }
             }
@@ -150,7 +152,7 @@ public class ProductStoreRelaController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", "thirdPartyMerchCode");
 
         List<ProductStoreRelaEntity> list = productStoreRelaService.queryList(params);
 

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

@@ -31,7 +31,7 @@ public class SearchHistoryController {
     @RequestMapping("/list")
     @RequiresPermissions("searchhistory:list")
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 

+ 26 - 3
kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java

@@ -58,7 +58,17 @@ public class StoreController {
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", "thirdPartyMerchCode");
+
+        String storeName = (String) params.get("storeName");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(storeName)){
+            try{
+                storeName = new String(storeName.getBytes("iso-8859-1"),"utf-8");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            params.put("storeName", storeName);
+        }
         //查询列表数据
         Query query = new Query(params);
 
@@ -164,7 +174,7 @@ public class StoreController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", "thirdPartyMerchCode");
 
         List<StoreEntity> list = storeService.queryList(params);
 
@@ -179,7 +189,20 @@ public class StoreController {
     @ResponseBody
     public R getStoresByMerch(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", "thirdPartyMerchCode");
+
+        List<StoreEntity> list = storeService.queryList(params);
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 根据第三方商户查看所有列表
+     */
+    @RequestMapping("/getStoresByThirdMerch")
+    @ResponseBody
+    public R getStoresByThirdMerch(@RequestParam Map<String, Object> params) {
+
+        ParamUtils.setQueryPowerByRoleType(params, "id", "merchSn", "thirdPartyMerchCode");
 
         List<StoreEntity> list = storeService.queryList(params);
         return R.ok().put("list", list);

+ 109 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/StoreMngChangeController.java

@@ -0,0 +1,109 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.StoreMngChangeEntity;
+import com.kmall.admin.service.StoreMngChangeService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 门店库存变化表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+@Controller
+@RequestMapping("storemngchange")
+public class StoreMngChangeController {
+    @Autowired
+    private StoreMngChangeService storeMngChangeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("storemngchange:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<StoreMngChangeEntity> storeMngChangeList = storeMngChangeService.queryList(query);
+        int total = storeMngChangeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(storeMngChangeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("storemngchange:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        StoreMngChangeEntity storeMngChange = storeMngChangeService.queryObject(id);
+
+        return R.ok().put("storeMngChange", storeMngChange);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("storemngchange:save")
+    @ResponseBody
+    public R save(@RequestBody StoreMngChangeEntity storeMngChange) {
+        storeMngChangeService.save(storeMngChange);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("storemngchange:update")
+    @ResponseBody
+    public R update(@RequestBody StoreMngChangeEntity storeMngChange) {
+        storeMngChangeService.update(storeMngChange);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("storemngchange:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        storeMngChangeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+
+        List<StoreMngChangeEntity> list = storeMngChangeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 11 - 2
kmall-admin/src/main/java/com/kmall/admin/controller/SupplierController.java

@@ -34,7 +34,16 @@ public class SupplierController {
     @RequiresPermissions("supplier:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
+        String name = (String) params.get("name");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(name)){
+            try{
+                name = new String(name.getBytes("iso-8859-1"),"utf-8");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+            params.put("name", name);
+        }
         //查询列表数据
         Query query = new Query(params);
 
@@ -99,7 +108,7 @@ public class SupplierController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         List<SupplierEntity> list = supplierService.queryList(params);
 
         return R.ok().put("list", list);

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

@@ -107,6 +107,8 @@ public class SysOssController {
         if (file.isEmpty()) {
             throw new RRException("上传文件不能为空");
         }
+//        String name = file.getOriginalFilename();
+//        Thumbnails.of(name).size(200, 200).keepAspectRatio(false).allowOverwrite(true).toFile(name);
         //上传文件
         String url = FileManager.upload(file);
 

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

@@ -38,7 +38,7 @@ public class SysSmsLogController {
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         //查询列表数据
         Query query = new Query(params);
@@ -106,7 +106,7 @@ public class SysSmsLogController {
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
 
         List<SysSmsLogEntity> list = smsLogService.queryList(params);
 

+ 12 - 16
kmall-admin/src/main/java/com/kmall/admin/controller/ThirdMerchantBizController.java

@@ -33,6 +33,8 @@ public class ThirdMerchantBizController {
     private ThirdMerchantBizService thirdMerchantBizService;
     @Autowired
     private StoreService storeService;
+    private String  ISO = "iso-8859-1";
+    private String  UTF = "utf-8";
 
     /**
      * 查看列表
@@ -41,14 +43,16 @@ public class ThirdMerchantBizController {
     @RequiresPermissions("thirdmerchantbiz:list")
     @ResponseBody
     public R list(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
-        if (Dict.roleType.item_2.getItem().equals(ShiroUtils.getUserEntity().getRoleType())) {
-            StoreEntity storeEntity = storeService.queryObject(ShiroUtils.getUserEntity().getStoreId());
-            if(StringUtils.isNotEmpty(storeEntity.getThirdPartyMerchCode())) {
-                params.put("thirdPartyMerchCode", storeEntity.getThirdPartyMerchCode());
-            }else{
-                throw new RRException("请维护门店信息中的第三方商户编号信息!再进行商品查看");
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
+
+        String thirdPartyName = (String) params.get("name");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(thirdPartyName)){
+            try{
+                thirdPartyName = new String(thirdPartyName.getBytes(ISO), UTF);
+            }catch (Exception e){
+                e.printStackTrace();
             }
+            params.put("name", thirdPartyName);
         }
         //查询列表数据
         Query query = new Query(params);
@@ -162,15 +166,7 @@ public class ThirdMerchantBizController {
     @RequestMapping("/queryAll")
     @ResponseBody
     public R queryAll(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", true);
-        if (Dict.roleType.item_2.getItem().equals(ShiroUtils.getUserEntity().getRoleType())) {
-            StoreEntity storeEntity = storeService.queryObject(ShiroUtils.getUserEntity().getStoreId());
-            if(StringUtils.isNotEmpty(storeEntity.getThirdPartyMerchCode())) {
-                params.put("thirdPartyMerchCode", storeEntity.getThirdPartyMerchCode());
-            }else{
-                throw new RRException("请维护门店信息中的第三方商户编号信息!再进行商品查看");
-            }
-        }
+        ParamUtils.setQueryPowerByRoleType(params, null, "merchSn", "thirdPartyMerchCode");
         List<ThirdMerchantBizEntity> list = thirdMerchantBizService.queryList(params);
 
         return R.ok().put("list", list);

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

@@ -37,7 +37,7 @@ public class UserController {
     @RequiresPermissions("user:list")
     public R list(@RequestParam Map<String, Object> params) {
 
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         //查询列表数据
         Query query = new Query(params);
 
@@ -110,7 +110,7 @@ public class UserController {
      */
     @RequestMapping("/queryTotal")
     public R queryTotal(@RequestParam Map<String, Object> params) {
-        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", false);
+        ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
         int sum = userService.queryTotal(params);
 
         return R.ok().put("userSum", sum);

+ 17 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/MngChangeDao.java

@@ -0,0 +1,17 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.MngChangeEntity;
+import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 库存变化表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public interface MngChangeDao extends BaseDao<MngChangeEntity> {
+    MngChangeEntity queryObjectByGoodsIdAndType(@Param("goodsId") Long goodsId, @Param("changeType") String changeType);
+
+}

+ 17 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/StoreMngChangeDao.java

@@ -0,0 +1,17 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.StoreMngChangeEntity;
+import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 门店库存变化表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public interface StoreMngChangeDao extends BaseDao<StoreMngChangeEntity> {
+    StoreMngChangeEntity queryObjectByGoodsIdAndType(@Param("goodsId") Long goodsId, @Param("changeType") String changeType);
+
+}

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

@@ -45,6 +45,16 @@ public class CouponEntity implements Serializable {
 
     private String merchSn;
 
+    private String thirdPartyMerchCode;
+
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
+
     public Integer getStoreId() {
         return storeId;
     }

+ 303 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/MngChangeEntity.java

@@ -0,0 +1,303 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 库存变化表实体
+ * 表名 mall_mng_change
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public class MngChangeEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    private Integer id;
+    /**
+     * 商品库存变化数
+     */
+    private Integer changeNum;
+    /**
+     * 商品原库存数
+     */
+    private Integer originalNum;
+    /**
+     * 商品库存可用数
+     */
+    private Integer validNum;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 第三方商户代码
+     */
+    private String thirdPartyMerchCode;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 是否有效,0:有效,1:无效
+     */
+    private Integer isValid;
+    /**
+     * 变动类型 0:还原 1:扣减
+     */
+    private String changeType;
+    /**
+     * 变动原因
+     */
+    private String changeReason;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    private String goodsName;
+
+    private String merchName;
+
+    private String thirdPartyMerchName;
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getMerchName() {
+        return merchName;
+    }
+
+    public void setMerchName(String merchName) {
+        this.merchName = merchName;
+    }
+
+    public String getThirdPartyMerchName() {
+        return thirdPartyMerchName;
+    }
+
+    public void setThirdPartyMerchName(String thirdPartyMerchName) {
+        this.thirdPartyMerchName = thirdPartyMerchName;
+    }
+
+    /**
+     * 设置:
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:商品库存变化数
+     */
+    public void setChangeNum(Integer changeNum) {
+        this.changeNum = changeNum;
+    }
+
+    /**
+     * 获取:商品库存变化数
+     */
+    public Integer getChangeNum() {
+        return changeNum;
+    }
+    /**
+     * 设置:商品原库存数
+     */
+    public void setOriginalNum(Integer originalNum) {
+        this.originalNum = originalNum;
+    }
+
+    /**
+     * 获取:商品原库存数
+     */
+    public Integer getOriginalNum() {
+        return originalNum;
+    }
+    /**
+     * 设置:商品库存可用数
+     */
+    public void setValidNum(Integer validNum) {
+        this.validNum = validNum;
+    }
+
+    /**
+     * 获取:商品库存可用数
+     */
+    public Integer getValidNum() {
+        return validNum;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:第三方商户代码
+     */
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
+
+    /**
+     * 获取:第三方商户代码
+     */
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:是否有效,0:有效,1:无效
+     */
+    public void setIsValid(Integer isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:是否有效,0:有效,1:无效
+     */
+    public Integer getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:变动类型 0:还原 1:扣减
+     */
+    public void setChangeType(String changeType) {
+        this.changeType = changeType;
+    }
+
+    /**
+     * 获取:变动类型 0:还原 1:扣减
+     */
+    public String getChangeType() {
+        return changeType;
+    }
+    /**
+     * 设置:变动原因
+     */
+    public void setChangeReason(String changeReason) {
+        this.changeReason = changeReason;
+    }
+
+    /**
+     * 获取:变动原因
+     */
+    public String getChangeReason() {
+        return changeReason;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 9 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/OrderRefundEntity.java

@@ -149,6 +149,15 @@ public class OrderRefundEntity implements Serializable {
     private String rate;
 
     private String isOnfflineOrder;
+    private String thirdPartyMerchCode;
+
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
 
     public String getIsOnfflineOrder() {
         return isOnfflineOrder;

+ 169 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/ScheduleJobEntity.java

@@ -0,0 +1,169 @@
+package com.kmall.admin.entity;
+
+import org.hibernate.validator.constraints.NotBlank;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定时器
+ *
+ * @author Scott
+ * @email
+ * @date 2016年11月28日 下午12:54:44
+ */
+public class ScheduleJobEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 任务调度参数key
+     */
+    public static final String JOB_PARAM_KEY = "JOB_PARAM_KEY";
+
+    /**
+     * 任务id
+     */
+    private Long jobId;
+
+    /**
+     * spring bean名称
+     */
+    @NotBlank(message = "bean名称不能为空")
+    private String beanName;
+
+    /**
+     * 方法名
+     */
+    @NotBlank(message = "方法名称不能为空")
+    private String methodName;
+
+    /**
+     * 参数
+     */
+    private String params;
+
+    /**
+     * cron表达式
+     */
+    @NotBlank(message = "cron表达式不能为空")
+    private String cronExpression;
+
+    /**
+     * 任务状态
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 设置:任务id
+     *
+     * @param jobId 任务id
+     */
+    public void setJobId(Long jobId) {
+        this.jobId = jobId;
+    }
+
+    /**
+     * 获取:任务id
+     *
+     * @return Long
+     */
+    public Long getJobId() {
+        return jobId;
+    }
+
+    public String getBeanName() {
+        return beanName;
+    }
+
+    public void setBeanName(String beanName) {
+        this.beanName = beanName;
+    }
+
+    public String getMethodName() {
+        return methodName;
+    }
+
+    public void setMethodName(String methodName) {
+        this.methodName = methodName;
+    }
+
+    public String getParams() {
+        return params;
+    }
+
+    public void setParams(String params) {
+        this.params = params;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    /**
+     * 设置:任务状态
+     *
+     * @param status 任务状态
+     */
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    /**
+     * 获取:任务状态
+     *
+     * @return String
+     */
+    public Integer getStatus() {
+        return status;
+    }
+
+    /**
+     * 设置:cron表达式
+     *
+     * @param cronExpression cron表达式
+     */
+    public void setCronExpression(String cronExpression) {
+        this.cronExpression = cronExpression;
+    }
+
+    /**
+     * 获取:cron表达式
+     *
+     * @return String
+     */
+    public String getCronExpression() {
+        return cronExpression;
+    }
+
+    /**
+     * 设置:创建时间
+     *
+     * @param createTime 创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     *
+     * @return Date
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+}

+ 133 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/ScheduleJobLogEntity.java

@@ -0,0 +1,133 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 定时执行日志
+ *
+ * @author Scott
+ * @email
+ * @date 2016年12月1日 下午10:26:18
+ */
+public class ScheduleJobLogEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 日志id
+     */
+    private Long logId;
+
+    /**
+     * 任务id
+     */
+    private Long jobId;
+
+    /**
+     * spring bean名称
+     */
+    private String beanName;
+
+    /**
+     * 方法名
+     */
+    private String methodName;
+
+    /**
+     * 参数
+     */
+    private String params;
+
+    /**
+     * 任务状态    0:成功    1:失败
+     */
+    private Integer status;
+
+    /**
+     * 失败信息
+     */
+    private String error;
+
+    /**
+     * 耗时(单位:毫秒)
+     */
+    private Integer times;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    public Long getLogId() {
+        return logId;
+    }
+
+    public void setLogId(Long logId) {
+        this.logId = logId;
+    }
+
+    public Long getJobId() {
+        return jobId;
+    }
+
+    public void setJobId(Long jobId) {
+        this.jobId = jobId;
+    }
+
+    public String getBeanName() {
+        return beanName;
+    }
+
+    public void setBeanName(String beanName) {
+        this.beanName = beanName;
+    }
+
+    public String getMethodName() {
+        return methodName;
+    }
+
+    public void setMethodName(String methodName) {
+        this.methodName = methodName;
+    }
+
+    public String getParams() {
+        return params;
+    }
+
+    public void setParams(String params) {
+        this.params = params;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getError() {
+        return error;
+    }
+
+    public void setError(String error) {
+        this.error = error;
+    }
+
+    public Integer getTimes() {
+        return times;
+    }
+
+    public void setTimes(Integer times) {
+        this.times = times;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+}

+ 304 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/StoreMngChangeEntity.java

@@ -0,0 +1,304 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 门店库存变化表实体
+ * 表名 mall_store_mng_change
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public class StoreMngChangeEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    private Integer id;
+    /**
+     * 门店库存变化数
+     */
+    private Integer storeChangeNum;
+    /**
+     * 门店原库存数
+     */
+    private Integer storeOriginalNum;
+    /**
+     * 门店库存可用数
+     */
+    private Integer storeValidNum;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 门店编号
+     */
+    private Integer storeId;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 是否有效,0:有效,1:无效
+     */
+    private Integer isValid;
+    /**
+     * 变动类型 0:还原 1:扣减
+     */
+    private String changeType;
+    /**
+     * 变动原因
+     */
+    private String changeReason;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+
+    private String goodsName;
+
+    private String merchName;
+
+    private String storeName;
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public String getMerchName() {
+        return merchName;
+    }
+
+    public void setMerchName(String merchName) {
+        this.merchName = merchName;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    /**
+     * 设置:
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:门店库存变化数
+     */
+    public void setStoreChangeNum(Integer storeChangeNum) {
+        this.storeChangeNum = storeChangeNum;
+    }
+
+    /**
+     * 获取:门店库存变化数
+     */
+    public Integer getStoreChangeNum() {
+        return storeChangeNum;
+    }
+    /**
+     * 设置:门店原库存数
+     */
+    public void setStoreOriginalNum(Integer storeOriginalNum) {
+        this.storeOriginalNum = storeOriginalNum;
+    }
+
+    /**
+     * 获取:门店原库存数
+     */
+    public Integer getStoreOriginalNum() {
+        return storeOriginalNum;
+    }
+    /**
+     * 设置:门店库存可用数
+     */
+    public void setStoreValidNum(Integer storeValidNum) {
+        this.storeValidNum = storeValidNum;
+    }
+
+    /**
+     * 获取:门店库存可用数
+     */
+    public Integer getStoreValidNum() {
+        return storeValidNum;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:门店编号
+     */
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    /**
+     * 获取:门店编号
+     */
+    public Integer getStoreId() {
+        return storeId;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:是否有效,0:有效,1:无效
+     */
+    public void setIsValid(Integer isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:是否有效,0:有效,1:无效
+     */
+    public Integer getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:变动类型 0:还原 1:扣减
+     */
+    public void setChangeType(String changeType) {
+        this.changeType = changeType;
+    }
+
+    /**
+     * 获取:变动类型 0:还原 1:扣减
+     */
+    public String getChangeType() {
+        return changeType;
+    }
+    /**
+     * 设置:变动原因
+     */
+    public void setChangeReason(String changeReason) {
+        this.changeReason = changeReason;
+    }
+
+    /**
+     * 获取:变动原因
+     */
+    public String getChangeReason() {
+        return changeReason;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

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

@@ -43,6 +43,16 @@ public class SupplierEntity implements Serializable {
      */
     private String isShow;
 
+    private String thirdPartyMerchCode;
+
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
+
     /**
      * 设置:主键
      */

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

@@ -87,6 +87,28 @@ public class SysUserEntity
     private String roleType;
 
     private Set<String> permsSet;
+    /**
+     * 第三方商户代码
+     */
+    private String thirdPartyMerchCode;
+
+    private String storeName;
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
 
     public String getMerchName() {
         return merchName;

+ 21 - 4
kmall-admin/src/main/java/com/kmall/admin/fromcomm/service/impl/SysUserServiceImpl.java

@@ -7,6 +7,7 @@ import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.admin.fromcomm.service.SysRoleService;
 import com.kmall.admin.fromcomm.service.SysUserRoleService;
 import com.kmall.admin.fromcomm.service.SysUserService;
+import com.kmall.common.constant.Dict;
 import com.kmall.common.utils.*;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.crypto.hash.Sha256Hash;
@@ -83,11 +84,19 @@ public class SysUserServiceImpl implements SysUserService {
         if (Integer.valueOf(r.get("code").toString()) != 0) {
             throw new RRException(r.get("msg").toString());
         } else {
-            if ("2".equals(user.getRoleType())) {
+            if (Dict.roleType.item_2.getItem().equalsIgnoreCase(user.getRoleType())) {
                 builder.put("merchSn", "商户");
+                builder.put("thirdPartyMerchCode", "第三方商户");
                 builder.put("storeId", "门店");
-            }else if ("3".equals(user.getRoleType())) {
+            }else if (Dict.roleType.item_3.getItem().equalsIgnoreCase(user.getRoleType())) {
                 builder.put("merchSn", "商户");
+            }else if (Dict.roleType.item_4.getItem().equalsIgnoreCase(user.getRoleType())) {
+                builder.put("merchSn", "商户");
+                builder.put("thirdPartyMerchCode", "第三方商户");
+            }else if (Dict.roleType.item_1.getItem().equalsIgnoreCase(user.getRoleType())) {
+                user.setMerchSn(null);
+                user.setThirdPartyMerchCode(null);
+                user.setStoreId(null);
             }
             r = ValidatorUtil.isEmpty(builder.build(), valideDate);
             if (Integer.valueOf(r.get("code").toString()) != 0) {
@@ -130,11 +139,19 @@ public class SysUserServiceImpl implements SysUserService {
         if (Integer.valueOf(r.get("code").toString()) != 0) {
             throw new RRException(r.get("msg").toString());
         } else {
-            if ("2".equals(user.getRoleType())) {
+            if (Dict.roleType.item_2.getItem().equalsIgnoreCase(user.getRoleType())) {
                 builder.put("merchSn", "商户");
+                builder.put("thirdPartyMerchCode", "第三方商户");
                 builder.put("storeId", "门店");
-            }else if ("3".equals(user.getRoleType())) {
+            }else if (Dict.roleType.item_3.getItem().equalsIgnoreCase(user.getRoleType())) {
+                builder.put("merchSn", "商户");
+            }else if (Dict.roleType.item_4.getItem().equalsIgnoreCase(user.getRoleType())) {
                 builder.put("merchSn", "商户");
+                builder.put("thirdPartyMerchCode", "第三方商户");
+            }else if (Dict.roleType.item_1.getItem().equalsIgnoreCase(user.getRoleType())) {
+                user.setMerchSn(null);
+                user.setStoreId(null);
+                user.setThirdPartyMerchCode(null);
             }
             r = ValidatorUtil.isEmpty(builder.build(), valideDate);
             if (Integer.valueOf(r.get("code").toString()) != 0) {

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/MngChangeService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service;
+
+import com.kmall.admin.entity.MngChangeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 库存变化表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public interface MngChangeService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    MngChangeEntity queryObject(Integer id);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<MngChangeEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mngChange 实体
+     * @return 保存条数
+     */
+    int save(MngChangeEntity mngChange);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mngChange 实体
+     * @return 更新条数
+     */
+    int update(MngChangeEntity mngChange);
+
+    /**
+     * 根据主键删除
+     *
+     * @param id
+     * @return 删除条数
+     */
+    int delete(Integer id);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param ids
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] ids);
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/StoreMngChangeService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service;
+
+import com.kmall.admin.entity.StoreMngChangeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 门店库存变化表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public interface StoreMngChangeService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    StoreMngChangeEntity queryObject(Integer id);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<StoreMngChangeEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param storeMngChange 实体
+     * @return 保存条数
+     */
+    int save(StoreMngChangeEntity storeMngChange);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param storeMngChange 实体
+     * @return 更新条数
+     */
+    int update(StoreMngChangeEntity storeMngChange);
+
+    /**
+     * 根据主键删除
+     *
+     * @param id
+     * @return 删除条数
+     */
+    int delete(Integer id);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param ids
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] ids);
+}

+ 45 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -64,6 +64,8 @@ public class GoodsServiceImpl implements GoodsService {
     private CartDao cartDao;
     @Autowired
     private ThirdMerchantBizDao thirdMerchantBizDao;
+    @Autowired
+    private MngChangeDao mngChangeDao;
 
     @Override
     public GoodsEntity queryObject(Integer id) {
@@ -220,6 +222,23 @@ public class GoodsServiceImpl implements GoodsService {
                 }
             }
         }*/
+        if (goods.getGoodsNumber() != null){
+            MngChangeEntity mngChangeEntity = new MngChangeEntity();
+            mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(id)));
+            mngChangeEntity.setThirdPartyMerchCode(goods.getThirdPartyMerchCode());
+            mngChangeEntity.setChangeReason("新增商户商品总库存");
+            mngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
+            mngChangeEntity.setChangeNum(goods.getGoodsNumber());//变化数
+            mngChangeEntity.setOriginalNum(0);//原库存数
+            mngChangeEntity.setValidNum(goods.getGoodsNumber());//可用数
+            mngChangeEntity.setCreateTime(new Date());
+            mngChangeEntity.setModTime(new Date());
+            mngChangeEntity.setCreaterSn(user.getUsername());
+            mngChangeEntity.setModerSn(user.getUsername());
+            mngChangeEntity.setIsValid(0);
+            mngChangeEntity.setMerchSn(goods.getMerchSn());
+            mngChangeDao.save(mngChangeEntity);
+        }
 
         // 添加产品
         ProductEntity product = new ProductEntity();
@@ -322,6 +341,32 @@ public class GoodsServiceImpl implements GoodsService {
         goods.setModTime(new Date());
         if(goods.getGoodsNumber()==null){
             goods.setGoodsNumber(0);
+        }else{
+            MngChangeEntity mngChangeEntity = new MngChangeEntity();
+            mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(goods.getId())));
+            mngChangeEntity.setThirdPartyMerchCode(goods.getThirdPartyMerchCode());
+            mngChangeEntity.setChangeReason("更新商户商品总库存");
+            mngChangeEntity.setCreateTime(new Date());
+            mngChangeEntity.setModTime(new Date());
+            mngChangeEntity.setCreaterSn(user.getUsername());
+            mngChangeEntity.setModerSn(user.getUsername());
+            mngChangeEntity.setIsValid(0);
+            mngChangeEntity.setMerchSn(goods.getMerchSn());
+
+
+            GoodsEntity goodsEntity = goodsDao.queryObject(goods.getId());
+            if(goodsEntity.getGoodsNumber() != goods.getGoodsNumber()) {
+                if (goodsEntity.getGoodsNumber() > goods.getGoodsNumber()) {
+                    mngChangeEntity.setChangeNum(goodsEntity.getGoodsNumber() - goods.getGoodsNumber());//变化数
+                    mngChangeEntity.setChangeType(Dict.changeType.item_4.getItem());
+                } else {
+                    mngChangeEntity.setChangeNum(goods.getGoodsNumber() - goodsEntity.getGoodsNumber());//变化数
+                    mngChangeEntity.setChangeType(Dict.changeType.item_3.getItem());
+                }
+                mngChangeEntity.setOriginalNum(goodsEntity.getGoodsNumber());//原库存数
+                mngChangeEntity.setValidNum(goods.getGoodsNumber());//可用数
+                mngChangeDao.save(mngChangeEntity);
+            }
         }
 
         // 修改商品

+ 58 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/MngChangeServiceImpl.java

@@ -0,0 +1,58 @@
+package com.kmall.admin.service.impl;
+
+import com.kmall.admin.dao.MngChangeDao;
+import com.kmall.admin.entity.MngChangeEntity;
+import com.kmall.admin.service.MngChangeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 库存变化表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+@Service("mngChangeService")
+public class MngChangeServiceImpl implements MngChangeService {
+    @Autowired
+    private MngChangeDao mngChangeDao;
+
+    @Override
+    public MngChangeEntity queryObject(Integer id) {
+        return mngChangeDao.queryObject(id);
+    }
+
+    @Override
+    public List<MngChangeEntity> queryList(Map<String, Object> map) {
+        return mngChangeDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mngChangeDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(MngChangeEntity mngChange) {
+        return mngChangeDao.save(mngChange);
+    }
+
+    @Override
+    public int update(MngChangeEntity mngChange) {
+        return mngChangeDao.update(mngChange);
+    }
+
+    @Override
+    public int delete(Integer id) {
+        return mngChangeDao.delete(id);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]ids) {
+        return mngChangeDao.deleteBatch(ids);
+    }
+}

+ 58 - 6
kmall-admin/src/main/java/com/kmall/admin/service/impl/OrderServiceImpl.java

@@ -55,6 +55,10 @@ public class OrderServiceImpl implements OrderService {
     private GoodsDao goodsDao;
     @Autowired
     private MerchDao merchDao;
+    @Autowired
+    private MngChangeDao mngChangeDao;
+    @Autowired
+    private StoreMngChangeDao storeMngChangeDao;
 
     @Override
     public OrderEntity queryObject(Long id) {
@@ -97,7 +101,6 @@ public class OrderServiceImpl implements OrderService {
         if (order.getOrderStatus() == Integer.parseInt(Dict.orderStatus.item_0.getItem())) {
             order.setOrderStatus(Integer.parseInt(Dict.orderStatus.item_101.getItem()));
         }
-
         // 判断是否有优惠券
         UserCouponEntity couponVo = userCouponDao.queryByOrderId(order.getId());
         if (null != couponVo) {
@@ -109,7 +112,7 @@ public class OrderServiceImpl implements OrderService {
             return;
         }
         // 更新库存
-        updateStock(order);
+        updateStock(order, "管理后台取消订单");
     }
 
     @Override
@@ -291,7 +294,7 @@ public class OrderServiceImpl implements OrderService {
             return;
         }
         // 更新库存
-        updateStock(order);
+        updateStock(order, "管理后台订单退款");
     }
 
     /**
@@ -335,7 +338,7 @@ public class OrderServiceImpl implements OrderService {
             return;
         }
         // 更新库存
-        updateStock(order);
+        updateStock(order, "管理后台平安退款订单");
     }
 
     /**
@@ -392,11 +395,12 @@ public class OrderServiceImpl implements OrderService {
             return;
         }
         // 更新库存
-        updateStock(order);
+        updateStock(order, "管理后台微信国际退款订单");
     }
 
-    private void updateStock(OrderEntity order){
+    private void updateStock(OrderEntity order, String changeReason){
         Map<String, Object> map = new HashMap<String, Object>();
+        SysUserEntity user = ShiroUtils.getUserEntity();
         map.put("orderId", order.getId());
         List<OrderGoodsEntity> orderGoodsVoList = orderGoodsDao.queryList(map);
         for (OrderGoodsEntity orderGoodsEntity : orderGoodsVoList) {
@@ -425,6 +429,22 @@ public class OrderServiceImpl implements OrderService {
                         goodsEntity.setGoodsNumber(stockNum + orderGoodsEntity.getNumber());
                         goodsEntity.setSellVolume(Integer.parseInt(goodsSellVolume.toString()));
                         goodsDao.update(goodsEntity);
+                        
+                        MngChangeEntity mngChangeEntity = new MngChangeEntity();
+                        mngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(goodsEntity.getId())));
+                        mngChangeEntity.setThirdPartyMerchCode(goodsEntity.getThirdPartyMerchCode());
+                        mngChangeEntity.setChangeReason(changeReason);
+                        mngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
+                        mngChangeEntity.setChangeNum(orderGoodsEntity.getNumber());//变化数
+                        mngChangeEntity.setOriginalNum(stockNum);//原库存数
+                        mngChangeEntity.setValidNum(stockNum + orderGoodsEntity.getNumber());//可用数
+                        mngChangeEntity.setCreateTime(new Date());
+                        mngChangeEntity.setModTime(new Date());
+                        mngChangeEntity.setCreaterSn(user.getUsername());
+                        mngChangeEntity.setModerSn(user.getUsername());
+                        mngChangeEntity.setIsValid(0);
+                        mngChangeEntity.setMerchSn(goodsEntity.getMerchSn());
+                        mngChangeDao.save(mngChangeEntity);
                     }
                 }
                 if (storeRelaEntity.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_0.getItem())) {
@@ -437,6 +457,22 @@ public class OrderServiceImpl implements OrderService {
                     storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString()));
                     storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
                     productStoreRelaDao.update(storeRelaEntity);
+
+                    StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
+                    storeMngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
+                    storeMngChangeEntity.setChangeReason(changeReason);
+                    storeMngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(storeRelaEntity.getGoodsId())));
+                    storeMngChangeEntity.setStoreId(Integer.parseInt(String.valueOf(storeRelaEntity.getStoreId())));
+                    storeMngChangeEntity.setMerchSn(storeRelaEntity.getMerchSn());
+                    storeMngChangeEntity.setCreateTime(new Date());
+                    storeMngChangeEntity.setModTime(new Date());
+                    storeMngChangeEntity.setStoreChangeNum(orderGoodsEntity.getNumber());
+                    storeMngChangeEntity.setStoreOriginalNum(stockNum);
+                    storeMngChangeEntity.setStoreValidNum(stockNum + orderGoodsEntity.getNumber());
+                    storeMngChangeEntity.setCreaterSn(user.getUsername());
+                    storeMngChangeEntity.setModerSn(user.getUsername());
+                    storeMngChangeEntity.setIsValid(0);
+                    storeMngChangeDao.save(storeMngChangeEntity);
                 }
             }else {
                 //还原门店库存
@@ -448,6 +484,22 @@ public class OrderServiceImpl implements OrderService {
                 storeRelaEntity.setSellVolume(Integer.parseInt(sellVolume.toString()));
                 storeRelaEntity.setStockNum(stockNum + orderGoodsEntity.getNumber());//库存数量
                 productStoreRelaDao.update(storeRelaEntity);
+
+                StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
+                storeMngChangeEntity.setChangeType(Dict.changeType.item_0.getItem());
+                storeMngChangeEntity.setChangeReason(changeReason);
+                storeMngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(storeRelaEntity.getGoodsId())));
+                storeMngChangeEntity.setStoreId(Integer.parseInt(String.valueOf(storeRelaEntity.getStoreId())));
+                storeMngChangeEntity.setMerchSn(storeRelaEntity.getMerchSn());
+                storeMngChangeEntity.setStoreChangeNum(orderGoodsEntity.getNumber());
+                storeMngChangeEntity.setStoreOriginalNum(stockNum);
+                storeMngChangeEntity.setStoreValidNum(stockNum + orderGoodsEntity.getNumber());
+                storeMngChangeEntity.setCreateTime(new Date());
+                storeMngChangeEntity.setModTime(new Date());
+                storeMngChangeEntity.setCreaterSn(user.getUsername());
+                storeMngChangeEntity.setModerSn(user.getUsername());
+                storeMngChangeEntity.setIsValid(0);
+                storeMngChangeDao.save(storeMngChangeEntity);
             }
         }
     }

+ 45 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/ProductStoreRelaServiceImpl.java

@@ -49,6 +49,8 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
     private GoodsAttributeDao goodsAttributeDao;
     @Autowired
     private AttributeDao attributeDao;
+    @Autowired
+    private StoreMngChangeDao storeMngChangeDao;
 
     @Override
     public ProductStoreRelaEntity queryObject(Integer id) {
@@ -203,6 +205,23 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
             }
         }
 
+        //新增库存操作记录
+        StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
+        storeMngChangeEntity.setChangeType(Dict.changeType.item_2.getItem());
+        storeMngChangeEntity.setChangeReason("新增门店商品");
+        storeMngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(productStoreRela.getGoodsId())));
+        storeMngChangeEntity.setStoreId(Integer.parseInt(String.valueOf(productStoreRela.getStoreId())));
+        storeMngChangeEntity.setMerchSn(productStoreRela.getMerchSn());
+        storeMngChangeEntity.setCreateTime(new Date());
+        storeMngChangeEntity.setModTime(new Date());
+        storeMngChangeEntity.setStoreChangeNum(productStoreRela.getStockNum());
+        storeMngChangeEntity.setStoreOriginalNum(0);
+        storeMngChangeEntity.setStoreValidNum(productStoreRela.getStockNum());
+        storeMngChangeEntity.setCreaterSn(user.getUsername());
+        storeMngChangeEntity.setModerSn(user.getUsername());
+        storeMngChangeEntity.setIsValid(0);
+        storeMngChangeDao.save(storeMngChangeEntity);
+
         productStoreRela.setAttributeCategory(categoryDao.queryObject(productStoreRela.getCategoryId()).getParentId());
         productStoreRela.setProductId(product.getId());
         productStoreRela.setGoodsBizType(goodsEntity.getGoodsBizType());
@@ -324,6 +343,32 @@ public class ProductStoreRelaServiceImpl implements ProductStoreRelaService {
                 cartDao.update(cartEntity);
             }
         }
+        StoreMngChangeEntity storeMngChangeEntity = new StoreMngChangeEntity();
+        storeMngChangeEntity.setChangeType(Dict.changeType.item_3.getItem());
+        storeMngChangeEntity.setChangeReason("更新门店商品库存");
+        storeMngChangeEntity.setGoodsId(Integer.parseInt(String.valueOf(productStoreRela.getGoodsId())));
+        storeMngChangeEntity.setStoreId(Integer.parseInt(String.valueOf(productStoreRela.getStoreId())));
+        storeMngChangeEntity.setMerchSn(productStoreRela.getMerchSn());
+        storeMngChangeEntity.setCreateTime(new Date());
+        storeMngChangeEntity.setModTime(new Date());
+        storeMngChangeEntity.setCreaterSn(user.getUsername());
+        storeMngChangeEntity.setModerSn(user.getUsername());
+
+        ProductStoreRelaEntity productStoreRelaEntity = productStoreRelaDao.queryObject(productStoreRela.getId());
+        Integer orginalNum = productStoreRelaEntity.getStockNum();//原有库存
+        Integer changeNum = productStoreRela.getStockNum();//前端变化库存
+        if(changeNum != orginalNum) {
+            if (orginalNum > changeNum) {
+                storeMngChangeEntity.setStoreChangeNum(orginalNum - changeNum);//变化数
+                storeMngChangeEntity.setChangeType(Dict.changeType.item_4.getItem());
+            } else {
+                storeMngChangeEntity.setStoreChangeNum(changeNum - orginalNum);//变化数
+                storeMngChangeEntity.setChangeType(Dict.changeType.item_3.getItem());
+            }
+            storeMngChangeEntity.setStoreOriginalNum(orginalNum);//原库存数
+            storeMngChangeEntity.setStoreValidNum(changeNum);//可用数
+            storeMngChangeDao.save(storeMngChangeEntity);
+        }
 
         productStoreRela.setAttributeCategory(categoryDao.queryObject(productStoreRela.getCategoryId()).getParentId());
         productStoreRela.setModerSn(user.getUserId().toString());

+ 58 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/StoreMngChangeServiceImpl.java

@@ -0,0 +1,58 @@
+package com.kmall.admin.service.impl;
+
+import com.kmall.admin.dao.StoreMngChangeDao;
+import com.kmall.admin.entity.StoreMngChangeEntity;
+import com.kmall.admin.service.StoreMngChangeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 门店库存变化表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+@Service("storeMngChangeService")
+public class StoreMngChangeServiceImpl implements StoreMngChangeService {
+    @Autowired
+    private StoreMngChangeDao storeMngChangeDao;
+
+    @Override
+    public StoreMngChangeEntity queryObject(Integer id) {
+        return storeMngChangeDao.queryObject(id);
+    }
+
+    @Override
+    public List<StoreMngChangeEntity> queryList(Map<String, Object> map) {
+        return storeMngChangeDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return storeMngChangeDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(StoreMngChangeEntity storeMngChange) {
+        return storeMngChangeDao.save(storeMngChange);
+    }
+
+    @Override
+    public int update(StoreMngChangeEntity storeMngChange) {
+        return storeMngChangeDao.update(storeMngChange);
+    }
+
+    @Override
+    public int delete(Integer id) {
+        return storeMngChangeDao.delete(id);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]ids) {
+        return storeMngChangeDao.deleteBatch(ids);
+    }
+}

+ 25 - 22
kmall-admin/src/main/java/com/kmall/admin/utils/ParamUtils.java

@@ -3,6 +3,7 @@ package com.kmall.admin.utils;
 import com.kmall.common.constant.Dict;
 import com.kmall.admin.fromcomm.entity.SysUserEntity;
 import com.kmall.common.utils.RRException;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.Map;
 
@@ -17,37 +18,39 @@ public class ParamUtils {
      * @param params   查询参数
      * @param storeKey 当用户是门店时,放入的key,值为门店id
      * @param merchKey 当用户是商户时,放入的key,值为商户编号
-     * @param bothSet  为true时,不管是门店还是商户都只设置storeKey和merchKey中不为null的值
+     * @param thirdMerchKey  当用户是商户时,放入的key,值为第三方商户编号
      */
-    public static void setQueryPowerByRoleType(Map params, String storeKey, String merchKey, boolean bothSet) {
+    public static void setQueryPowerByRoleType(Map params, String storeKey, String merchKey, String thirdMerchKey) {
         SysUserEntity user = ShiroUtils.getUserEntity();
         if (user == null) {
             throw new RRException("用户登录超时,请重新登录");
         }
-
-        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());
-                }
+        if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
+            if (storeKey == null) {
+                throw new RRException("参数错误");
+            }
+            if(StringUtils.isNotEmpty(merchKey)){
+                params.put(merchKey, user.getMerchSn());
+            }
+            if(StringUtils.isNotEmpty(thirdMerchKey)){
+                params.put(thirdMerchKey, user.getThirdPartyMerchCode());
             }
-        } else {
-            if (Dict.roleType.item_2.getItem().equals(user.getRoleType())) {
+            if(StringUtils.isNotEmpty(storeKey)){
                 params.put(storeKey, user.getStoreId());
-            } else if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+            }
+        }
+        if (Dict.roleType.item_3.getItem().equals(user.getRoleType())) {
+            if(StringUtils.isNotEmpty(merchKey)){
+                params.put(merchKey, user.getMerchSn());
+            }
+        }
+        if (Dict.roleType.item_4.getItem().equals(user.getRoleType())) {
+            if(StringUtils.isNotEmpty(merchKey)){
                 params.put(merchKey, user.getMerchSn());
             }
+            if(StringUtils.isNotEmpty(thirdMerchKey)){
+                params.put(thirdMerchKey, user.getThirdPartyMerchCode());
+            }
         }
     }
 }

+ 54 - 54
kmall-admin/src/main/resources/logback.xml

@@ -1,50 +1,50 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="GBK"?>
 <!--
-scan锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝閰嶇疆鏂囦欢濡傛灉鍙戠敓鏀瑰彉锛屽皢浼氳�閲嶆柊鍔犺浇锛岄粯璁ゅ€间负true銆�
-scanPeriod锛氳�缃�洃娴嬮厤缃�枃浠舵槸鍚︽湁淇�敼鐨勬椂闂撮棿闅旓紝濡傛灉娌℃湁缁欏嚭鏃堕棿鍗曚綅锛岄粯璁ゅ崟浣嶆槸姣��褰搒can涓簍rue鏃讹紝姝ゅ睘鎬х敓鏁堛€傞粯璁ょ殑鏃堕棿闂撮殧涓�1鍒嗛挓銆�
-debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛屽疄鏃舵煡鐪媗ogback杩愯�鐘舵€併€傞粯璁ゅ€间负false銆�
+scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
+scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒当scan为true时,此属性生效。默认的时间间隔为1分钟。
+debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
 -->
 <configuration scan="false" scanPeriod="60 seconds" debug="false">
 
     <property name="LOG_HOME" value="/data/logs/kmall-pt/kmall-admin/"/>
-    <!-- 瀹氫箟鏃ュ織鐨勬牴鐩�綍 -->
+    <!-- 定义日志的根目录 -->
     <property name="TRACE_DIR" value="trace" />
     <property name="DEBUG_DIR" value="debug" />
     <property name="INFO_DIR" value="info" />
     <property name="WARN_DIR" value="warn" />
     <property name="ERROR_DIR" value="error" />
-    <!-- 瀹氫箟鏃ュ織鏂囦欢鍚嶇О -->
+    <!-- 定义日志文件名称 -->
     <property name="TRACE_FILE_NAME" value="kmall-admin-trace"></property>
     <property name="DEBUG_FILE_NAME" value="kmall-admin-debug"></property>
     <property name="INFO_FILE_NAME" value="kmall-admin-info"></property>
     <property name="WARN_FILE_NAME" value="kmall-admin-warn"></property>
     <property name="ERROR_FILE_NAME" value="kmall-admin-error"></property>
 
-    <!-- 瀹氫箟鏃ュ織绾у埆棰滆壊 -->
-    <!-- 鎺у埗鍙版樉绀� -->
+    <!-- 定义日志级别颜色 -->
+    <!-- 控制台显示 -->
     <property name="STD_CONSOLE_LOG_PATTERN"
               value="%d{yyyy-MM-dd HH:mm:ss.SSS}[%yellow(%thread)]-[%highlight(%-5level)][%green(%logger{70}):%cyan(%line)] - %msg%n"/>
 
-    <!-- 鏃ュ織鏂囦欢鎵撳嵃 -->
+    <!-- 日志文件打印 -->
     <property name="CONSOLE_LOG_PATTERN"
               value="%d{yyyy-MM-dd HH:mm:ss.SSS}[%thread]-[%-5level][%logger{70}:%line] - %msg%n"/>
 
-    <!-- ConsoleAppender 鎺у埗鍙拌緭鍑� appender -->
+    <!-- ConsoleAppender 控制台输出 appender -->
     <appender name="stdoutAppender" class="ch.qos.logback.core.ConsoleAppender">
         <!--
-        鏃ュ織杈撳嚭鏍煎紡锛�%d琛ㄧず鏃ユ湡鏃堕棿锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒�粠宸︽樉绀�5涓�瓧绗﹀�搴�
-        %logger{70} 琛ㄧずlogger鍚嶅瓧鏈€闀�50涓�瓧绗︼紝鍚﹀垯鎸夌収鍙ョ偣鍒嗗壊銆� %msg锛氭棩蹇楁秷鎭�紝%n鏄�崲琛岀�
+        日志输出格式:%d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度
+        %logger{70} 表示logger名字最长50个字符,否则按照句点分割。 %msg:日志消息,%n是换行符
         -->
         <encoder>
             <pattern>${STD_CONSOLE_LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset>
+            <charset>GBK</charset>
         </encoder>
     </appender>
 
 
-    <!-- TRACE 鏃ュ織 appender  -->
+    <!-- TRACE 日志 appender  -->
     <appender name="traceAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 鎸囧畾鏃ュ織鏂囦欢鐨勫悕绉� -->
+        <!-- 指定日志文件的名称 -->
         <file>${LOG_HOME}/${TRACE_DIR}/${TRACE_FILE_NAME}.log</file>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>${LOG_HOME}/${TRACE_DIR}/${TRACE_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
@@ -55,7 +55,7 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
         </rollingPolicy>
         <encoder>
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset>
+            <charset>GBK</charset>
         </encoder>
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>TRACE</level>
@@ -65,9 +65,9 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
     </appender>
 
 
-    <!-- DEBUG 鏃ュ織 appender  -->
+    <!-- DEBUG 日志 appender  -->
     <appender name="debugAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 鎸囧畾鏃ュ織鏂囦欢鐨勫悕绉� -->
+        <!-- 指定日志文件的名称 -->
         <file>${LOG_HOME}/${DEBUG_DIR}/${DEBUG_FILE_NAME}.log</file>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>${LOG_HOME}/${DEBUG_DIR}/${DEBUG_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
@@ -78,7 +78,7 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
         </rollingPolicy>
         <encoder>
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset>
+            <charset>GBK</charset>
         </encoder>
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>DEBUG</level>
@@ -88,9 +88,9 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
     </appender>
 
 
-    <!-- phrase 鏃ュ織 appender  -->
+    <!-- phrase 日志 appender  -->
     <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 鎸囧畾鏃ュ織鏂囦欢鐨勫悕绉� -->
+        <!-- 指定日志文件的名称 -->
         <file>${LOG_HOME}/${INFO_DIR}/${INFO_FILE_NAME}.log</file>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>${LOG_HOME}/${INFO_DIR}/${INFO_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
@@ -101,7 +101,7 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
         </rollingPolicy>
         <encoder>
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset>
+            <charset>GBK</charset>
         </encoder>
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>INFO</level>
@@ -111,9 +111,9 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
     </appender>
 
 
-    <!-- WARN 鏃ュ織 appender  -->
+    <!-- WARN 日志 appender  -->
     <appender name="warnAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 鎸囧畾鏃ュ織鏂囦欢鐨勫悕绉� -->
+        <!-- 指定日志文件的名称 -->
         <file>${LOG_HOME}/${WARN_DIR}/${WARN_FILE_NAME}.log</file>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <fileNamePattern>${LOG_HOME}/${WARN_DIR}/${WARN_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
@@ -124,7 +124,7 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
         </rollingPolicy>
         <encoder>
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset>
+            <charset>GBK</charset>
         </encoder>
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>WARN</level>
@@ -134,67 +134,67 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
     </appender>
 
 
-    <!-- ERROR 鏃ュ織 appender  -->
+    <!-- ERROR 日志 appender  -->
     <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <!-- 鎸囧畾鏃ュ織鏂囦欢鐨勫悕绉� -->
+        <!-- 指定日志文件的名称 -->
         <file>${LOG_HOME}/${ERROR_DIR}/${ERROR_FILE_NAME}.log</file>
         <!--
-        褰撳彂鐢熸粴鍔ㄦ椂锛屽喅瀹� RollingFileAppender 鐨勮�涓猴紝娑夊強鏂囦欢绉诲姩鍜岄噸鍛藉悕
-        TimeBasedRollingPolicy锛� 鏈€甯哥敤鐨勬粴鍔ㄧ瓥鐣ワ紝瀹冩牴鎹�椂闂存潵鍒跺畾婊氬姩绛栫暐锛屾棦璐熻矗婊氬姩涔熻礋璐e嚭鍙戞粴鍔ㄣ€�
+        当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名
+        TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。
         -->
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
             <!--
-            婊氬姩鏃朵骇鐢熺殑鏂囦欢鐨勫瓨鏀句綅缃�強鏂囦欢鍚嶇О %d{yyyy-MM-dd}锛氭寜澶╄繘琛屾棩蹇楁粴鍔�
-            %i锛氬綋鏂囦欢澶у皬瓒呰繃maxFileSize鏃讹紝鎸夌収i杩涜�鏂囦欢婊氬姩
+            滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动
+            %i:当文件大小超过maxFileSize时,按照i进行文件滚动
             -->
             <fileNamePattern>${LOG_HOME}/${ERROR_DIR}/${ERROR_FILE_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>
             <!--
-            鍙�€夎妭鐐癸紝鎺у埗淇濈暀鐨勫綊妗f枃浠剁殑鏈€澶ф暟閲忥紝瓒呭嚭鏁伴噺灏卞垹闄ゆ棫鏂囦欢銆傚亣璁捐�缃�瘡澶╂粴鍔�紝
-            涓攎axHistory鏄�365锛屽垯鍙�繚瀛樻渶杩�365澶╃殑鏂囦欢锛屽垹闄や箣鍓嶇殑鏃ф枃浠躲€傛敞鎰忥紝鍒犻櫎鏃ф枃浠舵槸锛�
-            閭d簺涓轰簡褰掓。鑰屽垱寤虹殑鐩�綍涔熶細琚�垹闄ゃ€�
+            可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每天滚动,
+            且maxHistory是365,则只保存最近365天的文件,删除之前的旧文件。注意,删除旧文件是,
+            那些为了归档而创建的目录也会被删除。
             -->
             <MaxHistory>365</MaxHistory>
             <!--
-            褰撴棩蹇楁枃浠惰秴杩噈axFileSize鎸囧畾鐨勫ぇ灏忔槸锛屾牴鎹�笂闈㈡彁鍒扮殑%i杩涜�鏃ュ織鏂囦欢婊氬姩 娉ㄦ剰姝ゅ�閰嶇疆SizeBasedTriggeringPolicy鏄�棤娉曞疄鐜版寜鏂囦欢澶у皬杩涜�婊氬姩鐨勶紝蹇呴』閰嶇疆timeBasedFileNamingAndTriggeringPolicy
+            当日志文件超过maxFileSize指定的大小是,根据上面提到的%i进行日志文件滚动 注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的,必须配置timeBasedFileNamingAndTriggeringPolicy
             -->
             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                 <maxFileSize>10MB</maxFileSize>
             </timeBasedFileNamingAndTriggeringPolicy>
         </rollingPolicy>
         <!--
-        鏃ュ織杈撳嚭鏍煎紡锛�%d琛ㄧず鏃ユ湡鏃堕棿锛�%thread琛ㄧず绾跨▼鍚嶏紝%-5level锛氱骇鍒�粠宸︽樉绀�5涓�瓧绗﹀�搴� %logger{70} 琛ㄧずlogger鍚嶅瓧鏈€闀�50涓�瓧绗︼紝鍚﹀垯鎸夌収鍙ョ偣鍒嗗壊銆� %msg锛氭棩蹇楁秷鎭�紝%n鏄�崲琛岀�
+        日志输出格式:%d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %logger{70} 表示logger名字最长50个字符,否则按照句点分割。 %msg:日志消息,%n是换行符
         -->
         <encoder>
             <pattern>${CONSOLE_LOG_PATTERN}</pattern>
-            <charset>UTF-8</charset>
+            <charset>GBK</charset>
         </encoder>
         <!--
-        杩囨护鍣ㄨ繑鍥炴灇涓撅細DENY锛孨EUTRAL锛孉CCEPT銆�
-        杩斿洖DENY锛屾棩蹇楀皢绔嬪嵆琚�姏寮冧笉鍐嶇粡杩囧叾浠栬繃婊ゅ櫒锛涜繑鍥濶EUTRAL锛屾湁搴忓垪琛ㄩ噷鐨勪笅涓�繃婊ゅ櫒杩囨帴鐫€澶勭悊鏃ュ織锛涜繑鍥濧CCEPT锛屾棩蹇椾細琚�珛鍗冲�鐞嗕笉鍐嶇粡杩囧墿浣欒繃婊ゅ櫒銆�
-        LevelFilter锛� 绾у埆杩囨护鍣�紝鏍规嵁鏃ュ織绾у埆杩涜�杩囨护銆傚�鏋滄棩蹇楃骇鍒�瓑浜庨厤缃�骇鍒�紝杩囨护鍣ㄤ細鏍规嵁onMath 鍜� onMismatch鎺ユ敹鎴栨嫆缁濇棩蹇椼€傝妭鐐癸細level锛宱nMatch锛宱nMismatch
+        过滤器返回枚举:DENY,NEUTRAL,ACCEPT。
+        返回DENY,日志将立即被抛弃不再经过其他过滤器;返回NEUTRAL,有序列表里的下个过滤器过接着处理日志;返回ACCEPT,日志会被立即处理不再经过剩余过滤器。
+        LevelFilter: 级别过滤器,根据日志级别进行过滤。如果日志级别等于配置级别,过滤器会根据onMath 和 onMismatch接收或拒绝日志。节点:level,onMatch,onMismatch
         -->
-        <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 鍙�墦鍗伴敊璇�棩蹇� -->
-            <!-- 璁剧疆杩囨护绾у埆 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->
+            <!-- 设置过滤级别 -->
             <level>ERROR</level>
-            <!-- 閰嶇疆绗﹀悎杩囨护鏉′欢鐨勬搷浣�
+            <!-- 配置符合过滤条件的操作
             <onMatch>ACCEPT</onMatch>
-            &lt;!&ndash; 閰嶇疆涓嶇�鍚堣繃婊ゆ潯浠剁殑鎿嶄綔 &ndash;&gt;
+            &lt;!&ndash; 配置不符合过滤条件的操作 &ndash;&gt;
             <onMismatch>DENY</onMismatch>-->
         </filter>
     </appender>
 
 
     <!--
-    logger涓昏�鐢ㄤ簬瀛樻斁鏃ュ織瀵硅薄锛屼篃鍙�互瀹氫箟鏃ュ織绫诲瀷銆佺骇鍒�
-    name锛氳〃绀哄尮閰嶇殑logger绫诲瀷鍓嶇紑锛屼篃灏辨槸鍖呯殑鍓嶅崐閮ㄥ垎
-    level锛氳�璁板綍鐨勬棩蹇楃骇鍒�紝澶у皬鍐欐棤鍏筹紝鍖呮嫭 TRACE锛孌EBUG锛孖NFO锛學ARN锛孍RROR锛孉LL 鍜� OFF銆�
-    additivity锛氭槸鍚﹀悜涓婄骇loger浼犻€掓墦鍗颁俊鎭�€傞粯璁ゆ槸true銆� 浣滅敤鍦ㄤ簬children-logger鏄�惁鍚戜笂绾�oot-logger閰嶇疆鐨刟ppender浼犻€掓墦鍗颁俊鎭�紝false锛氫笉浼犻€掞紝true锛氫紶閫�
+    logger主要用于存放日志对象,也可以定义日志类型、级别
+    name:表示匹配的logger类型前缀,也就是包的前半部分
+    level:要记录的日志级别,大小写无关,包括 TRACE,DEBUG,INFO,WARN,ERROR,ALL 和 OFF。
+    additivity:是否向上级loger传递打印信息。默认是true。 作用在于children-logger是否向上级root-logger配置的appender传递打印信息,false:不传递,true:传递
     -->
     <!--
-    娌¤�缃甽evel锛岀户鎵夸粬鐨勪笂绾�<root>鐨勬棩蹇楃骇鍒�紱
-    娌℃湁璁剧疆additivity锛岄粯璁や负true锛屽皢姝�oger鐨勬墦鍗颁俊鎭�悜涓婄骇<root>浼犻€掞紱
-    娌℃湁璁剧疆appender锛屾�loger鏈�韩涓嶆墦鍗颁换浣曚俊鎭�紱
-    瀛�<logger>鍚�<root>浼犻€掍俊鎭�悗锛屾棩蹇條evel 瀹屽叏鐢卞瓙绾у埆鐨刲evel 鍐冲畾锛�
+    没设置level,继承他的上级<root>的日志级别;
+    没有设置additivity,默认为true,将此loger的打印信息向上级<root>传递;
+    没有设置appender,此loger本身不打印任何信息;
+    子<logger>向<root>传递信息后,日志level 完全由子级别的level 决定;
     -->
 
     <logger name="org.apache" level="ERROR"/>
@@ -214,8 +214,8 @@ debug锛氬綋姝ゅ睘鎬ц�缃�负true鏃讹紝灏嗘墦鍗板嚭logback鍐呴儴鏃ュ織淇℃伅锛�
     <logger name="com.kmall" level="DEBUG"/>
 
     <!--
-    root涓巐ogger鏄�埗瀛愬叧绯伙紝娌℃湁鐗瑰埆瀹氫箟鍒欓粯璁や负root锛屼换浣曚竴涓�被鍙�細鍜屼竴涓猯ogger瀵瑰簲锛�
-    瑕佷箞鏄�畾涔夌殑logger锛岃�涔堟槸root锛屽垽鏂�殑鍏抽敭鍦ㄤ簬鎵惧埌杩欎釜logger锛岀劧鍚庡垽鏂�繖涓猯ogger鐨刲evel鍜宎ppender銆�
+    root与logger是父子关系,没有特别定义则默认为root,任何一个类只会和一个logger对应,
+    要么是定义的logger,要么是root,判断的关键在于找到这个logger,然后判断这个logger的level和appender。
     -->
     <root level="DEBUG" >
         <appender-ref ref="stdoutAppender" />

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

@@ -52,12 +52,16 @@
         mall_ad.enabled,
         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
+        left join mall_store s on mall_ad.store_id = s.id
         where 1=1
         <if test="storeId != null and storeId != ''">
-            AND store_id = #{storeId}
+            AND mall_ad.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            AND merch_sn = #{merchSn}
+            AND mall_ad.merch_sn = #{merchSn}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
         <if test="name != null and name.trim() != ''">
             AND mall_ad.name LIKE concat('%',#{name},'%')
@@ -77,12 +81,16 @@
 
     <select id="queryTotal" resultType="int">
 		select count(*) from mall_ad
+        left join mall_store s on mall_ad.store_id = s.id
 		WHERE 1=1
         <if test="storeId != null and storeId != ''">
-            AND store_id = #{storeId}
+            AND mall_ad.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            AND merch_sn = #{merchSn}
+            AND mall_ad.merch_sn = #{merchSn}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')

+ 8 - 0
kmall-admin/src/main/resources/mybatis/mapper/AddressDao.xml

@@ -52,6 +52,7 @@
         from mall_address
         LEFT JOIN mall_user ON mall_address.user_id = mall_user.id
         LEFT JOIN mall_merch_user d ON mall_address.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         WHERE 1=1
         <if test="storeId != null">
             and d.store_id = #{storeId}
@@ -59,6 +60,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             and d.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="userId != null">
             AND mall_address.user_id = #{userId}
         </if>
@@ -85,6 +89,7 @@
         select count(distinct a.id)
         from mall_address a
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         where 1=1
         <if test="storeId != null">
             and d.store_id = #{storeId}
@@ -92,6 +97,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             and d.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="userId != null">
             AND mall_address.user_id = #{userId}
         </if>

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

@@ -54,6 +54,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND a.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND a.name LIKE concat('%', #{name},'%')
         </if>
@@ -79,6 +82,7 @@
     <select id="queryTotal" resultType="int">
 		select count(*) from mall_attribute a
         LEFT JOIN mall_category c ON a.attribute_category_id = c.id
+        left join mall_store s on a.store_id = s.id
         WHERE 1=1
         <if test="storeId != null and storeId != ''">
             AND a.store_id = #{storeId}
@@ -86,6 +90,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND a.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND a.name LIKE concat('%', #{name},'%')
         </if>

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

@@ -116,6 +116,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND b.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>
@@ -147,6 +150,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND b.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="name != null and name.trim() != ''">
             AND name LIKE concat('%',#{name},'%')
         </if>

+ 8 - 0
kmall-admin/src/main/resources/mybatis/mapper/CartDao.xml

@@ -39,6 +39,7 @@
         from mall_cart a
         left join mall_user b on a.user_id = b.id
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         where 1=1
         <if test="storeId != null">
             and d.store_id = #{storeId}
@@ -46,6 +47,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             and d.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="goodsId != null">
             and a.goods_id = #{goodsId}
         </if>
@@ -72,6 +76,7 @@
 		select count(distinct a.id)
         from mall_cart a
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         where 1=1
         <if test="storeId != null">
             and d.store_id = #{storeId}
@@ -85,6 +90,9 @@
         <if test="userId != null">
             AND mall_cart.user_id = #{userId}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
 	</select>
 
     <insert id="save" parameterType="com.kmall.admin.entity.CartEntity" useGeneratedKeys="true" keyProperty="id">

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

@@ -112,6 +112,9 @@
 		<if test="merchSn != null and merchSn.trim() != ''">
 			AND b.merch_sn = #{merchSn}
 		</if>
+		<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>
@@ -138,25 +141,29 @@
 	</select>
 	
  	<select id="queryTotal" resultType="int">
-		select count(*) from mall_category
+		select count(*) from mall_category b
+		left join mall_store s on b.store_id = s.id
 		WHERE 1=1
 		<if test="storeId != null and storeId != ''">
-			AND store_id = #{storeId}
+			AND b.store_id = #{storeId}
 		</if>
 		<if test="merchSn != null and merchSn.trim() != ''">
-			AND merch_sn = #{merchSn}
+			AND b.merch_sn = #{merchSn}
+		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND s.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
 		<if test="name != null and name.trim() != ''">
-			AND `name` LIKE concat('%',#{name},'%')
+			AND b.`name` LIKE concat('%',#{name},'%')
 		</if>
 		<if test="parentId != null and parentId != ''">
-			AND `parent_id` = #{parentId}
+			AND b.`parent_id` = #{parentId}
 		</if>
 		<if test="isShow != null and isShow != ''">
-			AND `is_show` = #{isShow}
+			AND b.`is_show` = #{isShow}
 		</if>
 		<if test="isL2 != null and isL2 != ''">
-			AND `parent_id` != #{isL2}
+			AND b.`parent_id` != #{isL2}
 		</if>
 	</select>
 	 

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

@@ -33,6 +33,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             and d.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND c.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="name != null and name != ''">
             AND b.username LIKE concat('%',#{name},'%')
         </if>
@@ -52,6 +55,7 @@
     <select id="queryTotal" resultType="int">
 		select count(distinct a.id) from mall_collect a
         left join mall_user b on a.user_id = b.id
+        left join mall_goods c on a.value_id = c.id
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
         WHERE 1=1
         <if test="storeId != null">
@@ -60,6 +64,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             and d.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND c.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="name != null and name != ''">
             AND b.username LIKE concat('%',#{name},'%')
         </if>

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

@@ -58,6 +58,7 @@
         from mall_comment LEFT JOIN mall_user ON mall_comment.user_id = mall_user.id
         LEFT JOIN mall_goods ON mall_comment.value_id = mall_goods.id
         left join mall_order o on mall_comment.order_id = o.id
+        left join mall_store s on o.store_id = s.id
         WHERE 1=1
         <if test="userName != null and userName.trim() != ''">
             AND mall_user.username LIKE concat('%',#{userName},'%')
@@ -68,6 +69,9 @@
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="status != null">
             AND mall_comment.status = #{status}
         </if>
@@ -93,6 +97,8 @@
     <select id="queryTotal" resultType="int">
         select count(*) from mall_comment LEFT JOIN mall_user ON mall_comment.user_id = mall_user.id
         LEFT JOIN mall_goods ON mall_comment.value_id = mall_goods.id
+        left join mall_order o on mall_comment.order_id = o.id
+        left join mall_store s on o.store_id = s.id
         WHERE 1=1
         <if test="userName != null and userName.trim() != ''">
             AND mall_user.username LIKE concat('%',#{userName},'%')
@@ -100,6 +106,9 @@
         <if test="valueName != null and valueName.trim() != ''">
             AND mall_goods.name LIKE concat('%',#{valueName},'%')
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="status != null">
             AND mall_comment.status = #{status}
         </if>

+ 20 - 14
kmall-admin/src/main/resources/mybatis/mapper/CouponDao.xml

@@ -18,6 +18,7 @@
         <result property="useEndDate" column="use_end_date"/>
         <result property="minGoodsAmount" column="min_goods_amount"/>
         <result property="isAll" column="is_all"/>
+        <result property="thirdPartyMerchCode" column="thirdPartyMerchCode"/>
     </resultMap>
 
     <sql id="conditions">
@@ -32,6 +33,9 @@
             <if test="merchSn != null and merchSn.trim() != ''">
                 AND (a.merch_sn = #{merchSn} OR a.is_all = 1)
             </if>
+            <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+                AND s.third_party_merch_code = #{thirdPartyMerchCode}
+            </if>
         </where>
     </sql>
 
@@ -57,21 +61,22 @@
 
     <select id="queryList" resultType="com.kmall.admin.entity.CouponEntity">
         select
-        `id`,
-        `name`,
-        `store_id`,
-        `merch_sn`,
-        `type_money`,
-        `send_type`,
-        `min_amount`,
-        `max_amount`,
-        `send_start_date`,
-        `send_end_date`,
-        `use_start_date`,
-        `use_end_date`,
-        `min_goods_amount`,
-        `is_all`
+        a.`id`,
+        a.`name`,
+        a.`store_id`,
+        a.`merch_sn`,
+        a.`type_money`,
+        a.`send_type`,
+        a.`min_amount`,
+        a.`max_amount`,
+        a.`send_start_date`,
+        a.`send_end_date`,
+        a.`use_start_date`,
+        a.`use_end_date`,
+        a.`min_goods_amount`,
+        a.`is_all`
         from mall_coupon a
+        left join mall_store s on a.store_id = s.id
         <include refid="conditions"/>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
@@ -88,6 +93,7 @@
 
     <select id="queryTotal" resultType="int">
 		select count(*) from mall_coupon a
+        left join mall_store s on a.store_id = s.id
         <include refid="conditions"/>
 	</select>
 

+ 8 - 0
kmall-admin/src/main/resources/mybatis/mapper/FootprintDao.xml

@@ -24,7 +24,11 @@
         left join mall_user b on a.user_id = b.id
         left join mall_goods c on a.goods_id = c.id
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         WHERE 1=1
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="storeId != null">
             and d.store_id = #{storeId}
         </if>
@@ -51,7 +55,11 @@
 		select count(distinct a.id) from mall_footprint a
         left join mall_user b on a.user_id = b.id
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         WHERE 1=1
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="storeId != null">
             and d.store_id = #{storeId}
         </if>

+ 12 - 5
kmall-admin/src/main/resources/mybatis/mapper/FreightDao.xml

@@ -83,6 +83,9 @@
 		<if test="merchSn != null and merchSn.trim() != ''">
 			AND b.merch_sn = #{merchSn}
 		</if>
+		<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>
@@ -140,19 +143,23 @@
 	</select>
 	
  	<select id="queryTotal" resultType="int">
-		select count(*) from mall_freight
+		select count(*) from mall_freight b
+		left join mall_store s on b.store_id = s.id
 		WHERE 1=1
 		<if test="storeId != null and storeId != ''">
-			AND store_id = #{storeId}
+			AND b.store_id = #{storeId}
 		</if>
 		<if test="merchSn != null and merchSn.trim() != ''">
-			AND merch_sn = #{merchSn}
+			AND b.merch_sn = #{merchSn}
+		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND s.third_party_merch_code = #{thirdPartyMerchCode}
 		</if>
         <if test="name != null and name.trim() != ''">
-            AND name LIKE concat('%',#{name},'%')
+            AND b.name LIKE concat('%',#{name},'%')
         </if>
 		<if test="id != null and id != ''">
-			AND id NOT LIKE concat('%',#{id},'%')
+			AND b.id NOT LIKE concat('%',#{id},'%')
 		</if>
 	</select>
 	 

+ 199 - 0
kmall-admin/src/main/resources/mybatis/mapper/MngChangeDao.xml

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.MngChangeDao">
+
+    <resultMap type="com.kmall.admin.entity.MngChangeEntity" id="mngChangeMap">
+        <result property="id" column="id"/>
+        <result property="changeNum" column="change_num"/>
+        <result property="originalNum" column="original_num"/>
+        <result property="validNum" column="valid_num"/>
+        <result property="merchSn" column="merch_sn"/>
+        <result property="thirdPartyMerchCode" column="third_party_merch_code"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="isValid" column="is_valid"/>
+        <result property="changeType" column="change_type"/>
+        <result property="changeReason" column="change_reason"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="createTime" column="create_time"/>
+        <result property="moderSn" column="moder_sn"/>
+        <result property="modTime" column="mod_time"/>
+        <result property="tstm" column="tstm"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.MngChangeEntity">
+		select
+			`id`,
+			`change_num`,
+			`original_num`,
+			`valid_num`,
+			`merch_sn`,
+			`third_party_merch_code`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall_mng_change
+		where id = #{id}
+	</select>
+	<select id="queryObjectByGoodsIdAndType" resultType="com.kmall.admin.entity.MngChangeEntity">
+		select
+		`id`,
+		`change_num`,
+		`original_num`,
+		`valid_num`,
+		`merch_sn`,
+		`third_party_merch_code`,
+		`goods_id`,
+		`is_valid`,
+		`change_type`,
+		`change_reason`,
+		`creater_sn`,
+		`create_time`,
+		`moder_sn`,
+		`mod_time`,
+		`tstm`
+		from mall_mng_change
+		where goods_id = #{goodsId} and change_type = #{changeType}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.MngChangeEntity">
+		select
+		c.`id`,
+		c.`change_num`,
+		c.`original_num`,
+		c.`valid_num`,
+		c.`merch_sn`,
+		c.`third_party_merch_code`,
+		c.`goods_id`,
+		c.`is_valid`,
+		c.`change_type`,
+		c.`change_reason`,
+		c.`creater_sn`,
+		c.`create_time`,
+		c.`moder_sn`,
+		c.`mod_time`,
+		c.`tstm`,
+		g.name goodsName,
+		m.merch_name merchName,
+		mb.third_party_merch_name thirdPartyMerchName
+		from mall_mng_change c left join mall_merch m on c.merch_sn = m.merch_sn
+		left join third_merchant_biz mb on c.third_party_merch_code = mb.third_party_merch_code
+		left join mall_goods g on c.goods_id = g.id
+		WHERE 1=1
+		<if test="goodsId != null and goodsId != ''">
+			AND c.goods_id = #{goodsId}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND c.store_id = #{storeId}
+		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND g.third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
+		<if test="changeType != null and changeType != ''">
+			AND c.change_type = #{changeType}
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+	
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_mng_change c left join mall_merch m on c.merch_sn = m.merch_sn
+		left join third_merchant_biz mb on c.third_party_merch_code = mb.third_party_merch_code
+		left join mall_goods g on c.goods_id = g.id
+		WHERE 1=1
+
+		<if test="goodsId != null and goodsId != ''">
+			AND c.goods_id = #{goodsId}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND c.store_id = #{storeId}
+		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND g.third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
+		<if test="changeType != null and changeType != ''">
+			AND c.change_type = #{changeType}
+		</if>
+	</select>
+	 
+	<insert id="save" parameterType="com.kmall.admin.entity.MngChangeEntity">
+		insert into mall_mng_change(
+			`change_num`,
+			`original_num`,
+			`valid_num`,
+			`merch_sn`,
+			`third_party_merch_code`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{changeNum},
+			#{originalNum},
+			#{validNum},
+			#{merchSn},
+			#{thirdPartyMerchCode},
+			#{goodsId},
+			#{isValid},
+			#{changeType},
+			#{changeReason},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+	 
+	<update id="update" parameterType="com.kmall.admin.entity.MngChangeEntity">
+		update mall_mng_change 
+		<set>
+			<if test="changeNum != null">`change_num` = #{changeNum}, </if>
+			<if test="originalNum != null">`original_num` = #{originalNum}, </if>
+			<if test="validNum != null">`valid_num` = #{validNum}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="thirdPartyMerchCode != null">`third_party_merch_code` = #{thirdPartyMerchCode}, </if>
+			<if test="goodsId != null">`goods_id` = #{goodsId}, </if>
+			<if test="isValid != null">`is_valid` = #{isValid}, </if>
+			<if test="changeType != null">`change_type` = #{changeType}, </if>
+			<if test="changeReason != null">`change_reason` = #{changeReason}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
+			<if test="modTime != null">`mod_time` = #{modTime}, </if>
+			<if test="tstm != null">`tstm` = #{tstm}</if>
+		</set>
+		where id = #{id}
+	</update>
+	
+	<delete id="delete">
+		delete from mall_mng_change where id = #{value}
+	</delete>
+	
+	<delete id="deleteBatch">
+		delete from mall_mng_change where id in 
+		<foreach item="id" collection="array" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
+
+</mapper>

+ 50 - 11
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -103,6 +103,7 @@
         mall_order o
         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
+        left join mall_store s on o.store_id = s.id
         WHERE 1=1
         <if test="startTime != null and startTime != ''">
             AND o.add_time <![CDATA[ >  ]]> #{startTime}
@@ -113,6 +114,9 @@
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="merchOrderSn != null and merchOrderSn.trim() != ''">
             AND o.merch_order_sn = #{merchOrderSn}
         </if>
@@ -172,6 +176,7 @@
         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
         Left join mall_order_goods g on o.id = g.order_id
+        left join mall_store s on o.store_id = s.id
         WHERE 1=1
         <if test="startTime != null and startTime != ''">
             AND o.add_time <![CDATA[ >  ]]> #{startTime}
@@ -182,6 +187,9 @@
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="merchOrderSn != null and merchOrderSn.trim() != ''">
             AND o.merch_order_sn = #{merchOrderSn}
         </if>
@@ -226,7 +234,8 @@
     </select>
 
     <select id="queryTotal" resultType="int">
-        select count(*) from mall_order o WHERE 1=1
+        select count(*) from mall_order o
+        left join mall_store s on o.store_id = s.id WHERE 1=1
         <if test="startTime != null and startTime != ''">
             AND o.add_time <![CDATA[ >  ]]> #{startTime}
         </if>
@@ -236,6 +245,9 @@
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="merchOrderSn != null and merchOrderSn.trim() != ''">
             AND o.merch_order_sn = #{merchOrderSn}
         </if>
@@ -278,6 +290,7 @@
         mall_order o
         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
+        left join mall_store s on o.store_id = s.id
         WHERE 1=1
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
@@ -285,6 +298,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND o.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>
@@ -488,6 +504,7 @@
     <select id="getYfkOrderUserSum" resultType="int">
         select count(1) from (select o.user_id,count(o.user_id) as counts from mall_order o
         inner join mall_merch_user mu on o.user_id=mu.user_id and o.merch_sn=mu.merch_sn and o.store_id=mu.store_id
+        left join mall_store s on o.store_id = s.id
         where pay_status = 2
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
@@ -495,11 +512,15 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND o.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         group by o.user_id) u
     </select>
     <select id="getOderUserSum" resultType="int">
         select count(1) from (select o.user_id,count(o.user_id) as counts from mall_order o
         inner join mall_merch_user mu on o.user_id=mu.user_id and o.merch_sn=mu.merch_sn and o.store_id=mu.store_id
+        left join mall_store s on o.store_id = s.id
         where 1=1
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
@@ -507,44 +528,62 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             AND o.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         group by o.user_id) u
     </select>
     <select id="getTodayUserOrder" resultType="int">
-        select count(1) from mall_order o where pay_status = 2 and pay_time > date_format(sysdate(), '%Y-%m-%d')
+        select count(1) from mall_order o
+        left join mall_store s on o.store_id = s.id
+        where pay_status = 2 and pay_time > date_format(sysdate(), '%Y-%m-%d')
         <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="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
     </select>
     <select id="getTodayUserSales" resultType="int">
-        select ifnull(sum(actual_price),0) from mall_order o where pay_status = 2 and pay_time > date_format(sysdate(), '%Y-%m-%d')
+        select ifnull(sum(o.actual_price),0) from mall_order o
+        left join mall_store s on o.store_id = s.id  where o.pay_status = 2 and o.pay_time > date_format(sysdate(), '%Y-%m-%d')
         <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="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
     </select>
     <select id="getIncomeSum" resultType="int">
-        select ifnull(sum(actual_price),0) from mall_order where pay_status = 2
+        select ifnull(sum(actual_price),0) from mall_order o
+        left join mall_store s on o.store_id = s.id where o.pay_status = 2
         <if test="storeId != null and storeId != ''">
-            AND store_id = #{storeId}
+            AND o.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            AND merch_sn = #{merchSn}
+            AND o.merch_sn = #{merchSn}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
     </select>
     <select id="getPayedOrderCount" resultType="int">
-        select count(1) from mall_order where pay_status = 2 and is_onffline_order = 0
+        select count(1) from mall_order o
+        left join mall_store s on o.store_id = s.id  where o.pay_status = 2 and o.is_onffline_order = 0
         <if test="storeId != null and storeId != ''">
-            AND store_id = #{storeId}
+            AND o.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            AND merch_sn = #{merchSn}
+            AND o.merch_sn = #{merchSn}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
     </select>
 </mapper>

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

@@ -38,6 +38,7 @@
         <result property="cashRefundFee" column="cash_refund_fee"/>
         <result property="cashRefundFeeType" column="cash_refund_fee_type"/>
         <result property="rate" column="rate"/>
+        <result property="thirdPartyMerchCode" column="thirdPartyMerchCode"/>
     </resultMap>
 
     <select id="queryObject" resultType="com.kmall.admin.entity.OrderRefundEntity">
@@ -96,6 +97,7 @@
         from mall_order_refund r
         left join mall_order o on r.order_id = o.id
         left join mall_user u on o.user_id = u.id
+        left join mall_store s on s.id = o.store_id
         WHERE 1=1
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
@@ -103,6 +105,9 @@
         <if test="userName != null and userName.trim() != ''">
             AND u.username LIKE concat('%',#{userName},'%')
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="orderId != null">
             AND o.id = #{orderId}
         </if>
@@ -148,6 +153,7 @@
         from mall_order_refund r
         left join mall_order o on r.order_id = o.id
         left join mall_user u on o.user_id = u.id
+        left join mall_store s on s.id = o.store_id
         WHERE 1=1
         <if test="orderSn != null and orderSn.trim() != ''">
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
@@ -155,6 +161,9 @@
         <if test="userName != null and userName.trim() != ''">
             AND u.username LIKE concat('%',#{userName},'%')
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="storeId != null and storeId != ''">
             AND o.store_id = #{storeId}
         </if>

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

@@ -190,6 +190,9 @@
         <if test="merchSn != null and merchSn.trim() != '' ">
             AND a.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="goodsId != null">
             AND a.goods_id = #{goodsId}
         </if>
@@ -273,6 +276,9 @@
         <if test="merchSn != null and merchSn.trim() != '' ">
             AND a.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="id != null">
             AND a.id != #{id}
         </if>
@@ -316,6 +322,9 @@
         <if test="merchSn != null and merchSn.trim() != '' ">
             AND a.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <if test="goodsId != null">
             AND a.goods_id = #{goodsId}
         </if>

+ 8 - 0
kmall-admin/src/main/resources/mybatis/mapper/SearchHistoryDao.xml

@@ -22,6 +22,7 @@
         from mall_search_history a
         left join mall_user b on a.user_id = b.id
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         where 1=1
         <if test="storeId != null">
             and d.store_id = #{storeId}
@@ -29,6 +30,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             and d.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -46,6 +50,7 @@
 		select count(distinct a.id)
 		from mall_search_history a
         LEFT JOIN mall_merch_user d ON a.user_id=d.user_id
+        left join mall_store s on d.store_id = s.id
         where 1=1
         <if test="storeId != null">
             and d.store_id = #{storeId}
@@ -53,6 +58,9 @@
         <if test="merchSn != null and merchSn.trim() != ''">
             and d.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
 	</select>
 
     <insert id="save" parameterType="com.kmall.admin.entity.SearchHistoryEntity" useGeneratedKeys="true" keyProperty="id">

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

@@ -95,6 +95,9 @@
 		<if test="storeNumber != null and storeNumber.trim() != ''">
 			AND storeNumber LIKE concat('%',#{store_number},'%')
 		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
 		<if test="id != null">
 			AND id = #{id}
 		</if>
@@ -123,6 +126,9 @@
 		<if test="storeNumber != null and storeNumber.trim() != ''">
 			AND storeNumber LIKE concat('%',#{store_number},'%')
 		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
 		<if test="id != null">
 			AND id = #{id}
 		</if>

+ 198 - 0
kmall-admin/src/main/resources/mybatis/mapper/StoreMngChangeDao.xml

@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.StoreMngChangeDao">
+
+    <resultMap type="com.kmall.admin.entity.StoreMngChangeEntity" id="storeMngChangeMap">
+        <result property="id" column="id"/>
+        <result property="storeChangeNum" column="store_change_num"/>
+        <result property="storeOriginalNum" column="store_original_num"/>
+        <result property="storeValidNum" column="store_valid_num"/>
+        <result property="merchSn" column="merch_sn"/>
+        <result property="storeId" column="store_id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="isValid" column="is_valid"/>
+        <result property="changeType" column="change_type"/>
+        <result property="changeReason" column="change_reason"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="createTime" column="create_time"/>
+        <result property="moderSn" column="moder_sn"/>
+        <result property="modTime" column="mod_time"/>
+        <result property="tstm" column="tstm"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.StoreMngChangeEntity">
+		select
+			`id`,
+			`store_change_num`,
+			`store_original_num`,
+			`store_valid_num`,
+			`merch_sn`,
+			`store_id`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall_store_mng_change
+		where id = #{id}
+	</select>
+
+	<select id="queryObjectByGoodsIdAndType" resultType="com.kmall.admin.entity.StoreMngChangeEntity">
+		select
+		`id`,
+		`store_change_num`,
+		`store_original_num`,
+		`store_valid_num`,
+		`merch_sn`,
+		`store_id`,
+		`goods_id`,
+		`is_valid`,
+		`change_type`,
+		`change_reason`,
+		`creater_sn`,
+		`create_time`,
+		`moder_sn`,
+		`mod_time`,
+		`tstm`
+		from mall_store_mng_change
+		where change_type = #{changeType} and goods_id = #{goodsId}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.StoreMngChangeEntity">
+		select
+			c.`id`,
+			c.`store_change_num`,
+			c.`store_original_num`,
+			c.`store_valid_num`,
+			c.`merch_sn`,
+			c.`store_id`,
+			c.`goods_id`,
+			c.`is_valid`,
+			c.`change_type`,
+			c.`change_reason`,
+			c.`creater_sn`,
+			c.`create_time`,
+			c.`moder_sn`,
+    		c.`mod_time`,
+			s.store_name storeName,
+			g.name goodsName,
+			m.merch_name merchName
+		from mall_store_mng_change c left join mall_merch m on c.merch_sn = m.merch_sn
+		left join mall_store s on s.id = c.store_id
+		left join mall_goods g on c.goods_id = g.id
+		WHERE 1=1
+		<if test="goodsId != null and goodsId != ''">
+			AND c.goods_id = #{goodsId}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND c.store_id = #{storeId}
+		</if>
+		<if test="changeType != null and changeType != ''">
+			AND c.change_type = #{changeType}
+		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND s.third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+	
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_store_mng_change c left join mall_merch m on c.merch_sn = m.merch_sn
+		left join mall_store s on s.id = c.store_id
+		left join mall_goods g on c.goods_id = g.id
+		WHERE 1=1
+		<if test="goodsId != null and goodsId != ''">
+			AND c.goods_id = #{goodsId}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND c.store_id = #{storeId}
+		</if>
+		<if test="changeType != null and changeType != ''">
+			AND c.change_type = #{changeType}
+		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND s.third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
+	</select>
+	 
+	<insert id="save" parameterType="com.kmall.admin.entity.StoreMngChangeEntity">
+		insert into mall_store_mng_change(
+			`store_change_num`,
+			`store_original_num`,
+			`store_valid_num`,
+			`merch_sn`,
+			`store_id`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{storeChangeNum},
+			#{storeOriginalNum},
+			#{storeValidNum},
+			#{merchSn},
+			#{storeId},
+			#{goodsId},
+			#{isValid},
+			#{changeType},
+			#{changeReason},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+	 
+	<update id="update" parameterType="com.kmall.admin.entity.StoreMngChangeEntity">
+		update mall_store_mng_change 
+		<set>
+			<if test="storeChangeNum != null">`store_change_num` = #{storeChangeNum}, </if>
+			<if test="storeOriginalNum != null">`store_original_num` = #{storeOriginalNum}, </if>
+			<if test="storeValidNum != null">`store_valid_num` = #{storeValidNum}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="storeId != null">`store_id` = #{storeId}, </if>
+			<if test="goodsId != null">`goods_id` = #{goodsId}, </if>
+			<if test="isValid != null">`is_valid` = #{isValid}, </if>
+			<if test="changeType != null">`change_type` = #{changeType}, </if>
+			<if test="changeReason != null">`change_reason` = #{changeReason}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
+			<if test="modTime != null">`mod_time` = #{modTime}, </if>
+			<if test="tstm != null">`tstm` = #{tstm}</if>
+		</set>
+		where id = #{id}
+	</update>
+	
+	<delete id="delete">
+		delete from mall_store_mng_change where id = #{value}
+	</delete>
+	
+	<delete id="deleteBatch">
+		delete from mall_store_mng_change where id in 
+		<foreach item="id" collection="array" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
+
+</mapper>

+ 25 - 6
kmall-admin/src/main/resources/mybatis/mapper/SupplierDao.xml

@@ -11,6 +11,7 @@
         <result property="childSupplierFlag" column="child_supplier_flag"/>
         <result property="sortOrder" column="sort_order"/>
         <result property="isShow" column="is_show"/>
+		<result property="thirdPartyMerchCode" column="third_party_merch_code"/>
     </resultMap>
 
 	<select id="queryObject" resultType="com.kmall.admin.entity.SupplierEntity">
@@ -21,7 +22,8 @@
 			`child_supplier_name`,
 			`child_supplier_flag`,
 			`sort_order`,
-			`is_show`
+			`is_show`,
+			third_party_merch_code
 		from mall_supplier
 		where id = #{id}
 	</select>
@@ -34,12 +36,16 @@
 		`child_supplier_name`,
 		`child_supplier_flag`,
 		`sort_order`,
-		`is_show`
+		`is_show`,
+		third_party_merch_code
 		from mall_supplier
 		where child_supplier_name = #{supplierName}
 		<if test="merchSn != null and merchSn.trim() != ''">
 			AND level_merch_sn = #{merchSn}
 		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
 	</select>
 
 	<select id="queryList" resultType="com.kmall.admin.entity.SupplierEntity">
@@ -50,12 +56,18 @@
     		`child_supplier_name`,
     		`child_supplier_flag`,
     		`sort_order`,
-    		`is_show`
+    		`is_show`,third_party_merch_code
 		from mall_supplier
 		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND child_supplier_name like concat('%',#{name},'%')
+		</if>
 		<if test="merchSn != null and merchSn.trim() != ''">
 			AND level_merch_sn = #{merchSn}
 		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
                 order by ${sidx} ${order}
@@ -72,9 +84,15 @@
  	<select id="queryTotal" resultType="int">
 		select count(*) from mall_supplier
 		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND child_supplier_name like concat('%',#{name},'%')
+		</if>
 		<if test="merchSn != null and merchSn.trim() != ''">
 			AND level_merch_sn = #{merchSn}
 		</if>
+		<if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+			AND third_party_merch_code = #{thirdPartyMerchCode}
+		</if>
 	</select>
 	 
 	<insert id="save" parameterType="com.kmall.admin.entity.SupplierEntity">
@@ -84,14 +102,14 @@
 			`child_supplier_name`,
 			`child_supplier_flag`,
 			`sort_order`,
-			`is_show`)
+			`is_show`,third_party_merch_code)
 		values(
 			#{levelMerchSn},
 			#{levelMerchFlag},
 			#{childSupplierName},
 			#{childSupplierFlag},
 			#{sortOrder},
-			#{isShow})
+			#{isShow},#{thirdPartyMerchCode})
 	</insert>
 	 
 	<update id="update" parameterType="com.kmall.admin.entity.SupplierEntity">
@@ -102,7 +120,8 @@
 			<if test="childSupplierName != null">`child_supplier_name` = #{childSupplierName}, </if>
 			<if test="childSupplierFlag != null">`child_supplier_flag` = #{childSupplierFlag}, </if>
 			<if test="sortOrder != null">`sort_order` = #{sortOrder}, </if>
-			<if test="isShow != null">`is_show` = #{isShow}</if>
+			<if test="isShow != null">`is_show` = #{isShow},</if>
+			<if test="thirdPartyMerchCode != null">`third_party_merch_code` = #{thirdPartyMerchCode}</if>
 		</set>
 		where id = #{id}
 	</update>

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

@@ -68,13 +68,18 @@
         mall_user.nickname user_name
         from sys_sms_log
         LEFT JOIN mall_user ON mall_user.id = sys_sms_log.user_id
+        left join mall_store s on sys_sms_log.store_id = s.id
         WHERE 1=1
         <if test="storeId != null and storeId != ''">
-            AND store_id = #{storeId}
+            AND sys_sms_log.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            AND merch_sn = #{merchSn}
+            AND sys_sms_log.merch_sn = #{merchSn}
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
+
         <if test="sendId != null and sendId != ''">
             AND sys_sms_log.send_id LIKE concat('%',#{sendId},'%')
         </if>
@@ -93,16 +98,20 @@
 
     <select id="queryTotal" resultType="int">
         select count(*) from sys_sms_log
+        left join mall_store s on sys_sms_log.store_id = s.id
         WHERE 1=1
         <if test="storeId != null and storeId != ''">
-            AND store_id = #{storeId}
+            AND sys_sms_log.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            AND merch_sn = #{merchSn}
+            AND sys_sms_log.merch_sn = #{merchSn}
         </if>
         <if test="sendId != null and sendId != ''">
             AND send_id LIKE concat('%',#{sendId},'%')
         </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
+        </if>
     </select>
 
     <insert id="save" parameterType="com.kmall.manager.entity.SysSmsLogEntity">

+ 6 - 1
kmall-admin/src/main/resources/mybatis/mapper/SysUserDao.xml

@@ -15,11 +15,13 @@
 	<select id="queryList" resultType="com.kmall.admin.fromcomm.entity.SysUserEntity">
 		SELECT
 		u.*,
-		( SELECT d.NAME FROM sys_dept d WHERE d.dept_id = u.dept_id ) deptName,
+		( SELECT d.NAME FROM sys_dept d WHERE d.dept_id = u.dept_id ) deptName,m.merch_name merchName,s.store_name storeName,
 		ur.role_id
 		FROM
 		sys_user u
 		LEFT JOIN sys_user_role ur ON u.user_id = ur.user_id
+		left join mall_merch m on m.merch_sn = u.merch_sn
+		left join mall_store s on s.id = u.store_id
 		<where>
 			<if test="createUserId != null">
 				and `create_user_id` = #{createUserId} 
@@ -88,6 +90,7 @@
 			`dept_id`,
 			`store_id`,
 			`merch_sn`,
+			third_party_merch_code,
 			`role_type`,
 			`create_time`
 		)
@@ -103,6 +106,7 @@
 			#{deptId},
 			#{storeId},
 			#{merchSn},
+			#{thirdPartyMerchCode},
 			#{roleType},
 			#{createTime}
 		)
@@ -118,6 +122,7 @@
 			<if test="deptId != null">`dept_id` = #{deptId}, </if>
 			<if test="storeId != null">`store_id` = #{storeId}, </if>
 			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="thirdPartyMerchCode != null">`third_party_merch_code` = #{thirdPartyMerchCode}, </if>
 			<if test="roleType != null">`role_type` = #{roleType}, </if>
 		</set>
 		where user_id = #{userId} 

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

@@ -89,7 +89,7 @@
 		from third_merchant_biz
 		WHERE 1=1
 		<if test="name != null and name.trim() != ''">
-			AND name LIKE concat('%',#{name},'%')
+			AND third_party_merch_name LIKE concat('%',#{name},'%')
 		</if>
 		<if test="merchSn != null and merchSn.trim() != ''">
 			and merch_sn = #{merchSn}
@@ -114,7 +114,7 @@
 		select count(*) from third_merchant_biz
 		WHERE 1=1
         <if test="name != null and name.trim() != ''">
-            AND name LIKE concat('%',#{name},'%')
+            AND third_party_merch_name LIKE concat('%',#{name},'%')
         </if>
 		<if test="merchSn != null and merchSn.trim() != ''">
 			and merch_sn = #{merchSn}

+ 18 - 10
kmall-admin/src/main/resources/mybatis/mapper/UserDao.xml

@@ -32,20 +32,24 @@
         mall_user.*,
         mall_user_level.name levelName
         from mall_user
-        LEFT JOIN mall_merch_user ON mall_user.id=mall_merch_user.user_id
+        LEFT JOIN mall_merch_user mu ON mall_user.id=mu.user_id
         LEFT JOIN mall_user_level ON mall_user.user_level_id=mall_user_level.id
+        left join mall_store s on mu.store_id = s.id
         WHERE 1=1
-        <if test="storeId != null">
-            and store_id = #{storeId}
+        <if test="storeId != null and storeId != ''">
+            and mu.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            and merch_sn = #{merchSn}
+            and mu.merch_sn = #{merchSn}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
         <if test="username != null and username.trim() != ''">
-            and username like concat('%',#{username},'%')
+            and mall_user.username like concat('%',#{username},'%')
         </if>
         <if test="mobile != null and mobile.trim() != ''">
-            and mobile like concat('%',#{mobile},'%')
+            and mall_user.mobile like concat('%',#{mobile},'%')
         </if>
         <choose>
             <when test="sidx != null and sidx.trim() != ''">
@@ -62,14 +66,18 @@
 
     <select id="queryTotal" resultType="int">
         select count(distinct mall_user.id) from mall_user
-        LEFT JOIN mall_merch_user ON mall_user.id=mall_merch_user.user_id
+        LEFT JOIN mall_merch_user mu ON mall_user.id=mu.user_id
         LEFT JOIN mall_user_level ON mall_user.user_level_id=mall_user_level.id
+        left join mall_store s on mu.store_id = s.id
         WHERE 1=1
-        <if test="storeId != null">
-            and store_id = #{storeId}
+        <if test="storeId != null and storeId != ''">
+            and mu.store_id = #{storeId}
         </if>
         <if test="merchSn != null and merchSn.trim() != ''">
-            and merch_sn = #{merchSn}
+            and mu.merch_sn = #{merchSn}
+        </if>
+        <if test="thirdPartyMerchCode != null and thirdPartyMerchCode.trim() != ''">
+            AND s.third_party_merch_code = #{thirdPartyMerchCode}
         </if>
         <if test="username != null and username.trim() != ''">
             and username like concat('%',#{username},'%')

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

@@ -161,7 +161,7 @@
                             <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="merchSn">
+                <Form-item label="第三方商户" prop="thirdPartyMerchCode">
                     <i-select v-model="goods.thirdPartyMerchCode" placeholder="第三方商户" @on-change="showStockShare" label-in-value>
                         <i-option v-for="thirdMerchant in thirdMerchantBizList" :value="thirdMerchant.thirdPartyMerchCode" :key="thirdMerchant.thirdPartyMerchCode">{{thirdMerchant.thirdPartyMerchName}}</i-option>
                     </i-select>

+ 99 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/mngchange.html

@@ -0,0 +1,99 @@
+<!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-select v-model="q.goodsId" filterable placeholder="商品" label-in-value>
+                        <i-option v-for="goods in goodss" :value="goods.id" :key="goods.id">{{goods.name}}</i-option>
+                    </i-select>
+                </i-col>
+                <i-col span="4">
+                    <i-select v-model="q.changeType" placeholder="库存变动类型"
+                              label-in-value>
+                        <i-option v-for="macro in macros" :value="macro.value" :key="macro.id">{{macro.name}}
+                        </i-option>
+                    </i-select>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("mngchange:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("mngchange:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("mngchange:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-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="mngChange" :rules="ruleValidate" :label-width="80">
+            <Form-item label="商品库存变化数" prop="changeNum">
+                <i-input v-model="mngChange.changeNum" placeholder="商品库存变化数"/>
+            </Form-item>
+            <Form-item label="商品原库存数" prop="originalNum">
+                <i-input v-model="mngChange.originalNum" placeholder="商品原库存数"/>
+            </Form-item>
+            <Form-item label="商品库存可用数" prop="validNum">
+                <i-input v-model="mngChange.validNum" placeholder="商品库存可用数"/>
+            </Form-item>
+            <Form-item label="商户编号" prop="merchSn">
+                <i-input v-model="mngChange.merchSn" placeholder="商户编号"/>
+            </Form-item>
+            <Form-item label="第三方商户代码" prop="thirdPartyMerchCode">
+                <i-input v-model="mngChange.thirdPartyMerchCode" placeholder="第三方商户代码"/>
+            </Form-item>
+            <Form-item label="商品id" prop="goodsId">
+                <i-input v-model="mngChange.goodsId" placeholder="商品id"/>
+            </Form-item>
+            <Form-item label="是否有效,0:有效,1:无效" prop="isValid">
+                <i-input v-model="mngChange.isValid" placeholder="是否有效,0:有效,1:无效"/>
+            </Form-item>
+            <Form-item label="变动类型 0:还原 1:扣减" prop="changeType">
+                <i-input v-model="mngChange.changeType" placeholder="变动类型 0:还原 1:扣减"/>
+            </Form-item>
+            <Form-item label="变动原因" prop="changeReason">
+                <i-input v-model="mngChange.changeReason" placeholder="变动原因"/>
+            </Form-item>
+            <Form-item label="创建人编号" prop="createrSn">
+                <i-input v-model="mngChange.createrSn" placeholder="创建人编号"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="mngChange.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="mngChange.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modTime">
+                <i-input v-model="mngChange.modTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="时间戳" prop="tstm">
+                <i-input v-model="mngChange.tstm" placeholder="时间戳"/>
+            </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/shop/mngchange.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 99 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/storemngchange.html

@@ -0,0 +1,99 @@
+<!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-select v-model="q.goodsId" filterable placeholder="商品" label-in-value>
+                        <i-option v-for="goods in goodss" :value="goods.id" :key="goods.id">{{goods.name}}</i-option>
+                    </i-select>
+                </i-col>
+                <i-col span="4">
+                    <i-select v-model="q.changeType" placeholder="库存变动类型"
+                              label-in-value>
+                        <i-option v-for="macro in macros" :value="macro.value" :key="macro.id">{{macro.name}}
+                        </i-option>
+                    </i-select>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                #if($shiro.hasPermission("storemngchange:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("storemngchange:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("storemngchange:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-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="storeMngChange" :rules="ruleValidate" :label-width="80">
+            <Form-item label="门店库存变化数" prop="storeChangeNum">
+                <i-input v-model="storeMngChange.storeChangeNum" placeholder="门店库存变化数"/>
+            </Form-item>
+            <Form-item label="门店原库存数" prop="storeOriginalNum">
+                <i-input v-model="storeMngChange.storeOriginalNum" placeholder="门店原库存数"/>
+            </Form-item>
+            <Form-item label="门店库存可用数" prop="storeValidNum">
+                <i-input v-model="storeMngChange.storeValidNum" placeholder="门店库存可用数"/>
+            </Form-item>
+            <Form-item label="商户编号" prop="merchSn">
+                <i-input v-model="storeMngChange.merchSn" placeholder="商户编号"/>
+            </Form-item>
+            <Form-item label="门店编号" prop="storeId">
+                <i-input v-model="storeMngChange.storeId" placeholder="门店编号"/>
+            </Form-item>
+            <Form-item label="商品id" prop="goodsId">
+                <i-input v-model="storeMngChange.goodsId" placeholder="商品id"/>
+            </Form-item>
+            <Form-item label="是否有效,0:有效,1:无效" prop="isValid">
+                <i-input v-model="storeMngChange.isValid" placeholder="是否有效,0:有效,1:无效"/>
+            </Form-item>
+            <Form-item label="变动类型 0:还原 1:扣减" prop="changeType">
+                <i-input v-model="storeMngChange.changeType" placeholder="变动类型 0:还原 1:扣减"/>
+            </Form-item>
+            <Form-item label="变动原因" prop="changeReason">
+                <i-input v-model="storeMngChange.changeReason" placeholder="变动原因"/>
+            </Form-item>
+            <Form-item label="创建人编号" prop="createrSn">
+                <i-input v-model="storeMngChange.createrSn" placeholder="创建人编号"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="storeMngChange.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="storeMngChange.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modTime">
+                <i-input v-model="storeMngChange.modTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="时间戳" prop="tstm">
+                <i-input v-model="storeMngChange.tstm" placeholder="时间戳"/>
+            </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/shop/storemngchange.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 6 - 1
kmall-admin/src/main/webapp/WEB-INF/page/shop/supplier.html

@@ -35,10 +35,15 @@
         <p slot="title">{{title}}</p>
 		<i-form ref="formValidate" :model="supplier" :rules="ruleValidate" :label-width="150">
             <Form-item label="一级商户编号" prop="levelMerchSn">
-                <i-select v-model="supplier.levelMerchSn" filterable placeholder="一级商户编号" label-in-value>
+                <i-select v-model="supplier.levelMerchSn" filterable placeholder="一级商户编号" @on-change="showMerchInfo" 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="merchSn">
+                <i-select v-model="supplier.thirdPartyMerchCode" placeholder="第三方商户" label-in-value>
+                    <i-option v-for="thirdMerchant in thirdMerchantBizList" :value="thirdMerchant.thirdPartyMerchCode" :key="thirdMerchant.thirdPartyMerchCode">{{thirdMerchant.thirdPartyMerchName}}</i-option>
+                </i-select>
+            </Form-item>
 
             <!--<Form-item label="一级商户标识" prop="levelMerchFlag">-->
                 <!--<i-input v-model="supplier.levelMerchFlag" placeholder="一级商户标识" readonly/>-->

+ 11 - 4
kmall-admin/src/main/webapp/WEB-INF/page/sys/user.html

@@ -52,19 +52,26 @@
                 </i-select>
             </Form-item>
             <Form-item label="数据角色类型" prop="roleType">
-                <Radio-group v-model="user.roleType">
+                <Radio-group v-model="user.roleType" @on-change="changeRole">
                     <Radio label="1">操作员</Radio>
                     <Radio label="2">店员</Radio>
                     <Radio label="3">商户管理员</Radio>
+                    <Radio label="4">第三方商户管理员</Radio>
                 </Radio-group>
             </Form-item>
-            <Form-item label="商户" prop="merchSn">
+            <Form-item label="商户" prop="merchSn" v-show="isMerchShow">
                 <i-select v-model="user.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="user.storeId" filterable placeholder="门店" label-in-value>
+            <Form-item label="第三方商户" prop="thirdPartyMerchCode" v-show="isThirdMerchShow">
+                <i-select v-model="user.thirdPartyMerchCode" filterable placeholder="商户" @on-change="getStoresByThirdMerch" label-in-value>
+                    <i-option v-for="thirdMerchant in thirdMerchantBizList" :value="thirdMerchant.thirdPartyMerchCode"
+                              :key="thirdMerchant.thirdPartyMerchCode">{{thirdMerchant.thirdPartyMerchName}}</i-option>
+                </i-select>
+            </Form-item>
+            <Form-item label="门店" prop="storeId" v-show="isStoreShow">
+                <i-select v-model="user.storeId" placeholder="门店" label-in-value>
                     <i-option v-for="store in storeList" :value="store.id" :key="store.id">{{store.storeName}}</i-option>
                 </i-select>
             </Form-item>

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

@@ -90,7 +90,7 @@
                     data-id="main" seamless></iframe>
         </div>
         <div class="footer">
-            <div class="pull-right">&copy; 2017-2017 <a href="http://fly2you.cn" target="_blank">中网科技(深圳)有限公司</a>
+            <div class="pull-right">&copy; 2017-2017 <a href="#" target="_blank">中网科技(深圳)有限公司</a>
             </div>
         </div>
     </div>

+ 3 - 3
kmall-admin/src/main/webapp/js/shop/goods.js

@@ -265,8 +265,8 @@ var vm = new Vue({
                 vm.brands = r.list;
             });
         },*/
-        getSuppliers: function (merchSn) {
-            $.get("../supplier/queryAll?merchSn=" + merchSn, function (r) {
+        getSuppliers: function (thirdMerchantCode) {
+            $.get("../supplier/queryAll?thirdPartyMerchCode=" + thirdMerchantCode, function (r) {
                 vm.suppliers = r.list;
             });
         },
@@ -503,6 +503,7 @@ var vm = new Vue({
                     vm.goods.goodsNumber= '';
                 }
             });
+            vm.getSuppliers(thirdMerchantCode);
         },
         changeGoodsBizType: function(opt) {
             var goodsBizType = opt.value;
@@ -663,7 +664,6 @@ var vm = new Vue({
             // vm.getCategories(merchSn);
             // vm.getFreights(merchSn);
             // vm.getBrand(merchSn);
-            vm.getSuppliers(merchSn);
             vm.getThirdMerchantBizList(merchSn);
         },
         // getCategories: function (merchSn) {

+ 198 - 0
kmall-admin/src/main/webapp/js/shop/mngchange.js

@@ -0,0 +1,198 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mngchange/list',
+        datatype: "json",
+        colModel: [
+			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+            {label: '变动类型', name: 'changeType', index: 'change_type', width: 70, align: 'center',
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '还原';
+                    } else if (value == '1') {
+                        return '扣减';
+                    } else if (value == '2') {
+                        return '新增调整';
+                    } else if (value == '3') {
+                        return '更新库存增加';
+                    } else if (value == '4') {
+                        return '更新库存减少';
+                    }
+                    return '-';
+                }
+            },
+            {label: '变动原因', name: 'changeReason', index: 'change_reason', width: 90, align: 'center'},
+			{label: '商品库存变化数', name: 'changeNum', index: 'change_num', width: 70, align: 'center'},
+			{label: '商品原库存数', name: 'originalNum', index: 'original_num', width: 65, align: 'center'},
+			{label: '商品库存可用数', name: 'validNum', index: 'valid_num', width: 70, align: 'center'},
+			{label: '所属商户', name: 'merchName', index: 'merchName', width: 70, align: 'center'},
+			{label: '第三方商户代码', name: 'thirdPartyMerchCode', index: 'third_party_merch_code', width: 70, align: 'center'},
+            {label: '第三方商户名称', name: 'thirdPartyMerchName', index: 'thirdPartyMerchName', width: 70, align: 'center'},
+            {label: '所属商品', name: 'goodsName', index: 'goodsName', width: 140, align: 'center'},
+            // {label: '是否有效', name: 'isValid', index: 'is_valid', width: 50, align: 'center',
+            //     formatter: function (value) {
+            //         if (value == '0') {
+            //             return '有效';
+            //         } else if (value == '1') {
+            //             return '无效';
+            //         }
+            //         return '-';
+            //     }
+            // },
+			{label: '创建人', name: 'createrSn', index: 'creater_sn', width: 75, align: 'center'},
+			{label: '创建时间', name: 'createTime', index: 'create_time', width: 90, align: 'center', formatter: function (value) {
+                return transDate(value,'yyyy-MM-dd hh:mm:ss');
+            }},
+			{label: '修改人', name: 'moderSn', index: 'moder_sn', width: 75, align: 'center'},
+			{label: '修改时间', name: 'modTime', index: 'mod_time', width: 90, align: 'center', 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,
+		mngChange: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+            goodsId: '',
+            changeType: ''
+		},
+        goodss: [],
+        macros: []
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mngChange = {};
+		},
+		update: function (event) {
+            let id = getSelectedRow();
+			if (id == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(id)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mngChange.id == null ? "../mngchange/save" : "../mngchange/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mngChange),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let ids = getSelectedRows();
+			if (ids == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mngchange/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(ids),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(id){
+			$.get("../mngchange/info/"+id, function (r) {
+                vm.mngChange = r.mngChange;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                goodsId: '',
+                changeType: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'goodsId': vm.q.goodsId,'changeType': vm.q.changeType},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	},
+    mounted() {
+        // this.uploadList = this.$refs.upload.fileList;
+        /*$.get("../category/getCategorySelect", function (r) {
+            vm.queryCategories = r.list;
+        });*/
+        $.get("../goods/queryAll", function (r) {
+            vm.goodss = r.list;
+        });
+
+        $.get("../sys/macro/queryMacrosByValue?value=changeType", function (r) {
+            vm.macros = r.list;
+        });
+
+    }
+});

+ 197 - 0
kmall-admin/src/main/webapp/js/shop/storemngchange.js

@@ -0,0 +1,197 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../storemngchange/list',
+        datatype: "json",
+        colModel: [
+			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+            {label: '变动类型', name: 'changeType', index: 'change_type', width: 60,
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '还原';
+                    } else if (value == '1') {
+                        return '扣减';
+                    } else if (value == '2') {
+                        return '新增调整';
+                    } else if (value == '3') {
+                        return '更新库存增加';
+                    } else if (value == '4') {
+                        return '更新库存减少';
+                    }
+                    return '-';
+                }, align: 'center'
+            },
+            {label: '变动原因', name: 'changeReason', index: 'change_reason', width: 90, align: 'center'},
+			{label: '门店库存变化数', name: 'storeChangeNum', index: 'store_change_num', width: 70, align: 'center'},
+			{label: '门店原库存数', name: 'storeOriginalNum', index: 'store_original_num', width: 65, align: 'center'},
+			{label: '门店库存可用数', name: 'storeValidNum', index: 'store_valid_num', width: 70, align: 'center'},
+			{label: '所属商户', name: 'merchName', index: 'merchName', width: 70, align: 'center'},
+			{label: '所属门店', name: 'storeName', index: 'storeName', width: 80, align: 'center'},
+			{label: '所属商品', name: 'goodsName', index: 'goodsName', width: 140, align: 'center'},
+            // {label: '是否有效', name: 'isValid', index: 'is_valid', width: 60, align: 'center',
+            //     formatter: function (value) {
+            //         if (value == '0') {
+            //             return '有效';
+            //         } else if (value == '1') {
+            //             return '无效';
+            //         }
+            //         return '-';
+            //     }
+            // },
+			{label: '创建人', name: 'createrSn', index: 'creater_sn', width: 75, align: 'center'},
+			{label: '创建时间', name: 'createTime', index: 'create_time', width: 90, align: 'center', formatter: function (value) {
+                return transDate(value,'yyyy-MM-dd hh:mm:ss');
+            }},
+			{label: '修改人', name: 'moderSn', index: 'moder_sn', width: 75, align: 'center'},
+			{label: '修改时间', name: 'modTime', index: 'mod_time', width: 90, align: 'center', 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,
+		storeMngChange: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+            goodsId: '',
+            changeType: ''
+		},
+        goodss: [],
+        macros: []
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.storeMngChange = {};
+		},
+		update: function (event) {
+            let id = getSelectedRow();
+			if (id == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(id)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.storeMngChange.id == null ? "../storemngchange/save" : "../storemngchange/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.storeMngChange),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let ids = getSelectedRows();
+			if (ids == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../storemngchange/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(ids),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(id){
+			$.get("../storemngchange/info/"+id, function (r) {
+                vm.storeMngChange = r.storeMngChange;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                goodsId: '',
+                changeType: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'goodsId': vm.q.goodsId,'changeType': vm.q.changeType},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	},
+    mounted() {
+        // this.uploadList = this.$refs.upload.fileList;
+        /*$.get("../category/getCategorySelect", function (r) {
+            vm.queryCategories = r.list;
+        });*/
+        $.get("../goods/queryAll", function (r) {
+            vm.goodss = r.list;
+        });
+
+        $.get("../sys/macro/queryMacrosByValue?value=changeType", function (r) {
+            vm.macros = r.list;
+        });
+
+    }
+});

+ 14 - 1
kmall-admin/src/main/webapp/js/shop/supplier.js

@@ -6,6 +6,7 @@ $(function () {
 			{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
 			{label: '一级商户编号', name: 'levelMerchSn', index: 'level_merch_sn', width: 80, align: 'center'},
 			{label: '一级商户标识', name: 'levelMerchFlag', index: 'level_merch_flag', width: 80, align: 'center'},
+            {label: '所属第三方商户', name: 'thirdPartyMerchCode', index: 'thirdPartyMerchCode', width: 80, align: 'center'},
 			{label: '二级供货商名称', name: 'childSupplierName', index: 'child_supplier_sn', width: 80, align: 'center'},
 			{label: '二级供货商标识', name: 'childSupplierFlag', index: 'child_supplier_flag', width: 80, align: 'center'},
 			{label: '排序', name: 'sortOrder', index: 'sort_order', width: 80, align: 'center'},
@@ -57,7 +58,8 @@ let vm = new Vue({
 		q: {
 		    name: ''
 		},
-        merchList: []
+        merchList: [],
+        thirdMerchantBizList: []
 	},
 	methods: {
 		query: function () {
@@ -68,6 +70,7 @@ let vm = new Vue({
 			vm.title = "新增";
 			vm.supplier = {isShow:0};
             vm.merchList = [];
+            vm.thirdMerchantBizList = [];
             vm.getMerchList();
 		},
 		update: function (event) {
@@ -77,10 +80,20 @@ let vm = new Vue({
 			}
 			vm.showList = false;
             vm.title = "修改";
+            vm.thirdMerchantBizList = [];
 
             vm.getInfo(id);
             vm.getMerchList();
 		},
+        showMerchInfo:function(opt){
+            var merchSn = opt.value;
+            vm.getThirdMerchantBizList(merchSn);
+        },
+        getThirdMerchantBizList: function(merchSn) {
+            $.get("../thirdmerchantbiz/queryAll?merchSn=" + merchSn, function (r) {
+                vm.thirdMerchantBizList = r.list;
+            });
+        },
 		saveOrUpdate: function (event) {
             let url = vm.supplier.id == null ? "../supplier/save" : "../supplier/update";
 			$.ajax({

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

@@ -16,15 +16,15 @@ $(function () {
                     }
                     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: 'isStoreUserShare', index: 'isStoreUserShare', 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) {

+ 71 - 5
kmall-admin/src/main/webapp/js/sys/user.js

@@ -5,7 +5,33 @@ $(function () {
         colModel: [
             {label: '用户ID', name: 'userId', index: "user_id", key: true, hidden: true},
             {label: '用户名', name: 'username', width: 75},
-            // {label: '所属部门', name: 'deptName', width: 75},
+            {label: '所属商户', name: 'merchName', width: 75,
+                formatter: function (value) {
+                    if (value == '' || value == null) {
+                        return '-';
+                    }else {
+                        return value;
+                    }
+                }
+            },
+            {label: '所属第三方商户', name: 'thirdPartyMerchCode', width: 75,
+                formatter: function (value) {
+                    if (value == '' || value == null) {
+                        return '-';
+                    }else {
+                        return value;
+                    }
+                }
+            },
+            {label: '所属门店', name: 'storeName', width: 75,
+                formatter: function (value) {
+                    if (value == '' || value == null) {
+                        return '-';
+                    }else {
+                        return value;
+                    }
+                }
+            },
             {label: '邮箱', name: 'email', width: 90},
             {label: '手机号', name: 'mobile', width: 100},
             {
@@ -89,7 +115,11 @@ var vm = new Vue({
             ]*/
         },
         storeList: [],
-        merchList: []
+        merchList: [],
+        thirdMerchantBizList: [],
+        isMerchShow:false,
+        isStoreShow:false,
+        isThirdMerchShow:false
     },
     methods: {
         query: function () {
@@ -102,12 +132,37 @@ var vm = new Vue({
             vm.user = {status: 1, roleIdList: [], deptId: '', deptName: '', storeId: '', roleType: 2,merchSn:''};
             vm.storeList = [];
             vm.merchList = [];
+            vm.thirdMerchantBizList = [];
             //获取角色信息
             this.getRoleList();
             // vm.getDept();
             //vm.getStoreList();
+            vm.changeRole(2);
             vm.getMerchList();
         },
+        changeRole:function (opt) {
+           var value = opt;
+           if(value == 1){
+               vm.isMerchShow = false;
+               vm.isStoreShow = false;
+               vm.isThirdMerchShow = false;
+           }
+           if(value == 2){//店员
+               vm.isMerchShow = true;
+               vm.isThirdMerchShow = true;
+               vm.isStoreShow = true;
+           }
+            if(value == 3){//一级商户
+                vm.isMerchShow = true;
+                vm.isThirdMerchShow = false;
+                vm.isStoreShow = false;
+            }
+            if(value == 4){//第三方商户
+                vm.isMerchShow = true;
+                vm.isThirdMerchShow = true;
+                vm.isStoreShow = false;
+            }
+        },
         getStoreList: function() {
             $.get("../store/queryAll", function (r) {
                 vm.storeList = r.list;
@@ -115,9 +170,7 @@ var vm = new Vue({
         },
         getStoresByMerch: function (opt) {
             var value = opt.value;
-            $.get("../store/getStoresByMerch?merchSn=" + value, function (r) {
-                vm.storeList = r.list;
-            });
+            vm.getThirdMerchantBizList(value);
         },
         getMerchList: function() {
             $.get("../merch/queryAll", function (r) {
@@ -143,6 +196,7 @@ var vm = new Vue({
 
             vm.showList = false;
             vm.title = "修改";
+            vm.thirdMerchantBizList = [];
 
             $.get("../sys/user/info/" + userId, function (r) {
                 vm.user = r.user;
@@ -150,6 +204,7 @@ var vm = new Vue({
                 // vm.getStoreList();
                 vm.getStoresByMerchAndUpd(r.user.merchSn);
                 vm.getRoleList();
+                vm.changeRole(r.user.roleType);
                 vm.getMerchList();
                 // vm.getDept();
             });
@@ -160,6 +215,17 @@ var vm = new Vue({
                 vm.storeList = r.list;
             });
         },
+        getStoresByThirdMerch:function (opt) {
+            var value = opt.value;
+            $.get("../store/getStoresByThirdMerch?thirdPartyMerchCode=" + value, function (r) {
+                vm.storeList = r.list;
+            });
+        },
+        getThirdMerchantBizList: function(merchSn) {
+            $.get("../thirdmerchantbiz/queryAll?merchSn=" + merchSn, function (r) {
+                vm.thirdMerchantBizList = r.list;
+            });
+        },
         del: function () {
             var userIds = getSelectedRows();
             if (userIds == null) {

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

@@ -74,7 +74,7 @@
     </div>
     <div class="signup-footer">
         <div class="pull-left" style="margin-left: 520px;">
-            2018~2018 &copy; <a href="http://fly2you.cn" target="_blank">中网科技(深圳)有限公司
+            2018~2018 &copy; <a href="#" target="_blank">中网科技(深圳)有限公司</a>
         </div>
     </div>
 </div>

+ 2 - 2
kmall-api/src/main/java/com/kmall/api/api/ApiOrderController.java

@@ -277,14 +277,14 @@ public class ApiOrderController extends ApiBaseAction {
                         orderVo.setOrder_status(402);
                     }
                     orderVo.setPay_status(4);
-                    orderService.cancelOrder(orderVo);
+                    orderService.cancelOrder(getUserId(), orderVo);
                     return toResponsMsgSuccess("取消成功");
                 } else {
                     return toResponsFail("取消失败");
                 }
             } else {
                 orderVo.setOrder_status(101);
-                orderService.cancelOrder(orderVo);
+                orderService.cancelOrder(getUserId(),orderVo);
                 return toResponsSuccess("取消成功");
             }
         } catch (Exception e) {

+ 10 - 6
kmall-api/src/main/java/com/kmall/api/dao/ApiMngChangeMapper.java

@@ -1,11 +1,15 @@
 package com.kmall.api.dao;
 
-import com.kmall.api.entity.AddressVo;
-import com.kmall.api.entity.MallMngChange;
+import com.kmall.api.entity.MngChangeVo;
 import com.kmall.manager.dao.BaseDao;
 
-public interface ApiMngChangeMapper extends BaseDao<AddressVo> {
+/**
+ * 库存变化表Dao
+ *
+ * @author huangyq
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public interface ApiMngChangeMapper extends BaseDao<MngChangeVo> {
 
-    MallMngChange selectByPrimaryKey(Integer id);
-
-}
+}

+ 9 - 5
kmall-api/src/main/java/com/kmall/api/dao/ApiStoreMngChangeMapper.java

@@ -1,10 +1,14 @@
 package com.kmall.api.dao;
 
-import com.kmall.api.entity.AddressVo;
-import com.kmall.api.entity.MallStoreMngChange;
+import com.kmall.api.entity.StoreMngChangeVo;
 import com.kmall.manager.dao.BaseDao;
 
-public interface ApiStoreMngChangeMapper extends BaseDao<AddressVo> {
-
-    MallStoreMngChange selectByPrimaryKey(Integer id);
+/**
+ * 门店库存变化表Dao
+ *
+ * @author huangyq
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public interface ApiStoreMngChangeMapper extends BaseDao<StoreMngChangeVo> {
 }

+ 273 - 0
kmall-api/src/main/java/com/kmall/api/entity/MngChangeVo.java

@@ -0,0 +1,273 @@
+package com.kmall.api.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 库存变化表实体
+ * 表名 mall_mng_change
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public class MngChangeVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    private Integer id;
+    /**
+     * 商品库存变化数
+     */
+    private Integer changeNum;
+    /**
+     * 商品原库存数
+     */
+    private Integer originalNum;
+    /**
+     * 商品库存可用数
+     */
+    private Integer validNum;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 第三方商户代码
+     */
+    private String thirdPartyMerchCode;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 是否有效,0:有效,1:无效
+     */
+    private Integer isValid;
+    /**
+     * 变动类型 0:还原 1:扣减
+     */
+    private String changeType;
+    /**
+     * 变动原因
+     */
+    private String changeReason;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:商品库存变化数
+     */
+    public void setChangeNum(Integer changeNum) {
+        this.changeNum = changeNum;
+    }
+
+    /**
+     * 获取:商品库存变化数
+     */
+    public Integer getChangeNum() {
+        return changeNum;
+    }
+    /**
+     * 设置:商品原库存数
+     */
+    public void setOriginalNum(Integer originalNum) {
+        this.originalNum = originalNum;
+    }
+
+    /**
+     * 获取:商品原库存数
+     */
+    public Integer getOriginalNum() {
+        return originalNum;
+    }
+    /**
+     * 设置:商品库存可用数
+     */
+    public void setValidNum(Integer validNum) {
+        this.validNum = validNum;
+    }
+
+    /**
+     * 获取:商品库存可用数
+     */
+    public Integer getValidNum() {
+        return validNum;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:第三方商户代码
+     */
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
+
+    /**
+     * 获取:第三方商户代码
+     */
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:是否有效,0:有效,1:无效
+     */
+    public void setIsValid(Integer isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:是否有效,0:有效,1:无效
+     */
+    public Integer getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:变动类型 0:还原 1:扣减
+     */
+    public void setChangeType(String changeType) {
+        this.changeType = changeType;
+    }
+
+    /**
+     * 获取:变动类型 0:还原 1:扣减
+     */
+    public String getChangeType() {
+        return changeType;
+    }
+    /**
+     * 设置:变动原因
+     */
+    public void setChangeReason(String changeReason) {
+        this.changeReason = changeReason;
+    }
+
+    /**
+     * 获取:变动原因
+     */
+    public String getChangeReason() {
+        return changeReason;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 273 - 0
kmall-api/src/main/java/com/kmall/api/entity/StoreMngChangeVo.java

@@ -0,0 +1,273 @@
+package com.kmall.api.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 门店库存变化表实体
+ * 表名 mall_store_mng_change
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public class StoreMngChangeVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    private Integer id;
+    /**
+     * 门店库存变化数
+     */
+    private Integer storeChangeNum;
+    /**
+     * 门店原库存数
+     */
+    private Integer storeOriginalNum;
+    /**
+     * 门店库存可用数
+     */
+    private Integer storeValidNum;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 门店编号
+     */
+    private Integer storeId;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 是否有效,0:有效,1:无效
+     */
+    private Integer isValid;
+    /**
+     * 变动类型 0:还原 1:扣减
+     */
+    private String changeType;
+    /**
+     * 变动原因
+     */
+    private String changeReason;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:门店库存变化数
+     */
+    public void setStoreChangeNum(Integer storeChangeNum) {
+        this.storeChangeNum = storeChangeNum;
+    }
+
+    /**
+     * 获取:门店库存变化数
+     */
+    public Integer getStoreChangeNum() {
+        return storeChangeNum;
+    }
+    /**
+     * 设置:门店原库存数
+     */
+    public void setStoreOriginalNum(Integer storeOriginalNum) {
+        this.storeOriginalNum = storeOriginalNum;
+    }
+
+    /**
+     * 获取:门店原库存数
+     */
+    public Integer getStoreOriginalNum() {
+        return storeOriginalNum;
+    }
+    /**
+     * 设置:门店库存可用数
+     */
+    public void setStoreValidNum(Integer storeValidNum) {
+        this.storeValidNum = storeValidNum;
+    }
+
+    /**
+     * 获取:门店库存可用数
+     */
+    public Integer getStoreValidNum() {
+        return storeValidNum;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:门店编号
+     */
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    /**
+     * 获取:门店编号
+     */
+    public Integer getStoreId() {
+        return storeId;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:是否有效,0:有效,1:无效
+     */
+    public void setIsValid(Integer isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:是否有效,0:有效,1:无效
+     */
+    public Integer getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:变动类型 0:还原 1:扣减
+     */
+    public void setChangeType(String changeType) {
+        this.changeType = changeType;
+    }
+
+    /**
+     * 获取:变动类型 0:还原 1:扣减
+     */
+    public String getChangeType() {
+        return changeType;
+    }
+    /**
+     * 设置:变动原因
+     */
+    public void setChangeReason(String changeReason) {
+        this.changeReason = changeReason;
+    }
+
+    /**
+     * 获取:变动原因
+     */
+    public String getChangeReason() {
+        return changeReason;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 99 - 7
kmall-api/src/main/java/com/kmall/api/service/ApiOrderService.java

@@ -71,6 +71,10 @@ public class ApiOrderService {
     private ApiStoreMapper apiStoreMapper;
     @Autowired
     private ApiMerchMapper apiMerchMapper;
+    @Autowired
+    private ApiMngChangeMapper apiMngChangeMapper;
+    @Autowired
+    private ApiStoreMngChangeMapper apiStoreMngChangeMapper;
 
     public OrderVo queryObject(Long id) {
         return apiOrderMapper.queryObject(id);
@@ -99,9 +103,14 @@ public class ApiOrderService {
     }
 
     @Transactional
-    public void cancelOrder(OrderVo order) {
+    public void cancelOrder(Long userId, OrderVo order) {
         Map orderGoodsParam = Maps.newHashMap();
         orderGoodsParam.put("order_id", order.getId());
+        String userName = "";
+        if(userId != null){
+            UserVo userVo = apiUserMapper.queryObject(userId);
+            userName = userVo != null ? userVo.getUsername():"";
+        }
         //订单的商品
         List<OrderGoodsVo> goodsList = apiOrderGoodsMapper.queryList(orderGoodsParam);
         for (OrderGoodsVo orderGoodsVo : goodsList) {
@@ -111,31 +120,82 @@ public class ApiOrderService {
             if (null == goodsInfo || goodsInfo.getIs_delete() == 1 || goodsInfo.getIs_on_sale() == 0) {
                 throw new RRException("订单提交失败:商品不存在");
             }
-            Integer stockNum = 0;
+            Integer stockNum;
             // TODO: 2019/3/5  普通商品不受共享库存影响,直接取门店配置库存
             if(goodsInfo.getGoodsBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())){
                 if (goodsInfo.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
                     //还原商户商品库存
                     stockNum = goodsInfo.getGoods_number();
+                    stockNum = stockNum == null? 0 : stockNum;
                     goodsInfo.setGoods_number(stockNum + orderGoodsVo.getNumber());
                     goodsInfo.minusSellVolume();
                     apiGoodsMapper.updateGoodsStock(goodsInfo);
+
+                    MngChangeVo mngChangeVo = new MngChangeVo();
+                    mngChangeVo.setGoodsId(Integer.parseInt(String.valueOf(goodsInfo.getId())));
+                    mngChangeVo.setThirdPartyMerchCode(goodsInfo.getThirdPartyMerchCode());
+                    mngChangeVo.setChangeReason("小程序取消订单");
+                    mngChangeVo.setChangeType(Dict.changeType.item_0.getItem());
+                    mngChangeVo.setChangeNum(orderGoodsVo.getNumber());//变化数
+                    mngChangeVo.setOriginalNum(stockNum);//原库存数
+                    mngChangeVo.setValidNum(stockNum + orderGoodsVo.getNumber());//可用数
+                    mngChangeVo.setCreateTime(new Date());
+                    mngChangeVo.setModTime(new Date());
+                    mngChangeVo.setCreaterSn("小程序用户"+userName);
+                    mngChangeVo.setModerSn("小程序用户"+userName);
+                    mngChangeVo.setIsValid(0);
+                    mngChangeVo.setMerchSn(goodsInfo.getMerchSn());
+                    apiMngChangeMapper.save(mngChangeVo);
                 }
                 if (goodsInfo.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_0.getItem())) {
                     //还原门店库存
                     stockNum = productInfo.getStock_num();
+                    stockNum = stockNum == null? 0 : stockNum;
                     productInfo.setStock_num(stockNum + orderGoodsVo.getNumber());
                     productInfo.minusSellVolume();
                     productInfo.setGoods_id(goodsInfo.getId());
                     apiProductMapper.updateStockNum(productInfo);
+
+                    StoreMngChangeVo storeMngChangeVo = new StoreMngChangeVo();
+                    storeMngChangeVo.setChangeType(Dict.changeType.item_0.getItem());
+                    storeMngChangeVo.setChangeReason("小程序取消订单");
+                    storeMngChangeVo.setGoodsId(Integer.parseInt(String.valueOf(goodsInfo.getId())));
+                    storeMngChangeVo.setStoreId(Integer.parseInt(String.valueOf(productInfo.getStore_id())));
+                    storeMngChangeVo.setMerchSn(goodsInfo.getMerchSn());
+                    storeMngChangeVo.setStoreChangeNum(orderGoodsVo.getNumber());
+                    storeMngChangeVo.setStoreOriginalNum(stockNum);
+                    storeMngChangeVo.setStoreValidNum(stockNum + orderGoodsVo.getNumber());
+                    storeMngChangeVo.setCreateTime(new Date());
+                    storeMngChangeVo.setModTime(new Date());
+                    storeMngChangeVo.setCreaterSn("小程序用户"+userName);
+                    storeMngChangeVo.setModerSn("小程序用户"+userName);
+                    storeMngChangeVo.setIsValid(0);
+                    apiStoreMngChangeMapper.save(storeMngChangeVo);
                 }
             }else {
                 //还原门店库存
                 stockNum = productInfo.getStock_num();
+                stockNum = stockNum == null? 0 : stockNum;
                 productInfo.setStock_num(stockNum + orderGoodsVo.getNumber());
                 productInfo.setGoods_id(goodsInfo.getId());
                 productInfo.minusSellVolume();
                 apiProductMapper.updateStockNum(productInfo);
+
+                StoreMngChangeVo storeMngChangeVo = new StoreMngChangeVo();
+                storeMngChangeVo.setChangeType(Dict.changeType.item_0.getItem());
+                storeMngChangeVo.setChangeReason("小程序取消订单");
+                storeMngChangeVo.setGoodsId(Integer.parseInt(String.valueOf(goodsInfo.getId())));
+                storeMngChangeVo.setStoreId(Integer.parseInt(String.valueOf(productInfo.getStore_id())));
+                storeMngChangeVo.setMerchSn(goodsInfo.getMerchSn());
+                storeMngChangeVo.setStoreChangeNum(orderGoodsVo.getNumber());
+                storeMngChangeVo.setStoreOriginalNum(stockNum);
+                storeMngChangeVo.setStoreValidNum(stockNum + orderGoodsVo.getNumber());
+                storeMngChangeVo.setCreateTime(new Date());
+                storeMngChangeVo.setModTime(new Date());
+                storeMngChangeVo.setCreaterSn("小程序用户"+userName);
+                storeMngChangeVo.setModerSn("小程序用户"+userName);
+                storeMngChangeVo.setIsValid(0);
+                apiStoreMngChangeMapper.save(storeMngChangeVo);
             }
         }
         update(order);
@@ -259,15 +319,15 @@ public class ApiOrderService {
                     if(goodsInfo.getGoodsBizType().equalsIgnoreCase(Dict.orderBizType.item_00.getItem())){
                         if (goodsInfo.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_1.getItem())) {
                             //扣减商户商品库存
-                            updateGoodsStock(goodsInfo,stockNum,goodsItem);
+                            updateGoodsStock(goodsInfo,stockNum,goodsItem,userName);
                         }
                         if (goodsInfo.getIsStockShare().equalsIgnoreCase(Dict.isStockShare.item_0.getItem())) {
                             //扣减门店库存
-                            updateStock(productInfo,goodsInfo,stockNum,goodsItem,storeId);
+                            updateStock(productInfo,goodsInfo,stockNum,goodsItem,storeId,userName);
                         }
                     }else {
                         //扣减门店库存
-                        updateStock(productInfo,goodsInfo,stockNum,goodsItem,storeId);
+                        updateStock(productInfo,goodsInfo,stockNum,goodsItem,storeId,userName);
                     }
                 }
             }
@@ -435,19 +495,51 @@ public class ApiOrderService {
 
         return resultObj;
     }
-    private void updateGoodsStock(GoodsVo goodsVo,Integer stockNum,CartVo goodsItem){
+    private void updateGoodsStock(GoodsVo goodsVo,Integer stockNum,CartVo goodsItem,String userName){
         goodsVo.setGoods_number(stockNum - goodsItem.getNumber());
         goodsVo.addSellVolume();
         goodsVo.setId(goodsVo.getId());
         apiGoodsMapper.updateGoodsStock(goodsVo);
+
+        MngChangeVo mngChangeVo = new MngChangeVo();
+        mngChangeVo.setGoodsId(Integer.parseInt(String.valueOf(goodsVo.getId())));
+        mngChangeVo.setThirdPartyMerchCode(goodsVo.getThirdPartyMerchCode());
+        mngChangeVo.setChangeReason("小程序购买商品");
+        mngChangeVo.setChangeType(Dict.changeType.item_1.getItem());
+        mngChangeVo.setChangeNum(goodsItem.getNumber());//变化数
+        mngChangeVo.setOriginalNum(stockNum);//原库存数
+        mngChangeVo.setValidNum(stockNum - goodsItem.getNumber());//可用数
+        mngChangeVo.setCreateTime(new Date());
+        mngChangeVo.setModTime(new Date());
+        mngChangeVo.setCreaterSn("小程序用户"+userName);
+        mngChangeVo.setModerSn("小程序用户"+userName);
+        mngChangeVo.setIsValid(0);
+        mngChangeVo.setMerchSn(goodsVo.getMerchSn());
+        apiMngChangeMapper.save(mngChangeVo);
     }
-    private void updateStock(ProductVo productInfo,GoodsVo goodsVo,Integer stockNum,CartVo goodsItem,Long storeId){
+    private void updateStock(ProductVo productInfo,GoodsVo goodsVo,Integer stockNum,CartVo goodsItem,Long storeId,String userName){
         productInfo.setStock_num(stockNum - goodsItem.getNumber());
         productInfo.setStore_id(storeId);
         productInfo.addSellVolume();
         productInfo.setGoods_id(goodsVo.getId());
 //        productVos.add(productInfo);
         apiProductMapper.updateStockNum(productInfo);
+        
+        StoreMngChangeVo storeMngChangeVo = new StoreMngChangeVo();
+        storeMngChangeVo.setChangeType(Dict.changeType.item_1.getItem());
+        storeMngChangeVo.setChangeReason("小程序购买商品");
+        storeMngChangeVo.setGoodsId(Integer.parseInt(String.valueOf(goodsVo.getId())));
+        storeMngChangeVo.setStoreId(Integer.parseInt(String.valueOf(storeId)));
+        storeMngChangeVo.setMerchSn(goodsVo.getMerchSn());
+        storeMngChangeVo.setStoreChangeNum(goodsItem.getNumber());
+        storeMngChangeVo.setStoreOriginalNum(stockNum);
+        storeMngChangeVo.setStoreValidNum(stockNum - goodsItem.getNumber());
+        storeMngChangeVo.setCreateTime(new Date());
+        storeMngChangeVo.setModTime(new Date());
+        storeMngChangeVo.setCreaterSn("小程序用户"+userName);
+        storeMngChangeVo.setModerSn("小程序用户"+userName);
+        storeMngChangeVo.setIsValid(0);
+        apiStoreMngChangeMapper.save(storeMngChangeVo);
     }
 
     /**

+ 2 - 1
kmall-api/src/main/resources/mybatis/mapper/ApiGoodsMapper.xml

@@ -141,7 +141,8 @@
         psr1.store_id,
         psr1.market_price,
         psr1.stock_num,
-        a.goods_desc,a.goods_biz_type,a.goods_rate,a.third_party_merch_code,mb.is_stock_share isStockShare,a.sell_volume goods_sell_volume
+        a.goods_desc,a.goods_biz_type,a.goods_rate,a.third_party_merch_code,mb.is_stock_share isStockShare,a.sell_volume goods_sell_volume,
+        mb.third_party_merch_code
         from mall_goods a left join mall_merch m on a.merch_sn = m.merch_sn
         left join third_merchant_biz mb on a.third_party_merch_code = mb.third_party_merch_code and mb.merch_sn=a.merch_sn
         LEFT JOIN mall_product_store_rela psr1 ON a.id = psr1.goods_id and a.merch_sn = psr1.merch_sn

+ 156 - 149
kmall-api/src/main/resources/mybatis/mapper/ApiMngChangeMapper.xml

@@ -1,151 +1,158 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.kmall.api.dao.ApiMngChangeMapper" >
-  <resultMap id="BaseResultMap" type="com.kmall.api.entity.MallMngChange" >
-    <id column="id" property="id" jdbcType="INTEGER" />
-    <result column="change_num" property="changeNum" jdbcType="INTEGER" />
-    <result column="original_num" property="originalNum" jdbcType="INTEGER" />
-    <result column="valid_num" property="validNum" jdbcType="INTEGER" />
-    <result column="merch_sn" property="merchSn" jdbcType="VARCHAR" />
-    <result column="sku" property="sku" jdbcType="VARCHAR" />
-    <result column="is_valid" property="isValid" jdbcType="INTEGER" />
-    <result column="creater_sn" property="createrSn" jdbcType="VARCHAR" />
-    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
-    <result column="moder_sn" property="moderSn" jdbcType="VARCHAR" />
-    <result column="mod_time" property="modTime" jdbcType="TIMESTAMP" />
-    <result column="tstm" property="tstm" jdbcType="TIMESTAMP" />
-  </resultMap>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.api.dao.ApiMngChangeMapper">
+
+    <resultMap type="com.kmall.api.entity.MngChangeVo" id="mngChangeMap">
+        <result property="id" column="id"/>
+        <result property="changeNum" column="change_num"/>
+        <result property="originalNum" column="original_num"/>
+        <result property="validNum" column="valid_num"/>
+        <result property="merchSn" column="merch_sn"/>
+        <result property="thirdPartyMerchCode" column="third_party_merch_code"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="isValid" column="is_valid"/>
+        <result property="changeType" column="change_type"/>
+        <result property="changeReason" column="change_reason"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="createTime" column="create_time"/>
+        <result property="moderSn" column="moder_sn"/>
+        <result property="modTime" column="mod_time"/>
+        <result property="tstm" column="tstm"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.api.entity.MngChangeVo">
+		select
+			`id`,
+			`change_num`,
+			`original_num`,
+			`valid_num`,
+			`merch_sn`,
+			`third_party_merch_code`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall_mng_change
+		where id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.api.entity.MngChangeVo">
+		select
+    		`id`,
+    		`change_num`,
+    		`original_num`,
+    		`valid_num`,
+    		`merch_sn`,
+    		`third_party_merch_code`,
+    		`goods_id`,
+    		`is_valid`,
+    		`change_type`,
+    		`change_reason`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall_mng_change c left join mall_merch m on c.merch_sn = m.merch_sn
+		left join third_merchant_biz mb on c.third_party_merch_code = mb.third_party_merch_code
+		left join mall_goods g on c.goods_id = g.id
+		WHERE 1=1
+		<if test="goodsId != null and goodsId != ''">
+			AND c.goods_id = #{goodsId}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND c.store_id = #{storeId}
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+	
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_mng_change
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+	 
+	<insert id="save" parameterType="com.kmall.api.entity.MngChangeVo">
+		insert into mall_mng_change(
+			`change_num`,
+			`original_num`,
+			`valid_num`,
+			`merch_sn`,
+			`third_party_merch_code`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{changeNum},
+			#{originalNum},
+			#{validNum},
+			#{merchSn},
+			#{thirdPartyMerchCode},
+			#{goodsId},
+			#{isValid},
+			#{changeType},
+			#{changeReason},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+	 
+	<update id="update" parameterType="com.kmall.api.entity.MngChangeVo">
+		update mall_mng_change 
+		<set>
+			<if test="changeNum != null">`change_num` = #{changeNum}, </if>
+			<if test="originalNum != null">`original_num` = #{originalNum}, </if>
+			<if test="validNum != null">`valid_num` = #{validNum}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="thirdPartyMerchCode != null">`third_party_merch_code` = #{thirdPartyMerchCode}, </if>
+			<if test="goodsId != null">`goods_id` = #{goodsId}, </if>
+			<if test="isValid != null">`is_valid` = #{isValid}, </if>
+			<if test="changeType != null">`change_type` = #{changeType}, </if>
+			<if test="changeReason != null">`change_reason` = #{changeReason}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
+			<if test="modTime != null">`mod_time` = #{modTime}, </if>
+			<if test="tstm != null">`tstm` = #{tstm}</if>
+		</set>
+		where id = #{id}
+	</update>
+	
+	<delete id="delete">
+		delete from mall_mng_change where id = #{value}
+	</delete>
+	
+	<delete id="deleteBatch">
+		delete from mall_mng_change where id in 
+		<foreach item="id" collection="array" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
 
-  <sql id="Base_Column_List" >
-    id, change_num, original_num, valid_num, merch_sn, sku, is_valid, creater_sn, create_time, 
-    moder_sn, mod_time, tstm
-  </sql>
-  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
-    select 
-    <include refid="Base_Column_List" />
-    from mall_mng_change
-    where id = #{id,jdbcType=INTEGER}
-  </select>
-  <delete id="delete" parameterType="java.lang.Integer" >
-    delete from mall_mng_change
-    where id = #{id,jdbcType=INTEGER}
-  </delete>
-  <insert id="save" parameterType="com.kmall.api.entity.MallMngChange"  useGeneratedKeys="true" keyProperty="id">
-    insert into mall_mng_change
-    <trim prefix="(" suffix=")" suffixOverrides="," >
-      <if test="id != null" >
-        id,
-      </if>
-      <if test="changeNum != null" >
-        change_num,
-      </if>
-      <if test="originalNum != null" >
-        original_num,
-      </if>
-      <if test="validNum != null" >
-        valid_num,
-      </if>
-      <if test="merchSn != null" >
-        merch_sn,
-      </if>
-      <if test="sku != null" >
-        sku,
-      </if>
-      <if test="isValid != null" >
-        is_valid,
-      </if>
-      <if test="createrSn != null" >
-        creater_sn,
-      </if>
-      <if test="createTime != null" >
-        create_time,
-      </if>
-      <if test="moderSn != null" >
-        moder_sn,
-      </if>
-      <if test="modTime != null" >
-        mod_time,
-      </if>
-      <if test="tstm != null" >
-        tstm,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides="," >
-      <if test="id != null" >
-        #{id,jdbcType=INTEGER},
-      </if>
-      <if test="changeNum != null" >
-        #{changeNum,jdbcType=INTEGER},
-      </if>
-      <if test="originalNum != null" >
-        #{originalNum,jdbcType=INTEGER},
-      </if>
-      <if test="validNum != null" >
-        #{validNum,jdbcType=INTEGER},
-      </if>
-      <if test="merchSn != null" >
-        #{merchSn,jdbcType=VARCHAR},
-      </if>
-      <if test="sku != null" >
-        #{sku,jdbcType=VARCHAR},
-      </if>
-      <if test="isValid != null" >
-        #{isValid,jdbcType=INTEGER},
-      </if>
-      <if test="createrSn != null" >
-        #{createrSn,jdbcType=VARCHAR},
-      </if>
-      <if test="createTime != null" >
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="moderSn != null" >
-        #{moderSn,jdbcType=VARCHAR},
-      </if>
-      <if test="modTime != null" >
-        #{modTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="tstm != null" >
-        #{tstm,jdbcType=TIMESTAMP},
-      </if>
-    </trim>
-  </insert>
-  <update id="update" parameterType="com.kmall.api.entity.MallMngChange" >
-    update mall_mng_change
-    <set >
-      <if test="changeNum != null" >
-        change_num = #{changeNum,jdbcType=INTEGER},
-      </if>
-      <if test="originalNum != null" >
-        original_num = #{originalNum,jdbcType=INTEGER},
-      </if>
-      <if test="validNum != null" >
-        valid_num = #{validNum,jdbcType=INTEGER},
-      </if>
-      <if test="merchSn != null" >
-        merch_sn = #{merchSn,jdbcType=VARCHAR},
-      </if>
-      <if test="sku != null" >
-        sku = #{sku,jdbcType=VARCHAR},
-      </if>
-      <if test="isValid != null" >
-        is_valid = #{isValid,jdbcType=INTEGER},
-      </if>
-      <if test="createrSn != null" >
-        creater_sn = #{createrSn,jdbcType=VARCHAR},
-      </if>
-      <if test="createTime != null" >
-        create_time = #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="moderSn != null" >
-        moder_sn = #{moderSn,jdbcType=VARCHAR},
-      </if>
-      <if test="modTime != null" >
-        mod_time = #{modTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="tstm != null" >
-        tstm = #{tstm,jdbcType=TIMESTAMP},
-      </if>
-    </set>
-    where id = #{id,jdbcType=INTEGER}
-  </update>
 </mapper>

+ 156 - 159
kmall-api/src/main/resources/mybatis/mapper/ApiStoreMngChangeMapper.xml

@@ -1,161 +1,158 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.kmall.api.dao.ApiStoreMngChangeMapper" >
-  <resultMap id="BaseResultMap" type="com.kmall.api.entity.MallStoreMngChange" >
-    <id column="id" property="id" jdbcType="INTEGER" />
-    <result column="store_change_num" property="storeChangeNum" jdbcType="INTEGER" />
-    <result column="store_original_num" property="storeOriginalNum" jdbcType="INTEGER" />
-    <result column="store_valid_num" property="storeValidNum" jdbcType="INTEGER" />
-    <result column="merch_sn" property="merchSn" jdbcType="VARCHAR" />
-    <result column="store_id" property="storeId" jdbcType="INTEGER" />
-    <result column="sku" property="sku" jdbcType="VARCHAR" />
-    <result column="is_valid" property="isValid" jdbcType="INTEGER" />
-    <result column="creater_sn" property="createrSn" jdbcType="VARCHAR" />
-    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
-    <result column="moder_sn" property="moderSn" jdbcType="VARCHAR" />
-    <result column="mod_time" property="modTime" jdbcType="TIMESTAMP" />
-    <result column="tstm" property="tstm" jdbcType="TIMESTAMP" />
-  </resultMap>
-  <sql id="Base_Column_List" >
-    id, store_change_num, store_original_num, store_valid_num, merch_sn, store_id, sku, 
-    is_valid, creater_sn, create_time, moder_sn, mod_time, tstm
-  </sql>
-  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
-    select 
-    <include refid="Base_Column_List" />
-    from mall_store_mng_change
-    where id = #{id,jdbcType=INTEGER}
-  </select>
-  <delete id="delete" parameterType="java.lang.Integer" >
-    delete from mall_store_mng_change
-    where id = #{id,jdbcType=INTEGER}
-  </delete>
-  <insert id="save" parameterType="com.kmall.api.entity.MallStoreMngChange"  useGeneratedKeys="true" keyProperty="id">
-    insert into mall_store_mng_change
-    <trim prefix="(" suffix=")" suffixOverrides="," >
-      <if test="id != null" >
-        id,
-      </if>
-      <if test="storeChangeNum != null" >
-        store_change_num,
-      </if>
-      <if test="storeOriginalNum != null" >
-        store_original_num,
-      </if>
-      <if test="storeValidNum != null" >
-        store_valid_num,
-      </if>
-      <if test="merchSn != null" >
-        merch_sn,
-      </if>
-      <if test="storeId != null" >
-        store_id,
-      </if>
-      <if test="sku != null" >
-        sku,
-      </if>
-      <if test="isValid != null" >
-        is_valid,
-      </if>
-      <if test="createrSn != null" >
-        creater_sn,
-      </if>
-      <if test="createTime != null" >
-        create_time,
-      </if>
-      <if test="moderSn != null" >
-        moder_sn,
-      </if>
-      <if test="modTime != null" >
-        mod_time,
-      </if>
-      <if test="tstm != null" >
-        tstm,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides="," >
-      <if test="id != null" >
-        #{id,jdbcType=INTEGER},
-      </if>
-      <if test="storeChangeNum != null" >
-        #{storeChangeNum,jdbcType=INTEGER},
-      </if>
-      <if test="storeOriginalNum != null" >
-        #{storeOriginalNum,jdbcType=INTEGER},
-      </if>
-      <if test="storeValidNum != null" >
-        #{storeValidNum,jdbcType=INTEGER},
-      </if>
-      <if test="merchSn != null" >
-        #{merchSn,jdbcType=VARCHAR},
-      </if>
-      <if test="storeId != null" >
-        #{storeId,jdbcType=INTEGER},
-      </if>
-      <if test="sku != null" >
-        #{sku,jdbcType=VARCHAR},
-      </if>
-      <if test="isValid != null" >
-        #{isValid,jdbcType=INTEGER},
-      </if>
-      <if test="createrSn != null" >
-        #{createrSn,jdbcType=VARCHAR},
-      </if>
-      <if test="createTime != null" >
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="moderSn != null" >
-        #{moderSn,jdbcType=VARCHAR},
-      </if>
-      <if test="modTime != null" >
-        #{modTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="tstm != null" >
-        #{tstm,jdbcType=TIMESTAMP},
-      </if>
-    </trim>
-  </insert>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.api.dao.ApiStoreMngChangeMapper">
+
+    <resultMap type="com.kmall.api.entity.StoreMngChangeVo" id="storeMngChangeMap">
+        <result property="id" column="id"/>
+        <result property="storeChangeNum" column="store_change_num"/>
+        <result property="storeOriginalNum" column="store_original_num"/>
+        <result property="storeValidNum" column="store_valid_num"/>
+        <result property="merchSn" column="merch_sn"/>
+        <result property="storeId" column="store_id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="isValid" column="is_valid"/>
+        <result property="changeType" column="change_type"/>
+        <result property="changeReason" column="change_reason"/>
+        <result property="createrSn" column="creater_sn"/>
+        <result property="createTime" column="create_time"/>
+        <result property="moderSn" column="moder_sn"/>
+        <result property="modTime" column="mod_time"/>
+        <result property="tstm" column="tstm"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.api.entity.StoreMngChangeVo">
+		select
+			`id`,
+			`store_change_num`,
+			`store_original_num`,
+			`store_valid_num`,
+			`merch_sn`,
+			`store_id`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall_store_mng_change
+		where id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.api.entity.StoreMngChangeVo">
+		select
+    		`id`,
+    		`store_change_num`,
+    		`store_original_num`,
+    		`store_valid_num`,
+    		`merch_sn`,
+    		`store_id`,
+    		`goods_id`,
+    		`is_valid`,
+    		`change_type`,
+    		`change_reason`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall_store_mng_change c left join mall_merch m on c.merch_sn = m.merch_sn
+		left join mall_store s on s.id = c.store_id
+		left join mall_goods g on c.goods_id = g.id
+		WHERE 1=1
+		<if test="goodsId != null and goodsId != ''">
+			AND c.goods_id = #{goodsId}
+		</if>
+		<if test="storeId != null and storeId != ''">
+			AND c.store_id = #{storeId}
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+	
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_store_mng_change
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+	 
+	<insert id="save" parameterType="com.kmall.api.entity.StoreMngChangeVo">
+		insert into mall_store_mng_change(
+			`store_change_num`,
+			`store_original_num`,
+			`store_valid_num`,
+			`merch_sn`,
+			`store_id`,
+			`goods_id`,
+			`is_valid`,
+			`change_type`,
+			`change_reason`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{storeChangeNum},
+			#{storeOriginalNum},
+			#{storeValidNum},
+			#{merchSn},
+			#{storeId},
+			#{goodsId},
+			#{isValid},
+			#{changeType},
+			#{changeReason},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+	 
+	<update id="update" parameterType="com.kmall.api.entity.StoreMngChangeVo">
+		update mall_store_mng_change 
+		<set>
+			<if test="storeChangeNum != null">`store_change_num` = #{storeChangeNum}, </if>
+			<if test="storeOriginalNum != null">`store_original_num` = #{storeOriginalNum}, </if>
+			<if test="storeValidNum != null">`store_valid_num` = #{storeValidNum}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="storeId != null">`store_id` = #{storeId}, </if>
+			<if test="goodsId != null">`goods_id` = #{goodsId}, </if>
+			<if test="isValid != null">`is_valid` = #{isValid}, </if>
+			<if test="changeType != null">`change_type` = #{changeType}, </if>
+			<if test="changeReason != null">`change_reason` = #{changeReason}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
+			<if test="modTime != null">`mod_time` = #{modTime}, </if>
+			<if test="tstm != null">`tstm` = #{tstm}</if>
+		</set>
+		where id = #{id}
+	</update>
+	
+	<delete id="delete">
+		delete from mall_store_mng_change where id = #{value}
+	</delete>
+	
+	<delete id="deleteBatch">
+		delete from mall_store_mng_change where id in 
+		<foreach item="id" collection="array" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</delete>
 
-  <update id="update" parameterType="com.kmall.api.entity.MallStoreMngChange" >
-    update mall_store_mng_change
-    <set >
-      <if test="storeChangeNum != null" >
-        store_change_num = #{storeChangeNum,jdbcType=INTEGER},
-      </if>
-      <if test="storeOriginalNum != null" >
-        store_original_num = #{storeOriginalNum,jdbcType=INTEGER},
-      </if>
-      <if test="storeValidNum != null" >
-        store_valid_num = #{storeValidNum,jdbcType=INTEGER},
-      </if>
-      <if test="merchSn != null" >
-        merch_sn = #{merchSn,jdbcType=VARCHAR},
-      </if>
-      <if test="storeId != null" >
-        store_id = #{storeId,jdbcType=INTEGER},
-      </if>
-      <if test="sku != null" >
-        sku = #{sku,jdbcType=VARCHAR},
-      </if>
-      <if test="isValid != null" >
-        is_valid = #{isValid,jdbcType=INTEGER},
-      </if>
-      <if test="createrSn != null" >
-        creater_sn = #{createrSn,jdbcType=VARCHAR},
-      </if>
-      <if test="createTime != null" >
-        create_time = #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="moderSn != null" >
-        moder_sn = #{moderSn,jdbcType=VARCHAR},
-      </if>
-      <if test="modTime != null" >
-        mod_time = #{modTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="tstm != null" >
-        tstm = #{tstm,jdbcType=TIMESTAMP},
-      </if>
-    </set>
-    where id = #{id,jdbcType=INTEGER}
-  </update>
 </mapper>

+ 38 - 2
kmall-common/src/main/java/com/kmall/common/constant/Dict.java

@@ -621,12 +621,13 @@ public class Dict {
     }
 
     /**
-     * 角色类型:1:操作员;2:店员;3:商户管理员
+     * 角色类型:1:操作员;2:店员;3:商户管理员 4:第三方商户管理员
      */
     public enum roleType {
         item_1("1", "操作员"),
         item_2("2", "店员"),
-        item_3("3", "商户管理员");
+        item_3("3", "商户管理员"),
+        item_4("4", "第三方商户管理员");
 
         private String item;
         private String itemName;
@@ -948,4 +949,39 @@ public class Dict {
             this.itemName = itemName;
         }
     }
+
+    /**
+     * 变动类型 0:还原 1:扣减 2:新增调整 3:更新调整增加 4:更新调整减少
+     */
+    public enum changeType {
+        item_0("0", "还原"),
+        item_1("1", "扣减"),
+        item_2("2", "新增调整"),
+        item_3("3", "更新调整增加"),
+        item_4("4", "更新调整减少");
+
+        private String item;
+        private String itemName;
+
+        changeType(String item, String itemName) {
+            this.item = item;
+            this.itemName = itemName;
+        }
+
+        public String getItem() {
+            return item;
+        }
+
+        public void setItem(String item) {
+            this.item = item;
+        }
+
+        public String getItemName() {
+            return itemName;
+        }
+
+        public void setItemName(String itemName) {
+            this.itemName = itemName;
+        }
+    }
 }

+ 296 - 0
kmall-common/src/main/java/com/kmall/common/entity/SysUserEntity.java

@@ -0,0 +1,296 @@
+package com.kmall.common.entity;
+
+import com.kmall.common.validator.group.AddGroup;
+import com.kmall.common.validator.group.UpdateGroup;
+import org.hibernate.validator.constraints.Email;
+import org.hibernate.validator.constraints.NotBlank;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 系统用户
+ *
+ * @author Scott
+ * @email
+ * @date 2016年9月18日 上午9:28:55
+ */
+public class SysUserEntity
+        implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 用户名
+     */
+    @NotBlank(message = "用户名不能为空", groups = {AddGroup.class, UpdateGroup.class})
+    private String username;
+
+    /**
+     * 密码
+     */
+    private transient String password;
+
+    /**
+     * 邮箱
+     */
+    @NotBlank(message = "邮箱不能为空", groups = {AddGroup.class, UpdateGroup.class})
+    @Email(message = "邮箱格式不正确", groups = {AddGroup.class, UpdateGroup.class})
+    private String email;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 状态  0:禁用   1:正常
+     */
+    private Integer status;
+
+    /**
+     * 角色ID列表
+     */
+    private List<Long> roleIdList;
+
+    /**
+     * 创建者ID
+     */
+    private Long createUserId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    private Long deptId;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    private Long roleId;
+
+    private Integer storeId;
+
+    private String merchSn;
+
+    private String merchName;
+
+    private String roleType;
+
+    private Set<String> permsSet;
+
+    public String getMerchName() {
+        return merchName;
+    }
+
+    public void setMerchName(String merchName) {
+        this.merchName = merchName;
+    }
+
+    /**
+     * 设置:
+     *
+     * @param userId
+     */
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    /**
+     * 获取:
+     *
+     * @return Long
+     */
+    public Long getUserId() {
+        return userId;
+    }
+
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    /**
+     * 设置:用户名
+     *
+     * @param username 用户名
+     */
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    /**
+     * 获取:用户名
+     *
+     * @return String
+     */
+    public String getUsername() {
+        return username;
+    }
+
+    /**
+     * 设置:密码
+     *
+     * @param password 密码
+     */
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    /**
+     * 获取:密码
+     *
+     * @return String
+     */
+    public String getPassword() {
+        return password;
+    }
+
+    /**
+     * 设置:邮箱
+     *
+     * @param email 邮箱
+     */
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    /**
+     * 获取:邮箱
+     *
+     * @return String
+     */
+    public String getEmail() {
+        return email;
+    }
+
+    /**
+     * 设置:手机号
+     *
+     * @param mobile 手机号
+     */
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    /**
+     * 获取:手机号
+     *
+     * @return String
+     */
+    public String getMobile() {
+        return mobile;
+    }
+
+    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 getRoleType() {
+        return roleType;
+    }
+
+    public void setRoleType(String roleType) {
+        this.roleType = roleType;
+    }
+
+    /**
+     * 设置:状态  0:禁用   1:正常
+     *
+     * @param status 状态  0:禁用   1:正常
+     */
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    /**
+     * 获取:状态  0:禁用   1:正常
+     *
+     * @return Integer
+     */
+    public Integer getStatus() {
+        return status;
+    }
+
+    /**
+     * 设置:创建时间
+     *
+     * @param createTime 创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     *
+     * @return Date
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public List<Long> getRoleIdList() {
+        return roleIdList;
+    }
+
+    public void setRoleIdList(List<Long> roleIdList) {
+        this.roleIdList = roleIdList;
+    }
+
+    public Long getCreateUserId() {
+        return createUserId;
+    }
+
+    public void setCreateUserId(Long createUserId) {
+        this.createUserId = createUserId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public Set<String> getPermsSet() {
+        return permsSet;
+    }
+
+    public void setPermsSet(Set<String> permsSet) {
+        this.permsSet = permsSet;
+    }
+}

+ 6 - 0
kmall-schedule/src/main/java/com/kmall/schedule/dao/QzOrderMapper.java

@@ -1,5 +1,7 @@
 package com.kmall.schedule.dao;
 
+import com.kmall.schedule.entity.MngChangeJobEntity;
+import com.kmall.schedule.entity.StoreMngChangeJobEntity;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -36,6 +38,10 @@ public interface QzOrderMapper {
 
     void updateGoodsStockNum(Map param);
 
+    void saveStoreMngChange(StoreMngChangeJobEntity param);
+
+    void saveMngChange(MngChangeJobEntity param);
+
     List<Map> queryRefundOrderList();
 
     void updateOrderRefund(Map param);

+ 273 - 0
kmall-schedule/src/main/java/com/kmall/schedule/entity/MngChangeJobEntity.java

@@ -0,0 +1,273 @@
+package com.kmall.schedule.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 库存变化表实体
+ * 表名 mall_mng_change
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public class MngChangeJobEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    private Integer id;
+    /**
+     * 商品库存变化数
+     */
+    private Integer changeNum;
+    /**
+     * 商品原库存数
+     */
+    private Integer originalNum;
+    /**
+     * 商品库存可用数
+     */
+    private Integer validNum;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 第三方商户代码
+     */
+    private String thirdPartyMerchCode;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 是否有效,0:有效,1:无效
+     */
+    private Integer isValid;
+    /**
+     * 变动类型 0:还原 1:扣减
+     */
+    private String changeType;
+    /**
+     * 变动原因
+     */
+    private String changeReason;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:商品库存变化数
+     */
+    public void setChangeNum(Integer changeNum) {
+        this.changeNum = changeNum;
+    }
+
+    /**
+     * 获取:商品库存变化数
+     */
+    public Integer getChangeNum() {
+        return changeNum;
+    }
+    /**
+     * 设置:商品原库存数
+     */
+    public void setOriginalNum(Integer originalNum) {
+        this.originalNum = originalNum;
+    }
+
+    /**
+     * 获取:商品原库存数
+     */
+    public Integer getOriginalNum() {
+        return originalNum;
+    }
+    /**
+     * 设置:商品库存可用数
+     */
+    public void setValidNum(Integer validNum) {
+        this.validNum = validNum;
+    }
+
+    /**
+     * 获取:商品库存可用数
+     */
+    public Integer getValidNum() {
+        return validNum;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:第三方商户代码
+     */
+    public void setThirdPartyMerchCode(String thirdPartyMerchCode) {
+        this.thirdPartyMerchCode = thirdPartyMerchCode;
+    }
+
+    /**
+     * 获取:第三方商户代码
+     */
+    public String getThirdPartyMerchCode() {
+        return thirdPartyMerchCode;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:是否有效,0:有效,1:无效
+     */
+    public void setIsValid(Integer isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:是否有效,0:有效,1:无效
+     */
+    public Integer getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:变动类型 0:还原 1:扣减
+     */
+    public void setChangeType(String changeType) {
+        this.changeType = changeType;
+    }
+
+    /**
+     * 获取:变动类型 0:还原 1:扣减
+     */
+    public String getChangeType() {
+        return changeType;
+    }
+    /**
+     * 设置:变动原因
+     */
+    public void setChangeReason(String changeReason) {
+        this.changeReason = changeReason;
+    }
+
+    /**
+     * 获取:变动原因
+     */
+    public String getChangeReason() {
+        return changeReason;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 273 - 0
kmall-schedule/src/main/java/com/kmall/schedule/entity/StoreMngChangeJobEntity.java

@@ -0,0 +1,273 @@
+package com.kmall.schedule.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 门店库存变化表实体
+ * 表名 mall_store_mng_change
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2019-03-11 10:29:49
+ */
+public class StoreMngChangeJobEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    private Integer id;
+    /**
+     * 门店库存变化数
+     */
+    private Integer storeChangeNum;
+    /**
+     * 门店原库存数
+     */
+    private Integer storeOriginalNum;
+    /**
+     * 门店库存可用数
+     */
+    private Integer storeValidNum;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 门店编号
+     */
+    private Integer storeId;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 是否有效,0:有效,1:无效
+     */
+    private Integer isValid;
+    /**
+     * 变动类型 0:还原 1:扣减
+     */
+    private String changeType;
+    /**
+     * 变动原因
+     */
+    private String changeReason;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 获取:
+     */
+    public Integer getId() {
+        return id;
+    }
+    /**
+     * 设置:门店库存变化数
+     */
+    public void setStoreChangeNum(Integer storeChangeNum) {
+        this.storeChangeNum = storeChangeNum;
+    }
+
+    /**
+     * 获取:门店库存变化数
+     */
+    public Integer getStoreChangeNum() {
+        return storeChangeNum;
+    }
+    /**
+     * 设置:门店原库存数
+     */
+    public void setStoreOriginalNum(Integer storeOriginalNum) {
+        this.storeOriginalNum = storeOriginalNum;
+    }
+
+    /**
+     * 获取:门店原库存数
+     */
+    public Integer getStoreOriginalNum() {
+        return storeOriginalNum;
+    }
+    /**
+     * 设置:门店库存可用数
+     */
+    public void setStoreValidNum(Integer storeValidNum) {
+        this.storeValidNum = storeValidNum;
+    }
+
+    /**
+     * 获取:门店库存可用数
+     */
+    public Integer getStoreValidNum() {
+        return storeValidNum;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:门店编号
+     */
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    /**
+     * 获取:门店编号
+     */
+    public Integer getStoreId() {
+        return storeId;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:是否有效,0:有效,1:无效
+     */
+    public void setIsValid(Integer isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:是否有效,0:有效,1:无效
+     */
+    public Integer getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:变动类型 0:还原 1:扣减
+     */
+    public void setChangeType(String changeType) {
+        this.changeType = changeType;
+    }
+
+    /**
+     * 获取:变动类型 0:还原 1:扣减
+     */
+    public String getChangeType() {
+        return changeType;
+    }
+    /**
+     * 设置:变动原因
+     */
+    public void setChangeReason(String changeReason) {
+        this.changeReason = changeReason;
+    }
+
+    /**
+     * 获取:变动原因
+     */
+    public String getChangeReason() {
+        return changeReason;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 5 - 5
kmall-schedule/src/main/java/com/kmall/schedule/quartz/OrderTask.java

@@ -28,13 +28,13 @@ public class OrderTask {
     /**
      * 未评价订单(发送微信模版消息提醒用户)
      * 每日凌晨2:00
-     */
+     *//*
     @Scheduled(cron = "0 0 2 * * ?")
     public void orderUnEvaluateRemind() {
         logger.info(">>>>>>>>>>>>>>>>>>>>groupProgressRemind is start ");
         qzOrderService.orderUnEvaluateRemind();
         logger.info(">>>>>>>>>>>>>>>>>>>>groupProgressRemind is end ");
-    }
+    }*/
 
     /**
      * 方法描述:更新过期未支付订单
@@ -69,16 +69,16 @@ public class OrderTask {
         logger.info(">>>>>>>>>>>>>>>>>>>>orderQueryUpdate is end ");
     }
 
-    /**
+   /* *//**
      * 方法描述:查询支付中的订单以及小程序更新支付信息异常订单,查询平安订单信息更新订单状态
      * 二分钟更新订单
-     */
+     *//*
     @Scheduled(fixedRate = 1000 * 60 * 1)
     public void pinganOrderQueryUpdate() {
         logger.info(">>>>>>>>>>>>>>>>>>>>pinganOrderQueryUpdate is start ");
         qzOrderService.pinganOrderQueryUpdate();
         logger.info(">>>>>>>>>>>>>>>>>>>>pinganOrderQueryUpdate is end ");
-    }
+    }*/
 
     /**
      * 方法描述:商品发货后7天自动确认收货

Some files were not shown because too many files changed in this diff