Forráskód Böngészése

创建中网微信小程序项目

csk 6 éve
commit
24e20e21c9
100 módosított fájl, 6782 hozzáadás és 0 törlés
  1. 68 0
      README.md
  2. 75 0
      kmall-admin/pom.xml
  3. 36 0
      kmall-admin/src/main/java/com/kmall/admin/Test.java
  4. 30 0
      kmall-admin/src/main/java/com/kmall/admin/annotation/DataFilter.java
  5. 126 0
      kmall-admin/src/main/java/com/kmall/admin/aop/DataFilterAspect.java
  6. 85 0
      kmall-admin/src/main/java/com/kmall/admin/aop/SysLogAspect.java
  7. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AdController.java
  8. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AdPositionController.java
  9. 89 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AddressController.java
  10. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AttributeCategoryController.java
  11. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/AttributeController.java
  12. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/BrandController.java
  13. 91 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CartController.java
  14. 148 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java
  15. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/ChannelController.java
  16. 91 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CollectController.java
  17. 131 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CommentController.java
  18. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CommentPictureController.java
  19. 112 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CouponController.java
  20. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CouponGoodsController.java
  21. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/FeedbackController.java
  22. 98 0
      kmall-admin/src/main/java/com/kmall/admin/controller/FootprintController.java
  23. 91 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsAttributeController.java
  24. 196 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java
  25. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGalleryController.java
  26. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupController.java
  27. 121 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupOpenController.java
  28. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsIssueController.java
  29. 118 0
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsSpecificationController.java
  30. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/HelpIssueController.java
  31. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/HelpTypeController.java
  32. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/KeywordsController.java
  33. 235 0
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderController.java
  34. 101 0
      kmall-admin/src/main/java/com/kmall/admin/controller/OrderGoodsController.java
  35. 120 0
      kmall-admin/src/main/java/com/kmall/admin/controller/ProductController.java
  36. 124 0
      kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java
  37. 91 0
      kmall-admin/src/main/java/com/kmall/admin/controller/RelatedGoodsController.java
  38. 89 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SearchHistoryController.java
  39. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/ShippingController.java
  40. 101 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SpecificationController.java
  41. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/StoreController.java
  42. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysConfigController.java
  43. 139 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysDeptController.java
  44. 49 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysLogController.java
  45. 113 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysMacroController.java
  46. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysNoticeController.java
  47. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysNoticeUserController.java
  48. 153 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysOssController.java
  49. 22 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysPageController.java
  50. 106 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysPrinterController.java
  51. 168 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysRegionController.java
  52. 141 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SysSmsLogController.java
  53. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/TopicCategoryController.java
  54. 99 0
      kmall-admin/src/main/java/com/kmall/admin/controller/TopicController.java
  55. 146 0
      kmall-admin/src/main/java/com/kmall/admin/controller/UserController.java
  56. 98 0
      kmall-admin/src/main/java/com/kmall/admin/controller/UserCouponController.java
  57. 100 0
      kmall-admin/src/main/java/com/kmall/admin/controller/UserLevelController.java
  58. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/AdDao.java
  59. 14 0
      kmall-admin/src/main/java/com/kmall/admin/dao/AdPositionDao.java
  60. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/AddressDao.java
  61. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/AttributeCategoryDao.java
  62. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/AttributeDao.java
  63. 14 0
      kmall-admin/src/main/java/com/kmall/admin/dao/BrandDao.java
  64. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CartDao.java
  65. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CategoryDao.java
  66. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/ChannelDao.java
  67. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CollectDao.java
  68. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CommentDao.java
  69. 21 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CommentPictureDao.java
  70. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CouponDao.java
  71. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CouponGoodsDao.java
  72. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/FeedbackDao.java
  73. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/FootprintDao.java
  74. 22 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsAttributeDao.java
  75. 17 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsDao.java
  76. 17 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsGalleryDao.java
  77. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsGroupDao.java
  78. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsGroupOpenDao.java
  79. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsGroupOpenDetailDao.java
  80. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsIssueDao.java
  81. 21 0
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsSpecificationDao.java
  82. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/HelpIssueDao.java
  83. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/HelpTypeDao.java
  84. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/KeywordsDao.java
  85. 63 0
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderDao.java
  86. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderGoodsDao.java
  87. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/OrderRefundDao.java
  88. 31 0
      kmall-admin/src/main/java/com/kmall/admin/dao/ProductDao.java
  89. 19 0
      kmall-admin/src/main/java/com/kmall/admin/dao/ProductStoreRelaDao.java
  90. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/RelatedGoodsDao.java
  91. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SearchHistoryDao.java
  92. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/ShippingDao.java
  93. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SpecificationDao.java
  94. 17 0
      kmall-admin/src/main/java/com/kmall/admin/dao/StoreDao.java
  95. 25 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysDeptDao.java
  96. 24 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysMacroDao.java
  97. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysNoticeDao.java
  98. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysNoticeUserDao.java
  99. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysOssDao.java
  100. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysPrinterDao.java

+ 68 - 0
README.md

@@ -0,0 +1,68 @@
+# kmall-pt
+
+#### 项目介绍
+kmall-pt
+
+
+#### 软件架构
+软件架构说明
+
+
+#### 新增功能
+* 完善开源版本购物流程
+* 多门店管理
+* 下单语音提醒
+* 团购管理
+    * 团购设置
+    * 分享
+* 优惠活动
+    * 折扣
+    * 满减
+    * 满免配送
+* 优惠推广
+    * 下单送满减券
+    * 推荐送满减券
+* 订单管理
+    * 普通订单
+    * 团购订单
+    * 打印订单
+* 收货地址
+    * 用户输入
+    * 微信地址
+* 用户评论审核
+* 快递查询接口
+    * 快递鸟
+* 用户下单自动打印小票
+    * 飞鸽打印机
+* 升级版UI
+* 短信平台
+* 优化退款功能和付款记录
+
+## 本地开发环境启动步骤
+* 新建数据库 kmall_pt
+    * 字符集                 : utf8mb4 -- UTF-8 Unicode
+    * 排序规则               : utf8mb4_unicode_ci
+* 导入wechat_buss.sql
+* 修改开发环境配置kmall-pt\kmall-admin\src\main\resources\dev\platform.properties
+    * jdbc.url
+    * jdbc.username
+    * jdbc.password
+    * redis.host
+    * redis.port
+    * wx.appId
+    * wx.secret
+    * wx.mchId
+    * wx.paySignKey
+    * wx.notifyUrl
+    * spbillCreateIp
+    * 如果使用快递接口请自行申请账户
+        * kdn.businessId
+        * kdn.appKey
+* 修改生产环境配置kmall-pt\kmall-admin\src\main\resources\prod\platform.properties(同上)
+* 安装并启动redis
+* 启动项目(参照开发文档2.6)
+* 将wx-mall导入微信web开发者工具
+
+* 生成环境打包 
+    * mvn clean
+    * mvn package -P prod

+ 75 - 0
kmall-admin/pom.xml

@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>kmall-pt</artifactId>
+        <groupId>com.kmall</groupId>
+        <version>3.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>kmall-admin</artifactId>
+    <packaging>war</packaging>
+    <description>管理后台</description>
+
+
+    <dependencies>
+
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-common</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-gen</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-schedule</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.kmall</groupId>
+            <artifactId>kmall-api</artifactId>
+            <version>${kmall-version}</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <scriptSourceDirectory>src/main/java</scriptSourceDirectory>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <filtering>true</filtering>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <artifactId>maven-war-plugin</artifactId>
+                <configuration>
+                    <warSourceDirectory>src/main/webapp</warSourceDirectory>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    <webResources>
+                        <resource>
+                            <directory>src/main/resources/conf</directory>
+                            <targetPath>WEB-INF/classes/conf</targetPath>
+                            <filtering>true</filtering>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 36 - 0
kmall-admin/src/main/java/com/kmall/admin/Test.java

@@ -0,0 +1,36 @@
+/*
+ * 创建时间:2017-08-19 08:55
+ * 项目名称:kmall_pt
+ * 类名称:Test.java
+ * 包名称:com.kmall.admin
+ *
+ * 修改履历:
+ *          日期              修正者        主要内容
+ *                                      
+ *
+ * Copyright (c) 2016-2017 兆尹科技
+ */
+package com.kmall.admin;
+
+/**
+ * 名称:Test <br>
+ * 描述:<br>
+ *
+ * @author Scott
+ * @version 1.0
+ * @since 1.0.0
+ */
+public class Test {
+    public static void main(String[] args) {
+        //Integer使用equals判断
+        Integer a = 127;
+        Integer b = 127;
+        System.out.println(a == b);
+        Integer c = 129;
+        Integer d = 129;
+        System.out.println(c == d);
+
+        System.out.println(c.equals(d));
+
+    }
+}

+ 30 - 0
kmall-admin/src/main/java/com/kmall/admin/annotation/DataFilter.java

@@ -0,0 +1,30 @@
+package com.kmall.admin.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 数据过滤
+ *
+ * @author Scott
+ * @email
+ * @date 2017年10月23日 下午13:13:23
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DataFilter {
+    /**
+     * sql中数据创建用户(通常传入TABLE.CREATE_USER_ID)的别名
+     */
+    String userAlias() default "";
+
+    /**
+     * sql中数据deptId的别名
+     */
+    String deptAlias() default "";
+
+    /**
+     * true:没有本部门数据权限,也能查询本人数据  暂时不使用
+     */
+    boolean self() default true;
+}

+ 126 - 0
kmall-admin/src/main/java/com/kmall/admin/aop/DataFilterAspect.java

@@ -0,0 +1,126 @@
+package com.kmall.admin.aop;
+
+import com.kmall.admin.annotation.DataFilter;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.service.SysRoleDeptService;
+import com.kmall.common.utils.Constant;
+import com.kmall.common.utils.RRException;
+import com.kmall.common.utils.ShiroUtils;
+import org.apache.commons.lang.StringUtils;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 数据过滤,切面处理类
+ *
+ * @author Scott
+ * @email
+ * @date 2017年10月23日 下午13:33:35
+ */
+@Aspect
+@Component
+public class DataFilterAspect {
+    @Autowired
+    private SysRoleDeptService sysRoleDeptService;
+
+    @Pointcut("@annotation(com.kmall.admin.annotation.DataFilter)")
+    public void dataFilterCut() {
+
+    }
+
+    @Before("dataFilterCut()")
+    public void dataFilter(JoinPoint point) throws Throwable {
+        //获取参数
+        Object params = point.getArgs()[0];
+        if (params != null && params instanceof Map) {
+            SysUserEntity user = ShiroUtils.getUserEntity();
+
+            //如果不是超级管理员,则只能查询权限数据
+            if (user.getUserId() != Constant.SUPER_ADMIN) {
+                Map map = (Map) params;
+                map.put("filterSql", getFilterSQL(user, point));
+            }
+
+            return;
+        }
+
+        throw new RRException("数据权限接口的参数必须为Map类型,且不能为NULL");
+    }
+
+    /**
+     * 获取数据过滤的SQL
+     */
+    private String getFilterSQL(SysUserEntity user, JoinPoint point) {
+        MethodSignature signature = (MethodSignature) point.getSignature();
+        DataFilter dataFilter = signature.getMethod().getAnnotation(DataFilter.class);
+
+        String userAlias = dataFilter.userAlias();
+        String deptAlias = dataFilter.deptAlias();
+
+        StringBuilder filterSql = new StringBuilder();
+
+        //取出当前登录用户的部门权限
+        String alias = getAliasByUser(user.getUserId());
+        if (StringUtils.isNotEmpty(alias)) {
+            filterSql.append(" and (");
+            filterSql.append(deptAlias);
+            filterSql.append(" in ");
+            filterSql.append(" ( ");
+            filterSql.append(alias);
+            filterSql.append(" ) ");
+            if (StringUtils.isNotBlank(userAlias)) {
+                filterSql.append(" or ");
+                filterSql.append(userAlias);
+                filterSql.append("=");
+                filterSql.append(user.getUserId());
+            }
+            filterSql.append(" ) ");
+        } else if (StringUtils.isNotBlank(userAlias)) {
+            filterSql.append(" and ");
+            filterSql.append(userAlias);
+            filterSql.append("=");
+            filterSql.append(user.getUserId());
+            filterSql.append(" ");
+        }
+        //没有部门数据权限,也能查询本人数据
+        if (dataFilter.self()) {
+            filterSql.append(" or ");
+            filterSql.append(userAlias);
+            filterSql.append("=");
+            filterSql.append(user.getUserId());
+            filterSql.append(" ");
+        }
+        return filterSql.toString();
+    }
+
+    /**
+     * 取出当前登录用户的部门权限
+     *
+     * @param userId 登录用户Id
+     * @return 部门权限
+     */
+    private String getAliasByUser(Long userId) {
+        @SuppressWarnings("unchecked")
+        List<Long> roleOrglist = sysRoleDeptService.queryDeptIdListByUserId(userId);
+        StringBuilder roleStr = new StringBuilder();
+        String alias = "";
+        if (roleOrglist != null && !roleOrglist.isEmpty()) {
+            for (Long roleId : roleOrglist) {
+                roleStr.append(",");
+                roleStr.append("'");
+                roleStr.append(roleId);
+                roleStr.append("'");
+            }
+            alias = roleStr.toString().substring(1, roleStr.length());
+        }
+        return alias;
+    }
+}

