Browse Source

移植商城

liujunchi 2 years ago
parent
commit
1171cbb647
100 changed files with 5561 additions and 6 deletions
  1. 18 4
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/SysUserFeignService.java
  2. 16 0
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/fallback/SysUserFeignServiceFallback.java
  3. 1 1
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/SysUserQueryInfo.java
  4. 3 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysUserDao.java
  5. 8 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysUserService.java
  6. 6 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java
  7. 8 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/UserController.java
  8. 15 0
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  9. 7 0
      mec-common/common-core/src/main/java/com/ym/mec/common/constant/CommonConstants.java
  10. 59 0
      mec-mall/mall-admin/pom.xml
  11. 23 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/MallAdminApplication.java
  12. 34 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/GlobalCorsConfig.java
  13. 73 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/LocalFastJsonHttpMessageConverter.java
  14. 86 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/ParameterCheckServletRequestWrapper.java
  15. 41 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/ResourceServerConfig.java
  16. 50 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java
  17. 51 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/filters/EmojiEncodingFilter.java
  18. 51 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/AdminStatisticalController.java
  19. 34 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/CmsPreferenceAreaController.java
  20. 46 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/CmsSubjectController.java
  21. 118 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/MinioController.java
  22. 34 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsCompanyAddressController.java
  23. 115 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderController.java
  24. 96 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderReturnApplyController.java
  25. 87 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderReturnReasonController.java
  26. 41 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderSettingController.java
  27. 130 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsBrandController.java
  28. 86 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductAttributeCategoryController.java
  29. 93 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductAttributeController.java
  30. 116 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductCategoryController.java
  31. 144 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductController.java
  32. 43 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsSkuStockController.java
  33. 78 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsCouponController.java
  34. 40 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsCouponHistoryController.java
  35. 87 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsFlashPromotionController.java
  36. 78 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsFlashPromotionProductRelationController.java
  37. 93 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsFlashPromotionSessionController.java
  38. 87 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeAdvertiseController.java
  39. 80 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeBrandController.java
  40. 80 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeNewProductController.java
  41. 80 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendProductController.java
  42. 77 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendSubjectController.java
  43. 190 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsAdminController.java
  44. 35 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsMemberLevelController.java
  45. 102 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsMenuController.java
  46. 69 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsResourceCategoryController.java
  47. 91 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsResourceController.java
  48. 125 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsRoleController.java
  49. 71 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/OpenController.java
  50. 18 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/CmsPreferenceAreaProductRelationDao.java
  51. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/CmsSubjectProductRelationDao.java
  52. 49 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderDao.java
  53. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderOperateHistoryDao.java
  54. 27 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderReturnApplyDao.java
  55. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsMemberPriceDao.java
  56. 16 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductAttributeCategoryDao.java
  57. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductAttributeDao.java
  58. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductAttributeValueDao.java
  59. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductCategoryAttributeRelationDao.java
  60. 16 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductCategoryDao.java
  61. 27 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductDao.java
  62. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductFullReductionDao.java
  63. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductLadderDao.java
  64. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductVertifyRecordDao.java
  65. 22 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsSkuStockDao.java
  66. 15 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsCouponDao.java
  67. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsCouponProductCategoryRelationDao.java
  68. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsCouponProductRelationDao.java
  69. 17 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsFlashPromotionProductRelationDao.java
  70. 34 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/UmsAdminRoleRelationDao.java
  71. 26 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/UmsRoleDao.java
  72. 70 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/BucketPolicyConfigDto.java
  73. 123 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/HomeOrderStatistical.java
  74. 196 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/HomeStatistical.java
  75. 31 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/MinioUploadDto.java
  76. 54 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsMoneyInfoParam.java
  77. 42 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderDeliveryParam.java
  78. 39 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderDetail.java
  79. 72 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderQueryParam.java
  80. 24 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderReturnApplyResult.java
  81. 102 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsReceiverInfoParam.java
  82. 72 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsReturnApplyQueryParam.java
  83. 94 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsUpdateStatusParam.java
  84. 50 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OrderStatistical.java
  85. 58 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OrderVo.java
  86. 42 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OssCallbackParam.java
  87. 62 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OssCallbackResult.java
  88. 72 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OssPolicyResult.java
  89. 101 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsBrandParam.java
  90. 26 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductAttributeCategoryItem.java
  91. 132 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductAttributeParam.java
  92. 120 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductCategoryParam.java
  93. 24 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductCategoryWithChildrenItem.java
  94. 85 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductParam.java
  95. 82 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductQueryParam.java
  96. 22 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductResult.java
  97. 31 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/ProductAttrInfo.java
  98. 38 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/SmsCouponParam.java
  99. 24 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/SmsFlashPromotionProduct.java
  100. 23 0
      mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/SmsFlashPromotionSessionDetail.java

+ 18 - 4
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/SysUserFeignService.java

@@ -2,13 +2,12 @@ package com.ym.mec.auth.api.client;
 
 import java.util.List;
 
+import com.ym.mec.auth.api.dto.SysUserQueryInfo;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import com.ym.mec.auth.api.client.fallback.SysUserFeignServiceFallback;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -38,4 +37,19 @@ public interface SysUserFeignService {
 
 	@PostMapping(value = "exit/{clientId}/{phone}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
 	public HttpResponseResult<String> exitByPhone(@PathVariable("clientId") String clientId, @PathVariable("phone") String phone);
+
+
+
+	@PostMapping(value = "/refreshToken")
+	@ApiOperation(value = "刷新token")
+	HttpResponseResult refreshToken(@RequestParam("refreshToken")String refreshToken,
+									@RequestParam("clientId")String clientId,
+									@RequestParam("clientSecret")String clientSecret);
+
+	@GetMapping(value = "exit")
+	@ApiOperation(value = "退出登录")
+	HttpResponseResult<String> logout();
+
+	@PostMapping(value = "user/list")
+	HttpResponseResult<List<SysUser>> page(@RequestBody SysUserQueryInfo queryInfo);
 }

+ 16 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/fallback/SysUserFeignServiceFallback.java

@@ -2,6 +2,7 @@ package com.ym.mec.auth.api.client.fallback;
 
 import java.util.List;
 
+import com.ym.mec.auth.api.dto.SysUserQueryInfo;
 import org.springframework.stereotype.Component;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
@@ -44,4 +45,19 @@ public class SysUserFeignServiceFallback implements SysUserFeignService {
 	public HttpResponseResult<String> exitByPhone(String clientId, String phone) {
 		return null;
 	}
+
+	@Override
+	public HttpResponseResult refreshToken(String refreshToken, String clientId, String clientSecret) {
+		return null;
+	}
+
+	@Override
+	public HttpResponseResult<String> logout() {
+		return null;
+	}
+
+	@Override
+	public HttpResponseResult<List<SysUser>> page(SysUserQueryInfo queryInfo) {
+		return null;
+	}
 }

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/queryInfo/SysUserQueryInfo.java → mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/SysUserQueryInfo.java

@@ -1,4 +1,4 @@
-package com.ym.mec.auth.web.controller.queryInfo;
+package com.ym.mec.auth.api.dto;
 
 import com.ym.mec.common.page.QueryInfo;
 

+ 3 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysUserDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.auth.dal.dao;
 
+import com.ym.mec.auth.api.dto.SysUserQueryInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.common.dal.BaseDAO;
@@ -120,4 +121,6 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
      * @param search 关键字
      */
     List<SysUser> queryLikeByPhoneOrName(@Param("search") String search,@Param("tenantId") Integer tenantId);
+
+    List<SysUser> queryEmployeeList(SysUserQueryInfo queryInfo);
 }

+ 8 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysUserService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.auth.service;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.api.dto.SysUserQueryInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.service.BaseService;
@@ -123,4 +124,11 @@ public interface SysUserService extends BaseService<Integer, SysUser> {
     List<SysUser> queryLikeByPhoneOrName(String search);
 
     String queryClientByPhone(String phone);
+    /**
+     * 商城同步管理用户
+     *
+     * @param queryInfo
+     * @return
+     */
+    List<SysUser> queryEmployeeList(SysUserQueryInfo queryInfo);
 }

+ 6 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.auth.service.impl;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.api.dto.SysUserQueryInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.dal.dao.SysUserDao;
 import com.ym.mec.auth.service.SysRoleMenuService;
@@ -200,4 +201,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
         return sysUser.getUserType();
     }
 
+    @Override
+    public List<SysUser> queryEmployeeList(SysUserQueryInfo queryInfo) {
+        return sysUserDao.queryEmployeeList(queryInfo);
+    }
+
 }

+ 8 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/UserController.java

@@ -5,7 +5,7 @@ import com.ym.mec.auth.service.SysRoleService;
 import com.ym.mec.auth.service.SysUserRoleService;
 import com.ym.mec.auth.service.SysUserService;
 import com.ym.mec.auth.service.TenantInfoService;
-import com.ym.mec.auth.web.controller.queryInfo.SysUserQueryInfo;
+import com.ym.mec.auth.api.dto.SysUserQueryInfo;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImResult;
@@ -33,6 +33,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
+import java.util.List;
 
 @RestController()
 @RequestMapping("user")
@@ -370,4 +371,10 @@ public class UserController extends BaseController {
 		}
 		return failed("请登录");
 	}
+
+	@ApiOperation(value = "查询平台用户信息")
+	@PostMapping(value = "/list")
+	public HttpResponseResult<List<SysUser>> page(@RequestBody SysUserQueryInfo queryInfo) {
+		return succeed(sysUserService.queryEmployeeList(queryInfo));
+	}
 }

+ 15 - 0
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -238,4 +238,19 @@
             )
     </select>
 
+    <select id="queryEmployeeList" resultMap="SysUser">
+        select  su.*
+        from employee e
+        left join sys_user su on su.id_ = e.user_id_
+        <where>
+            su.del_flag_ = 0
+            <if test="createStartDate != null and createStartDate != ''">
+                and #{createStartDate} &lt;= e.create_time_
+            </if>
+            <if test="createEndDate != null and createEndDate != ''">
+                and #{createEndDate} &gt; e.create_time_
+            </if>
+        </where>
+    </select>
+
 </mapper>

+ 7 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/constant/CommonConstants.java

@@ -38,4 +38,11 @@ public interface CommonConstants {
 	 * @return
 	 */
 	Integer DECIMAL_FINAL_PLACE = 2;
+
+	/***
+	 * redis缓存分隔符
+	 * @author liweifan
+	 * @updateTime 2022/3/28 16:29
+	 */
+	String REDIS_SPLIT = ":";
 }

+ 59 - 0
mec-mall/mall-admin/pom.xml

@@ -0,0 +1,59 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.yonge.mec.mbg</groupId>
+    <artifactId>mall-admin</artifactId>
+    <version>1.0</version>
+    <packaging>jar</packaging>
+
+    <name>mall-admin</name>
+    <description>mall-admin project for mall</description>
+
+    <parent>
+        <groupId>com.ym</groupId>
+        <artifactId>mec-mall</artifactId>
+        <version>1.0</version>
+    </parent>
+
+    <dependencies>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.vdurmont</groupId>
+            <artifactId>emoji-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.ym</groupId>
+            <artifactId>mall-mbg</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+            <version>20.0</version>
+            <scope>compile</scope>
+        </dependency>
+
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 23 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/MallAdminApplication.java

@@ -0,0 +1,23 @@
+package com.yonge.cooleshow.admin;
+
+import com.spring4all.swagger.EnableSwagger2Doc;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.context.annotation.ComponentScan;
+
+/**
+ * 应用启动入口
+ * Created by macro on 2018/4/26.
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+@MapperScan({"com.yonge.cooleshow.admin.dao", "com.yonge.cooleshow.mbg.mapper", "com.yonge.toolset.payment.core.dao"})
+@ComponentScan(basePackages = {"com.yonge.cooleshow.admin", "com.yonge.cooleshow.mbg", "com.yonge.cooleshow.mall.common","com.ym.mec"})
+@EnableSwagger2Doc
+public class MallAdminApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(MallAdminApplication.class, args);
+    }
+}

+ 34 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/GlobalCorsConfig.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.admin.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+/**
+ * 全局跨域配置
+ * Created by macro on 2019/7/27.
+ */
+@Configuration
+public class GlobalCorsConfig {
+
+    /**
+     * 允许跨域调用的过滤器
+     */
+    @Bean
+    public CorsFilter corsFilter() {
+        CorsConfiguration config = new CorsConfiguration();
+        //允许所有域名进行跨域调用
+        config.addAllowedOrigin("*");
+        //允许跨越发送cookie
+        config.setAllowCredentials(true);
+        //放行全部原始头信息
+        config.addAllowedHeader("*");
+        //允许所有请求方法跨域调用
+        config.addAllowedMethod("*");
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        source.registerCorsConfiguration("/**", config);
+        return new CorsFilter(source);
+    }
+}

+ 73 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/LocalFastJsonHttpMessageConverter.java

@@ -0,0 +1,73 @@
+package com.yonge.cooleshow.admin.config;
+
+import com.alibaba.fastjson.serializer.JSONSerializer;
+import com.alibaba.fastjson.serializer.ObjectSerializer;
+import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
+import com.alibaba.fastjson.serializer.ValueFilter;
+import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
+import com.vdurmont.emoji.EmojiParser;
+import com.ym.mec.common.enums.BaseEnum;
+import com.ym.mec.util.json.JsonUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.HttpOutputMessage;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.http.converter.HttpMessageNotWritableException;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class LocalFastJsonHttpMessageConverter extends FastJsonHttpMessageConverter {
+
+	private static final String FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+	@Override
+	protected Object readInternal(Class<? extends Object> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
+		return super.readInternal(clazz, inputMessage);
+	}
+
+	@Override
+	protected void writeInternal(Object obj, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
+
+		OutputStream out = outputMessage.getBody();
+		JsonUtil.getConfig().put(Date.class, new SimpleDateFormatSerializer(FORMAT));
+		//JsonUtil.getConfig().put(String.class, new EmojiSerializer());
+		String text = JsonUtil.toJSONString(obj, EnumFilter.instance, getFeatures());
+		byte[] bytes = text.getBytes(getCharset());
+		out.write(bytes);
+	}
+}
+
+class EmojiSerializer implements ObjectSerializer{
+
+	@Override
+	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
+		serializer.write(EmojiParser.parseToUnicode(object.toString()));
+	}
+	
+}
+
+class EnumFilter implements ValueFilter {
+
+	public static EnumFilter instance = new EnumFilter();
+
+	public EnumFilter() {
+	}
+
+	@Override
+	public Object process(Object object, String name, Object value) {
+		if (value == null || StringUtils.isBlank(value.toString())) {
+			return value;
+		}
+		if (value instanceof BigDecimal || value instanceof Double || value instanceof Float) {
+			return new BigDecimal(value.toString());
+		}
+		if (BaseEnum.class.isAssignableFrom(value.getClass())) {
+			return ((BaseEnum<?, ?>) value).getCode();
+		}
+		return value;
+	}
+}

+ 86 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/ParameterCheckServletRequestWrapper.java

@@ -0,0 +1,86 @@
+package com.yonge.cooleshow.admin.config;
+
+import com.vdurmont.emoji.EmojiParser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.util.StreamUtils;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+public class ParameterCheckServletRequestWrapper extends HttpServletRequestWrapper {
+
+	private byte[] requestBody;
+	private Charset charSet;
+
+	public ParameterCheckServletRequestWrapper(HttpServletRequest request) throws IOException {
+		super(request);
+
+		String requestBodyStr = getRequestPostStr(request);
+		if (StringUtils.isNotBlank(requestBodyStr)) {
+			requestBodyStr = EmojiParser.removeAllEmojis(requestBodyStr);
+			requestBody = requestBodyStr.getBytes(charSet);
+		} else {
+			requestBody = new byte[0];
+		}
+	}
+
+	public String getRequestPostStr(HttpServletRequest request) throws IOException {
+		String charSetStr = request.getCharacterEncoding();
+		if (charSetStr == null) {
+			charSetStr = "UTF-8";
+		}
+		charSet = Charset.forName(charSetStr);
+
+		return StreamUtils.copyToString(request.getInputStream(), charSet);
+	}
+
+	/**
+	 * 重写 getInputStream()
+	 */
+	@Override
+	public ServletInputStream getInputStream() {
+		if (requestBody == null) {
+			requestBody = new byte[0];
+		}
+
+		final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(requestBody);
+
+		return new ServletInputStream() {
+			@Override
+			public boolean isFinished() {
+				return false;
+			}
+
+			@Override
+			public boolean isReady() {
+				return false;
+			}
+
+			@Override
+			public void setReadListener(ReadListener readListener) {
+
+			}
+
+			@Override
+			public int read() {
+				return byteArrayInputStream.read();
+			}
+		};
+	}
+
+	/**
+	 * 重写 getReader()
+	 */
+	@Override
+	public BufferedReader getReader() {
+		return new BufferedReader(new InputStreamReader(getInputStream()));
+	}
+
+}

+ 41 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/ResourceServerConfig.java

@@ -0,0 +1,41 @@
+package com.yonge.cooleshow.admin.config;
+
+import com.ym.mec.common.security.BaseAccessDeniedHandler;
+import com.ym.mec.common.security.BaseAuthenticationEntryPoint;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpMethod;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
+import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
+import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
+
+@Configuration
+@EnableResourceServer
+@EnableGlobalMethodSecurity(prePostEnabled = true)
+public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
+
+    @Autowired
+    private BaseAccessDeniedHandler baseAccessDeniedHandler;
+
+    @Autowired
+    private BaseAuthenticationEntryPoint baseAuthenticationEntryPoint;
+
+    @Override
+    public void configure(HttpSecurity http) throws Exception {
+        http.cors().and().csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
+                .authorizeRequests()
+                .antMatchers(HttpMethod.OPTIONS)
+                .permitAll()
+            .and()
+                .authorizeRequests()
+                .antMatchers("/wechat/*","/feign-client/**","/v2/api-docs", "/code/*","/payment/callback","/admin/login","/open/**")
+            .permitAll().anyRequest().authenticated().and().httpBasic();
+    }
+
+    @Override
+    public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
+        resources.authenticationEntryPoint(baseAuthenticationEntryPoint).accessDeniedHandler(baseAccessDeniedHandler);
+    }
+}

+ 50 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/WebMvcConfig.java

@@ -0,0 +1,50 @@
+package com.yonge.cooleshow.admin.config;
+
+import com.ym.mec.common.config.EnumConverterFactory;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.format.FormatterRegistry;
+import org.springframework.http.MediaType;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+
+	/**
+	 * 枚举类的转换器 addConverterFactory
+	 */
+	@Override
+	public void addFormatters(FormatterRegistry registry) {
+		registry.addConverterFactory(new EnumConverterFactory());
+	}
+
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		// addPathPatterns 用于添加拦截规则, 这里假设拦截 /url 后面的全部链接
+		List<String> includePathPatterns = new ArrayList<String>();
+		includePathPatterns.add("/**");
+
+		// excludePathPatterns 用户排除拦截
+		List<String> excludePathPatterns = new ArrayList<String>();
+		excludePathPatterns.add("/login");
+
+		// registry.addInterceptor(mdcInterceptor).addPathPatterns(includePathPatterns).excludePathPatterns(excludePathPatterns);
+
+//		registry.addInterceptor(operationLogInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
+	}
+
+	@Bean
+	public HttpMessageConverters fastJsonHttpMessageConverters() {
+		LocalFastJsonHttpMessageConverter converter = new LocalFastJsonHttpMessageConverter();
+		List<MediaType> fastMediaTypes = new ArrayList<MediaType>();
+		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
+		converter.setSupportedMediaTypes(fastMediaTypes);
+		return new HttpMessageConverters(converter);
+	}
+}

+ 51 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/config/filters/EmojiEncodingFilter.java

@@ -0,0 +1,51 @@
+package com.yonge.cooleshow.admin.config.filters;
+
+import com.vdurmont.emoji.EmojiParser;
+import com.yonge.cooleshow.admin.config.ParameterCheckServletRequestWrapper;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+public class EmojiEncodingFilter implements Filter {
+
+	@Override
+	public void init(FilterConfig filterConfig) throws ServletException {
+		Filter.super.init(filterConfig);
+	}
+
+	@Override
+	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+		request = new ParameterCheckServletRequestWrapper((HttpServletRequest) request) {
+
+			@Override
+			public String getParameter(String name) {
+				// 参数名
+				String value = super.getParameter(name);
+				if (!StringUtils.isEmpty(value)) {
+					// 返回值之前 先进行 Emoji 转化
+					return EmojiParser.removeAllEmojis(value);
+				}
+				return value;
+			}
+
+			@Override
+			public String[] getParameterValues(String name) {
+				// 参数值
+				// 返回值之前 先进行 Emoji 转化
+				String[] values = super.getParameterValues(name);
+				if (values != null) {
+					for (int i = 0; i < values.length; i++) {
+						values[i] = EmojiParser.removeAllEmojis(values[i]);
+					}
+				}
+				return values;
+			}
+
+		};
+		
+		chain.doFilter(request, response);
+	}
+
+}

+ 51 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/AdminStatisticalController.java

@@ -0,0 +1,51 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.admin.dto.HomeOrderStatistical;
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
+import com.yonge.cooleshow.admin.dto.search.OrderStatisticalSearch;
+import com.yonge.cooleshow.admin.service.OmsOrderService;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-04-26
+ */
+@Controller
+@Api(tags = "首页商城统计")
+@RequestMapping("/statistical")
+public class AdminStatisticalController {
+
+    @Autowired
+    private OmsOrderService orderService;
+
+
+    @ApiOperation("商城首页统计")
+    @RequestMapping(value = "/home", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<HomeStatistical> count() {
+
+        HomeStatistical statistical = orderService.countStatistical();
+
+        return CommonResult.success(statistical);
+
+    }
+
+
+    @ApiOperation("商城首页统计")
+    @PostMapping(value = "/orderStatistical")
+    @ResponseBody
+    public CommonResult<HomeOrderStatistical> orderStatistical(@RequestBody OrderStatisticalSearch search) {
+
+        HomeOrderStatistical homeOrderStatistical = orderService.orderStatistical(search);
+
+        return CommonResult.success(homeOrderStatistical);
+
+    }
+}

+ 34 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/CmsPreferenceAreaController.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.CmsPrefrenceArea;
+import com.yonge.cooleshow.admin.service.CmsPreferenceAreaService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 商品优选管理Controller
+ * Created by macro on 2018/6/1.
+ */
+@Controller
+@Api(tags = "CmsPreferenceAreaController", description = "商品优选管理")
+@RequestMapping("/prefrenceArea")
+public class CmsPreferenceAreaController {
+    @Autowired
+    private CmsPreferenceAreaService preferenceAreaService;
+
+    @ApiOperation("获取所有商品优选")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<CmsPrefrenceArea>> listAll() {
+        List<CmsPrefrenceArea> preferenceAreaList = preferenceAreaService.listAll();
+        return CommonResult.success(preferenceAreaList);
+    }
+}

+ 46 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/CmsSubjectController.java

@@ -0,0 +1,46 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.CmsSubject;
+import com.yonge.cooleshow.admin.service.CmsSubjectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 商品专题管理Controller
+ * Created by macro on 2018/6/1.
+ */
+@Controller
+@Api(tags = "CmsSubjectController", description = "商品专题管理")
+@RequestMapping("/subject")
+public class CmsSubjectController {
+    @Autowired
+    private CmsSubjectService subjectService;
+
+    @ApiOperation("获取全部商品专题")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<CmsSubject>> listAll() {
+        List<CmsSubject> subjectList = subjectService.listAll();
+        return CommonResult.success(subjectList);
+    }
+
+    @ApiOperation(value = "根据专题名称分页获取商品专题")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<CmsSubject>> getList(@RequestParam(value = "keyword", required = false) String keyword,
+                                                        @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
+                                                        @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize) {
+        List<CmsSubject> subjectList = subjectService.list(keyword, pageNum, pageSize);
+        return CommonResult.success(CommonPage.restPage(subjectList));
+    }
+}

+ 118 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/MinioController.java

@@ -0,0 +1,118 @@
+// package com.yonge.cooleshow.admin.controller;
+//
+// import cn.hutool.core.collection.CollUtil;
+// import cn.hutool.core.util.ArrayUtil;
+// import cn.hutool.json.JSONUtil;
+// import com.yonge.cooleshow.common.api.CommonResult;
+// import com.yonge.cooleshow.admin.dto.BucketPolicyConfigDto;
+// import com.yonge.cooleshow.admin.dto.MinioUploadDto;
+// import io.minio.*;
+// import io.swagger.annotations.Api;
+// import io.swagger.annotations.ApiOperation;
+// import org.slf4j.Logger;
+// import org.slf4j.LoggerFactory;
+// import org.springframework.beans.factory.annotation.Value;
+// import org.springframework.stereotype.Controller;
+// import org.springframework.web.bind.annotation.RequestMapping;
+// import org.springframework.web.bind.annotation.RequestMethod;
+// import org.springframework.web.bind.annotation.RequestParam;
+// import org.springframework.web.bind.annotation.ResponseBody;
+// import org.springframework.web.multipart.MultipartFile;
+//
+// import java.text.SimpleDateFormat;
+// import java.util.Date;
+//
+// /**
+//  * MinIO对象存储管理Controller
+//  * Created by macro on 2019/12/25.
+//  */
+// @Api(tags = "MinioController", description = "MinIO对象存储管理")
+// @Controller
+// @RequestMapping("/minio")
+// public class MinioController {
+//
+//     private static final Logger LOGGER = LoggerFactory.getLogger(MinioController.class);
+//     @Value("${minio.endpoint}")
+//     private String ENDPOINT;
+//     @Value("${minio.bucketName}")
+//     private String BUCKET_NAME;
+//     @Value("${minio.accessKey}")
+//     private String ACCESS_KEY;
+//     @Value("${minio.secretKey}")
+//     private String SECRET_KEY;
+//
+//     @ApiOperation("文件上传")
+//     @RequestMapping(value = "/upload", method = RequestMethod.POST)
+//     @ResponseBody
+//     public CommonResult upload(@RequestParam("file") MultipartFile file) {
+//         try {
+//             //创建一个MinIO的Java客户端
+//             MinioClient minioClient =MinioClient.builder()
+//                     .endpoint(ENDPOINT)
+//                     .credentials(ACCESS_KEY,SECRET_KEY)
+//                     .build();
+//             boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(BUCKET_NAME).build());
+//             if (isExist) {
+//                 LOGGER.info("存储桶已经存在!");
+//             } else {
+//                 //创建存储桶并设置只读权限
+//                 minioClient.makeBucket(MakeBucketArgs.builder().bucket(BUCKET_NAME).build());
+//                 BucketPolicyConfigDto bucketPolicyConfigDto = createBucketPolicyConfigDto(BUCKET_NAME);
+//                 SetBucketPolicyArgs setBucketPolicyArgs = SetBucketPolicyArgs.builder()
+//                         .bucket(BUCKET_NAME)
+//                         .config(JSONUtil.toJsonStr(bucketPolicyConfigDto))
+//                         .build();
+//                 minioClient.setBucketPolicy(setBucketPolicyArgs);
+//             }
+//             String filename = file.getOriginalFilename();
+//             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+//             // 设置存储对象名称
+//             String objectName = sdf.format(new Date()) + "/" + filename;
+//             // 使用putObject上传一个文件到存储桶中
+//             PutObjectArgs putObjectArgs = PutObjectArgs.builder()
+//                     .bucket(BUCKET_NAME)
+//                     .object(objectName)
+//                     .contentType(file.getContentType())
+//                     .stream(file.getInputStream(), file.getSize(), ObjectWriteArgs.MIN_MULTIPART_SIZE).build();
+//             minioClient.putObject(putObjectArgs);
+//             LOGGER.info("文件上传成功!");
+//             MinioUploadDto minioUploadDto = new MinioUploadDto();
+//             minioUploadDto.setName(filename);
+//             minioUploadDto.setUrl(ENDPOINT + "/" + BUCKET_NAME + "/" + objectName);
+//             return CommonResult.success(minioUploadDto);
+//         } catch (Exception e) {
+//             e.printStackTrace();
+//             LOGGER.info("上传发生错误: {}!", e.getMessage());
+//         }
+//         return CommonResult.failed();
+//     }
+//
+//     private BucketPolicyConfigDto createBucketPolicyConfigDto(String bucketName) {
+//         BucketPolicyConfigDto.Statement statement = BucketPolicyConfigDto.Statement.builder()
+//                 .Effect("Allow")
+//                 .Principal("*")
+//                 .Action("s3:GetObject")
+//                 .Resource("arn:aws:s3:::"+bucketName+"/*.**").build();
+//         return BucketPolicyConfigDto.builder()
+//                 .Version("2012-10-17")
+//                 .Statement(CollUtil.toList(statement))
+//                 .build();
+//     }
+//
+//     @ApiOperation("文件删除")
+//     @RequestMapping(value = "/delete", method = RequestMethod.POST)
+//     @ResponseBody
+//     public CommonResult delete(@RequestParam("objectName") String objectName) {
+//         try {
+//             MinioClient minioClient = MinioClient.builder()
+//                     .endpoint(ENDPOINT)
+//                     .credentials(ACCESS_KEY,SECRET_KEY)
+//                     .build();
+//             minioClient.removeObject(RemoveObjectArgs.builder().bucket(BUCKET_NAME).object(objectName).build());
+//             return CommonResult.success(null);
+//         } catch (Exception e) {
+//             e.printStackTrace();
+//         }
+//         return CommonResult.failed();
+//     }
+// }

+ 34 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsCompanyAddressController.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.OmsCompanyAddress;
+import com.yonge.cooleshow.admin.service.OmsCompanyAddressService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 收货地址管理Controller
+ * Created by macro on 2018/10/18.
+ */
+@Controller
+@Api(tags = "OmsCompanyAddressController", description = "收货地址管理")
+@RequestMapping("/companyAddress")
+public class OmsCompanyAddressController {
+    @Autowired
+    private OmsCompanyAddressService companyAddressService;
+
+    @ApiOperation("获取所有收货地址")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<OmsCompanyAddress>> list() {
+        List<OmsCompanyAddress> companyAddressList = companyAddressService.list();
+        return CommonResult.success(companyAddressList);
+    }
+}

+ 115 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderController.java

@@ -0,0 +1,115 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.*;
+import com.yonge.cooleshow.mbg.model.OmsOrder;
+import com.yonge.cooleshow.admin.service.OmsOrderService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 订单管理Controller
+ * Created by macro on 2018/10/11.
+ */
+@Controller
+@Api(tags = "OmsOrderController", description = "订单管理")
+@RequestMapping("/order")
+public class OmsOrderController {
+    @Autowired
+    private OmsOrderService orderService;
+
+    @ApiOperation("查询订单")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<OrderVo>> list(OmsOrderQueryParam queryParam,
+                                                   @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                   @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<OrderVo> orderList = orderService.list(queryParam, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(orderList));
+    }
+
+    @ApiOperation("批量发货")
+    @RequestMapping(value = "/update/delivery", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delivery(@RequestBody List<OmsOrderDeliveryParam> deliveryParamList) {
+        int count = orderService.delivery(deliveryParamList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量关闭订单")
+    @RequestMapping(value = "/update/close", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult close(@RequestParam("ids") List<Long> ids, @RequestParam String note) {
+        int count = orderService.close(ids, note);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除订单")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = orderService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取订单详情:订单信息、商品信息、操作记录")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<OmsOrderDetail> detail(@PathVariable Long id) {
+        OmsOrderDetail orderDetailResult = orderService.detail(id);
+        return CommonResult.success(orderDetailResult);
+    }
+
+    @ApiOperation("修改收货人信息")
+    @RequestMapping(value = "/update/receiverInfo", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateReceiverInfo(@RequestBody OmsReceiverInfoParam receiverInfoParam) {
+        int count = orderService.updateReceiverInfo(receiverInfoParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改订单费用信息")
+    @RequestMapping(value = "/update/moneyInfo", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateReceiverInfo(@RequestBody OmsMoneyInfoParam moneyInfoParam) {
+        int count = orderService.updateMoneyInfo(moneyInfoParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("备注订单")
+    @RequestMapping(value = "/update/note", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateNote(@RequestParam("id") Long id,
+                                   @RequestParam("note") String note,
+                                   @RequestParam("status") Integer status) {
+        int count = orderService.updateNote(id, note, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+}

+ 96 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderReturnApplyController.java

@@ -0,0 +1,96 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.enums.OrderCacheEnum;
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
+import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
+import com.yonge.cooleshow.admin.dto.OmsUpdateStatusParam;
+import com.yonge.cooleshow.mbg.model.OmsOrderReturnApply;
+import com.yonge.cooleshow.admin.service.OmsOrderReturnApplyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 订单退货申请管理Controller
+ * Created by macro on 2018/10/18.
+ */
+@Controller
+@Api(tags = "OmsOrderReturnApplyController", description = "订单退货申请管理")
+@RequestMapping("/returnApply")
+public class OmsOrderReturnApplyController {
+    @Autowired
+    private OmsOrderReturnApplyService returnApplyService;
+
+    @Autowired
+    private RedissonClient redissonClient;
+
+    private static final Logger log = LoggerFactory.getLogger(OmsOrderReturnApplyController.class);
+
+    @ApiOperation("分页查询退货申请")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<OmsOrderReturnApply>> list(OmsReturnApplyQueryParam queryParam,
+                                                              @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                              @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<OmsOrderReturnApply> returnApplyList = returnApplyService.list(queryParam, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(returnApplyList));
+    }
+
+    @ApiOperation("批量删除退货申请")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = returnApplyService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取退货申请详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult getItem(@PathVariable Long id) {
+        OmsOrderReturnApplyResult result = returnApplyService.getItem(id);
+        return CommonResult.success(result);
+    }
+
+    @ApiOperation("修改退货申请状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, @RequestBody OmsUpdateStatusParam statusParam) {
+        RLock lock = redissonClient.getLock(OrderCacheEnum.LOCK_REFUND_ORDER_MALL + ":refundOrder:" + id);
+        try {
+            boolean b = lock.tryLock(60, 60, TimeUnit.SECONDS);
+            if (b) {
+                int count = returnApplyService.updateStatus(id, statusParam);
+                if (count > 0) {
+                    return CommonResult.success(count);
+                }
+            }
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+            log.warn("");
+        } finally {
+            if (lock.getHoldCount() >0) {
+                lock.unlock();
+            }
+        }
+
+        return CommonResult.failed();
+    }
+
+}

+ 87 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderReturnReasonController.java

@@ -0,0 +1,87 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.OmsOrderReturnReason;
+import com.yonge.cooleshow.admin.service.OmsOrderReturnReasonService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 退货原因管理Controller
+ * Created by macro on 2018/10/17.
+ */
+@Controller
+@Api(tags = "OmsOrderReturnReasonController", description = "退货原因管理")
+@RequestMapping("/returnReason")
+public class OmsOrderReturnReasonController {
+    @Autowired
+    private OmsOrderReturnReasonService orderReturnReasonService;
+
+    @ApiOperation("添加退货原因")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody OmsOrderReturnReason returnReason) {
+        int count = orderReturnReasonService.create(returnReason);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改退货原因")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody OmsOrderReturnReason returnReason) {
+        int count = orderReturnReasonService.update(id, returnReason);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除退货原因")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = orderReturnReasonService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询退货原因")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<OmsOrderReturnReason>> list(@RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                               @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<OmsOrderReturnReason> reasonList = orderReturnReasonService.list(pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(reasonList));
+    }
+
+    @ApiOperation("获取单个退货原因详情信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<OmsOrderReturnReason> getItem(@PathVariable Long id) {
+        OmsOrderReturnReason reason = orderReturnReasonService.getItem(id);
+        return CommonResult.success(reason);
+    }
+
+    @ApiOperation("修改退货原因启用状态")
+    @RequestMapping(value = "/update/status", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@RequestParam(value = "status") Integer status,
+                                     @RequestParam("ids") List<Long> ids) {
+        int count = orderReturnReasonService.updateStatus(ids, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+}

+ 41 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/OmsOrderSettingController.java

@@ -0,0 +1,41 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.OmsOrderSetting;
+import com.yonge.cooleshow.admin.service.OmsOrderSettingService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 订单设置管理Controller
+ * Created by macro on 2018/10/16.
+ */
+@Controller
+@Api(tags = "OmsOrderSettingController", description = "订单设置管理")
+@RequestMapping("/orderSetting")
+public class OmsOrderSettingController {
+    @Autowired
+    private OmsOrderSettingService orderSettingService;
+
+    @ApiOperation("获取指定订单设置")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<OmsOrderSetting> getItem(@PathVariable Long id) {
+        OmsOrderSetting orderSetting = orderSettingService.getItem(id);
+        return CommonResult.success(orderSetting);
+    }
+
+    @ApiOperation("修改指定订单设置")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody OmsOrderSetting orderSetting) {
+        int count = orderSettingService.update(id,orderSetting);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+}

+ 130 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsBrandController.java

@@ -0,0 +1,130 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.PmsBrandParam;
+import com.yonge.cooleshow.mbg.model.PmsBrand;
+import com.yonge.cooleshow.admin.service.PmsBrandService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品品牌管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsBrandController", description = "商品品牌管理")
+@RequestMapping("/brand")
+public class PmsBrandController {
+    @Autowired
+    private PmsBrandService brandService;
+
+    @ApiOperation(value = "获取全部品牌列表")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsBrand>> getList() {
+        return CommonResult.success(brandService.listAllBrand());
+    }
+
+    @ApiOperation(value = "添加品牌")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@Validated @RequestBody PmsBrandParam pmsBrand) {
+        CommonResult commonResult;
+        int count = brandService.createBrand(pmsBrand);
+        if (count == 1) {
+            commonResult = CommonResult.success(count);
+        } else {
+            commonResult = CommonResult.failed();
+        }
+        return commonResult;
+    }
+
+    @ApiOperation(value = "更新品牌")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable("id") Long id,
+                               @Validated @RequestBody PmsBrandParam pmsBrandParam) {
+        CommonResult commonResult;
+        int count = brandService.updateBrand(id, pmsBrandParam);
+        if (count == 1) {
+            commonResult = CommonResult.success(count);
+        } else {
+            commonResult = CommonResult.failed();
+        }
+        return commonResult;
+    }
+
+    @ApiOperation(value = "删除品牌")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult delete(@PathVariable("id") Long id) {
+        int count = brandService.deleteBrand(id);
+        if (count == 1) {
+            return CommonResult.success(null);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "根据品牌名称分页获取品牌列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsBrand>> getList(@RequestParam(value = "keyword", required = false) String keyword,
+                                                      @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
+                                                      @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize) {
+        List<PmsBrand> brandList = brandService.listBrand(keyword, pageNum, pageSize);
+        return CommonResult.success(CommonPage.restPage(brandList));
+    }
+
+    @ApiOperation(value = "根据编号查询品牌信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsBrand> getItem(@PathVariable("id") Long id) {
+        return CommonResult.success(brandService.getBrand(id));
+    }
+
+    @ApiOperation(value = "批量删除品牌")
+    @RequestMapping(value = "/delete/batch", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult deleteBatch(@RequestParam("ids") List<Long> ids) {
+        int count = brandService.deleteBrand(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "批量更新显示状态")
+    @RequestMapping(value = "/update/showStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateShowStatus(@RequestParam("ids") List<Long> ids,
+                                   @RequestParam("showStatus") Integer showStatus) {
+        int count = brandService.updateShowStatus(ids, showStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "批量更新厂家制造商状态")
+    @RequestMapping(value = "/update/factoryStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateFactoryStatus(@RequestParam("ids") List<Long> ids,
+                                      @RequestParam("factoryStatus") Integer factoryStatus) {
+        int count = brandService.updateFactoryStatus(ids, factoryStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}

+ 86 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductAttributeCategoryController.java

@@ -0,0 +1,86 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.PmsProductAttributeCategoryItem;
+import com.yonge.cooleshow.mbg.model.PmsProductAttributeCategory;
+import com.yonge.cooleshow.admin.service.PmsProductAttributeCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品属性分类管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsProductAttributeCategoryController", description = "商品属性分类管理")
+@RequestMapping("/productAttribute/category")
+public class PmsProductAttributeCategoryController {
+    @Autowired
+    private PmsProductAttributeCategoryService productAttributeCategoryService;
+
+    @ApiOperation("添加商品属性分类")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestParam String name,@RequestParam Integer sort) {
+        int count = productAttributeCategoryService.create(name,sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改商品属性分类")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestParam String name,@RequestParam Integer sort) {
+        int count = productAttributeCategoryService.update(id, name,sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("删除单个商品属性分类")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = productAttributeCategoryService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("获取单个商品属性分类信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductAttributeCategory> getItem(@PathVariable Long id) {
+        PmsProductAttributeCategory productAttributeCategory = productAttributeCategoryService.getItem(id);
+        return CommonResult.success(productAttributeCategory);
+    }
+
+    @ApiOperation("分页获取所有商品属性分类")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsProductAttributeCategory>> getList(@RequestParam(defaultValue = "5") Integer pageSize, @RequestParam(defaultValue = "1") Integer pageNum) {
+        List<PmsProductAttributeCategory> productAttributeCategoryList = productAttributeCategoryService.getList(pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(productAttributeCategoryList));
+    }
+
+    @ApiOperation("获取所有商品属性分类及其下属性")
+    @RequestMapping(value = "/list/withAttr", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsProductAttributeCategoryItem>> getListWithAttr() {
+        List<PmsProductAttributeCategoryItem> productAttributeCategoryResultList = productAttributeCategoryService.getListWithAttr();
+        return CommonResult.success(productAttributeCategoryResultList);
+    }
+}

+ 93 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductAttributeController.java

@@ -0,0 +1,93 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.PmsProductAttributeParam;
+import com.yonge.cooleshow.admin.dto.ProductAttrInfo;
+import com.yonge.cooleshow.mbg.model.PmsProductAttribute;
+import com.yonge.cooleshow.admin.service.PmsProductAttributeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品属性管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsProductAttributeController", description = "商品属性管理")
+@RequestMapping("/productAttribute")
+public class PmsProductAttributeController {
+    @Autowired
+    private PmsProductAttributeService productAttributeService;
+
+    @ApiOperation("根据分类查询属性列表或参数列表")
+    @ApiImplicitParams({@ApiImplicitParam(name = "type", value = "0表示属性,1表示参数", required = true, paramType = "query", dataType = "integer")})
+    @RequestMapping(value = "/list/{cid}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsProductAttribute>> getList(@PathVariable Long cid,
+                                                                 @RequestParam(value = "type") Integer type,
+                                                                 @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                 @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<PmsProductAttribute> productAttributeList = productAttributeService.getList(cid, type, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(productAttributeList));
+    }
+
+    @ApiOperation("添加商品属性信息")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody PmsProductAttributeParam productAttributeParam) {
+        int count = productAttributeService.create(productAttributeParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改商品属性信息")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody PmsProductAttributeParam productAttributeParam) {
+        int count = productAttributeService.update(id, productAttributeParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("查询单个商品属性")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductAttribute> getItem(@PathVariable Long id) {
+        PmsProductAttribute productAttribute = productAttributeService.getItem(id);
+        return CommonResult.success(productAttribute);
+    }
+
+    @ApiOperation("批量删除商品属性")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = productAttributeService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据商品分类的id获取商品属性及属性分类")
+    @RequestMapping(value = "/attrInfo/{productCategoryId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<ProductAttrInfo>> getAttrInfo(@PathVariable Long productCategoryId) {
+        List<ProductAttrInfo> productAttrInfoList = productAttributeService.getProductAttrInfo(productCategoryId);
+        return CommonResult.success(productAttrInfoList);
+    }
+}

+ 116 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductCategoryController.java

@@ -0,0 +1,116 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.PmsProductCategoryParam;
+import com.yonge.cooleshow.admin.dto.PmsProductCategoryWithChildrenItem;
+import com.yonge.cooleshow.mbg.model.PmsProductCategory;
+import com.yonge.cooleshow.admin.service.PmsProductCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品分类管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsProductCategoryController", description = "商品分类管理")
+@RequestMapping("/productCategory")
+public class PmsProductCategoryController {
+    @Autowired
+    private PmsProductCategoryService productCategoryService;
+
+    @ApiOperation("添加商品分类")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@Validated @RequestBody PmsProductCategoryParam productCategoryParam) {
+        int count = productCategoryService.create(productCategoryParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改商品分类")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                         @Validated
+                         @RequestBody PmsProductCategoryParam productCategoryParam) {
+        int count = productCategoryService.update(id, productCategoryParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("分页查询商品分类")
+    @RequestMapping(value = "/list/{parentId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsProductCategory>> getList(@PathVariable Long parentId,
+                                                                @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<PmsProductCategory> productCategoryList = productCategoryService.getList(parentId, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(productCategoryList));
+    }
+
+    @ApiOperation("根据id获取商品分类")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductCategory> getItem(@PathVariable Long id) {
+        PmsProductCategory productCategory = productCategoryService.getItem(id);
+        return CommonResult.success(productCategory);
+    }
+
+    @ApiOperation("删除商品分类")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = productCategoryService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改导航栏显示状态")
+    @RequestMapping(value = "/update/navStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateNavStatus(@RequestParam("ids") List<Long> ids, @RequestParam("navStatus") Integer navStatus) {
+        int count = productCategoryService.updateNavStatus(ids, navStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改显示状态")
+    @RequestMapping(value = "/update/showStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateShowStatus(@RequestParam("ids") List<Long> ids, @RequestParam("showStatus") Integer showStatus) {
+        int count = productCategoryService.updateShowStatus(ids, showStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("查询所有一级分类及子分类")
+    @RequestMapping(value = "/list/withChildren", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsProductCategoryWithChildrenItem>> listWithChildren() {
+        List<PmsProductCategoryWithChildrenItem> list = productCategoryService.listWithChildren();
+        return CommonResult.success(list);
+    }
+}

+ 144 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsProductController.java

@@ -0,0 +1,144 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.PmsProductParam;
+import com.yonge.cooleshow.admin.dto.PmsProductQueryParam;
+import com.yonge.cooleshow.admin.dto.PmsProductResult;
+import com.yonge.cooleshow.mbg.model.PmsProduct;
+import com.yonge.cooleshow.admin.service.PmsProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "PmsProductController", description = "商品管理")
+@RequestMapping("/product")
+public class PmsProductController {
+    @Autowired
+    private PmsProductService productService;
+
+    @ApiOperation("创建商品")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody PmsProductParam productParam) {
+        int count = productService.create(productParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据商品id获取商品编辑信息")
+    @RequestMapping(value = "/updateInfo/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<PmsProductResult> getUpdateInfo(@PathVariable Long id) {
+        PmsProductResult productResult = productService.getUpdateInfo(id);
+        return CommonResult.success(productResult);
+    }
+
+    @ApiOperation("更新商品")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody PmsProductParam productParam) {
+        int count = productService.update(id, productParam);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("查询商品")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<PmsProduct>> getList(PmsProductQueryParam productQueryParam,
+                                                        @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                        @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<PmsProduct> productList = productService.list(productQueryParam, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(productList));
+    }
+
+    @ApiOperation("根据商品名称或货号模糊查询")
+    @RequestMapping(value = "/simpleList", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsProduct>> getList(String keyword) {
+        List<PmsProduct> productList = productService.list(keyword);
+        return CommonResult.success(productList);
+    }
+
+    @ApiOperation("批量修改审核状态")
+    @RequestMapping(value = "/update/verifyStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateVerifyStatus(@RequestParam("ids") List<Long> ids,
+                                           @RequestParam("verifyStatus") Integer verifyStatus,
+                                           @RequestParam("detail") String detail) {
+        int count = productService.updateVerifyStatus(ids, verifyStatus, detail);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量上下架商品")
+    @RequestMapping(value = "/update/publishStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updatePublishStatus(@RequestParam("ids") List<Long> ids,
+                                            @RequestParam("publishStatus") Integer publishStatus) {
+        int count = productService.updatePublishStatus(ids, publishStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量推荐商品")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids,
+                                              @RequestParam("recommendStatus") Integer recommendStatus) {
+        int count = productService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量设为新品")
+    @RequestMapping(value = "/update/newStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateNewStatus(@RequestParam("ids") List<Long> ids,
+                                        @RequestParam("newStatus") Integer newStatus) {
+        int count = productService.updateNewStatus(ids, newStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("批量修改删除状态")
+    @RequestMapping(value = "/update/deleteStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateDeleteStatus(@RequestParam("ids") List<Long> ids,
+                                           @RequestParam("deleteStatus") Integer deleteStatus) {
+        int count = productService.updateDeleteStatus(ids, deleteStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}

+ 43 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/PmsSkuStockController.java

@@ -0,0 +1,43 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.PmsSkuStock;
+import com.yonge.cooleshow.admin.service.PmsSkuStockService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 商品SKU库存管理Controller
+ * Created by macro on 2018/4/27.
+ */
+@Controller
+@Api(tags = "PmsSkuStockController", description = "sku商品库存管理")
+@RequestMapping("/sku")
+public class PmsSkuStockController {
+    @Autowired
+    private PmsSkuStockService skuStockService;
+
+    @ApiOperation("根据商品ID及sku编码模糊搜索sku库存")
+    @RequestMapping(value = "/{pid}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<PmsSkuStock>> getList(@PathVariable Long pid, @RequestParam(value = "keyword",required = false) String keyword) {
+        List<PmsSkuStock> skuStockList = skuStockService.getList(pid, keyword);
+        return CommonResult.success(skuStockList);
+    }
+    @ApiOperation("批量更新sku库存信息")
+    @RequestMapping(value ="/update/{pid}",method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long pid,@RequestBody List<PmsSkuStock> skuStockList){
+        int count = skuStockService.update(pid,skuStockList);
+        if(count>0){
+            return CommonResult.success(count);
+        }else{
+            return CommonResult.failed();
+        }
+    }
+}

+ 78 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsCouponController.java

@@ -0,0 +1,78 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.SmsCouponParam;
+import com.yonge.cooleshow.mbg.model.SmsCoupon;
+import com.yonge.cooleshow.admin.service.SmsCouponService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 优惠券管理Controller
+ * Created by macro on 2018/8/28.
+ */
+@Controller
+@Api(tags = "SmsCouponController", description = "优惠券管理")
+@RequestMapping("/coupon")
+public class SmsCouponController {
+    @Autowired
+    private SmsCouponService couponService;
+    @ApiOperation("添加优惠券")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult add(@RequestBody SmsCouponParam couponParam) {
+        int count = couponService.create(couponParam);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除优惠券")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = couponService.delete(id);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改优惠券")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,@RequestBody SmsCouponParam couponParam) {
+        int count = couponService.update(id,couponParam);
+        if(count>0){
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("根据优惠券名称和类型分页获取优惠券列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsCoupon>> list(
+            @RequestParam(value = "name",required = false) String name,
+            @RequestParam(value = "type",required = false) Integer type,
+            @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+            @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsCoupon> couponList = couponService.list(name,type,pageSize,pageNum);
+        return CommonResult.success(CommonPage.restPage(couponList));
+    }
+
+    @ApiOperation("获取单个优惠券的详细信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsCouponParam> getItem(@PathVariable Long id) {
+        SmsCouponParam couponParam = couponService.getItem(id);
+        return CommonResult.success(couponParam);
+    }
+}

+ 40 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsCouponHistoryController.java

@@ -0,0 +1,40 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.SmsCouponHistory;
+import com.yonge.cooleshow.admin.service.SmsCouponHistoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 优惠券领取记录管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsCouponHistoryController", description = "优惠券领取记录管理")
+@RequestMapping("/couponHistory")
+public class SmsCouponHistoryController {
+    @Autowired
+    private SmsCouponHistoryService historyService;
+
+    @ApiOperation("根据优惠券id,使用状态,订单编号分页获取领取记录")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsCouponHistory>> list(@RequestParam(value = "couponId", required = false) Long couponId,
+                                                           @RequestParam(value = "useStatus", required = false) Integer useStatus,
+                                                           @RequestParam(value = "orderSn", required = false) String orderSn,
+                                                           @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                           @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsCouponHistory> historyList = historyService.list(couponId, useStatus, orderSn, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(historyList));
+    }
+}

+ 87 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsFlashPromotionController.java

@@ -0,0 +1,87 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.SmsFlashPromotion;
+import com.yonge.cooleshow.admin.service.SmsFlashPromotionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 限时购活动管理Controller
+ * Created by macro on 2018/11/16.
+ */
+@Controller
+@Api(tags = "SmsFlashPromotionController", description = "限时购活动管理")
+@RequestMapping("/flash")
+public class SmsFlashPromotionController {
+    @Autowired
+    private SmsFlashPromotionService flashPromotionService;
+
+    @ApiOperation("添加活动")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody SmsFlashPromotion flashPromotion) {
+        int count = flashPromotionService.create(flashPromotion);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("编辑活动")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public Object update(@PathVariable Long id, @RequestBody SmsFlashPromotion flashPromotion) {
+        int count = flashPromotionService.update(id, flashPromotion);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除活动")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public Object delete(@PathVariable Long id) {
+        int count = flashPromotionService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改上下线状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public Object update(@PathVariable Long id, Integer status) {
+        int count = flashPromotionService.updateStatus(id, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取活动详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public Object getItem(@PathVariable Long id) {
+        SmsFlashPromotion flashPromotion = flashPromotionService.getItem(id);
+        return CommonResult.success(flashPromotion);
+    }
+
+    @ApiOperation("根据活动名称分页查询")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public Object getItem(@RequestParam(value = "keyword", required = false) String keyword,
+                          @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                          @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsFlashPromotion> flashPromotionList = flashPromotionService.list(keyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(flashPromotionList));
+    }
+}

+ 78 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsFlashPromotionProductRelationController.java

@@ -0,0 +1,78 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.SmsFlashPromotionProduct;
+import com.yonge.cooleshow.mbg.model.SmsFlashPromotionProductRelation;
+import com.yonge.cooleshow.admin.service.SmsFlashPromotionProductRelationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 限时购和商品关系管理Controller
+ * Created by macro on 2018/11/16.
+ */
+@Controller
+@Api(tags = "SmsFlashPromotionProductRelationController", description = "限时购和商品关系管理")
+@RequestMapping("/flashProductRelation")
+public class SmsFlashPromotionProductRelationController {
+    @Autowired
+    private SmsFlashPromotionProductRelationService relationService;
+
+    @ApiOperation("批量选择商品添加关联")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsFlashPromotionProductRelation> relationList) {
+        int count = relationService.create(relationList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改关联信息")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody SmsFlashPromotionProductRelation relation) {
+        int count = relationService.update(id, relation);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除关联")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = relationService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取管理商品促销信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsFlashPromotionProductRelation> getItem(@PathVariable Long id) {
+        SmsFlashPromotionProductRelation relation = relationService.getItem(id);
+        return CommonResult.success(relation);
+    }
+
+    @ApiOperation("分页查询不同场次关联及商品信息")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsFlashPromotionProduct>> list(@RequestParam(value = "flashPromotionId") Long flashPromotionId,
+                                                                   @RequestParam(value = "flashPromotionSessionId") Long flashPromotionSessionId,
+                                                                   @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                   @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsFlashPromotionProduct> flashPromotionProductList = relationService.list(flashPromotionId, flashPromotionSessionId, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(flashPromotionProductList));
+    }
+}

+ 93 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsFlashPromotionSessionController.java

@@ -0,0 +1,93 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.SmsFlashPromotionSessionDetail;
+import com.yonge.cooleshow.mbg.model.SmsFlashPromotionSession;
+import com.yonge.cooleshow.admin.service.SmsFlashPromotionSessionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 限时购场次管理Controller
+ * Created by macro on 2018/11/16.
+ */
+@Controller
+@Api(tags = "SmsFlashPromotionSessionController", description = "限时购场次管理")
+@RequestMapping("/flashSession")
+public class SmsFlashPromotionSessionController {
+    @Autowired
+    private SmsFlashPromotionSessionService flashPromotionSessionService;
+
+    @ApiOperation("添加场次")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody SmsFlashPromotionSession promotionSession) {
+        int count = flashPromotionSessionService.create(promotionSession);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改场次")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody SmsFlashPromotionSession promotionSession) {
+        int count = flashPromotionSessionService.update(id, promotionSession);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改启用状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, Integer status) {
+        int count = flashPromotionSessionService.updateStatus(id, status);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除场次")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = flashPromotionSessionService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取场次详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsFlashPromotionSession> getItem(@PathVariable Long id) {
+        SmsFlashPromotionSession promotionSession = flashPromotionSessionService.getItem(id);
+        return CommonResult.success(promotionSession);
+    }
+
+    @ApiOperation("获取全部场次")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<SmsFlashPromotionSession>> list() {
+        List<SmsFlashPromotionSession> promotionSessionList = flashPromotionSessionService.list();
+        return CommonResult.success(promotionSessionList);
+    }
+
+    @ApiOperation("获取全部可选场次及其数量")
+    @RequestMapping(value = "/selectList", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<SmsFlashPromotionSessionDetail>> selectList(Long flashPromotionId) {
+        List<SmsFlashPromotionSessionDetail> promotionSessionList = flashPromotionSessionService.selectList(flashPromotionId);
+        return CommonResult.success(promotionSessionList);
+    }
+}

+ 87 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeAdvertiseController.java

@@ -0,0 +1,87 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mall.common.util.StringUtil;
+import com.yonge.cooleshow.mbg.model.SmsHomeAdvertise;
+import com.yonge.cooleshow.admin.service.SmsHomeAdvertiseService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页轮播广告管理Controller
+ * Created by macro on 2018/11/7.
+ */
+@Controller
+@Api(tags = "SmsHomeAdvertiseController", description = "首页轮播广告管理")
+@RequestMapping("/home/advertise")
+public class SmsHomeAdvertiseController {
+    @Autowired
+    private SmsHomeAdvertiseService advertiseService;
+
+    @ApiOperation("添加广告")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody SmsHomeAdvertise advertise) {
+        int count = advertiseService.create(advertise);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除广告")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") String ids) {
+        List<Long> list = StringUtil.toLongList(ids);
+        int count = advertiseService.delete(list);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改上下线状态")
+    @RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, Integer status) {
+        int count = advertiseService.updateStatus(id, status);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取广告详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<SmsHomeAdvertise> getItem(@PathVariable Long id) {
+        SmsHomeAdvertise advertise = advertiseService.getItem(id);
+        return CommonResult.success(advertise);
+    }
+
+    @ApiOperation("修改广告")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody SmsHomeAdvertise advertise) {
+        int count = advertiseService.update(id, advertise);
+        if (count > 0)
+            return CommonResult.success(count);
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询广告")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeAdvertise>> list(@RequestParam(value = "name", required = false) String name,
+                                                           @RequestParam(value = "type", required = false) Integer type,
+                                                           @RequestParam(value = "endTime", required = false) String endTime,
+                                                           @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                           @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeAdvertise> advertiseList = advertiseService.list(name, type, endTime, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(advertiseList));
+    }
+}

+ 80 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeBrandController.java

@@ -0,0 +1,80 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.SmsHomeBrand;
+import com.yonge.cooleshow.admin.service.SmsHomeBrandService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页品牌管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsHomeBrandController", description = "首页品牌管理")
+@RequestMapping("/home/brand")
+public class SmsHomeBrandController {
+    @Autowired
+    private SmsHomeBrandService homeBrandService;
+
+    @ApiOperation("添加首页推荐品牌")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeBrand> homeBrandList) {
+        int count = homeBrandService.create(homeBrandList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改推荐品牌排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = homeBrandService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除推荐品牌")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = homeBrandService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改推荐品牌状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = homeBrandService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询推荐品牌")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeBrand>> list(@RequestParam(value = "brandName", required = false) String brandName,
+                                                       @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                       @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                       @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeBrand> homeBrandList = homeBrandService.list(brandName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeBrandList));
+    }
+}

+ 80 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeNewProductController.java

@@ -0,0 +1,80 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.SmsHomeNewProduct;
+import com.yonge.cooleshow.admin.service.SmsHomeNewProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页新品管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsHomeNewProductController", description = "首页新品管理")
+@RequestMapping("/home/newProduct")
+public class SmsHomeNewProductController {
+    @Autowired
+    private SmsHomeNewProductService homeNewProductService;
+
+    @ApiOperation("添加首页新品")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeNewProduct> homeNewProductList) {
+        int count = homeNewProductService.create(homeNewProductList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改首页新品排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = homeNewProductService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除首页新品")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = homeNewProductService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改首页新品状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = homeNewProductService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询首页新品")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeNewProduct>> list(@RequestParam(value = "productName", required = false) String productName,
+                                                            @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                            @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                            @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeNewProduct> homeNewProductList = homeNewProductService.list(productName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeNewProductList));
+    }
+}

+ 80 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendProductController.java

@@ -0,0 +1,80 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.SmsHomeRecommendProduct;
+import com.yonge.cooleshow.admin.service.SmsHomeRecommendProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页人气推荐管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsHomeRecommendProductController", description = "首页人气推荐管理")
+@RequestMapping("/home/recommendProduct")
+public class SmsHomeRecommendProductController {
+    @Autowired
+    private SmsHomeRecommendProductService recommendProductService;
+
+    @ApiOperation("添加首页推荐")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeRecommendProduct> homeRecommendProductList) {
+        int count = recommendProductService.create(homeRecommendProductList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改推荐排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = recommendProductService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除推荐")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = recommendProductService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改推荐状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = recommendProductService.updateRecommendStatus(ids, recommendStatus);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("分页查询推荐")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeRecommendProduct>> list(@RequestParam(value = "productName", required = false) String productName,
+                                                                  @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeRecommendProduct> homeRecommendProductList = recommendProductService.list(productName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeRecommendProductList));
+    }
+}

+ 77 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/SmsHomeRecommendSubjectController.java

@@ -0,0 +1,77 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.SmsHomeRecommendSubject;
+import com.yonge.cooleshow.admin.service.SmsHomeRecommendSubjectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 首页专题推荐管理Controller
+ * Created by macro on 2018/11/6.
+ */
+@Controller
+@Api(tags = "SmsHomeRecommendSubjectController", description = "首页专题推荐管理")
+@RequestMapping("/home/recommendSubject")
+public class SmsHomeRecommendSubjectController {
+    @Autowired
+    private SmsHomeRecommendSubjectService recommendSubjectService;
+
+    @ApiOperation("添加首页推荐专题")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody List<SmsHomeRecommendSubject> homeRecommendSubjectList) {
+        int count = recommendSubjectService.create(homeRecommendSubjectList);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改推荐排序")
+    @RequestMapping(value = "/update/sort/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateSort(@PathVariable Long id, Integer sort) {
+        int count = recommendSubjectService.updateSort(id, sort);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除推荐")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        int count = recommendSubjectService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量修改推荐状态")
+    @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRecommendStatus(@RequestParam("ids") List<Long> ids, @RequestParam Integer recommendStatus) {
+        int count = recommendSubjectService.updateRecommendStatus(ids, recommendStatus);
+        return CommonResult.success(count);
+    }
+
+    @ApiOperation("分页查询推荐")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<SmsHomeRecommendSubject>> list(@RequestParam(value = "subjectName", required = false) String subjectName,
+                                                                  @RequestParam(value = "recommendStatus", required = false) Integer recommendStatus,
+                                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<SmsHomeRecommendSubject> homeRecommendSubjectList = recommendSubjectService.list(subjectName, recommendStatus, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(homeRecommendSubjectList));
+    }
+}

+ 190 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsAdminController.java

@@ -0,0 +1,190 @@
+package com.yonge.cooleshow.admin.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.yonge.cooleshow.admin.dto.UmsAdminLoginParam;
+import com.yonge.cooleshow.admin.service.UmsAdminService;
+import com.yonge.cooleshow.admin.service.UmsRoleService;
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mall.common.api.ResultCode;
+import com.yonge.cooleshow.mbg.model.UmsAdmin;
+import com.yonge.cooleshow.mbg.model.UmsRole;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 后台用户管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "UmsAdminController", description = "后台用户管理")
+@RequestMapping("/admin")
+public class UmsAdminController {
+    @Autowired
+    private UmsAdminService adminService;
+    @Autowired
+    private UmsRoleService roleService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+
+    @ApiOperation(value = "登录以后返回token")
+    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult login(@Validated @RequestBody UmsAdminLoginParam umsAdminLoginParam) {
+
+        Map<String, String> tokenMap = new HashMap<>();
+        tokenMap.put("token", "token");
+        tokenMap.put("tokenHead", "tokenHead");
+        return CommonResult.success(tokenMap);
+    }
+
+
+    @ApiOperation(value = "刷新token")
+    @RequestMapping(value = "/refreshToken", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult refreshToken(String refreshToken, String clientId, String clientSecret) {
+
+        HttpResponseResult httpResponseResult = sysUserFeignService.refreshToken(refreshToken, clientId, clientSecret);
+        if (httpResponseResult.getStatus()) {
+            return CommonResult.success(httpResponseResult.getData());
+        } else {
+            return CommonResult.failed(httpResponseResult.getMsg());
+        }
+    }
+
+    @ApiOperation(value = "获取当前登录用户信息")
+    @RequestMapping(value = "/info", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult getAdminInfo() {
+
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null || sysUser.getId() == null) {
+            return CommonResult.failed(ResultCode.FORBIDDEN, "请登录");
+        }
+
+        adminService.saveAdmin();
+
+        UmsAdmin umsAdmin = adminService.getAdminById(sysUser.getId().longValue());
+        if (umsAdmin == null) {
+            return CommonResult.failed("用户同步失败");
+        }
+
+        adminService.updateInfo(umsAdmin.getId(),sysUser);
+
+        if (umsAdmin.getStatus() == 0) {
+            return CommonResult.failed("用户被禁用");
+        }
+        Map<String, Object> data = new HashMap<>();
+        data.put("username", umsAdmin.getUsername());
+        data.put("menus", roleService.getMenuList(umsAdmin.getId()));
+        data.put("icon", umsAdmin.getIcon());
+        List<UmsRole> roleList = adminService.getRoleList(umsAdmin.getId());
+        if(CollUtil.isNotEmpty(roleList)){
+            List<String> roles = roleList.stream().map(UmsRole::getName).collect(Collectors.toList());
+            data.put("roles",roles);
+        }
+        return CommonResult.success(data);
+    }
+
+    @ApiOperation(value = "登出功能")
+    @RequestMapping(value = "/logout", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult logout(HttpServletRequest request) {
+        // HttpResponseResult<String> logout = sysUserFeignService.remoteExit();
+
+        HttpResponseResult<String> logout = sysUserFeignService.logout();
+        if (logout.getStatus()) {
+            return CommonResult.success(logout.getData());
+        } else {
+            return CommonResult.failed(logout.getMsg());
+        }
+    }
+
+    @ApiOperation("根据用户名或姓名分页获取用户列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsAdmin>> list(@RequestParam(value = "keyword", required = false) String keyword,
+                                                   @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                   @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsAdmin> adminList = adminService.list(keyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(adminList));
+    }
+
+    @ApiOperation("获取指定用户信息")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<UmsAdmin> getItem(@PathVariable Long id) {
+        UmsAdmin admin = adminService.getItem(id);
+        return CommonResult.success(admin);
+    }
+
+    @ApiOperation("修改指定用户信息")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody UmsAdmin admin) {
+        int count = adminService.update(id, admin);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("删除指定用户信息")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = adminService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改帐号状态")
+    @RequestMapping(value = "/updateStatus/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id,@RequestParam(value = "status") Integer status) {
+        UmsAdmin umsAdmin = new UmsAdmin();
+        umsAdmin.setStatus(status);
+        int count = adminService.update(id,umsAdmin);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("给用户分配角色")
+    @RequestMapping(value = "/role/update", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateRole(@RequestParam("adminId") Long adminId,
+                                   @RequestParam("roleIds") List<Long> roleIds) {
+        int count = adminService.updateRole(adminId, roleIds);
+        if (count >= 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取指定用户的角色")
+    @RequestMapping(value = "/role/{adminId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsRole>> getRoleList(@PathVariable Long adminId) {
+        List<UmsRole> roleList = adminService.getRoleList(adminId);
+        return CommonResult.success(roleList);
+    }
+
+}

+ 35 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsMemberLevelController.java

@@ -0,0 +1,35 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.UmsMemberLevel;
+import com.yonge.cooleshow.admin.service.UmsMemberLevelService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 会员等级管理Controller
+ * Created by macro on 2018/4/26.
+ */
+@Controller
+@Api(tags = "UmsMemberLevelController", description = "会员等级管理")
+@RequestMapping("/memberLevel")
+public class UmsMemberLevelController {
+    @Autowired
+    private UmsMemberLevelService memberLevelService;
+
+    @ApiOperation("查询所有会员等级")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsMemberLevel>> list(@RequestParam("defaultStatus") Integer defaultStatus) {
+        List<UmsMemberLevel> memberLevelList = memberLevelService.list(defaultStatus);
+        return CommonResult.success(memberLevelList);
+    }
+}

+ 102 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsMenuController.java

@@ -0,0 +1,102 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.admin.dto.UmsMenuNode;
+import com.yonge.cooleshow.mbg.model.UmsMenu;
+import com.yonge.cooleshow.admin.service.UmsMenuService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台菜单管理Controller
+ * Created by macro on 2020/2/4.
+ */
+@Controller
+@Api(tags = "UmsMenuController", description = "后台菜单管理")
+@RequestMapping("/menu")
+public class UmsMenuController {
+
+    @Autowired
+    private UmsMenuService menuService;
+
+    @ApiOperation("添加后台菜单")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsMenu umsMenu) {
+        int count = menuService.create(umsMenu);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改后台菜单")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                               @RequestBody UmsMenu umsMenu) {
+        int count = menuService.update(id, umsMenu);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据ID获取菜单详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<UmsMenu> getItem(@PathVariable Long id) {
+        UmsMenu umsMenu = menuService.getItem(id);
+        return CommonResult.success(umsMenu);
+    }
+
+    @ApiOperation("根据ID删除后台菜单")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = menuService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("分页查询后台菜单")
+    @RequestMapping(value = "/list/{parentId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsMenu>> list(@PathVariable Long parentId,
+                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsMenu> menuList = menuService.list(parentId, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(menuList));
+    }
+
+    @ApiOperation("树形结构返回所有菜单列表")
+    @RequestMapping(value = "/treeList", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsMenuNode>> treeList() {
+        List<UmsMenuNode> list = menuService.treeList();
+        return CommonResult.success(list);
+    }
+
+    @ApiOperation("修改菜单显示状态")
+    @RequestMapping(value = "/updateHidden/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateHidden(@PathVariable Long id, @RequestParam("hidden") Integer hidden) {
+        int count = menuService.updateHidden(id, hidden);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}

+ 69 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsResourceCategoryController.java

@@ -0,0 +1,69 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.UmsResourceCategory;
+import com.yonge.cooleshow.admin.service.UmsResourceCategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台资源分类管理Controller
+ * Created by macro on 2020/2/5.
+ */
+@Controller
+@Api(tags = "UmsResourceCategoryController", description = "后台资源分类管理")
+@RequestMapping("/resourceCategory")
+public class UmsResourceCategoryController {
+    @Autowired
+    private UmsResourceCategoryService resourceCategoryService;
+
+    @ApiOperation("查询所有后台资源分类")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsResourceCategory>> listAll() {
+        List<UmsResourceCategory> resourceList = resourceCategoryService.listAll();
+        return CommonResult.success(resourceList);
+    }
+
+    @ApiOperation("添加后台资源分类")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsResourceCategory umsResourceCategory) {
+        int count = resourceCategoryService.create(umsResourceCategory);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改后台资源分类")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                               @RequestBody UmsResourceCategory umsResourceCategory) {
+        int count = resourceCategoryService.update(id, umsResourceCategory);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据ID删除后台资源")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = resourceCategoryService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}

+ 91 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsResourceController.java

@@ -0,0 +1,91 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.UmsResource;
+import com.yonge.cooleshow.admin.service.UmsResourceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台资源管理Controller
+ * Created by macro on 2020/2/4.
+ */
+@Controller
+@Api(tags = "UmsResourceController", description = "后台资源管理")
+@RequestMapping("/resource")
+public class UmsResourceController {
+
+    @Autowired
+    private UmsResourceService resourceService;
+
+    @ApiOperation("添加后台资源")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsResource umsResource) {
+        int count = resourceService.create(umsResource);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("修改后台资源")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id,
+                               @RequestBody UmsResource umsResource) {
+        int count = resourceService.update(id, umsResource);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("根据ID获取资源详情")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<UmsResource> getItem(@PathVariable Long id) {
+        UmsResource umsResource = resourceService.getItem(id);
+        return CommonResult.success(umsResource);
+    }
+
+    @ApiOperation("根据ID删除后台资源")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        int count = resourceService.delete(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation("分页模糊查询后台资源")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsResource>> list(@RequestParam(required = false) Long categoryId,
+                                                      @RequestParam(required = false) String nameKeyword,
+                                                      @RequestParam(required = false) String urlKeyword,
+                                                      @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                      @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsResource> resourceList = resourceService.list(categoryId,nameKeyword, urlKeyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(resourceList));
+    }
+
+    @ApiOperation("查询所有后台资源")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsResource>> listAll() {
+        List<UmsResource> resourceList = resourceService.listAll();
+        return CommonResult.success(resourceList);
+    }
+}

+ 125 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/UmsRoleController.java

@@ -0,0 +1,125 @@
+package com.yonge.cooleshow.admin.controller;
+
+import com.yonge.cooleshow.mall.common.api.CommonPage;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mbg.model.*;
+import com.yonge.cooleshow.admin.service.UmsRoleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 后台用户角色管理Controller
+ * Created by macro on 2018/9/30.
+ */
+@Controller
+@Api(tags = "UmsRoleController", description = "后台用户角色管理")
+@RequestMapping("/role")
+public class UmsRoleController {
+    @Autowired
+    private UmsRoleService roleService;
+
+    @ApiOperation("添加角色")
+    @RequestMapping(value = "/create", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult create(@RequestBody UmsRole role) {
+        int count = roleService.create(role);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("修改角色")
+    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult update(@PathVariable Long id, @RequestBody UmsRole role) {
+        int count = roleService.update(id, role);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("批量删除角色")
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult delete(@RequestParam("ids") List<Long> ids) {
+        if (ids.stream().anyMatch(id -> id.equals(1L))) {
+            return CommonResult.failed("默认角色不能删除");
+        }
+        int count = roleService.delete(ids);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取所有角色")
+    @RequestMapping(value = "/listAll", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsRole>> listAll() {
+        List<UmsRole> roleList = roleService.list();
+        return CommonResult.success(roleList);
+    }
+
+    @ApiOperation("根据角色名称分页获取角色列表")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsRole>> list(@RequestParam(value = "keyword", required = false) String keyword,
+                                                  @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                  @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        List<UmsRole> roleList = roleService.list(keyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(roleList));
+    }
+
+    @ApiOperation("修改角色状态")
+    @RequestMapping(value = "/updateStatus/{id}", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult updateStatus(@PathVariable Long id, @RequestParam(value = "status") Integer status) {
+        UmsRole umsRole = new UmsRole();
+        umsRole.setStatus(status);
+        int count = roleService.update(id, umsRole);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
+    @ApiOperation("获取角色相关菜单")
+    @RequestMapping(value = "/listMenu/{roleId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsMenu>> listMenu(@PathVariable Long roleId) {
+        List<UmsMenu> roleList = roleService.listMenu(roleId);
+        return CommonResult.success(roleList);
+    }
+
+    @ApiOperation("获取角色相关资源")
+    @RequestMapping(value = "/listResource/{roleId}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<List<UmsResource>> listResource(@PathVariable Long roleId) {
+        List<UmsResource> roleList = roleService.listResource(roleId);
+        return CommonResult.success(roleList);
+    }
+
+    @ApiOperation("给角色分配菜单")
+    @RequestMapping(value = "/allocMenu", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult allocMenu(@RequestParam Long roleId, @RequestParam List<Long> menuIds) {
+        int count = roleService.allocMenu(roleId, menuIds);
+        return CommonResult.success(count);
+    }
+
+    @ApiOperation("给角色分配资源")
+    @RequestMapping(value = "/allocResource", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult allocResource(@RequestParam Long roleId, @RequestParam List<Long> resourceIds) {
+        int count = roleService.allocResource(roleId, resourceIds);
+        return CommonResult.success(count);
+    }
+
+}

+ 71 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/OpenController.java

@@ -0,0 +1,71 @@
+package com.yonge.cooleshow.admin.controller.open;
+
+import com.yonge.cooleshow.admin.controller.OmsOrderReturnApplyController;
+import com.yonge.cooleshow.admin.service.OmsOrderReturnApplyService;
+import com.yonge.cooleshow.mall.common.api.CommonResult;
+import com.yonge.cooleshow.mall.common.enums.OrderCacheEnum;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-07-28
+ */
+@Controller
+@RequestMapping("/open")
+public class OpenController {
+    @Autowired
+    private OmsOrderReturnApplyService returnApplyService;
+
+
+    @Value("${message.debugMode}")
+    private boolean debugMode;
+
+    @Autowired
+    private RedissonClient redissonClient;
+
+    private static final Logger log = LoggerFactory.getLogger(OmsOrderReturnApplyController.class);
+
+    @ApiOperation("完成退货测试接口")
+    @GetMapping(value = "/test/returnApply/{id}")
+    @ResponseBody
+    public CommonResult test(@PathVariable Long id) {
+        if (!debugMode) {
+            return CommonResult.failed("当前环境不可使用");
+        }
+        RLock lock = redissonClient.getLock(OrderCacheEnum.LOCK_REFUND_ORDER_MALL + ":refundOrder:" + id);
+        try {
+            boolean b = lock.tryLock(60, 60, TimeUnit.SECONDS);
+            if (b) {
+
+                returnApplyService.setTestReturnApply(id);
+                return CommonResult.success(true);
+
+            }
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        } finally {
+            if (lock.getHoldCount() >0) {
+                lock.unlock();
+            }
+        }
+
+        return CommonResult.failed();
+    }
+
+}

+ 18 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/CmsPreferenceAreaProductRelationDao.java

@@ -0,0 +1,18 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.CmsPrefrenceAreaProductRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 优选和商品关系自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface CmsPreferenceAreaProductRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param(
+            "preferenceAreaProductRelationList") List<CmsPrefrenceAreaProductRelation> preferenceAreaProductRelationList);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/CmsSubjectProductRelationDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.CmsSubjectProductRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品和专题关系自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface CmsSubjectProductRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<CmsSubjectProductRelation> subjectProductRelationList);
+}

+ 49 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderDao.java

@@ -0,0 +1,49 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.*;
+import com.yonge.cooleshow.admin.dto.search.UserStatisticalSearch;
+import com.yonge.cooleshow.mbg.model.OmsOrder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 订单查询自定义Dao
+ * Created by macro on 2018/10/12.
+ */
+public interface OmsOrderDao {
+    /**
+     * 条件查询订单
+     */
+    List<OrderVo> getList(@Param("queryParam") OmsOrderQueryParam queryParam);
+
+    /**
+     * 批量发货
+     */
+    int delivery(@Param("list") List<OmsOrderDeliveryParam> deliveryParamList);
+
+    /**
+     * 获取订单详情
+     */
+    OmsOrderDetail getDetail(@Param("id") Long id);
+
+    List<Map<String, Object>> getUserOrderInfoList(Map<String, Object> param);
+
+    /**
+     * 统计订单状态数量
+     */
+    HomeStatistical selectOrderStatusNum();
+
+    /**
+     * 统计订单完成数量 和订单金额
+     *
+     * @param startTime  开始时间
+     * @param endTime    结束时间
+     * @param dateFormat 时间统计格式   (DAY:按天统计, WEEK:按周统计, MONTH:按月统计)
+     * @return
+     */
+    List<OrderStatistical> selectOrderCountAndAmount(@Param("startTime") Date startTime, @Param("endTime") Date endTime,
+                                                     @Param("dateFormat") String dateFormat);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderOperateHistoryDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.OmsOrderOperateHistory;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 订单操作记录自定义Dao
+ * Created by macro on 2018/10/12.
+ */
+public interface OmsOrderOperateHistoryDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<OmsOrderOperateHistory> orderOperateHistoryList);
+}

+ 27 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/OmsOrderReturnApplyDao.java

@@ -0,0 +1,27 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
+import com.yonge.cooleshow.admin.dto.OmsOrderReturnApplyResult;
+import com.yonge.cooleshow.admin.dto.OmsReturnApplyQueryParam;
+import com.yonge.cooleshow.mbg.model.OmsOrderReturnApply;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 订单退货申请自定义Dao
+ * Created by macro on 2018/10/18.
+ */
+public interface OmsOrderReturnApplyDao {
+    /**
+     * 查询申请列表
+     */
+    List<OmsOrderReturnApply> getList(@Param("queryParam") OmsReturnApplyQueryParam queryParam);
+
+    /**
+     * 获取申请详情
+     */
+    OmsOrderReturnApplyResult getDetail(@Param("id")Long id);
+
+    HomeStatistical selectReturnStatusCount();
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsMemberPriceDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.PmsMemberPrice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 会员价格管理自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsMemberPriceDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsMemberPrice> memberPriceList);
+}

+ 16 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductAttributeCategoryDao.java

@@ -0,0 +1,16 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.PmsProductAttributeCategoryItem;
+
+import java.util.List;
+
+/**
+ * 商品属性分类管理自定义Dao
+ * Created by macro on 2018/5/24.
+ */
+public interface PmsProductAttributeCategoryDao {
+    /**
+     * 获取包含属性的商品属性分类
+     */
+    List<PmsProductAttributeCategoryItem> getListWithAttr();
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductAttributeDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.ProductAttrInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品属性管理自定义Dao
+ * Created by macro on 2018/5/23.
+ */
+public interface PmsProductAttributeDao {
+    /**
+     * 获取商品属性信息
+     */
+    List<ProductAttrInfo> getProductAttrInfo(@Param("id") Long productCategoryId);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductAttributeValueDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.PmsProductAttributeValue;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品参数/规格属性自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductAttributeValueDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list")List<PmsProductAttributeValue> productAttributeValueList);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductCategoryAttributeRelationDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.PmsProductCategoryAttributeRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品分类和属性关系自定义Dao
+ * Created by macro on 2018/5/23.
+ */
+public interface PmsProductCategoryAttributeRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductCategoryAttributeRelation> productCategoryAttributeRelationList);
+}

+ 16 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductCategoryDao.java

@@ -0,0 +1,16 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.PmsProductCategoryWithChildrenItem;
+
+import java.util.List;
+
+/**
+ * 商品分类自定义Dao
+ * Created by macro on 2018/5/25.
+ */
+public interface PmsProductCategoryDao {
+    /**
+     * 获取商品分类及其子分类
+     */
+    List<PmsProductCategoryWithChildrenItem> listWithChildren();
+}

+ 27 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductDao.java

@@ -0,0 +1,27 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.HomeStatistical;
+import com.yonge.cooleshow.admin.dto.PmsProductQueryParam;
+import com.yonge.cooleshow.admin.dto.PmsProductResult;
+import com.yonge.cooleshow.mbg.model.PmsProduct;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * 商品管理自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductDao {
+    /**
+     * 获取商品编辑信息
+     */
+    PmsProductResult getUpdateInfo(@Param("id") Long id);
+
+    HomeStatistical selectLowStockCount();
+
+    HomeStatistical selectProductShowStatusCount();
+
+    List<PmsProduct> list(@Param("param") PmsProductQueryParam productQueryParam);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductFullReductionDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.PmsProductFullReduction;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品满减自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductFullReductionDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductFullReduction> productFullReductionList);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductLadderDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.PmsProductLadder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 会员阶梯价格自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsProductLadderDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductLadder> productLadderList);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsProductVertifyRecordDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.PmsProductVertifyRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品审核日志管理自定义Dao
+ * Created by macro on 2018/4/27.
+ */
+public interface PmsProductVertifyRecordDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list") List<PmsProductVertifyRecord> list);
+}

+ 22 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/PmsSkuStockDao.java

@@ -0,0 +1,22 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.PmsSkuStock;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 商品SKU管理自定义Dao
+ * Created by macro on 2018/4/26.
+ */
+public interface PmsSkuStockDao {
+    /**
+     * 批量插入操作
+     */
+    int insertList(@Param("list")List<PmsSkuStock> skuStockList);
+
+    /**
+     * 批量插入或替换操作
+     */
+    int replaceList(@Param("list")List<PmsSkuStock> skuStockList);
+}

+ 15 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsCouponDao.java

@@ -0,0 +1,15 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.SmsCouponParam;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 优惠券管理自定义Dao
+ * Created by macro on 2018/8/29.
+ */
+public interface SmsCouponDao {
+    /**
+     * 获取优惠券详情包括绑定关系
+     */
+    SmsCouponParam getItem(@Param("id") Long id);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsCouponProductCategoryRelationDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.SmsCouponProductCategoryRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 优惠券和商品分类关系管理自定义Dao
+ * Created by macro on 2018/8/28.
+ */
+public interface SmsCouponProductCategoryRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list")List<SmsCouponProductCategoryRelation> productCategoryRelationList);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsCouponProductRelationDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.SmsCouponProductRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 优惠券和商品关系自定义Dao
+ * Created by macro on 2018/8/28.
+ */
+public interface SmsCouponProductRelationDao {
+    /**
+     * 批量创建
+     */
+    int insertList(@Param("list")List<SmsCouponProductRelation> productRelationList);
+}

+ 17 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/SmsFlashPromotionProductRelationDao.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.admin.dto.SmsFlashPromotionProduct;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 限时购商品关系管理自定义Dao
+ * Created by macro on 2018/11/16.
+ */
+public interface SmsFlashPromotionProductRelationDao {
+    /**
+     * 获取限时购及相关商品信息
+     */
+    List<SmsFlashPromotionProduct> getList(@Param("flashPromotionId") Long flashPromotionId, @Param("flashPromotionSessionId") Long flashPromotionSessionId);
+}

+ 34 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/UmsAdminRoleRelationDao.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.UmsAdminRoleRelation;
+import com.yonge.cooleshow.mbg.model.UmsResource;
+import com.yonge.cooleshow.mbg.model.UmsRole;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 后台用户与角色关系管理自定义Dao
+ * Created by macro on 2018/10/8.
+ */
+public interface UmsAdminRoleRelationDao {
+    /**
+     * 批量插入用户角色关系
+     */
+    int insertList(@Param("list") List<UmsAdminRoleRelation> adminRoleRelationList);
+
+    /**
+     * 获取用于所有角色
+     */
+    List<UmsRole> getRoleList(@Param("adminId") Long adminId);
+
+    /**
+     * 获取用户所有可访问资源
+     */
+    List<UmsResource> getResourceList(@Param("adminId") Long adminId);
+
+    /**
+     * 获取资源相关用户ID列表
+     */
+    List<Long> getAdminIdList(@Param("resourceId") Long resourceId);
+}

+ 26 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dao/UmsRoleDao.java

@@ -0,0 +1,26 @@
+package com.yonge.cooleshow.admin.dao;
+
+import com.yonge.cooleshow.mbg.model.UmsMenu;
+import com.yonge.cooleshow.mbg.model.UmsResource;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 后台角色管理自定义Dao
+ * Created by macro on 2020/2/2.
+ */
+public interface UmsRoleDao {
+    /**
+     * 根据后台用户ID获取菜单
+     */
+    List<UmsMenu> getMenuList(@Param("adminId") Long adminId);
+    /**
+     * 根据角色ID获取菜单
+     */
+    List<UmsMenu> getMenuListByRoleId(@Param("roleId") Long roleId);
+    /**
+     * 根据角色ID获取资源
+     */
+    List<UmsResource> getResourceListByRoleId(@Param("roleId") Long roleId);
+}

+ 70 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/BucketPolicyConfigDto.java

@@ -0,0 +1,70 @@
+package com.yonge.cooleshow.admin.dto;
+
+
+import java.util.List;
+
+/**
+ * Minio Bucket访问策略配置
+ * Created by macro on 2020/8/11.
+ */
+
+public class BucketPolicyConfigDto {
+
+    private String Version;
+    private List<Statement> Statement;
+
+    public String getVersion() {
+        return Version;
+    }
+
+    public void setVersion(String version) {
+        Version = version;
+    }
+
+    public List<BucketPolicyConfigDto.Statement> getStatement() {
+        return Statement;
+    }
+
+    public void setStatement(List<BucketPolicyConfigDto.Statement> statement) {
+        Statement = statement;
+    }
+
+    public static class Statement {
+        private String Effect;
+        private String Principal;
+        private String Action;
+        private String Resource;
+
+        public String getEffect() {
+            return Effect;
+        }
+
+        public void setEffect(String effect) {
+            Effect = effect;
+        }
+
+        public String getPrincipal() {
+            return Principal;
+        }
+
+        public void setPrincipal(String principal) {
+            Principal = principal;
+        }
+
+        public String getAction() {
+            return Action;
+        }
+
+        public void setAction(String action) {
+            Action = action;
+        }
+
+        public String getResource() {
+            return Resource;
+        }
+
+        public void setResource(String resource) {
+            Resource = resource;
+        }
+    }
+}

+ 123 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/HomeOrderStatistical.java

@@ -0,0 +1,123 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-25
+ */
+@ApiModel("首页订单统计数据")
+public class HomeOrderStatistical {
+
+    @ApiModelProperty("本月订单数")
+    private Integer monthOrderCount;
+
+    @ApiModelProperty("订单数同比上月")
+    private Integer monthOrderCountProportion;
+
+    @ApiModelProperty("本周订单数")
+    private Integer weekOrderCount;
+
+
+    @ApiModelProperty("订单数同比上周")
+    private Integer weekOrderCountProportion;
+
+
+    @ApiModelProperty("本月订单金额")
+    private BigDecimal monthOrderAmount;
+
+
+    @ApiModelProperty("本月订单同比金额")
+    private Integer monthOrderAmountProportion;
+
+
+    @ApiModelProperty("本周订单数")
+    private BigDecimal weekOrderAmount;
+
+
+    @ApiModelProperty("本周订单同比金额")
+    private Integer weekOrderAmountProportion;
+
+    @ApiModelProperty("统计图数据")
+    private List<OrderStatistical> orderStatisticalList;
+
+
+    public Integer getMonthOrderCount() {
+        return monthOrderCount;
+    }
+
+    public void setMonthOrderCount(Integer monthOrderCount) {
+        this.monthOrderCount = monthOrderCount;
+    }
+
+    public Integer getMonthOrderCountProportion() {
+        return monthOrderCountProportion;
+    }
+
+    public void setMonthOrderCountProportion(Integer monthOrderCountProportion) {
+        this.monthOrderCountProportion = monthOrderCountProportion;
+    }
+
+    public Integer getWeekOrderCount() {
+        return weekOrderCount;
+    }
+
+    public void setWeekOrderCount(Integer weekOrderCount) {
+        this.weekOrderCount = weekOrderCount;
+    }
+
+    public Integer getWeekOrderCountProportion() {
+        return weekOrderCountProportion;
+    }
+
+    public void setWeekOrderCountProportion(Integer weekOrderCountProportion) {
+        this.weekOrderCountProportion = weekOrderCountProportion;
+    }
+
+    public BigDecimal getMonthOrderAmount() {
+        return monthOrderAmount;
+    }
+
+    public void setMonthOrderAmount(BigDecimal monthOrderAmount) {
+        this.monthOrderAmount = monthOrderAmount;
+    }
+
+    public Integer getMonthOrderAmountProportion() {
+        return monthOrderAmountProportion;
+    }
+
+    public void setMonthOrderAmountProportion(Integer monthOrderAmountProportion) {
+        this.monthOrderAmountProportion = monthOrderAmountProportion;
+    }
+
+    public BigDecimal getWeekOrderAmount() {
+        return weekOrderAmount;
+    }
+
+    public void setWeekOrderAmount(BigDecimal weekOrderAmount) {
+        this.weekOrderAmount = weekOrderAmount;
+    }
+
+    public Integer getWeekOrderAmountProportion() {
+        return weekOrderAmountProportion;
+    }
+
+    public void setWeekOrderAmountProportion(Integer weekOrderAmountProportion) {
+        this.weekOrderAmountProportion = weekOrderAmountProportion;
+    }
+
+    public List<OrderStatistical> getOrderStatisticalList() {
+        return orderStatisticalList;
+    }
+
+    public void setOrderStatisticalList(List<OrderStatistical> orderStatisticalList) {
+        this.orderStatisticalList = orderStatisticalList;
+    }
+}
+

+ 196 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/HomeStatistical.java

@@ -0,0 +1,196 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-24
+ */
+@ApiModel("首页统计")
+public class HomeStatistical {
+
+    @ApiModelProperty("今日订单数")
+    private Integer todayOrderNum;
+
+    @ApiModelProperty("今日销售金额")
+    private BigDecimal todayOrderAmount;
+
+    @ApiModelProperty("昨日订单数")
+    private Integer yesterdayOrderNum;
+
+    @ApiModelProperty("昨日销售金额")
+    private BigDecimal yesterdayOrderAmount;
+
+
+    @ApiModelProperty("待付款订单")
+    private Integer waitPayOrder;
+
+    @ApiModelProperty("待发货订单")
+    private Integer waitOutOrder;
+
+    @ApiModelProperty("已发货订单")
+    private Integer outOrder;
+
+    @ApiModelProperty("已完成订单")
+    private Integer successOrder;
+
+    @ApiModelProperty("待确认收货订单")
+    private Integer waitReceiptOrder;
+
+    @ApiModelProperty("新缺货登记")
+    private Integer outStockProduct;
+
+    @ApiModelProperty("待处理退款申请")
+    private Integer waitDisposeRefund;
+
+    @ApiModelProperty("待处理退货订单")
+    private Integer waitDisposeRefundOrder;
+
+    @ApiModelProperty("已下架")
+    private Integer delisted;
+
+
+    @ApiModelProperty("已上架")
+    private Integer shelves;
+
+
+    @ApiModelProperty("库存紧张")
+    private Integer outStock;
+
+
+    @ApiModelProperty("全部商品")
+    private Integer productNum;
+
+    public Integer getTodayOrderNum() {
+        return todayOrderNum;
+    }
+
+    public void setTodayOrderNum(Integer todayOrderNum) {
+        this.todayOrderNum = todayOrderNum;
+    }
+
+    public BigDecimal getTodayOrderAmount() {
+        return todayOrderAmount;
+    }
+
+    public void setTodayOrderAmount(BigDecimal todayOrderAmount) {
+        this.todayOrderAmount = todayOrderAmount;
+    }
+
+    public Integer getYesterdayOrderNum() {
+        return yesterdayOrderNum;
+    }
+
+    public void setYesterdayOrderNum(Integer yesterdayOrderNum) {
+        this.yesterdayOrderNum = yesterdayOrderNum;
+    }
+
+    public BigDecimal getYesterdayOrderAmount() {
+        return yesterdayOrderAmount;
+    }
+
+    public void setYesterdayOrderAmount(BigDecimal yesterdayOrderAmount) {
+        this.yesterdayOrderAmount = yesterdayOrderAmount;
+    }
+
+    public Integer getWaitPayOrder() {
+        return waitPayOrder;
+    }
+
+    public void setWaitPayOrder(Integer waitPayOrder) {
+        this.waitPayOrder = waitPayOrder;
+    }
+
+    public Integer getWaitOutOrder() {
+        return waitOutOrder;
+    }
+
+    public void setWaitOutOrder(Integer waitOutOrder) {
+        this.waitOutOrder = waitOutOrder;
+    }
+
+    public Integer getOutOrder() {
+        return outOrder;
+    }
+
+    public void setOutOrder(Integer outOrder) {
+        this.outOrder = outOrder;
+    }
+
+    public Integer getSuccessOrder() {
+        return successOrder;
+    }
+
+    public void setSuccessOrder(Integer successOrder) {
+        this.successOrder = successOrder;
+    }
+
+    public Integer getWaitReceiptOrder() {
+        return waitReceiptOrder;
+    }
+
+    public void setWaitReceiptOrder(Integer waitReceiptOrder) {
+        this.waitReceiptOrder = waitReceiptOrder;
+    }
+
+    public Integer getOutStockProduct() {
+        return outStockProduct;
+    }
+
+    public void setOutStockProduct(Integer outStockProduct) {
+        this.outStockProduct = outStockProduct;
+    }
+
+    public Integer getWaitDisposeRefund() {
+        return waitDisposeRefund;
+    }
+
+    public void setWaitDisposeRefund(Integer waitDisposeRefund) {
+        this.waitDisposeRefund = waitDisposeRefund;
+    }
+
+    public Integer getWaitDisposeRefundOrder() {
+        return waitDisposeRefundOrder;
+    }
+
+    public void setWaitDisposeRefundOrder(Integer waitDisposeRefundOrder) {
+        this.waitDisposeRefundOrder = waitDisposeRefundOrder;
+    }
+
+    public Integer getDelisted() {
+        return delisted;
+    }
+
+    public void setDelisted(Integer delisted) {
+        this.delisted = delisted;
+    }
+
+    public Integer getShelves() {
+        return shelves;
+    }
+
+    public void setShelves(Integer shelves) {
+        this.shelves = shelves;
+    }
+
+    public Integer getOutStock() {
+        return outStock;
+    }
+
+    public void setOutStock(Integer outStock) {
+        this.outStock = outStock;
+    }
+
+    public Integer getProductNum() {
+        return productNum;
+    }
+
+    public void setProductNum(Integer productNum) {
+        this.productNum = productNum;
+    }
+}

+ 31 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/MinioUploadDto.java

@@ -0,0 +1,31 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 文件上传返回结果
+ * Created by macro on 2019/12/25.
+ */
+
+public class MinioUploadDto {
+    @ApiModelProperty("文件访问URL")
+    private String url;
+    @ApiModelProperty("文件名称")
+    private String name;
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 54 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsMoneyInfoParam.java

@@ -0,0 +1,54 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+import java.math.BigDecimal;
+
+/**
+ * 修改订单费用信息参数
+ * Created by macro on 2018/10/29.
+ */
+
+public class OmsMoneyInfoParam {
+    @ApiModelProperty("订单ID")
+    private Long orderId;
+    @ApiModelProperty("运费金额")
+    private BigDecimal freightAmount;
+    @ApiModelProperty("管理员后台调整订单所使用的折扣金额")
+    private BigDecimal discountAmount;
+    @ApiModelProperty("订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单")
+    private Integer status;
+
+    public Long getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Long orderId) {
+        this.orderId = orderId;
+    }
+
+    public BigDecimal getFreightAmount() {
+        return freightAmount;
+    }
+
+    public void setFreightAmount(BigDecimal freightAmount) {
+        this.freightAmount = freightAmount;
+    }
+
+    public BigDecimal getDiscountAmount() {
+        return discountAmount;
+    }
+
+    public void setDiscountAmount(BigDecimal discountAmount) {
+        this.discountAmount = discountAmount;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

+ 42 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderDeliveryParam.java

@@ -0,0 +1,42 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 订单发货参数
+ * Created by macro on 2018/10/12.
+ */
+
+public class OmsOrderDeliveryParam {
+    @ApiModelProperty("订单id")
+    private Long orderId;
+    @ApiModelProperty("物流公司")
+    private String deliveryCompany;
+    @ApiModelProperty("物流单号")
+    private String deliverySn;
+
+    public Long getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Long orderId) {
+        this.orderId = orderId;
+    }
+
+    public String getDeliveryCompany() {
+        return deliveryCompany;
+    }
+
+    public void setDeliveryCompany(String deliveryCompany) {
+        this.deliveryCompany = deliveryCompany;
+    }
+
+    public String getDeliverySn() {
+        return deliverySn;
+    }
+
+    public void setDeliverySn(String deliverySn) {
+        this.deliverySn = deliverySn;
+    }
+}

+ 39 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderDetail.java

@@ -0,0 +1,39 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.OmsOrder;
+import com.yonge.cooleshow.mbg.model.OmsOrderItem;
+import com.yonge.cooleshow.mbg.model.OmsOrderOperateHistory;
+import io.swagger.annotations.ApiModelProperty;
+
+
+import java.util.List;
+
+/**
+ * 订单详情信息
+ * Created by macro on 2018/10/11.
+ */
+public class OmsOrderDetail extends OmsOrder {
+
+    @ApiModelProperty("订单商品列表")
+    private List<OmsOrderItem> orderItemList;
+
+    @ApiModelProperty("订单操作记录列表")
+    private List<OmsOrderOperateHistory> historyList;
+
+
+    public List<OmsOrderItem> getOrderItemList() {
+        return orderItemList;
+    }
+
+    public void setOrderItemList(List<OmsOrderItem> orderItemList) {
+        this.orderItemList = orderItemList;
+    }
+
+    public List<OmsOrderOperateHistory> getHistoryList() {
+        return historyList;
+    }
+
+    public void setHistoryList(List<OmsOrderOperateHistory> historyList) {
+        this.historyList = historyList;
+    }
+}

+ 72 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderQueryParam.java

@@ -0,0 +1,72 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 订单查询参数
+ * Created by macro on 2018/10/11.
+ */
+
+public class OmsOrderQueryParam {
+    @ApiModelProperty(value = "订单编号")
+    private String orderSn;
+    @ApiModelProperty(value = "收货人姓名/号码")
+    private String receiverKeyword;
+    @ApiModelProperty(value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单")
+    private Integer status;
+    @ApiModelProperty(value = "订单类型:0->正常订单;1->秒杀订单")
+    private Integer orderType;
+    @ApiModelProperty(value = "订单来源:0->PC订单;1->app订单")
+    private Integer sourceType;
+    @ApiModelProperty(value = "订单提交时间")
+    private String createTime;
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    public String getReceiverKeyword() {
+        return receiverKeyword;
+    }
+
+    public void setReceiverKeyword(String receiverKeyword) {
+        this.receiverKeyword = receiverKeyword;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getSourceType() {
+        return sourceType;
+    }
+
+    public void setSourceType(Integer sourceType) {
+        this.sourceType = sourceType;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 24 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsOrderReturnApplyResult.java

@@ -0,0 +1,24 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.OmsCompanyAddress;
+import com.yonge.cooleshow.mbg.model.OmsOrderReturnApply;
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 申请信息封装
+ * Created by macro on 2018/10/18.
+ */
+public class OmsOrderReturnApplyResult extends OmsOrderReturnApply {
+
+    @ApiModelProperty(value = "公司收货地址")
+    private OmsCompanyAddress companyAddress;
+
+    public OmsCompanyAddress getCompanyAddress() {
+        return companyAddress;
+    }
+
+    public void setCompanyAddress(OmsCompanyAddress companyAddress) {
+        this.companyAddress = companyAddress;
+    }
+}

+ 102 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsReceiverInfoParam.java

@@ -0,0 +1,102 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 订单修改收货人信息参数
+ * Created by macro on 2018/10/29.
+ */
+
+public class OmsReceiverInfoParam {
+    @ApiModelProperty(value = "订单ID")
+    private Long orderId;
+    @ApiModelProperty(value = "收货人姓名")
+    private String receiverName;
+    @ApiModelProperty(value = "收货人电话")
+    private String receiverPhone;
+    @ApiModelProperty(value = "收货人邮编")
+    private String receiverPostCode;
+    @ApiModelProperty(value = "详细地址")
+    private String receiverDetailAddress;
+    @ApiModelProperty(value = "省份/直辖市")
+    private String receiverProvince;
+    @ApiModelProperty(value = "城市")
+    private String receiverCity;
+    @ApiModelProperty(value = "区")
+    private String receiverRegion;
+    @ApiModelProperty(value = "订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单")
+    private Integer status;
+
+    public Long getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Long orderId) {
+        this.orderId = orderId;
+    }
+
+    public String getReceiverName() {
+        return receiverName;
+    }
+
+    public void setReceiverName(String receiverName) {
+        this.receiverName = receiverName;
+    }
+
+    public String getReceiverPhone() {
+        return receiverPhone;
+    }
+
+    public void setReceiverPhone(String receiverPhone) {
+        this.receiverPhone = receiverPhone;
+    }
+
+    public String getReceiverPostCode() {
+        return receiverPostCode;
+    }
+
+    public void setReceiverPostCode(String receiverPostCode) {
+        this.receiverPostCode = receiverPostCode;
+    }
+
+    public String getReceiverDetailAddress() {
+        return receiverDetailAddress;
+    }
+
+    public void setReceiverDetailAddress(String receiverDetailAddress) {
+        this.receiverDetailAddress = receiverDetailAddress;
+    }
+
+    public String getReceiverProvince() {
+        return receiverProvince;
+    }
+
+    public void setReceiverProvince(String receiverProvince) {
+        this.receiverProvince = receiverProvince;
+    }
+
+    public String getReceiverCity() {
+        return receiverCity;
+    }
+
+    public void setReceiverCity(String receiverCity) {
+        this.receiverCity = receiverCity;
+    }
+
+    public String getReceiverRegion() {
+        return receiverRegion;
+    }
+
+    public void setReceiverRegion(String receiverRegion) {
+        this.receiverRegion = receiverRegion;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

+ 72 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsReturnApplyQueryParam.java

@@ -0,0 +1,72 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 订单退货申请查询参数
+ * Created by macro on 2018/10/18.
+ */
+
+public class OmsReturnApplyQueryParam {
+    @ApiModelProperty("服务单号")
+    private Long id;
+    @ApiModelProperty(value = "收货人姓名/号码")
+    private String receiverKeyword;
+    @ApiModelProperty(value = "申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝")
+    private Integer status;
+    @ApiModelProperty(value = "申请时间")
+    private String createTime;
+    @ApiModelProperty(value = "处理人员")
+    private String handleMan;
+    @ApiModelProperty(value = "处理时间")
+    private String handleTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getReceiverKeyword() {
+        return receiverKeyword;
+    }
+
+    public void setReceiverKeyword(String receiverKeyword) {
+        this.receiverKeyword = receiverKeyword;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getHandleMan() {
+        return handleMan;
+    }
+
+    public void setHandleMan(String handleMan) {
+        this.handleMan = handleMan;
+    }
+
+    public String getHandleTime() {
+        return handleTime;
+    }
+
+    public void setHandleTime(String handleTime) {
+        this.handleTime = handleTime;
+    }
+}

+ 94 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OmsUpdateStatusParam.java

@@ -0,0 +1,94 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+import java.math.BigDecimal;
+
+/**
+ * 确认收货请求参数
+ * Created by macro on 2018/10/18.
+ */
+
+public class OmsUpdateStatusParam {
+    @ApiModelProperty("服务单号")
+    private Long id;
+    @ApiModelProperty("收货地址关联id")
+    private Long companyAddressId;
+    @ApiModelProperty("确认退款金额")
+    private BigDecimal returnAmount;
+    @ApiModelProperty("处理备注")
+    private String handleNote;
+    @ApiModelProperty("处理人")
+    private String handleMan;
+    @ApiModelProperty("收货备注")
+    private String receiveNote;
+    @ApiModelProperty("收货人")
+    private String receiveMan;
+    @ApiModelProperty("申请状态:1->退货中;2->已完成;3->已拒绝")
+    private Integer status;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getCompanyAddressId() {
+        return companyAddressId;
+    }
+
+    public void setCompanyAddressId(Long companyAddressId) {
+        this.companyAddressId = companyAddressId;
+    }
+
+    public BigDecimal getReturnAmount() {
+        return returnAmount;
+    }
+
+    public void setReturnAmount(BigDecimal returnAmount) {
+        this.returnAmount = returnAmount;
+    }
+
+    public String getHandleNote() {
+        return handleNote;
+    }
+
+    public void setHandleNote(String handleNote) {
+        this.handleNote = handleNote;
+    }
+
+    public String getHandleMan() {
+        return handleMan;
+    }
+
+    public void setHandleMan(String handleMan) {
+        this.handleMan = handleMan;
+    }
+
+    public String getReceiveNote() {
+        return receiveNote;
+    }
+
+    public void setReceiveNote(String receiveNote) {
+        this.receiveNote = receiveNote;
+    }
+
+    public String getReceiveMan() {
+        return receiveMan;
+    }
+
+    public void setReceiveMan(String receiveMan) {
+        this.receiveMan = receiveMan;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+}

+ 50 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OrderStatistical.java

@@ -0,0 +1,50 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-05-25
+ */
+@ApiModel("订单统计")
+public class OrderStatistical {
+
+    @ApiModelProperty("日期")
+    private String date;
+
+    @ApiModelProperty("订单数")
+    private Integer orderNum;
+
+    @ApiModelProperty("订单总额")
+    private BigDecimal orderAmount;
+
+
+    public String getDate() {
+        return date;
+    }
+
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    public Integer getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(Integer orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public BigDecimal getOrderAmount() {
+        return orderAmount;
+    }
+
+    public void setOrderAmount(BigDecimal orderAmount) {
+        this.orderAmount = orderAmount;
+    }
+}

+ 58 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OrderVo.java

@@ -0,0 +1,58 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.OmsOrder;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-06-21
+ */
+public class OrderVo extends OmsOrder {
+
+    @ApiModelProperty("用户编号")
+    private String userId;
+
+    @ApiModelProperty("用户昵称")
+    private String username;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("用户类型 STUDENT:学生  TEACHER:老师")
+    private String userType;
+
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+}

+ 42 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OssCallbackParam.java

@@ -0,0 +1,42 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * OSS上传成功后的回调参数
+ * Created by macro on 2018/5/17.
+ */
+
+public class OssCallbackParam {
+    @ApiModelProperty("请求的回调地址")
+    private String callbackUrl;
+    @ApiModelProperty("回调是传入request中的参数")
+    private String callbackBody;
+    @ApiModelProperty("回调时传入参数的格式,比如表单提交形式")
+    private String callbackBodyType;
+
+    public String getCallbackUrl() {
+        return callbackUrl;
+    }
+
+    public void setCallbackUrl(String callbackUrl) {
+        this.callbackUrl = callbackUrl;
+    }
+
+    public String getCallbackBody() {
+        return callbackBody;
+    }
+
+    public void setCallbackBody(String callbackBody) {
+        this.callbackBody = callbackBody;
+    }
+
+    public String getCallbackBodyType() {
+        return callbackBodyType;
+    }
+
+    public void setCallbackBodyType(String callbackBodyType) {
+        this.callbackBodyType = callbackBodyType;
+    }
+}

+ 62 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OssCallbackResult.java

@@ -0,0 +1,62 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * OSS上传文件的回调结果
+ * Created by macro on 2018/5/17.
+ */
+
+public class OssCallbackResult {
+    @ApiModelProperty("文件名称")
+    private String filename;
+    @ApiModelProperty("文件大小")
+    private String size;
+    @ApiModelProperty("文件的mimeType")
+    private String mimeType;
+    @ApiModelProperty("图片文件的宽")
+    private String width;
+    @ApiModelProperty("图片文件的高")
+    private String height;
+
+    public String getFilename() {
+        return filename;
+    }
+
+    public void setFilename(String filename) {
+        this.filename = filename;
+    }
+
+    public String getSize() {
+        return size;
+    }
+
+    public void setSize(String size) {
+        this.size = size;
+    }
+
+    public String getMimeType() {
+        return mimeType;
+    }
+
+    public void setMimeType(String mimeType) {
+        this.mimeType = mimeType;
+    }
+
+    public String getWidth() {
+        return width;
+    }
+
+    public void setWidth(String width) {
+        this.width = width;
+    }
+
+    public String getHeight() {
+        return height;
+    }
+
+    public void setHeight(String height) {
+        this.height = height;
+    }
+}

+ 72 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/OssPolicyResult.java

@@ -0,0 +1,72 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 获取OSS上传文件授权返回结果
+ * Created by macro on 2018/5/17.
+ */
+
+public class OssPolicyResult {
+    @ApiModelProperty("访问身份验证中用到用户标识")
+    private String accessKeyId;
+    @ApiModelProperty("用户表单上传的策略,经过base64编码过的字符串")
+    private String policy;
+    @ApiModelProperty("对policy签名后的字符串")
+    private String signature;
+    @ApiModelProperty("上传文件夹路径前缀")
+    private String dir;
+    @ApiModelProperty("oss对外服务的访问域名")
+    private String host;
+    @ApiModelProperty("上传成功后的回调设置")
+    private String callback;
+
+    public String getAccessKeyId() {
+        return accessKeyId;
+    }
+
+    public void setAccessKeyId(String accessKeyId) {
+        this.accessKeyId = accessKeyId;
+    }
+
+    public String getPolicy() {
+        return policy;
+    }
+
+    public void setPolicy(String policy) {
+        this.policy = policy;
+    }
+
+    public String getSignature() {
+        return signature;
+    }
+
+    public void setSignature(String signature) {
+        this.signature = signature;
+    }
+
+    public String getDir() {
+        return dir;
+    }
+
+    public void setDir(String dir) {
+        this.dir = dir;
+    }
+
+    public String getHost() {
+        return host;
+    }
+
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    public String getCallback() {
+        return callback;
+    }
+
+    public void setCallback(String callback) {
+        this.callback = callback;
+    }
+}

+ 101 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsBrandParam.java

@@ -0,0 +1,101 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.admin.validator.FlagValidator;
+import io.swagger.annotations.ApiModelProperty;
+
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 品牌请求参数
+ * Created by macro on 2018/4/26.
+ */
+
+public class PmsBrandParam {
+    @NotEmpty
+    @ApiModelProperty(value = "品牌名称",required = true)
+    private String name;
+    @ApiModelProperty(value = "品牌首字母")
+    private String firstLetter;
+    @Min(value = 0)
+    @ApiModelProperty(value = "排序字段")
+    private Integer sort;
+    @FlagValidator(value = {"0","1"}, message = "厂家状态不正确")
+    @ApiModelProperty(value = "是否为厂家制造商")
+    private Integer factoryStatus;
+    @FlagValidator(value = {"0","1"}, message = "显示状态不正确")
+    @ApiModelProperty(value = "是否进行显示")
+    private Integer showStatus;
+    @NotEmpty
+    @ApiModelProperty(value = "品牌logo",required = true)
+    private String logo;
+    @ApiModelProperty(value = "品牌大图")
+    private String bigPic;
+    @ApiModelProperty(value = "品牌故事")
+    private String brandStory;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getFirstLetter() {
+        return firstLetter;
+    }
+
+    public void setFirstLetter(String firstLetter) {
+        this.firstLetter = firstLetter;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public Integer getFactoryStatus() {
+        return factoryStatus;
+    }
+
+    public void setFactoryStatus(Integer factoryStatus) {
+        this.factoryStatus = factoryStatus;
+    }
+
+    public Integer getShowStatus() {
+        return showStatus;
+    }
+
+    public void setShowStatus(Integer showStatus) {
+        this.showStatus = showStatus;
+    }
+
+    public String getLogo() {
+        return logo;
+    }
+
+    public void setLogo(String logo) {
+        this.logo = logo;
+    }
+
+    public String getBigPic() {
+        return bigPic;
+    }
+
+    public void setBigPic(String bigPic) {
+        this.bigPic = bigPic;
+    }
+
+    public String getBrandStory() {
+        return brandStory;
+    }
+
+    public void setBrandStory(String brandStory) {
+        this.brandStory = brandStory;
+    }
+}

+ 26 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductAttributeCategoryItem.java

@@ -0,0 +1,26 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.PmsProductAttribute;
+import com.yonge.cooleshow.mbg.model.PmsProductAttributeCategory;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * 带有属性的商品属性分类
+ * Created by macro on 2018/5/24.
+ */
+public class PmsProductAttributeCategoryItem extends PmsProductAttributeCategory {
+
+    @ApiModelProperty(value = "商品属性列表")
+    private List<PmsProductAttribute> productAttributeList;
+
+
+    public List<PmsProductAttribute> getProductAttributeList() {
+        return productAttributeList;
+    }
+
+    public void setProductAttributeList(List<PmsProductAttribute> productAttributeList) {
+        this.productAttributeList = productAttributeList;
+    }
+}

+ 132 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductAttributeParam.java

@@ -0,0 +1,132 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.admin.validator.FlagValidator;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotEmpty;
+
+/**
+ * 商品属性参数
+ * Created by macro on 2018/4/26.
+ */
+
+public class PmsProductAttributeParam {
+    @NotEmpty
+    @ApiModelProperty("属性分类ID")
+    private Long productAttributeCategoryId;
+    @NotEmpty
+    @ApiModelProperty("属性名称")
+    private String name;
+    @FlagValidator({"0","1","2"})
+    @ApiModelProperty("属性选择类型:0->唯一;1->单选;2->多选")
+    private Integer selectType;
+    @FlagValidator({"0","1"})
+    @ApiModelProperty("属性录入方式:0->手工录入;1->从列表中选取")
+    private Integer inputType;
+    @ApiModelProperty("可选值列表,以逗号隔开")
+    private String inputList;
+    private Integer sort;
+    @ApiModelProperty("分类筛选样式:0->普通;1->颜色")
+    @FlagValidator({"0","1"})
+    private Integer filterType;
+    @ApiModelProperty("检索类型;0->不需要进行检索;1->关键字检索;2->范围检索")
+    @FlagValidator({"0","1","2"})
+    private Integer searchType;
+    @ApiModelProperty("相同属性产品是否关联;0->不关联;1->关联")
+    @FlagValidator({"0","1"})
+    private Integer relatedStatus;
+    @ApiModelProperty("是否支持手动新增;0->不支持;1->支持")
+    @FlagValidator({"0","1"})
+    private Integer handAddStatus;
+    @ApiModelProperty("属性的类型;0->规格;1->参数")
+    @FlagValidator({"0","1"})
+    private Integer type;
+
+    public Long getProductAttributeCategoryId() {
+        return productAttributeCategoryId;
+    }
+
+    public void setProductAttributeCategoryId(Long productAttributeCategoryId) {
+        this.productAttributeCategoryId = productAttributeCategoryId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getSelectType() {
+        return selectType;
+    }
+
+    public void setSelectType(Integer selectType) {
+        this.selectType = selectType;
+    }
+
+    public Integer getInputType() {
+        return inputType;
+    }
+
+    public void setInputType(Integer inputType) {
+        this.inputType = inputType;
+    }
+
+    public String getInputList() {
+        return inputList;
+    }
+
+    public void setInputList(String inputList) {
+        this.inputList = inputList;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public Integer getFilterType() {
+        return filterType;
+    }
+
+    public void setFilterType(Integer filterType) {
+        this.filterType = filterType;
+    }
+
+    public Integer getSearchType() {
+        return searchType;
+    }
+
+    public void setSearchType(Integer searchType) {
+        this.searchType = searchType;
+    }
+
+    public Integer getRelatedStatus() {
+        return relatedStatus;
+    }
+
+    public void setRelatedStatus(Integer relatedStatus) {
+        this.relatedStatus = relatedStatus;
+    }
+
+    public Integer getHandAddStatus() {
+        return handAddStatus;
+    }
+
+    public void setHandAddStatus(Integer handAddStatus) {
+        this.handAddStatus = handAddStatus;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+}

+ 120 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductCategoryParam.java

@@ -0,0 +1,120 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.admin.validator.FlagValidator;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 添加更新产品分类的参数
+ * Created by macro on 2018/4/26.
+ */
+
+public class PmsProductCategoryParam {
+    @ApiModelProperty("父分类的编号")
+    private Long parentId;
+    @NotEmpty
+    @ApiModelProperty(value = "商品分类名称",required = true)
+    private String name;
+    @ApiModelProperty("分类单位")
+    private String productUnit;
+    @FlagValidator(value = {"0","1"},message = "状态只能为0或1")
+    @ApiModelProperty("是否在导航栏显示")
+    private Integer navStatus;
+    @FlagValidator(value = {"0","1"},message = "状态只能为0或1")
+    @ApiModelProperty("是否进行显示")
+    private Integer showStatus;
+    @Min(value = 0)
+    @ApiModelProperty("排序")
+    private Integer sort;
+    @ApiModelProperty("图标")
+    private String icon;
+    @ApiModelProperty("关键字")
+    private String keywords;
+    @ApiModelProperty("描述")
+    private String description;
+    @ApiModelProperty("产品相关筛选属性集合")
+    private List<Long> productAttributeIdList;
+
+    public Long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Long parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getProductUnit() {
+        return productUnit;
+    }
+
+    public void setProductUnit(String productUnit) {
+        this.productUnit = productUnit;
+    }
+
+    public Integer getNavStatus() {
+        return navStatus;
+    }
+
+    public void setNavStatus(Integer navStatus) {
+        this.navStatus = navStatus;
+    }
+
+    public Integer getShowStatus() {
+        return showStatus;
+    }
+
+    public void setShowStatus(Integer showStatus) {
+        this.showStatus = showStatus;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getKeywords() {
+        return keywords;
+    }
+
+    public void setKeywords(String keywords) {
+        this.keywords = keywords;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public List<Long> getProductAttributeIdList() {
+        return productAttributeIdList;
+    }
+
+    public void setProductAttributeIdList(List<Long> productAttributeIdList) {
+        this.productAttributeIdList = productAttributeIdList;
+    }
+}

+ 24 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductCategoryWithChildrenItem.java

@@ -0,0 +1,24 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.PmsProductCategory;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * 包含子级分类的商品分类
+ * Created by macro on 2018/5/25.
+ */
+public class PmsProductCategoryWithChildrenItem extends PmsProductCategory {
+
+    @ApiModelProperty("子级分类")
+    private List<PmsProductCategory> children;
+
+    public List<PmsProductCategory> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<PmsProductCategory> children) {
+        this.children = children;
+    }
+}

+ 85 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductParam.java

@@ -0,0 +1,85 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.*;
+import io.swagger.annotations.ApiModelProperty;
+
+
+import java.util.List;
+
+/**
+ * 创建和修改商品的请求参数
+ * Created by macro on 2018/4/26.
+ */
+
+public class PmsProductParam extends PmsProduct {
+    @ApiModelProperty("商品阶梯价格设置")
+    private List<PmsProductLadder> productLadderList;
+    @ApiModelProperty("商品满减价格设置")
+    private List<PmsProductFullReduction> productFullReductionList;
+    @ApiModelProperty("商品会员价格设置")
+    private List<PmsMemberPrice> memberPriceList;
+    @ApiModelProperty("商品的sku库存信息")
+    private List<PmsSkuStock> skuStockList;
+    @ApiModelProperty("商品参数及自定义规格属性")
+    private List<PmsProductAttributeValue> productAttributeValueList;
+    @ApiModelProperty("专题和商品关系")
+    private List<CmsSubjectProductRelation> subjectProductRelationList;
+    @ApiModelProperty("优选专区和商品的关系")
+    private List<CmsPrefrenceAreaProductRelation> prefrenceAreaProductRelationList;
+
+    public List<PmsProductLadder> getProductLadderList() {
+        return productLadderList;
+    }
+
+    public void setProductLadderList(List<PmsProductLadder> productLadderList) {
+        this.productLadderList = productLadderList;
+    }
+
+    public List<PmsProductFullReduction> getProductFullReductionList() {
+        return productFullReductionList;
+    }
+
+    public void setProductFullReductionList(List<PmsProductFullReduction> productFullReductionList) {
+        this.productFullReductionList = productFullReductionList;
+    }
+
+    public List<PmsMemberPrice> getMemberPriceList() {
+        return memberPriceList;
+    }
+
+    public void setMemberPriceList(List<PmsMemberPrice> memberPriceList) {
+        this.memberPriceList = memberPriceList;
+    }
+
+    public List<PmsSkuStock> getSkuStockList() {
+        return skuStockList;
+    }
+
+    public void setSkuStockList(List<PmsSkuStock> skuStockList) {
+        this.skuStockList = skuStockList;
+    }
+
+    public List<PmsProductAttributeValue> getProductAttributeValueList() {
+        return productAttributeValueList;
+    }
+
+    public void setProductAttributeValueList(List<PmsProductAttributeValue> productAttributeValueList) {
+        this.productAttributeValueList = productAttributeValueList;
+    }
+
+    public List<CmsSubjectProductRelation> getSubjectProductRelationList() {
+        return subjectProductRelationList;
+    }
+
+    public void setSubjectProductRelationList(List<CmsSubjectProductRelation> subjectProductRelationList) {
+        this.subjectProductRelationList = subjectProductRelationList;
+    }
+
+    public List<CmsPrefrenceAreaProductRelation> getPrefrenceAreaProductRelationList() {
+        return prefrenceAreaProductRelationList;
+    }
+
+    public void setPrefrenceAreaProductRelationList(List<CmsPrefrenceAreaProductRelation> prefrenceAreaProductRelationList) {
+        this.prefrenceAreaProductRelationList = prefrenceAreaProductRelationList;
+    }
+}

+ 82 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductQueryParam.java

@@ -0,0 +1,82 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 商品查询参数
+ * Created by macro on 2018/4/27.
+ */
+
+public class PmsProductQueryParam {
+    @ApiModelProperty("上架状态")
+    private Integer publishStatus;
+    @ApiModelProperty("审核状态")
+    private Integer verifyStatus;
+    @ApiModelProperty("商品名称模糊关键字")
+    private String keyword;
+    @ApiModelProperty("商品货号")
+    private String productSn;
+    @ApiModelProperty("商品分类编号")
+    private Long productCategoryId;
+    @ApiModelProperty("商品品牌编号")
+    private Long brandId;
+
+    @ApiModelProperty("是否缺货 0:否,1;是")
+    private Integer stock;
+
+    public Integer getStock() {
+        return stock;
+    }
+
+    public void setStock(Integer stock) {
+        this.stock = stock;
+    }
+
+    public Integer getPublishStatus() {
+        return publishStatus;
+    }
+
+    public void setPublishStatus(Integer publishStatus) {
+        this.publishStatus = publishStatus;
+    }
+
+    public Integer getVerifyStatus() {
+        return verifyStatus;
+    }
+
+    public void setVerifyStatus(Integer verifyStatus) {
+        this.verifyStatus = verifyStatus;
+    }
+
+    public String getKeyword() {
+        return keyword;
+    }
+
+    public void setKeyword(String keyword) {
+        this.keyword = keyword;
+    }
+
+    public String getProductSn() {
+        return productSn;
+    }
+
+    public void setProductSn(String productSn) {
+        this.productSn = productSn;
+    }
+
+    public Long getProductCategoryId() {
+        return productCategoryId;
+    }
+
+    public void setProductCategoryId(Long productCategoryId) {
+        this.productCategoryId = productCategoryId;
+    }
+
+    public Long getBrandId() {
+        return brandId;
+    }
+
+    public void setBrandId(Long brandId) {
+        this.brandId = brandId;
+    }
+}

+ 22 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/PmsProductResult.java

@@ -0,0 +1,22 @@
+package com.yonge.cooleshow.admin.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 查询单个商品修改后返回的结果
+ * Created by macro on 2018/4/26.
+ */
+public class PmsProductResult extends PmsProductParam {
+
+    @ApiModelProperty("商品所选分类的父id")
+    private Long cateParentId;
+
+    public Long getCateParentId() {
+        return cateParentId;
+    }
+
+    public void setCateParentId(Long cateParentId) {
+        this.cateParentId = cateParentId;
+    }
+}

+ 31 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/ProductAttrInfo.java

@@ -0,0 +1,31 @@
+package com.yonge.cooleshow.admin.dto;
+
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 商品分类对应属性信息
+ * Created by macro on 2018/5/23.
+ */
+public class ProductAttrInfo {
+    @ApiModelProperty("商品属性ID")
+    private Long attributeId;
+    @ApiModelProperty("商品属性分类ID")
+    private Long attributeCategoryId;
+
+    public Long getAttributeId() {
+        return attributeId;
+    }
+
+    public void setAttributeId(Long attributeId) {
+        this.attributeId = attributeId;
+    }
+
+    public Long getAttributeCategoryId() {
+        return attributeCategoryId;
+    }
+
+    public void setAttributeCategoryId(Long attributeCategoryId) {
+        this.attributeCategoryId = attributeCategoryId;
+    }
+}

+ 38 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/SmsCouponParam.java

@@ -0,0 +1,38 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.SmsCoupon;
+import com.yonge.cooleshow.mbg.model.SmsCouponProductCategoryRelation;
+import com.yonge.cooleshow.mbg.model.SmsCouponProductRelation;
+import io.swagger.annotations.ApiModelProperty;
+
+
+import java.util.List;
+
+/**
+ * 优惠券信息封装,包括绑定商品和分类
+ * Created by macro on 2018/8/28.
+ */
+public class SmsCouponParam extends SmsCoupon {
+
+    @ApiModelProperty("优惠券绑定的商品")
+    private List<SmsCouponProductRelation> productRelationList;
+
+    @ApiModelProperty("优惠券绑定的商品分类")
+    private List<SmsCouponProductCategoryRelation> productCategoryRelationList;
+
+    public List<SmsCouponProductRelation> getProductRelationList() {
+        return productRelationList;
+    }
+
+    public void setProductRelationList(List<SmsCouponProductRelation> productRelationList) {
+        this.productRelationList = productRelationList;
+    }
+
+    public List<SmsCouponProductCategoryRelation> getProductCategoryRelationList() {
+        return productCategoryRelationList;
+    }
+
+    public void setProductCategoryRelationList(List<SmsCouponProductCategoryRelation> productCategoryRelationList) {
+        this.productCategoryRelationList = productCategoryRelationList;
+    }
+}

+ 24 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/SmsFlashPromotionProduct.java

@@ -0,0 +1,24 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.PmsProduct;
+import com.yonge.cooleshow.mbg.model.SmsFlashPromotionProductRelation;
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 限时购商品信息封装
+ * Created by macro on 2018/11/16.
+ */
+public class SmsFlashPromotionProduct extends SmsFlashPromotionProductRelation{
+
+    @ApiModelProperty("关联商品")
+    private PmsProduct product;
+
+    public PmsProduct getProduct() {
+        return product;
+    }
+
+    public void setProduct(PmsProduct product) {
+        this.product = product;
+    }
+}

+ 23 - 0
mec-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/dto/SmsFlashPromotionSessionDetail.java

@@ -0,0 +1,23 @@
+package com.yonge.cooleshow.admin.dto;
+
+import com.yonge.cooleshow.mbg.model.SmsFlashPromotionSession;
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 包含商品数量的场次信息
+ * Created by macro on 2018/11/19.
+ */
+public class SmsFlashPromotionSessionDetail extends SmsFlashPromotionSession {
+
+    @ApiModelProperty("商品数量")
+    private Long productCount;
+
+    public Long getProductCount() {
+        return productCount;
+    }
+
+    public void setProductCount(Long productCount) {
+        this.productCount = productCount;
+    }
+}

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