+ 85 - 0
kmall-admin/src/main/java/com/kmall/admin/aop/SysLogAspect.java

@@ -0,0 +1,85 @@
+package com.kmall.admin.aop;
+
+import com.alibaba.fastjson.JSON;
+import com.kmall.common.annotation.SysLog;
+import com.kmall.common.entity.SysLogEntity;
+import com.kmall.common.entity.SysUserEntity;
+import com.kmall.common.service.SysLogService;
+import com.kmall.common.utils.HttpContextUtils;
+import com.kmall.common.utils.IPUtils;
+import com.kmall.common.utils.ShiroUtils;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+import java.util.Date;
+
+
+/**
+ * 系统日志,切面处理类
+ *
+ * @author Scott
+ * @email
+ * @date 2017年3月8日 上午11:07:35
+ */
+@Aspect
+@Component
+public class SysLogAspect {
+    @Autowired
+    private SysLogService sysLogService;
+
+    @Pointcut("@annotation(com.kmall.common.annotation.SysLog)")
+    public void logPointCut() {
+
+    }
+
+    @Before("logPointCut()")
+    public void saveSysLog(JoinPoint joinPoint) {
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+        Method method = signature.getMethod();
+
+        SysLogEntity sysLog = new SysLogEntity();
+        SysLog syslog = method.getAnnotation(SysLog.class);
+        if (syslog != null) {
+            //注解上的描述
+            sysLog.setOperation(syslog.value());
+        }
+
+        //请求的方法名
+        String className = joinPoint.getTarget().getClass().getName();
+        String methodName = signature.getName();
+        sysLog.setMethod(className + "." + methodName + "()");
+
+        //请求的参数
+        Object[] args = joinPoint.getArgs();
+        String params = JSON.toJSONString(args[0]);
+        sysLog.setParams(params);
+
+        //获取request
+        HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+        //设置IP地址
+        sysLog.setIp(IPUtils.getIpAddr(request));
+
+        //用户名
+        SysUserEntity sysUserEntity = ShiroUtils.getUserEntity();
+        String username = "";
+        if ("login".equals(methodName)) {
+            username = params;
+        }
+        if (null != sysUserEntity) {
+            username = ShiroUtils.getUserEntity().getUsername();
+        }
+        sysLog.setUsername(username);
+
+        sysLog.setCreateDate(new Date());
+        //保存系统日志
+        sysLogService.save(sysLog);
+    }
+
+}

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

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AdEntity;
+import com.kmall.admin.service.AdService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 09:37:35
+ */
+@RestController
+@RequestMapping("ad")
+public class AdController {
+    @Autowired
+    private AdService adService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("ad:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AdEntity> adList = adService.queryList(query);
+        int total = adService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(adList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("ad:info")
+    public R info(@PathVariable("id") Integer id) {
+        AdEntity ad = adService.queryObject(id);
+
+        return R.ok().put("ad", ad);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("ad:save")
+    public R save(@RequestBody AdEntity ad) {
+        adService.save(ad);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("ad:update")
+    public R update(@RequestBody AdEntity ad) {
+        adService.update(ad);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("ad:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        adService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<AdEntity> list = adService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 100 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AdPositionController.java

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AdPositionEntity;
+import com.kmall.admin.service.AdPositionService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 12:02:42
+ */
+@RestController
+@RequestMapping("adposition")
+public class AdPositionController {
+    @Autowired
+    private AdPositionService adPositionService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("adposition:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AdPositionEntity> adPositionList = adPositionService.queryList(query);
+        int total = adPositionService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(adPositionList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("adposition:info")
+    public R info(@PathVariable("id") Integer id) {
+        AdPositionEntity adPosition = adPositionService.queryObject(id);
+
+        return R.ok().put("adPosition", adPosition);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("adposition:save")
+    public R save(@RequestBody AdPositionEntity adPosition) {
+        adPositionService.save(adPosition);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("adposition:update")
+    public R update(@RequestBody AdPositionEntity adPosition) {
+        adPositionService.update(adPosition);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("adposition:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        adPositionService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<AdPositionEntity> list = adPositionService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,89 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AddressEntity;
+import com.kmall.admin.service.AddressService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-16 17:22:46
+ */
+@RestController
+@RequestMapping("address")
+public class AddressController {
+    @Autowired
+    private AddressService addressService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("address:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AddressEntity> addressList = addressService.queryList(query);
+        int total = addressService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(addressList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("address:info")
+    public R info(@PathVariable("id") Integer id) {
+        AddressEntity address = addressService.queryObject(id);
+
+        return R.ok().put("address", address);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("address:save")
+    public R save(@RequestBody AddressEntity address) {
+        addressService.save(address);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("address:update")
+    public R update(@RequestBody AddressEntity address) {
+        addressService.update(address);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("address:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        addressService.deleteBatch(ids);
+
+        return R.ok();
+    }
+}

+ 100 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/AttributeCategoryController.java

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AttributeCategoryEntity;
+import com.kmall.admin.service.AttributeCategoryService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-17 16:13:27
+ */
+@RestController
+@RequestMapping("attributecategory")
+public class AttributeCategoryController {
+    @Autowired
+    private AttributeCategoryService attributeCategoryService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("attributecategory:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AttributeCategoryEntity> attributeCategoryList = attributeCategoryService.queryList(query);
+        int total = attributeCategoryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(attributeCategoryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("attributecategory:info")
+    public R info(@PathVariable("id") Integer id) {
+        AttributeCategoryEntity attributeCategory = attributeCategoryService.queryObject(id);
+
+        return R.ok().put("attributeCategory", attributeCategory);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("attributecategory:save")
+    public R save(@RequestBody AttributeCategoryEntity attributeCategory) {
+        attributeCategoryService.save(attributeCategory);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("attributecategory:update")
+    public R update(@RequestBody AttributeCategoryEntity attributeCategory) {
+        attributeCategoryService.update(attributeCategory);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("attributecategory:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        attributeCategoryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<AttributeCategoryEntity> list = attributeCategoryService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.AttributeEntity;
+import com.kmall.admin.service.AttributeService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-17 16:48:17
+ */
+@RestController
+@RequestMapping("attribute")
+public class AttributeController {
+    @Autowired
+    private AttributeService attributeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("attribute:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<AttributeEntity> attributeList = attributeService.queryList(query);
+        int total = attributeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(attributeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("attribute:info")
+    public R info(@PathVariable("id") Integer id) {
+        AttributeEntity attribute = attributeService.queryObject(id);
+
+        return R.ok().put("attribute", attribute);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("attribute:save")
+    public R save(@RequestBody AttributeEntity attribute) {
+        attributeService.save(attribute);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("attribute:update")
+    public R update(@RequestBody AttributeEntity attribute) {
+        attributeService.update(attribute);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("attribute:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        attributeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<AttributeEntity> list = attributeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.BrandEntity;
+import com.kmall.admin.service.BrandService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 17:59:15
+ */
+@RestController
+@RequestMapping("brand")
+public class BrandController {
+    @Autowired
+    private BrandService brandService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("brand:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<BrandEntity> brandList = brandService.queryList(query);
+        int total = brandService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(brandList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("brand:info")
+    public R info(@PathVariable("id") Integer id) {
+        BrandEntity brand = brandService.queryObject(id);
+
+        return R.ok().put("brand", brand);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("brand:save")
+    public R save(@RequestBody BrandEntity brand) {
+        brandService.save(brand);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("brand:update")
+    public R update(@RequestBody BrandEntity brand) {
+        brandService.update(brand);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("brand:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        brandService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<BrandEntity> list = brandService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,91 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CartEntity;
+import com.kmall.admin.service.CartService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:06
+ */
+@RestController
+@RequestMapping("cart")
+public class CartController {
+	@Autowired
+	private CartService cartService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("cart:list")
+	public R list(@RequestParam Map<String, Object> params){
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<CartEntity> cartList = cartService.queryList(query);
+		int total = cartService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(cartList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("cart:info")
+	public R info(@PathVariable("id") Integer id){
+		CartEntity cart = cartService.queryObject(id);
+		
+		return R.ok().put("cart", cart);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("cart:save")
+	public R save(@RequestBody CartEntity cart){
+		cartService.save(cart);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("cart:update")
+	public R update(@RequestBody CartEntity cart){
+		cartService.update(cart);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("cart:delete")
+	public R delete(@RequestBody Integer[] ids){
+		cartService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+	
+}

+ 148 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CategoryController.java

@@ -0,0 +1,148 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CategoryEntity;
+import com.kmall.admin.service.CategoryService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.TreeUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-21 15:32:31
+ */
+@RestController
+@RequestMapping("category")
+public class CategoryController {
+    @Autowired
+    private CategoryService categoryService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("category:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CategoryEntity> categoryList = categoryService.queryList(query);
+        int total = categoryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(categoryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("category:info")
+    public R info(@PathVariable("id") Integer id) {
+        CategoryEntity category = categoryService.queryObject(id);
+
+        return R.ok().put("category", category);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("category:save")
+    public R save(@RequestBody CategoryEntity category) {
+        categoryService.save(category);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("category:update")
+    public R update(@RequestBody CategoryEntity category) {
+        categoryService.update(category);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("category:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        categoryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CategoryEntity> list = categoryService.queryList(params);
+        //添加顶级菜单
+        CategoryEntity root = new CategoryEntity();
+        root.setId(0);
+        root.setName("一级分类");
+        root.setParentId(-1);
+        root.setOpen(true);
+        list.add(root);
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查看信息(全部加载页面渲染太慢!)
+     */
+    @RequestMapping("/getAreaTree")
+    public R getAreaTree() {
+        List<CategoryEntity> list = categoryService.queryList(new HashMap<String, Object>());
+        for (CategoryEntity sysRegionEntity : list) {
+            sysRegionEntity.setValue(sysRegionEntity.getId() + "");
+            sysRegionEntity.setLabel(sysRegionEntity.getName());
+        }
+        List<CategoryEntity> node = TreeUtils.factorTree(list);
+
+        return R.ok().put("node", node);
+    }
+
+    /**
+     * 查询
+     *
+     * @return
+     */
+    @RequestMapping("/getCategorySelect")
+    public R getCategorySelect() {
+        Map<String, Object> map = new HashMap<>();
+        map.put("parentId", "0");
+        List<CategoryEntity> list = categoryService.queryList(map);
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查询
+     *
+     * @return
+     */
+    @RequestMapping("/getCategorySelectByParent")
+    public R getCategorySelectByParent(@RequestParam String parentId) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("parentId", parentId);
+        List<CategoryEntity> list = categoryService.queryList(map);
+        return R.ok().put("list", list);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ChannelController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.ChannelEntity;
+import com.kmall.admin.service.ChannelService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-22 19:19:56
+ */
+@RestController
+@RequestMapping("channel")
+public class ChannelController {
+    @Autowired
+    private ChannelService channelService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("channel:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ChannelEntity> channelList = channelService.queryList(query);
+        int total = channelService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(channelList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("channel:info")
+    public R info(@PathVariable("id") Integer id) {
+        ChannelEntity channel = channelService.queryObject(id);
+
+        return R.ok().put("channel", channel);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("channel:save")
+    public R save(@RequestBody ChannelEntity channel) {
+        channelService.save(channel);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("channel:update")
+    public R update(@RequestBody ChannelEntity channel) {
+        channelService.update(channel);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("channel:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        channelService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ChannelEntity> list = channelService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,91 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CollectEntity;
+import com.kmall.admin.service.CollectService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:06
+ */
+@RestController
+@RequestMapping("collect")
+public class CollectController {
+	@Autowired
+	private CollectService collectService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("collect:list")
+	public R list(@RequestParam Map<String, Object> params){
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<CollectEntity> collectList = collectService.queryList(query);
+		int total = collectService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(collectList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("collect:info")
+	public R info(@PathVariable("id") Integer id){
+		CollectEntity collect = collectService.queryObject(id);
+		
+		return R.ok().put("collect", collect);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("collect:save")
+	public R save(@RequestBody CollectEntity collect){
+		collectService.save(collect);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("collect:update")
+	public R update(@RequestBody CollectEntity collect){
+		collectService.update(collect);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("collect:delete")
+	public R delete(@RequestBody Integer[] ids){
+		collectService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+	
+}

+ 131 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CommentController.java

@@ -0,0 +1,131 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CommentEntity;
+import com.kmall.admin.service.CommentService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-28 17:03:40
+ */
+@RestController
+@RequestMapping("comment")
+public class CommentController {
+    @Autowired
+    private CommentService commentService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("comment:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CommentEntity> commentList = commentService.queryList(query);
+        int total = commentService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(commentList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("comment:info")
+    public R info(@PathVariable("id") Integer id) {
+        CommentEntity comment = commentService.queryObject(id);
+
+        return R.ok().put("comment", comment);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("comment:save")
+    public R save(@RequestBody CommentEntity comment) {
+        commentService.save(comment);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("comment:update")
+    public R update(@RequestBody CommentEntity comment) {
+        commentService.update(comment);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("comment:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        commentService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CommentEntity> list = commentService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 修改状态
+     */
+    @RequestMapping("/toggleStatus")
+    @RequiresPermissions("comment:toggleStatus")
+    public R toggleStatus(@RequestBody CommentEntity comment) {
+        commentService.toggleStatus(comment);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改状态
+     */
+    @RequestMapping("/toggleStatusBatch")
+    @RequiresPermissions("comment:toggleStatus")
+    public R toggleStatusBatch(@RequestBody Integer[] ids) {
+        commentService.toggleStatusBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+        int sum = commentService.queryTotal(params);
+
+        return R.ok().put("sum", sum);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CommentPictureController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CommentPictureEntity;
+import com.kmall.admin.service.CommentPictureService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 评价图片Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-29 14:45:55
+ */
+@RestController
+@RequestMapping("commentpicture")
+public class CommentPictureController {
+    @Autowired
+    private CommentPictureService commentPictureService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("commentpicture:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CommentPictureEntity> commentPictureList = commentPictureService.queryList(query);
+        int total = commentPictureService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(commentPictureList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("commentpicture:info")
+    public R info(@PathVariable("id") Integer id) {
+        CommentPictureEntity commentPicture = commentPictureService.queryObject(id);
+
+        return R.ok().put("commentPicture", commentPicture);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("commentpicture:save")
+    public R save(@RequestBody CommentPictureEntity commentPicture) {
+        commentPictureService.save(commentPicture);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("commentpicture:update")
+    public R update(@RequestBody CommentPictureEntity commentPicture) {
+        commentPictureService.update(commentPicture);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("commentpicture:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        commentPictureService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CommentPictureEntity> list = commentPictureService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,112 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CouponEntity;
+import com.kmall.admin.service.CouponService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 优惠券Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 12:53:26
+ */
+@RestController
+@RequestMapping("coupon")
+public class CouponController {
+    @Autowired
+    private CouponService couponService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("coupon:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CouponEntity> couponList = couponService.queryList(query);
+        int total = couponService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(couponList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("coupon:info")
+    public R info(@PathVariable("id") Integer id) {
+        CouponEntity coupon = couponService.queryObject(id);
+
+        return R.ok().put("coupon", coupon);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("coupon:save")
+    public R save(@RequestBody CouponEntity coupon) {
+        couponService.save(coupon);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("coupon:update")
+    public R update(@RequestBody CouponEntity coupon) {
+        couponService.update(coupon);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("coupon:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        couponService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CouponEntity> list = couponService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 按用户、商品下发优惠券
+     *
+     * @param params
+     * @return
+     */
+    @RequiresPermissions("coupon:publish")
+    @RequestMapping(value = "publish", method = RequestMethod.POST)
+    public R publish(@RequestBody Map<String, Object> params) {
+        return couponService.publish(params);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CouponGoodsController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.CouponGoodsEntity;
+import com.kmall.admin.service.CouponGoodsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 优惠券关联商品Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-29 21:50:17
+ */
+@RestController
+@RequestMapping("coupongoods")
+public class CouponGoodsController {
+    @Autowired
+    private CouponGoodsService couponGoodsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("coupongoods:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CouponGoodsEntity> couponGoodsList = couponGoodsService.queryList(query);
+        int total = couponGoodsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(couponGoodsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("coupongoods:info")
+    public R info(@PathVariable("id") Integer id) {
+        CouponGoodsEntity couponGoods = couponGoodsService.queryObject(id);
+
+        return R.ok().put("couponGoods", couponGoods);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("coupongoods:save")
+    public R save(@RequestBody CouponGoodsEntity couponGoods) {
+        couponGoodsService.save(couponGoods);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("coupongoods:update")
+    public R update(@RequestBody CouponGoodsEntity couponGoods) {
+        couponGoodsService.update(couponGoods);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("coupongoods:delete")
+    public R delete(@RequestBody Integer[]ids) {
+        couponGoodsService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CouponGoodsEntity> list = couponGoodsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/FeedbackController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.FeedbackEntity;
+import com.kmall.admin.service.FeedbackService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 15:03:25
+ */
+@RestController
+@RequestMapping("feedback")
+public class FeedbackController {
+    @Autowired
+    private FeedbackService feedbackService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("feedback:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<FeedbackEntity> feedbackList = feedbackService.queryList(query);
+        int total = feedbackService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(feedbackList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{msgId}")
+    @RequiresPermissions("feedback:info")
+    public R info(@PathVariable("msgId") Integer msgId) {
+        FeedbackEntity feedback = feedbackService.queryObject(msgId);
+
+        return R.ok().put("feedback", feedback);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("feedback:save")
+    public R save(@RequestBody FeedbackEntity feedback) {
+        feedbackService.save(feedback);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("feedback:update")
+    public R update(@RequestBody FeedbackEntity feedback) {
+        feedbackService.update(feedback);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("feedback:delete")
+    public R delete(@RequestBody Integer[]msgIds) {
+        feedbackService.deleteBatch(msgIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<FeedbackEntity> list = feedbackService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,98 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.FootprintEntity;
+import com.kmall.admin.service.FootprintService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:08
+ */
+@RestController
+@RequestMapping("footprint")
+public class FootprintController {
+    @Autowired
+    private FootprintService footprintService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("footprint:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<FootprintEntity> footprintList = footprintService.queryList(query);
+        int total = footprintService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(footprintList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("footprint:info")
+    public R info(@PathVariable("id") Integer id) {
+        FootprintEntity footprint = footprintService.queryObject(id);
+
+        return R.ok().put("footprint", footprint);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("footprint:save")
+    public R save(@RequestBody FootprintEntity footprint) {
+        footprintService.save(footprint);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("footprint:update")
+    public R update(@RequestBody FootprintEntity footprint) {
+        footprintService.update(footprint);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("footprint:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        footprintService.deleteBatch(ids);
+
+        return R.ok();
+    }
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+        int hitCount = footprintService.queryTotal(params);
+
+        return R.ok().put("hitCount", hitCount);
+    }
+
+}

+ 91 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsAttributeController.java

@@ -0,0 +1,91 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsAttributeEntity;
+import com.kmall.admin.service.GoodsAttributeService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:08
+ */
+@RestController
+@RequestMapping("goodsattribute")
+public class GoodsAttributeController {
+	@Autowired
+	private GoodsAttributeService goodsAttributeService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("goodsattribute:list")
+	public R list(@RequestParam Map<String, Object> params){
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<GoodsAttributeEntity> goodsAttributeList = goodsAttributeService.queryList(query);
+		int total = goodsAttributeService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(goodsAttributeList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("goodsattribute:info")
+	public R info(@PathVariable("id") Integer id){
+		GoodsAttributeEntity goodsAttribute = goodsAttributeService.queryObject(id);
+		
+		return R.ok().put("goodsAttribute", goodsAttribute);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("goodsattribute:save")
+	public R save(@RequestBody GoodsAttributeEntity goodsAttribute){
+		goodsAttributeService.save(goodsAttribute);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("goodsattribute:update")
+	public R update(@RequestBody GoodsAttributeEntity goodsAttribute){
+		goodsAttributeService.update(goodsAttribute);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("goodsattribute:delete")
+	public R delete(@RequestBody Integer[] ids){
+		goodsAttributeService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+	
+}

+ 196 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -0,0 +1,196 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsEntity;
+import com.kmall.admin.service.GoodsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-21 21:19:49
+ */
+@RestController
+@RequestMapping("goods")
+public class GoodsController {
+    @Autowired
+    private GoodsService goodsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goods:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        query.put("isDelete", 0);
+        List<GoodsEntity> goodsList = goodsService.queryList(query);
+        int total = goodsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goods:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsEntity goods = goodsService.queryObject(id);
+
+        return R.ok().put("goods", goods);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goods:save")
+    public R save(@RequestBody GoodsEntity goods) {
+        goodsService.save(goods);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goods:update")
+    public R update(@RequestBody GoodsEntity goods) {
+        goodsService.update(goods);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goods:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        params.put("isDelete", 0);
+        List<GoodsEntity> list = goodsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+
+    /**
+     * 商品回收站
+     *
+     * @param params
+     * @return
+     */
+    @RequestMapping("/historyList")
+    public R historyList(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        query.put("isDelete", 1);
+        List<GoodsEntity> goodsList = goodsService.queryList(query);
+        int total = goodsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 商品从回收站恢复
+     */
+    @RequestMapping("/back")
+    @RequiresPermissions("goods:back")
+    public R back(@RequestBody Integer[] ids) {
+        goodsService.back(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+
+        params.put("isDelete", 0);
+        int sum = goodsService.queryTotal(params);
+        return R.ok().put("goodsSum", sum);
+    }
+
+    /**
+     * 上架
+     */
+    @RequestMapping("/enSale")
+    public R enSale(@RequestBody Integer id) {
+        goodsService.enSale(id);
+
+        return R.ok();
+    }
+
+    /**
+     * 上架
+     */
+    @RequestMapping("/enSaleBatch")
+    public R enSaleBatch(@RequestBody Integer[] ids) {
+        goodsService.enSaleBatch(ids);
+
+        return R.ok();
+    }
+
+
+    /**
+     * 下架
+     */
+    @RequestMapping("/unSale")
+    public R unSale(@RequestBody Integer id) {
+        goodsService.unSale(id);
+
+        return R.ok();
+    }
+
+    /**
+     * 下架
+     */
+    @RequestMapping("/unSaleBatch")
+    public R unSaleBatch(@RequestBody Integer[] ids) {
+        goodsService.unSaleBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 上传文件
+     */
+    @RequestMapping("/upload")
+    public R upload(@RequestParam("file") MultipartFile file) throws Exception {
+        goodsService.uploadExcel(file);
+        //上传文件
+        return R.ok();
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGalleryController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsGalleryEntity;
+import com.kmall.admin.service.GoodsGalleryService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 14:41:43
+ */
+@RestController
+@RequestMapping("goodsgallery")
+public class GoodsGalleryController {
+    @Autowired
+    private GoodsGalleryService goodsGalleryService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsgallery:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsGalleryEntity> goodsGalleryList = goodsGalleryService.queryList(query);
+        int total = goodsGalleryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsGalleryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsgallery:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsGalleryEntity goodsGallery = goodsGalleryService.queryObject(id);
+
+        return R.ok().put("goodsGallery", goodsGallery);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsgallery:save")
+    public R save(@RequestBody GoodsGalleryEntity goodsGallery) {
+        goodsGalleryService.save(goodsGallery);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsgallery:update")
+    public R update(@RequestBody GoodsGalleryEntity goodsGallery) {
+        goodsGalleryService.update(goodsGallery);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsgallery:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsGalleryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<GoodsGalleryEntity> list = goodsGalleryService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsGroupEntity;
+import com.kmall.admin.service.GoodsGroupService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-10-24 09:51:21
+ */
+@Controller
+@RequestMapping("goodsgroup")
+public class GoodsGroupController {
+    @Autowired
+    private GoodsGroupService goodsGroupService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsgroup:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsGroupEntity> goodsGroupList = goodsGroupService.queryList(query);
+        int total = goodsGroupService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsGroupList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsgroup:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        GoodsGroupEntity goodsGroup = goodsGroupService.queryObject(id);
+
+        return R.ok().put("goodsGroup", goodsGroup);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsgroup:save")
+    @ResponseBody
+    public R save(@RequestBody GoodsGroupEntity goodsGroup) {
+        goodsGroupService.save(goodsGroup);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsgroup:update")
+    @ResponseBody
+    public R update(@RequestBody GoodsGroupEntity goodsGroup) {
+        goodsGroupService.update(goodsGroup);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsgroup:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[] ids) {
+        goodsGroupService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<GoodsGroupEntity> list = goodsGroupService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 121 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsGroupOpenController.java

@@ -0,0 +1,121 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsGroupOpenEntity;
+import com.kmall.admin.service.GoodsGroupOpenService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-10-23 22:06:59
+ */
+@Controller
+@RequestMapping("goodsgroupopen")
+public class GoodsGroupOpenController {
+    @Autowired
+    private GoodsGroupOpenService goodsGroupOpenService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsgroupopen:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsGroupOpenEntity> goodsGroupOpenList = goodsGroupOpenService.queryList(query);
+        int total = goodsGroupOpenService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsGroupOpenList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsgroupopen:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Long id) {
+        GoodsGroupOpenEntity goodsGroupOpen = goodsGroupOpenService.queryObject(id);
+
+        return R.ok().put("goodsGroupOpen", goodsGroupOpen);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsgroupopen:save")
+    @ResponseBody
+    public R save(@RequestBody GoodsGroupOpenEntity goodsGroupOpen) {
+        goodsGroupOpenService.save(goodsGroupOpen);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsgroupopen:update")
+    @ResponseBody
+    public R update(@RequestBody GoodsGroupOpenEntity goodsGroupOpen) {
+        goodsGroupOpenService.update(goodsGroupOpen);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsgroupopen:delete")
+    @ResponseBody
+    public R delete(@RequestBody Long[] ids) {
+        goodsGroupOpenService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<GoodsGroupOpenEntity> list = goodsGroupOpenService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 取消团购订单
+     */
+    @RequestMapping("/cancelGroup")
+    @RequiresPermissions("goodsgroupopen:update")
+    @ResponseBody
+    public R cancelGroup(@RequestBody Integer id) {
+        int result = goodsGroupOpenService.cancelGroup(id);
+        if (result == 0) {
+            return R.error("取消失败");
+        }
+        return R.ok();
+    }
+
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsIssueController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsIssueEntity;
+import com.kmall.admin.service.GoodsIssueService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 14:12:34
+ */
+@RestController
+@RequestMapping("goodsissue")
+public class GoodsIssueController {
+    @Autowired
+    private GoodsIssueService goodsIssueService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsissue:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsIssueEntity> goodsIssueList = goodsIssueService.queryList(query);
+        int total = goodsIssueService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsIssueList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsissue:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsIssueEntity goodsIssue = goodsIssueService.queryObject(id);
+
+        return R.ok().put("goodsIssue", goodsIssue);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsissue:save")
+    public R save(@RequestBody GoodsIssueEntity goodsIssue) {
+        goodsIssueService.save(goodsIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsissue:update")
+    public R update(@RequestBody GoodsIssueEntity goodsIssue) {
+        goodsIssueService.update(goodsIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsissue:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsIssueService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<GoodsIssueEntity> list = goodsIssueService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 118 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsSpecificationController.java

@@ -0,0 +1,118 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.GoodsSpecificationEntity;
+import com.kmall.admin.entity.SpecificationEntity;
+import com.kmall.admin.service.GoodsSpecificationService;
+import com.kmall.admin.service.SpecificationService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+/**
+ * 商品对应规格表值表Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-31 11:15:55
+ */
+@RestController
+@RequestMapping("goodsspecification")
+public class GoodsSpecificationController {
+    @Autowired
+    private GoodsSpecificationService goodsSpecificationService;
+    @Autowired
+    private SpecificationService specificationService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("goodsspecification:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<GoodsSpecificationEntity> goodsSpecificationList = goodsSpecificationService.queryList(query);
+        int total = goodsSpecificationService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(goodsSpecificationList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("goodsspecification:info")
+    public R info(@PathVariable("id") Integer id) {
+        GoodsSpecificationEntity goodsSpecification = goodsSpecificationService.queryObject(id);
+
+        return R.ok().put("goodsSpecification", goodsSpecification);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("goodsspecification:save")
+    public R save(@RequestBody GoodsSpecificationEntity goodsSpecification) {
+        goodsSpecificationService.save(goodsSpecification);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("goodsspecification:update")
+    public R update(@RequestBody GoodsSpecificationEntity goodsSpecification) {
+        goodsSpecificationService.update(goodsSpecification);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("goodsspecification:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        goodsSpecificationService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+        List<GoodsSpecificationEntity> list = goodsSpecificationService.queryList(params);
+        List<Integer> goodsSpecificationIds = new ArrayList();
+        if (null != list) {
+            for (GoodsSpecificationEntity specificationEntity : list) {
+                if (!goodsSpecificationIds.contains(specificationEntity.getSpecificationId())) {
+                    goodsSpecificationIds.add(specificationEntity.getSpecificationId());
+                }
+            }
+        }
+        Map param = new HashMap();
+        param.put("ids", goodsSpecificationIds);
+        List<SpecificationEntity> specificationEntityList = specificationService.queryList(param);
+        Collections.sort(specificationEntityList, new Comparator<SpecificationEntity>() {
+            @Override
+            public int compare(SpecificationEntity o1, SpecificationEntity o2) {
+                return o1.getSortOrder().compareTo(o2.getSortOrder());
+            }
+        });
+        return R.ok().put("list", list).put("specificationEntityList", specificationEntityList);
+    }
+
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/HelpIssueController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.HelpIssueEntity;
+import com.kmall.admin.service.HelpIssueService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-01 21:09:54
+ */
+@Controller
+@RequestMapping("helpissue")
+public class HelpIssueController {
+    @Autowired
+    private HelpIssueService helpIssueService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("helpissue:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HelpIssueEntity> helpIssueList = helpIssueService.queryList(query);
+        int total = helpIssueService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(helpIssueList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("helpissue:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        HelpIssueEntity helpIssue = helpIssueService.queryObject(id);
+
+        return R.ok().put("helpIssue", helpIssue);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("helpissue:save")
+    @ResponseBody
+    public R save(@RequestBody HelpIssueEntity helpIssue) {
+        helpIssueService.save(helpIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("helpissue:update")
+    @ResponseBody
+    public R update(@RequestBody HelpIssueEntity helpIssue) {
+        helpIssueService.update(helpIssue);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("helpissue:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        helpIssueService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<HelpIssueEntity> list = helpIssueService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/HelpTypeController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.HelpTypeEntity;
+import com.kmall.admin.service.HelpTypeService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-01 21:09:55
+ */
+@Controller
+@RequestMapping("helptype")
+public class HelpTypeController {
+    @Autowired
+    private HelpTypeService helpTypeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("helptype:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<HelpTypeEntity> helpTypeList = helpTypeService.queryList(query);
+        int total = helpTypeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(helpTypeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("helptype:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        HelpTypeEntity helpType = helpTypeService.queryObject(id);
+
+        return R.ok().put("helpType", helpType);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("helptype:save")
+    @ResponseBody
+    public R save(@RequestBody HelpTypeEntity helpType) {
+        helpTypeService.save(helpType);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("helptype:update")
+    @ResponseBody
+    public R update(@RequestBody HelpTypeEntity helpType) {
+        helpTypeService.update(helpType);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("helptype:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        helpTypeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<HelpTypeEntity> list = helpTypeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/KeywordsController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.KeywordsEntity;
+import com.kmall.admin.service.KeywordsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 热闹关键词表Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-25 21:23:41
+ */
+@RestController
+@RequestMapping("keywords")
+public class KeywordsController {
+    @Autowired
+    private KeywordsService keywordsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("keywords:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<KeywordsEntity> keywordsList = keywordsService.queryList(query);
+        int total = keywordsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(keywordsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("keywords:info")
+    public R info(@PathVariable("id") Integer id) {
+        KeywordsEntity keywords = keywordsService.queryObject(id);
+
+        return R.ok().put("keywords", keywords);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("keywords:save")
+    public R save(@RequestBody KeywordsEntity keywords) {
+        keywordsService.save(keywords);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("keywords:update")
+    public R update(@RequestBody KeywordsEntity keywords) {
+        keywordsService.update(keywords);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("keywords:delete")
+    public R delete(@RequestBody Integer[]ids) {
+        keywordsService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<KeywordsEntity> list = keywordsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,235 @@
+package com.kmall.admin.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.kmall.admin.entity.OrderEntity;
+import com.kmall.admin.service.OrderService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.wechat.WechatRefundApiResult;
+import com.kmall.common.utils.wechat.WechatUtil;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:09
+ */
+@RestController
+@RequestMapping("order")
+public class OrderController {
+    @Autowired
+    private OrderService orderService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("order:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<OrderEntity> orderList = orderService.queryList(query);
+        int total = orderService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(orderList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("order:info")
+    public R info(@PathVariable("id") Long id) {
+        OrderEntity order = orderService.queryObject(id);
+
+        return R.ok().put("order", order);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("order:save")
+    public R save(@RequestBody OrderEntity order) {
+        orderService.save(order);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("order:update")
+    public R update(@RequestBody OrderEntity order) {
+        orderService.update(order);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("order:delete")
+    public R delete(@RequestBody Long[] ids) {
+        orderService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<OrderEntity> list = orderService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+        int sum = orderService.queryTotal(params);
+
+        return R.ok().put("sum", sum);
+    }
+
+    /**
+     * 确定收货
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping("/confirm")
+    @RequiresPermissions("order:confirm")
+    public R confirm(@RequestBody Long id) {
+        orderService.confirm(id);
+
+        return R.ok();
+    }
+
+    /**
+     * 发货
+     *
+     * @param order
+     * @return
+     */
+    @RequestMapping("/sendGoods")
+    @RequiresPermissions("order:sendGoods")
+    public R sendGoods(@RequestBody OrderEntity order) {
+        orderService.sendGoods(order);
+
+        return R.ok();
+    }
+
+    /**
+     * 确定收货
+     *
+     * @param id
+     * @return
+     */
+    @RequestMapping("/printMsg")
+    public R printMsg(@RequestBody Long id) {
+        String json = orderService.printMsg(id);
+        JSONObject jsStr = JSONObject.parseObject(json);
+        return R.ok().put("msg", jsStr.get("msg"));
+    }
+
+    /**
+     * 订单取消请求
+     */
+    @RequiresPermissions(value = {"order:refund"})
+    @RequestMapping(value = "cancel", method = RequestMethod.POST)
+    public Object cancel(Long orderId) {
+        //
+        OrderEntity orderInfo = orderService.queryObject(orderId);
+
+        if (null == orderInfo || orderInfo.getOrderStatus() == 401 || orderInfo.getOrderStatus() == 402) {
+            return R.error("订单已取消");
+        }
+
+        if (orderInfo.getOrderStatus() != 0) {
+            // todo
+//                    WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn().toString(),
+//                orderInfo.getActualPrice().doubleValue(), refundMoney.doubleValue());
+            WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn().toString(),
+                    0.01, 0.01);
+            if (!result.getResult_code().equals("SUCCESS")) {
+                return R.error(result.getErr_code_des());
+            }
+            orderService.cancelOrder(orderInfo);
+        }
+
+        return R.ok();
+    }
+
+    /**
+     * 订单退款请求
+     */
+    @RequiresPermissions(value = {"order:refund"})
+    @RequestMapping(value = "refund", method = RequestMethod.POST)
+    public Object refund(Long orderId, BigDecimal refundMoney) {
+        //
+        OrderEntity orderInfo = orderService.queryObject(orderId);
+
+        if (null == refundMoney) {
+            return R.error("请输入退款金额");
+        }
+
+        if (null == orderInfo) {
+            return R.error("订单已取消");
+        }
+
+        if (refundMoney.compareTo(orderInfo.getActualPrice()) > 0) {
+            return R.error("退款金额不能大于订单金额");
+        }
+
+        if (orderInfo.getOrderStatus() == 401 || orderInfo.getOrderStatus() == 402) {
+            return R.error("订单已退款");
+        }
+
+        if (orderInfo.getPayStatus() != 2) {
+            return R.error("订单未付款,不能退款");
+        }
+
+//        WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn().toString(),
+//                orderInfo.getActualPrice().doubleValue(), refundMoney.doubleValue());
+        WechatRefundApiResult result = WechatUtil.wxRefund(orderInfo.getOrderSn().toString(),
+                0.01, 0.01);
+        if (result.getResult_code().equals("SUCCESS")) {
+            orderService.refund(orderInfo, refundMoney);
+            return R.ok();
+        } else {
+            return R.error(result.getErr_code_des());
+        }
+    }
+
+    /**
+     * 获取首页展示信息--会员购买率相关
+     * @param params
+     * @return
+     */
+    @RequestMapping("/getUserOrderInfo")
+    public R getUserOrderInfo(@RequestParam Map<String, Object> params) {
+        int result = orderService.getUserOrderInfo(params);
+
+        return R.ok().put("result", result);
+    }
+}

+ 101 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/OrderGoodsController.java

@@ -0,0 +1,101 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.OrderGoodsEntity;
+import com.kmall.admin.service.OrderGoodsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:09
+ */
+@RestController
+@RequestMapping("ordergoods")
+public class OrderGoodsController {
+	@Autowired
+	private OrderGoodsService orderGoodsService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("ordergoods:list")
+	public R list(@RequestParam Map<String, Object> params){
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<OrderGoodsEntity> orderGoodsList = orderGoodsService.queryList(query);
+		int total = orderGoodsService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(orderGoodsList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("ordergoods:info")
+	public R info(@PathVariable("id") Integer id){
+		OrderGoodsEntity orderGoods = orderGoodsService.queryObject(id);
+		
+		return R.ok().put("orderGoods", orderGoods);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("ordergoods:save")
+	public R save(@RequestBody OrderGoodsEntity orderGoods){
+		orderGoodsService.save(orderGoods);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("ordergoods:update")
+	public R update(@RequestBody OrderGoodsEntity orderGoods){
+		orderGoodsService.update(orderGoods);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("ordergoods:delete")
+	public R delete(@RequestBody Integer[] ids){
+		orderGoodsService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+
+	/**
+	 * 查看所有列表
+	 */
+	@RequestMapping("/queryAll")
+	public R queryAll(@RequestParam Map<String, Object> params) {
+
+		List<OrderGoodsEntity> list = orderGoodsService.queryList(params);
+
+		return R.ok().put("list", list);
+	}
+}

+ 120 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ProductController.java

@@ -0,0 +1,120 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.ProductEntity;
+import com.kmall.admin.service.GoodsSpecificationService;
+import com.kmall.admin.service.ProductService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-30 14:31:21
+ */
+@RestController
+@RequestMapping("product")
+public class ProductController {
+    @Autowired
+    private ProductService productService;
+    @Autowired
+    private GoodsSpecificationService goodsSpecificationService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("product:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ProductEntity> productList = productService.queryList(query);
+        int total = productService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(productList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("product:info")
+    public R info(@PathVariable("id") Integer id) {
+        ProductEntity product = productService.queryObject(id);
+        return R.ok().put("product", product);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("product:save")
+    public R save(@RequestBody ProductEntity product) {
+        productService.save(product);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("product:update")
+    public R update(@RequestBody ProductEntity product) {
+        productService.update(product);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("product:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        productService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     *
+     * @param params
+     * @return
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ProductEntity> list = productService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 根据goodsId查询商品
+     *
+     * @param goodsId
+     * @return
+     */
+    @RequestMapping("/queryByGoodsId/{goodsId}")
+    public R queryByGoodsId(@PathVariable("goodsId") String goodsId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("goodsId", goodsId);
+        List<ProductEntity> list = productService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 124 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ProductStoreRelaController.java

@@ -0,0 +1,124 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.ProductStoreRelaEntity;
+import com.kmall.admin.service.ProductService;
+import com.kmall.admin.service.ProductStoreRelaService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-27 19:12:46
+ */
+@Controller
+@RequestMapping("productstorerela")
+public class ProductStoreRelaController {
+    @Autowired
+    private ProductStoreRelaService productStoreRelaService;
+    @Autowired
+    private ProductService productService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ProductStoreRelaEntity> productStoreRelaList = productStoreRelaService.queryList(query);
+        int total = productStoreRelaService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(productStoreRelaList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        ProductStoreRelaEntity productStoreRela = productStoreRelaService.queryObject(id);
+
+        return R.ok().put("productStoreRela", productStoreRela);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("productstorerela:save")
+    @ResponseBody
+    public R save(@RequestBody ProductStoreRelaEntity productStoreRela) {
+//        if (null == productStoreRela.getProductId() && StringUtils.isNotEmpty(productStoreRela.getProductSn())) {
+//            ProductEntity productEntity = productService.queryObjectBySn(productStoreRela.getProductSn());
+//            productStoreRela.setProductId(productEntity.getId());
+//            productStoreRela.setGoodsId(productEntity.getGoodsId());
+//        }
+        if (null == productStoreRela.getProductId() || null == productStoreRela.getGoodsId()
+                || null == productStoreRela.getStoreId()) {
+            return R.error("信息不全,保存失败");
+        }
+        ProductStoreRelaEntity productStoreRelaDb = productStoreRelaService.queryByStoreIdProductId(productStoreRela.getStoreId(), productStoreRela.getProductId());
+        if (null != productStoreRelaDb) {
+            productStoreRela.setId(productStoreRelaDb.getId());
+            productStoreRelaService.update(productStoreRela);
+        } else {
+            productStoreRelaService.save(productStoreRela);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("productstorerela:update")
+    @ResponseBody
+    public R update(@RequestBody ProductStoreRelaEntity productStoreRela) {
+        if (null == productStoreRela.getProductId() || null == productStoreRela.getGoodsId()
+                || null == productStoreRela.getStoreId()) {
+            return R.error("信息不全,保存失败");
+        }
+        productStoreRelaService.update(productStoreRela);
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("productstorerela:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[] ids) {
+        productStoreRelaService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ProductStoreRelaEntity> list = productStoreRelaService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 91 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/RelatedGoodsController.java

@@ -0,0 +1,91 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.RelatedGoodsEntity;
+import com.kmall.admin.service.RelatedGoodsService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:09
+ */
+@RestController
+@RequestMapping("relatedgoods")
+public class RelatedGoodsController {
+	@Autowired
+	private RelatedGoodsService relatedGoodsService;
+	
+	/**
+	 * 列表
+	 */
+	@RequestMapping("/list")
+	@RequiresPermissions("relatedgoods:list")
+	public R list(@RequestParam Map<String, Object> params){
+		//查询列表数据
+        Query query = new Query(params);
+
+		List<RelatedGoodsEntity> relatedGoodsList = relatedGoodsService.queryList(query);
+		int total = relatedGoodsService.queryTotal(query);
+		
+		PageUtils pageUtil = new PageUtils(relatedGoodsList, total, query.getLimit(), query.getPage());
+		
+		return R.ok().put("page", pageUtil);
+	}
+	
+	
+	/**
+	 * 信息
+	 */
+	@RequestMapping("/info/{id}")
+	@RequiresPermissions("relatedgoods:info")
+	public R info(@PathVariable("id") Integer id){
+		RelatedGoodsEntity relatedGoods = relatedGoodsService.queryObject(id);
+		
+		return R.ok().put("relatedGoods", relatedGoods);
+	}
+	
+	/**
+	 * 保存
+	 */
+	@RequestMapping("/save")
+	@RequiresPermissions("relatedgoods:save")
+	public R save(@RequestBody RelatedGoodsEntity relatedGoods){
+		relatedGoodsService.save(relatedGoods);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 修改
+	 */
+	@RequestMapping("/update")
+	@RequiresPermissions("relatedgoods:update")
+	public R update(@RequestBody RelatedGoodsEntity relatedGoods){
+		relatedGoodsService.update(relatedGoods);
+		
+		return R.ok();
+	}
+	
+	/**
+	 * 删除
+	 */
+	@RequestMapping("/delete")
+	@RequiresPermissions("relatedgoods:delete")
+	public R delete(@RequestBody Integer[] ids){
+		relatedGoodsService.deleteBatch(ids);
+		
+		return R.ok();
+	}
+	
+}

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

@@ -0,0 +1,89 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.SearchHistoryEntity;
+import com.kmall.admin.service.SearchHistoryService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:10
+ */
+@RestController
+@RequestMapping("searchhistory")
+public class SearchHistoryController {
+    @Autowired
+    private SearchHistoryService searchHistoryService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("searchhistory:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SearchHistoryEntity> searchHistoryList = searchHistoryService.queryList(query);
+        int total = searchHistoryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(searchHistoryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("searchhistory:info")
+    public R info(@PathVariable("id") Integer id) {
+        SearchHistoryEntity searchHistory = searchHistoryService.queryObject(id);
+
+        return R.ok().put("searchHistory", searchHistory);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("searchhistory:save")
+    public R save(@RequestBody SearchHistoryEntity searchHistory) {
+        searchHistoryService.save(searchHistory);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("searchhistory:update")
+    public R update(@RequestBody SearchHistoryEntity searchHistory) {
+        searchHistoryService.update(searchHistory);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("searchhistory:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        searchHistoryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/ShippingController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.ShippingEntity;
+import com.kmall.admin.service.ShippingService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-09-04 21:42:24
+ */
+@RestController
+@RequestMapping("shipping")
+public class ShippingController {
+    @Autowired
+    private ShippingService shippingService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("shipping:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<ShippingEntity> shippingList = shippingService.queryList(query);
+        int total = shippingService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(shippingList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("shipping:info")
+    public R info(@PathVariable("id") Integer id) {
+        ShippingEntity shipping = shippingService.queryObject(id);
+
+        return R.ok().put("shipping", shipping);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("shipping:save")
+    public R save(@RequestBody ShippingEntity shipping) {
+        shippingService.save(shipping);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("shipping:update")
+    public R update(@RequestBody ShippingEntity shipping) {
+        shippingService.update(shipping);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("shipping:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        shippingService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<ShippingEntity> list = shippingService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 101 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SpecificationController.java

@@ -0,0 +1,101 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.SpecificationEntity;
+import com.kmall.admin.service.SpecificationService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 规格表
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:10
+ */
+@RestController
+@RequestMapping("specification")
+public class SpecificationController {
+    @Autowired
+    private SpecificationService specificationService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("specification:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SpecificationEntity> specificationList = specificationService.queryList(query);
+        int total = specificationService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(specificationList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("specification:info")
+    public R info(@PathVariable("id") Integer id) {
+        SpecificationEntity specification = specificationService.queryObject(id);
+
+        return R.ok().put("specification", specification);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("specification:save")
+    public R save(@RequestBody SpecificationEntity specification) {
+        specificationService.save(specification);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("specification:update")
+    public R update(@RequestBody SpecificationEntity specification) {
+        specificationService.update(specification);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("specification:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        specificationService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<SpecificationEntity> list = specificationService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.StoreEntity;
+import com.kmall.admin.service.StoreService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-02 00:53:32
+ */
+@Controller
+@RequestMapping("store")
+public class StoreController {
+    @Autowired
+    private StoreService storeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("store:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<StoreEntity> storeList = storeService.queryList(query);
+        int total = storeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(storeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("store:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        StoreEntity store = storeService.queryObject(id);
+
+        return R.ok().put("store", store);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("store:save")
+    @ResponseBody
+    public R save(@RequestBody StoreEntity store) {
+        storeService.save(store);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("store:update")
+    @ResponseBody
+    public R update(@RequestBody StoreEntity store) {
+        storeService.update(store);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("store:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[] ids) {
+        storeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<StoreEntity> list = storeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 100 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysConfigController.java

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.common.annotation.SysLog;
+import com.kmall.common.controller.AbstractController;
+import com.kmall.common.entity.SysConfigEntity;
+import com.kmall.common.service.SysConfigService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.validator.ValidatorUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 系统配置信息
+ *
+ * @author Scott
+ * @email
+ * @date 2016年12月4日 下午6:55:53
+ */
+@RestController
+@RequestMapping("/sys/config")
+public class SysConfigController extends AbstractController {
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    /**
+     * 所有配置列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:config:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+        List<SysConfigEntity> configList = sysConfigService.queryList(query);
+        int total = sysConfigService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(configList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 配置信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("sys:config:info")
+    public R info(@PathVariable("id") Long id) {
+        SysConfigEntity config = sysConfigService.queryObject(id);
+
+        return R.ok().put("config", config);
+    }
+
+    /**
+     * 保存配置
+     */
+    @SysLog("保存配置")
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:config:save")
+    public R save(@RequestBody SysConfigEntity config) {
+        ValidatorUtils.validateEntity(config);
+
+        sysConfigService.save(config);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改配置
+     */
+    @SysLog("修改配置")
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:config:update")
+    public R update(@RequestBody SysConfigEntity config) {
+        ValidatorUtils.validateEntity(config);
+
+        sysConfigService.update(config);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除配置
+     */
+    @SysLog("删除配置")
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:config:delete")
+    public R delete(@RequestBody Long[] ids) {
+        sysConfigService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+}

+ 139 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysDeptController.java

@@ -0,0 +1,139 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.SysDeptEntity;
+import com.kmall.admin.service.SysDeptService;
+import com.kmall.common.controller.AbstractController;
+import com.kmall.common.utils.Constant;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 部门管理
+ *
+ * @author liepngjun
+ * @email
+ * @date 2017-09-17 23:58:47
+ */
+@RestController
+@RequestMapping("/sys/dept")
+public class SysDeptController extends AbstractController {
+    @Autowired
+    private SysDeptService sysDeptService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:dept:list")
+    public R list() {
+        Map<String, Object> map = new HashMap<>();
+        //如果不是超级管理员,则只能查询本部门及子部门数据
+        if (getUserId() != Constant.SUPER_ADMIN) {
+            map.put("deptFilter", sysDeptService.getSubDeptIdList(getDeptId()));
+        }
+        List<SysDeptEntity> deptList = sysDeptService.queryList(map);
+        return R.ok().put("list", deptList);
+    }
+
+    /**
+     * 选择部门(添加、修改菜单)
+     */
+    @RequestMapping("/select")
+    @RequiresPermissions("sys:dept:select")
+    public R select() {
+        Map<String, Object> map = new HashMap<>();
+        //如果不是超级管理员,则只能查询本部门及子部门数据
+        if (getUserId() != Constant.SUPER_ADMIN) {
+            map.put("deptFilter", sysDeptService.getSubDeptIdList(getDeptId()));
+        }
+        List<SysDeptEntity> deptList = sysDeptService.queryList(map);
+
+        //添加一级部门
+        if (getUserId() == Constant.SUPER_ADMIN) {
+            SysDeptEntity root = new SysDeptEntity();
+            root.setDeptId(0L);
+            root.setName("一级部门");
+            root.setParentId(-1L);
+            root.setOpen(true);
+            deptList.add(root);
+        }
+
+        return R.ok().put("deptList", deptList);
+    }
+
+    /**
+     * 上级部门Id(管理员则为0)
+     */
+    @RequestMapping("/info")
+    @RequiresPermissions("sys:dept:list")
+    public R info() {
+        long deptId = 0;
+        if (getUserId() != Constant.SUPER_ADMIN) {
+            SysDeptEntity dept = sysDeptService.queryObject(getDeptId());
+            deptId = dept.getParentId();
+        }
+
+        return R.ok().put("deptId", deptId);
+    }
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{deptId}")
+    @RequiresPermissions("sys:dept:info")
+    public R info(@PathVariable("deptId") Long deptId) {
+        SysDeptEntity dept = sysDeptService.queryObject(deptId);
+
+        return R.ok().put("dept", dept);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:dept:save")
+    public R save(@RequestBody SysDeptEntity dept) {
+        sysDeptService.save(dept);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:dept:update")
+    public R update(@RequestBody SysDeptEntity dept) {
+        sysDeptService.update(dept);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:dept:delete")
+    public R delete(long deptId) {
+        //判断是否有子部门
+        List<Long> deptList = sysDeptService.queryDetpIdList(deptId);
+        if (deptList.size() > 0) {
+            return R.error("请先删除子部门");
+        }
+
+        sysDeptService.delete(deptId);
+
+        return R.ok();
+    }
+
+}

+ 49 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysLogController.java

@@ -0,0 +1,49 @@
+package com.kmall.admin.controller;
+
+import com.kmall.common.entity.SysLogEntity;
+import com.kmall.common.service.SysLogService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 系统日志
+ *
+ * @author Scott
+ * @email
+ * @date 2017-03-08 10:40:56
+ */
+@Controller
+@RequestMapping("/sys/log")
+public class SysLogController {
+    @Autowired
+    private SysLogService sysLogService;
+
+    /**
+     * 列表
+     */
+    @ResponseBody
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:log:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+        List<SysLogEntity> sysLogList = sysLogService.queryList(query);
+        int total = sysLogService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(sysLogList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+}

+ 113 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysMacroController.java

@@ -0,0 +1,113 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.SysMacroEntity;
+import com.kmall.admin.service.SysMacroService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 通用字典表Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-22 11:48:16
+ */
+@RestController
+@RequestMapping("sys/macro")
+public class SysMacroController {
+    @Autowired
+    private SysMacroService sysMacroService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:macro:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SysMacroEntity> sysMacroList = sysMacroService.queryList(query);
+        int total = sysMacroService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(sysMacroList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{macroId}")
+    @RequiresPermissions("sys:macro:info")
+    public R info(@PathVariable("macroId") Long macroId) {
+        SysMacroEntity sysMacro = sysMacroService.queryObject(macroId);
+
+        return R.ok().put("macro", sysMacro);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:macro:save")
+    public R save(@RequestBody SysMacroEntity sysMacro) {
+        sysMacroService.save(sysMacro);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:macro:update")
+    public R update(@RequestBody SysMacroEntity sysMacro) {
+        sysMacroService.update(sysMacro);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:macro:delete")
+    public R delete(@RequestBody Long[] macroIds) {
+        sysMacroService.deleteBatch(macroIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<SysMacroEntity> list = sysMacroService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查询数据字典
+     *
+     * @param value
+     * @return
+     */
+    @RequestMapping("/queryMacrosByValue")
+    public R queryMacrosByValue(@RequestParam String value) {
+
+        List<SysMacroEntity> list = sysMacroService.queryMacrosByValue(value);
+
+        return R.ok().put("list", list);
+    }
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysNoticeController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.SysNoticeEntity;
+import com.kmall.admin.service.SysNoticeService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 通知Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-11-16 22:00:56
+ */
+@Controller
+@RequestMapping("sys/notice")
+public class SysNoticeController {
+    @Autowired
+    private SysNoticeService sysNoticeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:notice:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SysNoticeEntity> sysNoticeList = sysNoticeService.queryList(query);
+        int total = sysNoticeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(sysNoticeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("sys:notice:info")
+    @ResponseBody
+    public R info(@PathVariable("id") String id) {
+        SysNoticeEntity sysNotice = sysNoticeService.queryObject(id);
+
+        return R.ok().put("sysNotice", sysNotice);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:notice:save")
+    @ResponseBody
+    public R save(@RequestBody SysNoticeEntity sysNotice) {
+        sysNoticeService.save(sysNotice);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:notice:update")
+    @ResponseBody
+    public R update(@RequestBody SysNoticeEntity sysNotice) {
+        sysNoticeService.update(sysNotice);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:notice:delete")
+    @ResponseBody
+    public R delete(@RequestBody String[]ids) {
+        sysNoticeService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<SysNoticeEntity> list = sysNoticeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysNoticeUserController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.SysNoticeUserEntity;
+import com.kmall.admin.service.SysNoticeUserService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 通知和用户关系表Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-11-16 22:00:57
+ */
+@Controller
+@RequestMapping("sys/noticeuser")
+public class SysNoticeUserController {
+    @Autowired
+    private SysNoticeUserService sysNoticeUserService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:noticeuser:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SysNoticeUserEntity> sysNoticeUserList = sysNoticeUserService.queryList(query);
+        int total = sysNoticeUserService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(sysNoticeUserList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("sys:noticeuser:info")
+    @ResponseBody
+    public R info(@PathVariable("id") String id) {
+        SysNoticeUserEntity sysNoticeUser = sysNoticeUserService.queryObject(id);
+
+        return R.ok().put("sysNoticeUser", sysNoticeUser);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:noticeuser:save")
+    @ResponseBody
+    public R save(@RequestBody SysNoticeUserEntity sysNoticeUser) {
+        sysNoticeUserService.save(sysNoticeUser);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:noticeuser:update")
+    @ResponseBody
+    public R update(@RequestBody SysNoticeUserEntity sysNoticeUser) {
+        sysNoticeUserService.update(sysNoticeUser);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:noticeuser:delete")
+    @ResponseBody
+    public R delete(@RequestBody String[]ids) {
+        sysNoticeUserService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<SysNoticeUserEntity> list = sysNoticeUserService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,153 @@
+package com.kmall.admin.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.kmall.admin.entity.SysOssEntity;
+import com.kmall.common.oss.CloudStorageConfig;
+import com.kmall.common.oss.OSSFactory;
+import com.kmall.common.service.SysConfigService;
+import com.kmall.admin.service.SysOssService;
+import com.kmall.common.utils.*;
+import com.kmall.common.validator.ValidatorUtils;
+import com.kmall.common.validator.group.AliyunGroup;
+import com.kmall.common.validator.group.QcloudGroup;
+import com.kmall.common.validator.group.QiniuGroup;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 文件上传
+ *
+ * @author Scott
+ * @email
+ * @date 2017-03-25 12:13:26
+ */
+@RestController
+@RequestMapping("sys/oss")
+public class SysOssController {
+    @Autowired
+    private SysOssService sysOssService;
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    private final static String KEY = ConfigConstant.CLOUD_STORAGE_CONFIG_KEY;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:oss:all")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+        List<SysOssEntity> sysOssList = sysOssService.queryList(query);
+        int total = sysOssService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(sysOssList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 云存储配置信息
+     */
+    @RequestMapping("/config")
+    @RequiresPermissions("sys:oss:all")
+    public R config() {
+        CloudStorageConfig config = sysConfigService.getConfigObject(KEY, CloudStorageConfig.class);
+
+        return R.ok().put("config", config);
+    }
+
+
+    /**
+     * 保存云存储配置信息
+     */
+    @RequestMapping("/saveConfig")
+    @RequiresPermissions("sys:oss:all")
+    public R saveConfig(@RequestBody CloudStorageConfig config) {
+        //校验类型
+        ValidatorUtils.validateEntity(config);
+
+        if (config.getType() == Constant.CloudService.QINIU.getValue()) {
+            //校验七牛数据
+            ValidatorUtils.validateEntity(config, QiniuGroup.class);
+        } else if (config.getType() == Constant.CloudService.ALIYUN.getValue()) {
+            //校验阿里云数据
+            ValidatorUtils.validateEntity(config, AliyunGroup.class);
+        } else if (config.getType() == Constant.CloudService.QCLOUD.getValue()) {
+            //校验腾讯云数据
+            ValidatorUtils.validateEntity(config, QcloudGroup.class);
+        }
+
+
+        sysConfigService.updateValueByKey(KEY, JSON.toJSONString(config));
+
+        return R.ok();
+    }
+
+
+    /**
+     * 上传文件
+     */
+    @RequestMapping("/upload")
+    @RequiresPermissions("sys:oss:all")
+    public R upload(@RequestParam("file") MultipartFile file) throws Exception {
+        if (file.isEmpty()) {
+            throw new RRException("上传文件不能为空");
+        }
+        //上传文件
+        String url = OSSFactory.build().upload(file);
+
+        //保存文件信息
+        SysOssEntity ossEntity = new SysOssEntity();
+        ossEntity.setUrl(url);
+        ossEntity.setCreateDate(new Date());
+        sysOssService.save(ossEntity);
+
+        R r = new R();
+        r.put("url", url);
+        r.put("link", url);
+        return r;
+    }
+
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:oss:all")
+    public R delete(@RequestBody Long[] ids) {
+        sysOssService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查询所有列表
+     */
+    @RequestMapping("/queryAll")
+    public List<String> queryAll(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        List<SysOssEntity> sysOssList = sysOssService.queryList(params);
+
+        List<String> list = new ArrayList<>();
+        if (null != sysOssList && sysOssList.size() > 0) {
+            for (SysOssEntity item : sysOssList) {
+                list.add(item.getUrl());
+            }
+        }
+        return list;
+    }
+}

+ 22 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysPageController.java

@@ -0,0 +1,22 @@
+package com.kmall.admin.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * 系统页面视图
+ *
+ * @author Scott
+ * @email
+ * @date 2016年11月24日 下午11:05:27
+ */
+@Controller
+public class SysPageController {
+
+    @RequestMapping("{module}/{url}.html")
+    public String page(@PathVariable("module") String module, @PathVariable("url") String url) {
+        return module + "/" + url + ".html";
+    }
+
+}

+ 106 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysPrinterController.java

@@ -0,0 +1,106 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.SysPrinterEntity;
+import com.kmall.admin.service.SysPrinterService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 飞鸽打印机Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-02 00:41:31
+ */
+@Controller
+@RequestMapping("sys/printer")
+public class SysPrinterController {
+    @Autowired
+    private SysPrinterService sysPrinterService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:printer:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SysPrinterEntity> sysPrinterList = sysPrinterService.queryList(query);
+        int total = sysPrinterService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(sysPrinterList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("sys:printer:info")
+    @ResponseBody
+    public R info(@PathVariable("id") Integer id) {
+        SysPrinterEntity sysPrinter = sysPrinterService.queryObject(id);
+
+        return R.ok().put("sysPrinter", sysPrinter);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:printer:save")
+    @ResponseBody
+    public R save(@RequestBody SysPrinterEntity sysPrinter) {
+        sysPrinterService.save(sysPrinter);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:printer:update")
+    @ResponseBody
+    public R update(@RequestBody SysPrinterEntity sysPrinter) {
+        sysPrinterService.update(sysPrinter);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:printer:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]ids) {
+        sysPrinterService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<SysPrinterEntity> list = sysPrinterService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 168 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SysRegionController.java

@@ -0,0 +1,168 @@
+package com.kmall.admin.controller;
+
+import com.kmall.common.cache.RegionCacheUtil;
+import com.kmall.common.entity.SysRegionEntity;
+import com.kmall.admin.service.SysRegionService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.TreeUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-16 21:19:31
+ */
+@RestController
+@RequestMapping("sys/region")
+public class SysRegionController {
+    @Autowired
+    private SysRegionService sysRegionService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:region:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SysRegionEntity> regionList = sysRegionService.queryList(query);
+        int total = sysRegionService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(regionList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("sys:region:info")
+    public R info(@PathVariable("id") Integer id) {
+        SysRegionEntity region = sysRegionService.queryObject(id);
+
+        return R.ok().put("region", region);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:region:save")
+    public R save(@RequestBody SysRegionEntity region) {
+        sysRegionService.save(region);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:region:update")
+    public R update(@RequestBody SysRegionEntity region) {
+        sysRegionService.update(region);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:region:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        sysRegionService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查询所有国家
+     *
+     * @return
+     */
+    @RequestMapping("/getAllCountry")
+    public R getAllCountry() {
+        List<SysRegionEntity> list = RegionCacheUtil.getAllCountry();
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查询所有省份
+     *
+     * @return
+     */
+    @RequestMapping("/getAllProvice")
+    public R getAllProvice(@RequestParam(required = false) Integer areaId) {
+        List<SysRegionEntity> list = RegionCacheUtil.getAllProviceByParentId(areaId);
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查询所有城市
+     *
+     * @return
+     */
+    @RequestMapping("/getAllCity")
+    public R getAllCity(@RequestParam(required = false) Integer areaId) {
+        List<SysRegionEntity> list = RegionCacheUtil.getChildrenCity(areaId);
+        return R.ok().put("list", list);
+    }
+
+
+    /**
+     * 查询所有区县
+     *
+     * @return
+     */
+    @RequestMapping("/getChildrenDistrict")
+    public R getChildrenDistrict(@RequestParam(required = false) Integer areaId) {
+        List<SysRegionEntity> list = RegionCacheUtil.getChildrenDistrict(areaId);
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 查看信息(全部加载页面渲染太慢!)
+     */
+    @RequestMapping("/getAreaTree")
+    public R getAreaTree() {
+        List<SysRegionEntity> list = RegionCacheUtil.sysRegionEntityList;
+        for (SysRegionEntity sysRegionEntity : list) {
+            sysRegionEntity.setValue(sysRegionEntity.getId() + "");
+            sysRegionEntity.setLabel(sysRegionEntity.getName());
+        }
+        List<SysRegionEntity> node = TreeUtils.factorTree(list);
+
+        return R.ok().put("node", node);
+    }
+
+    @RequestMapping("/getAreaByType")
+    public R getAreaByType(@RequestParam(required = false) Integer type) {
+
+        List<SysRegionEntity> list = new ArrayList<>();
+        if (type.equals(0)) {
+
+        } else if (type.equals(1)) {//省份
+            list = RegionCacheUtil.getAllCountry();
+        } else if (type.equals(2)) {
+            list = RegionCacheUtil.getAllProvice();
+        } else if (type.equals(3)) {
+            list = RegionCacheUtil.getAllCity();
+        }
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,141 @@
+package com.kmall.admin.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.kmall.common.entity.SmsConfig;
+import com.kmall.common.entity.SysSmsLogEntity;
+import com.kmall.common.service.SysConfigService;
+import com.kmall.common.service.SysSmsLogService;
+import com.kmall.common.utils.ConfigConstant;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @date 2017-12-16 23:38:05
+ */
+@RestController
+@RequestMapping("/sys/smslog")
+public class SysSmsLogController {
+    @Autowired
+    private SysSmsLogService smsLogService;
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    private final static String KEY = ConfigConstant.SMS_CONFIG_KEY;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("sys:smslog:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SysSmsLogEntity> smsLogList = smsLogService.queryList(query);
+        int total = smsLogService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(smsLogList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("sys:smslog:info")
+    @ResponseBody
+    public R info(@PathVariable("id") String id) {
+        SysSmsLogEntity smsLog = smsLogService.queryObject(id);
+
+        return R.ok().put("smsLog", smsLog);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("sys:smslog:save")
+    @ResponseBody
+    public R save(@RequestBody SysSmsLogEntity smsLog) {
+        smsLogService.save(smsLog);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("sys:smslog:update")
+    @ResponseBody
+    public R update(@RequestBody SysSmsLogEntity smsLog) {
+        smsLogService.update(smsLog);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("sys:smslog:delete")
+    @ResponseBody
+    public R delete(@RequestBody String[] ids) {
+        smsLogService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<SysSmsLogEntity> list = smsLogService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+
+    /**
+     * 短信配置信息
+     */
+    @RequestMapping("/config")
+    public R config() {
+        SmsConfig config = sysConfigService.getConfigObject(KEY, SmsConfig.class);
+
+        return R.ok().put("config", config);
+    }
+
+    /**
+     * 保存短信配置信息
+     */
+    @RequestMapping("/saveConfig")
+    public R saveConfig(@RequestBody SmsConfig config) {
+        sysConfigService.updateValueByKey(KEY, JSON.toJSONString(config));
+        return R.ok();
+    }
+
+    /**
+     * 发送短信
+     */
+    @RequestMapping("/sendSms")
+    @ResponseBody
+    public R sendSms(@RequestBody SysSmsLogEntity smsLog) {
+        SysSmsLogEntity sysSmsLogEntity = smsLogService.sendSms(smsLog);
+        return R.ok().put("result", sysSmsLogEntity);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/TopicCategoryController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.TopicCategoryEntity;
+import com.kmall.admin.service.TopicCategoryService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-20 15:41:56
+ */
+@RestController
+@RequestMapping("topiccategory")
+public class TopicCategoryController {
+    @Autowired
+    private TopicCategoryService topicCategoryService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("topiccategory:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<TopicCategoryEntity> topicCategoryList = topicCategoryService.queryList(query);
+        int total = topicCategoryService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(topicCategoryList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("topiccategory:info")
+    public R info(@PathVariable("id") Integer id) {
+        TopicCategoryEntity topicCategory = topicCategoryService.queryObject(id);
+
+        return R.ok().put("topicCategory", topicCategory);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("topiccategory:save")
+    public R save(@RequestBody TopicCategoryEntity topicCategory) {
+        topicCategoryService.save(topicCategory);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("topiccategory:update")
+    public R update(@RequestBody TopicCategoryEntity topicCategory) {
+        topicCategoryService.update(topicCategory);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("topiccategory:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        topicCategoryService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<TopicCategoryEntity> list = topicCategoryService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 99 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/TopicController.java

@@ -0,0 +1,99 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.TopicEntity;
+import com.kmall.admin.service.TopicService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-20 14:10:08
+ */
+@RestController
+@RequestMapping("topic")
+public class TopicController {
+    @Autowired
+    private TopicService topicService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("topic:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<TopicEntity> topicList = topicService.queryList(query);
+        int total = topicService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(topicList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("topic:info")
+    public R info(@PathVariable("id") Integer id) {
+        TopicEntity topic = topicService.queryObject(id);
+
+        return R.ok().put("topic", topic);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("topic:save")
+    public R save(@RequestBody TopicEntity topic) {
+        topicService.save(topic);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("topic:update")
+    public R update(@RequestBody TopicEntity topic) {
+        topicService.update(topic);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("topic:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        topicService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<TopicEntity> list = topicService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

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

@@ -0,0 +1,146 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.UserEntity;
+import com.kmall.admin.service.UserService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import com.kmall.common.utils.excel.ExcelExport;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-16 15:02:28
+ */
+@RestController
+@RequestMapping("user")
+public class UserController {
+    @Autowired
+    private UserService userService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("user:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<UserEntity> userList = userService.queryList(query);
+        int total = userService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(userList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("user:info")
+    public R info(@PathVariable("id") Integer id) {
+        UserEntity user = userService.queryObject(id);
+
+        return R.ok().put("user", user);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("user:save")
+    public R save(@RequestBody UserEntity user) {
+        userService.save(user);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("user:update")
+    public R update(@RequestBody UserEntity user) {
+        userService.update(user);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("user:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        userService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<UserEntity> userList = userService.queryList(params);
+
+        return R.ok().put("list", userList);
+    }
+
+    /**
+     * 总计
+     */
+    @RequestMapping("/queryTotal")
+    public R queryTotal(@RequestParam Map<String, Object> params) {
+        int sum = userService.queryTotal(params);
+
+        return R.ok().put("userSum", sum);
+    }
+
+    /**
+     * 导出会员
+     */
+    @RequestMapping("/export")
+    @RequiresPermissions("user:export")
+    public R export(@RequestParam Map<String, Object> params, HttpServletResponse response) {
+
+        List<UserEntity> userList = userService.queryList(params);
+
+        ExcelExport ee = new ExcelExport("会员列表");
+
+        String[] header = new String[]{"会员名称", "性别", "会员级别", "手机号码"};
+
+        List<Map<String, Object>> list = new ArrayList<>();
+
+        if (userList != null && userList.size() != 0) {
+            for (UserEntity userEntity : userList) {
+                LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+                map.put("USERNAME", userEntity.getUsername());
+                map.put("GENDER", userEntity.getGender() == 1 ? "男" : (userEntity.getGender() == 2 ? "女" : "未知"));
+                map.put("LEVEL_NAME", userEntity.getLevelName());
+                map.put("MOBILE", userEntity.getMobile());
+                list.add(map);
+            }
+        }
+
+        ee.addSheetByMap("会员", list, header);
+        ee.export(response);
+        return R.ok();
+    }
+
+}

+ 98 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/UserCouponController.java

@@ -0,0 +1,98 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.UserCouponEntity;
+import com.kmall.admin.service.UserCouponService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 15:40:33
+ */
+@RestController
+@RequestMapping("usercoupon")
+public class UserCouponController {
+    @Autowired
+    private UserCouponService userCouponService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<UserCouponEntity> userCouponList = userCouponService.queryList(query);
+        int total = userCouponService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(userCouponList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("usercoupon:info")
+    public R info(@PathVariable("id") Integer id) {
+        UserCouponEntity userCoupon = userCouponService.queryObject(id);
+
+        return R.ok().put("userCoupon", userCoupon);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("usercoupon:save")
+    public R save(@RequestBody UserCouponEntity userCoupon) {
+        userCouponService.save(userCoupon);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("usercoupon:update")
+    public R update(@RequestBody UserCouponEntity userCoupon) {
+        userCouponService.update(userCoupon);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("usercoupon:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        userCouponService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<UserCouponEntity> list = userCouponService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 100 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/UserLevelController.java

@@ -0,0 +1,100 @@
+package com.kmall.admin.controller;
+
+import com.kmall.admin.entity.UserLevelEntity;
+import com.kmall.admin.service.UserLevelService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-16 16:52:22
+ */
+@RestController
+@RequestMapping("userlevel")
+public class UserLevelController {
+    @Autowired
+    private UserLevelService userLevelService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("userlevel:list")
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<UserLevelEntity> userLevelList = userLevelService.queryList(query);
+        int total = userLevelService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(userLevelList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{id}")
+    @RequiresPermissions("userlevel:info")
+    public R info(@PathVariable("id") Integer id) {
+        UserLevelEntity userLevel = userLevelService.queryObject(id);
+
+        return R.ok().put("userLevel", userLevel);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("userlevel:save")
+    public R save(@RequestBody UserLevelEntity userLevel) {
+        userLevelService.save(userLevel);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("userlevel:update")
+    public R update(@RequestBody UserLevelEntity userLevel) {
+        userLevelService.update(userLevel);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("userlevel:delete")
+    public R delete(@RequestBody Integer[] ids) {
+        userLevelService.deleteBatch(ids);
+
+        return R.ok();
+    }
+
+    /**
+     * 查询所有数据
+     *
+     * @return
+     */
+    @RequestMapping("queryAll")
+    public R queryAll(@RequestParam Map<String, Object> params) {
+        List<UserLevelEntity> userLevelList = userLevelService.queryList(params);
+        return R.ok().put("list", userLevelList);
+    }
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/AdDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.AdEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 09:37:35
+ */
+public interface AdDao extends BaseDao<AdEntity> {
+
+}

+ 14 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/AdPositionDao.java

@@ -0,0 +1,14 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.AdPositionEntity;
+import com.kmall.common.dao.BaseDao;
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 12:02:42
+ */
+public interface AdPositionDao extends BaseDao<AdPositionEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/AddressDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.AddressEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-16 17:22:46
+ */
+public interface AddressDao extends BaseDao<AddressEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/AttributeCategoryDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.AttributeCategoryEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-17 16:13:27
+ */
+public interface AttributeCategoryDao extends BaseDao<AttributeCategoryEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/AttributeDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.AttributeEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-17 16:48:17
+ */
+public interface AttributeDao extends BaseDao<AttributeEntity> {
+
+}

+ 14 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/BrandDao.java

@@ -0,0 +1,14 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.BrandEntity;
+import com.kmall.common.dao.BaseDao;
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 17:59:15
+ */
+public interface BrandDao extends BaseDao<BrandEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CartDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CartEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:06
+ */
+public interface CartDao extends BaseDao<CartEntity> {
+	
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CategoryDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CategoryEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-21 15:32:31
+ */
+public interface CategoryDao extends BaseDao<CategoryEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/ChannelDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.ChannelEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-22 19:19:56
+ */
+public interface ChannelDao extends BaseDao<ChannelEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CollectDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CollectEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:06
+ */
+public interface CollectDao extends BaseDao<CollectEntity> {
+	
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CommentDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CommentEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-28 17:03:40
+ */
+public interface CommentDao extends BaseDao<CommentEntity> {
+
+}

+ 21 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CommentPictureDao.java

@@ -0,0 +1,21 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CommentPictureEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 评价图片Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-29 14:45:55
+ */
+public interface CommentPictureDao extends BaseDao<CommentPictureEntity> {
+    /**
+     * 根据commentId删除
+     *
+     * @param commentId
+     * @return
+     */
+    int deleteByCommentId(Integer commentId);
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CouponDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CouponEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-19 12:53:26
+ */
+public interface CouponDao extends BaseDao<CouponEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CouponGoodsDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CouponGoodsEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 优惠券关联商品Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-29 21:50:17
+ */
+public interface CouponGoodsDao extends BaseDao<CouponGoodsEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/FeedbackDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.FeedbackEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 15:03:25
+ */
+public interface FeedbackDao extends BaseDao<FeedbackEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/FootprintDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.FootprintEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:08
+ */
+public interface FootprintDao extends BaseDao<FootprintEntity> {
+	
+}

+ 22 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsAttributeDao.java

@@ -0,0 +1,22 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsAttributeEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:08
+ */
+public interface GoodsAttributeDao extends BaseDao<GoodsAttributeEntity> {
+
+    int updateByGoodsIdAttributeId(GoodsAttributeEntity goodsAttributeEntity);
+
+    /**
+     * 根据商品ID删除
+     *
+     * @param goodsId
+     * @return
+     */
+    int deleteByGoodsId(Long goodsId);
+}

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

@@ -0,0 +1,17 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-21 21:19:49
+ */
+public interface GoodsDao extends BaseDao<GoodsEntity> {
+    Long queryMaxId();
+
+    GoodsEntity queryObjectBySn(String goodsSn);
+}

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

@@ -0,0 +1,17 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsGalleryEntity;
+import com.kmall.common.dao.BaseDao;
+
+import java.util.Map;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 14:41:43
+ */
+public interface GoodsGalleryDao extends BaseDao<GoodsGalleryEntity> {
+    int deleteByGoodsId(Map<String, Long> map);
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsGroupDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsGroupEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 团购Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-09-06 17:18:30
+ */
+public interface GoodsGroupDao extends BaseDao<GoodsGroupEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsGroupOpenDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsGroupOpenEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-10-23 22:06:59
+ */
+public interface GoodsGroupOpenDao extends BaseDao<GoodsGroupOpenEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsGroupOpenDetailDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsGroupOpenDetailEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2018-05-17 14:04:43
+ */
+public interface GoodsGroupOpenDetailDao extends BaseDao<GoodsGroupOpenDetailEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsIssueDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsIssueEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-23 14:12:34
+ */
+public interface GoodsIssueDao extends BaseDao<GoodsIssueEntity> {
+
+}

+ 21 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsSpecificationDao.java

@@ -0,0 +1,21 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.GoodsSpecificationEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 商品对应规格表值表Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-31 11:15:55
+ */
+public interface GoodsSpecificationDao extends BaseDao<GoodsSpecificationEntity> {
+    /**
+     * 根据商品ID删除
+     *
+     * @param goodsId
+     * @return
+     */
+    int deleteByGoodsId(int goodsId);
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/HelpIssueDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.HelpIssueEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-01 21:09:54
+ */
+public interface HelpIssueDao extends BaseDao<HelpIssueEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/HelpTypeDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.HelpTypeEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-01 21:09:55
+ */
+public interface HelpTypeDao extends BaseDao<HelpTypeEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/KeywordsDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.KeywordsEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 热闹关键词表Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-25 21:23:41
+ */
+public interface KeywordsDao extends BaseDao<KeywordsEntity> {
+
+}

+ 63 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/OrderDao.java

@@ -0,0 +1,63 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.OrderEntity;
+import org.apache.ibatis.annotations.Param;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:09
+ */
+public interface OrderDao extends BaseDao<OrderEntity> {
+    void riderOrderUpdate(OrderEntity orderVo);
+
+    /**
+     * 获取活动Id
+     *
+     * @param activityId
+     */
+    OrderEntity queryObjectByActivityId(@Param("activityId") Long activityId, @Param("orderType") Integer orderType);
+
+    /**
+     * 已付款订单会员数
+     *
+     * @return
+     */
+    int getYfkOrderUserSum();
+
+    /**
+     * 有订单会员数
+     *
+     * @return
+     */
+    int getOderUserSum();
+
+    /**
+     * 今日订单数
+     *
+     * @return
+     */
+    int getTodayUserOrder();
+
+    /**
+     * 今日会员购物总额
+     *
+     * @return
+     */
+    int getTodayUserSales();
+
+    /**
+     * 总收入
+     *
+     * @return
+     */
+    int getIncomeSum();
+
+    /**
+     * 已支付订单数
+     *
+     * @return
+     */
+    int getPayedOrderCount();
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/OrderGoodsDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.OrderGoodsEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:09
+ */
+public interface OrderGoodsDao extends BaseDao<OrderGoodsEntity> {
+	
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/OrderRefundDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.OrderRefundEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 订单退款Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2018-04-20 10:00:37
+ */
+public interface OrderRefundDao extends BaseDao<OrderRefundEntity> {
+
+}

+ 31 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/ProductDao.java

@@ -0,0 +1,31 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.ProductEntity;
+import org.apache.ibatis.annotations.Param;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-30 14:31:21
+ */
+public interface ProductDao extends BaseDao<ProductEntity> {
+
+    /**
+     * 根据商品ID删除产品
+     *
+     * @param goodsId
+     * @return
+     */
+    int deleteByGoodsId(Integer goodsId);
+
+    /**
+     * 根据编码查询产品
+     *
+     * @param goodsSn
+     * @return
+     */
+    ProductEntity queryObjectBySn(@Param("goodsSn") String goodsSn);
+}

+ 19 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/ProductStoreRelaDao.java

@@ -0,0 +1,19 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.ProductStoreRelaEntity;
+import org.apache.ibatis.annotations.Param;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-27 19:12:46
+ */
+public interface ProductStoreRelaDao extends BaseDao<ProductStoreRelaEntity> {
+
+    int deleteByGoodsId(Integer goodsId);
+
+    ProductStoreRelaEntity queryByStoreIdProductId(@Param("storeId") Long storeId, @Param("productId") Long productId);
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/RelatedGoodsDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.RelatedGoodsEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:09
+ */
+public interface RelatedGoodsDao extends BaseDao<RelatedGoodsEntity> {
+	
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SearchHistoryDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SearchHistoryEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:10
+ */
+public interface SearchHistoryDao extends BaseDao<SearchHistoryEntity> {
+	
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/ShippingDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.ShippingEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-09-04 21:42:24
+ */
+public interface ShippingDao extends BaseDao<ShippingEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SpecificationDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SpecificationEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 规格表
+ * 
+ * @author Scott
+ * @email
+ * @date 2017-08-13 10:41:10
+ */
+public interface SpecificationDao extends BaseDao<SpecificationEntity> {
+	
+}

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

@@ -0,0 +1,17 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.StoreEntity;
+import org.apache.ibatis.annotations.Param;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-02 00:53:32
+ */
+public interface StoreDao extends BaseDao<StoreEntity> {
+
+    StoreEntity queryObjectByName(@Param("storeName") String storeName);
+}

+ 25 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysDeptDao.java

@@ -0,0 +1,25 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SysDeptEntity;
+import com.kmall.common.dao.BaseDao;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 部门管理
+ *
+ * @author liepngjun
+ * @email
+ * @date 2017-09-17 23:58:47
+ */
+@Mapper
+public interface SysDeptDao extends BaseDao<SysDeptEntity> {
+
+    /**
+     * 查询子部门ID列表
+     *
+     * @param parentId 上级部门ID
+     */
+    List<Long> queryDetpIdList(Long parentId);
+}

+ 24 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysMacroDao.java

@@ -0,0 +1,24 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SysMacroEntity;
+import com.kmall.common.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 通用字典表Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-08-22 11:48:16
+ */
+public interface SysMacroDao extends BaseDao<SysMacroEntity> {
+
+    /**
+     * 查询数据字段
+     * @param value
+     * @return
+     */
+    List<SysMacroEntity> queryMacrosByValue(@Param("value") String value);
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysNoticeDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SysNoticeEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 通知Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-11-16 22:00:56
+ */
+public interface SysNoticeDao extends BaseDao<SysNoticeEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysNoticeUserDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SysNoticeUserEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 通知和用户关系表Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-11-16 22:00:57
+ */
+public interface SysNoticeUserDao extends BaseDao<SysNoticeUserEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysOssDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SysOssEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 文件上传
+ *
+ * @author Scott
+ * @email
+ * @date 2017-03-25 12:13:26
+ */
+public interface SysOssDao extends BaseDao<SysOssEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysPrinterDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SysPrinterEntity;
+import com.kmall.common.dao.BaseDao;
+
+/**
+ * 飞鸽打印机Dao
+ *
+ * @author Scott
+ * @email
+ * @date 2017-12-02 00:41:31
+ */
+public interface SysPrinterDao extends BaseDao<SysPrinterEntity> {
+
+}

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott