Browse Source

init from phab

xielq 4 years ago
parent
commit
08212e0b2e

+ 0 - 0
README.md


+ 44 - 0
build.gradle

@@ -0,0 +1,44 @@
+// Gradle build file for Gradle 2.14.1
+// Created by huxz on 2017-3-17 13:38:59
+buildscript {
+    ext {
+        springBootVersion = '1.5.3.RELEASE'
+        // 0.12.0 升级到了 Gradle 3.4,Gradle 2.14.1 只能使用 0.11.0及以下
+        dockerVersion = '0.11.0'
+        dcokerRegistry = "10.10.100.200:5000"
+    }
+    repositories {
+        maven { url "https://plugins.gradle.org/m2/" }
+        maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
+        mavenCentral()
+        jcenter()
+    }
+    dependencies {
+        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
+        classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:${dockerVersion}"
+    }
+}
+
+group 'com.uas.cloud.mall'
+version '0.1.10'
+
+apply plugin: 'java'
+apply plugin: "com.palantir.docker"
+apply plugin: "org.springframework.boot"
+
+apply from: "$rootDir/gradle/tasks.gradle"
+apply from: "$rootDir/gradle/dependencies-base.gradle"
+
+jar {
+    baseName = project.name
+    version = ''
+}
+
+allprojects {
+    sourceCompatibility = 1.8
+}
+
+dependencies {
+    compile("org.springframework.boot:spring-boot-starter-web")
+    compile("org.springframework.boot:spring-boot-starter-data-mongodb")
+}

+ 20 - 0
gradle/dependencies-base.gradle

@@ -0,0 +1,20 @@
+// Gradle Base Dependencies Configurations
+// Created by huxz on 2017-3-17 14:39:36
+repositories {
+	mavenLocal()
+	maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
+	maven {
+		url 'http://10.10.101.21:8081/artifactory/libs-release'
+	}
+	maven {
+		url 'http://10.10.101.21:8081/artifactory/libs-snapshot'
+	}
+	maven {
+		url 'http://10.10.101.21:8081/artifactory/plugins-snapshot'
+	}
+	mavenCentral()
+}
+
+dependencies {
+	testCompile('org.springframework.boot:spring-boot-starter-test')
+}

+ 12 - 0
gradle/tasks.gradle

@@ -0,0 +1,12 @@
+// Gradle Tasks Configurations
+// Created by huxz on 2017-3-17 14:39:36
+bootRun {
+	addResources = true
+}
+
+docker {
+	name "${dcokerRegistry}/${project.name}:${project.version}"
+	tags "latest"
+	dockerfile "${projectDir}/src/main/docker/Dockerfile"
+	files "${buildDir}/libs/${project.name}.jar"
+}.dependsOn build

BIN
gradle/wrapper/gradle-wrapper.jar


+ 6 - 0
gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,6 @@
+#Thu Aug 03 16:04:06 CST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-bin.zip

+ 164 - 0
gradlew

@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

+ 90 - 0
gradlew.bat

@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega

+ 2 - 0
settings.gradle

@@ -0,0 +1,2 @@
+rootProject.name = 'mall-log-service'
+

+ 6 - 0
src/main/docker/Dockerfile

@@ -0,0 +1,6 @@
+FROM hub.c.163.com/library/java:8-jre-alpine
+VOLUME /tmp
+ADD mall-log-service.jar app.jar
+RUN sh -c "touch /app.jar"
+ENV JAVA_OPTS=""
+ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar"]

+ 19 - 0
src/main/java/com/uas/cloud/mall/Application.java

@@ -0,0 +1,19 @@
+package com.uas.cloud.mall;
+
+import org.springframework.boot.Banner;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+
+/**
+ * 程序入口类
+ *
+ * @author huxz
+ * @version  2017-08-03 16:24:58 创建
+ */
+@SpringBootApplication
+public class Application {
+
+	public static void main(String[] args) {
+		new SpringApplicationBuilder(Application.class).web(true).bannerMode(Banner.Mode.OFF).run(args);
+	}
+}

+ 59 - 0
src/main/java/com/uas/cloud/mall/api/UsageLogController.java

@@ -0,0 +1,59 @@
+package com.uas.cloud.mall.api;
+
+import com.uas.cloud.mall.model.UsageLog;
+import com.uas.cloud.mall.service.UsageLogService;
+import com.uas.cloud.mall.support.PageInfo;
+import com.uas.cloud.mall.support.ResultMap;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * 用户操作日志记录接口
+ *
+ * @author huxz
+ * @version 2017-08-03 16:37:14 创建
+ */
+@RestController
+@RequestMapping(value = "/api/service/log/usage")
+public class UsageLogController {
+
+	private final Logger logger = Logger.getLogger(UsageLogController.class);
+
+	private final UsageLogService usageLogService;
+
+	@Autowired
+	public UsageLogController(UsageLogService usageLogService) {
+		this.usageLogService = usageLogService;
+	}
+
+	/**
+	 * 当用户操作时,记录用户的操作日志
+	 *
+	 * @param usageLog	操作日志
+	 * @return	操作结果
+	 */
+	@PostMapping(produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	public ResultMap saveLogWhenUserOperate(@RequestBody UsageLog usageLog) {
+		logger.info("Save log when user operates");
+		return usageLogService.saveLogWhenUserOperate(usageLog);
+	}
+
+	/**
+	 * 当管理员分页获取操作日志时,返回分页结果
+	 *
+	 * @param pageInfo	分页信息
+	 * @return 操作结果
+	 */
+	@GetMapping(params = "op=pageLogs", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	public ResultMap pageLogsWhenAdminSelect(PageInfo pageInfo) {
+		logger.info("Page logs when admin select");
+		return usageLogService.pageLogsWhenAdminSelect(pageInfo);
+	}
+}

+ 16 - 0
src/main/java/com/uas/cloud/mall/dao/UsageLogDao.java

@@ -0,0 +1,16 @@
+package com.uas.cloud.mall.dao;
+
+import com.uas.cloud.mall.model.UsageLog;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 操作日志数据库操作类
+ *
+ * @author huxz
+ * @version 2017-08-03 16:25:34 创建
+ */
+@Repository
+public interface UsageLogDao extends MongoRepository<UsageLog, String> {
+
+}

+ 187 - 0
src/main/java/com/uas/cloud/mall/model/UsageLog.java

@@ -0,0 +1,187 @@
+package com.uas.cloud.mall.model;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+/**
+ * 用户操作日志
+ *
+ * @author suntg
+ * @version 2017-08-03 15:04:38 创建
+ */
+@Document(collection = "usage_logs")
+public class UsageLog {
+
+    /**
+     * id
+     */
+    @Id
+    private String id;
+
+    /**
+     * 客户端IP地址
+     */
+    private String ip;
+
+    /**
+     * 发起时间
+     */
+    private Long date;
+
+    /**
+     * 操作请求uri
+     */
+    private String uri;
+
+    /**
+     * 操作请求对应的实现方法
+     */
+    private String method;
+
+    /**
+     * 请求参数
+     */
+    private String params;
+
+    /**
+     * 从开始到完成所用时间,毫秒
+     */
+    private long time;
+
+    /**
+     * 个人UU号,可以为空
+     */
+    private Long userUu;
+
+    /**
+     * 个人名字,可以为空
+     */
+    private String userName;
+
+    /**
+     * 企业UU号,可以为空
+     */
+    private Long enUu;
+
+    /**
+     * 企业名称,可以为空
+     */
+    private String enName;
+
+    /**
+     * 模块名称
+     */
+    private String module;
+
+    /**
+     * 操作详情
+     */
+    private String detail;
+
+	public UsageLog() {
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getIp() {
+        return ip;
+    }
+
+    public void setIp(String ip) {
+        this.ip = ip;
+    }
+
+    public Long getDate() {
+        return date;
+    }
+
+    public void setDate(Long date) {
+        this.date = date;
+    }
+
+    public String getUri() {
+        return uri;
+    }
+
+    public void setUri(String uri) {
+        this.uri = uri;
+    }
+
+    public String getMethod() {
+        return method;
+    }
+
+    public void setMethod(String method) {
+        this.method = method;
+    }
+
+    public String getParams() {
+        return params;
+    }
+
+    public void setParams(String params) {
+        this.params = params;
+    }
+
+    public long getTime() {
+        return time;
+    }
+
+    public void setTime(long time) {
+        this.time = time;
+    }
+
+    public Long getUserUu() {
+        return userUu;
+    }
+
+    public void setUserUu(Long userUu) {
+        this.userUu = userUu;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Long getEnUu() {
+        return enUu;
+    }
+
+    public void setEnUu(Long enUu) {
+        this.enUu = enUu;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public String getModule() {
+        return module;
+    }
+
+    public void setModule(String module) {
+        this.module = module;
+    }
+
+    public String getDetail() {
+        return detail;
+    }
+
+    public void setDetail(String detail) {
+        this.detail = detail;
+    }
+}

+ 31 - 0
src/main/java/com/uas/cloud/mall/service/UsageLogService.java

@@ -0,0 +1,31 @@
+package com.uas.cloud.mall.service;
+
+import com.uas.cloud.mall.model.UsageLog;
+import com.uas.cloud.mall.support.PageInfo;
+import com.uas.cloud.mall.support.ResultMap;
+
+
+/**
+ * 用户操作日志业务类
+ *
+ * @author huxz
+ * @version 2017-08-03 16:26:44 创建
+ */
+public interface UsageLogService {
+
+	/**
+	 * 当用户操作时,记录用户的操作日志
+	 *
+	 * @param usageLog	操作日志
+	 * @return	操作结果
+	 */
+	ResultMap saveLogWhenUserOperate(UsageLog usageLog);
+
+	/**
+	 * 当管理员分页获取操作日志时,返回分页结果
+	 *
+	 * @param pageInfo    分页参数
+	 * @return	操作结果
+	 */
+	ResultMap pageLogsWhenAdminSelect(PageInfo pageInfo);
+}

+ 47 - 0
src/main/java/com/uas/cloud/mall/service/impl/UsageLogServiceImpl.java

@@ -0,0 +1,47 @@
+package com.uas.cloud.mall.service.impl;
+
+import com.uas.cloud.mall.dao.UsageLogDao;
+import com.uas.cloud.mall.model.UsageLog;
+import com.uas.cloud.mall.service.UsageLogService;
+import com.uas.cloud.mall.support.CodeType;
+import com.uas.cloud.mall.support.PageInfo;
+import com.uas.cloud.mall.support.ResultMap;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * 用户操作日志业务实现类
+ *
+ * @author huxz
+ * @version 2017-08-03 16:34:25 创建
+ */
+@Service
+public class UsageLogServiceImpl implements UsageLogService {
+
+	private final UsageLogDao usageLogDao;
+
+	@Autowired
+	public UsageLogServiceImpl(UsageLogDao usageLogDao) {
+		this.usageLogDao = usageLogDao;
+	}
+
+	@Override
+	public ResultMap saveLogWhenUserOperate(UsageLog usageLog) {
+		if (usageLog == null) {
+			return ResultMap.fail(CodeType.NO_INFO, "用户操作日志不存在");
+		}
+		usageLogDao.save(usageLog);
+		return ResultMap.success(usageLog.getId());
+	}
+
+	@Override
+	public ResultMap pageLogsWhenAdminSelect(PageInfo pageInfo) {
+		if (pageInfo == null) {
+			return ResultMap.fail(CodeType.NO_INFO, "分页参数不存在");
+		}
+		Page<UsageLog> page = usageLogDao.findAll(pageInfo);
+		return ResultMap.success(page);
+	}
+}

+ 79 - 0
src/main/java/com/uas/cloud/mall/support/CodeType.java

@@ -0,0 +1,79 @@
+package com.uas.cloud.mall.support;
+
+/**
+ * 响应码
+ *
+ * history:
+ * Created by huxz on 2017-3-29 16:30:50
+ */
+public enum CodeType {
+
+	/**
+	 * 操作成功
+	 */
+	OK(1, "SUCCESS"),
+	/**
+	 * 参数信息缺失
+	 */
+	NO_INFO(2, "NO_INFO"),
+	/**
+	 * 操作实体信息不全
+	 */
+	NOT_COMPLETE_INFO(3, "NOT_COMPLETE_INFO"),
+	/**
+	 * 操作实体已存在
+	 */
+	SAVED(4, "SAVED"),
+	/**
+	 * 非法状态
+	 */
+	ERROR_STATE(5, "ERROR_STATE"),
+	/**
+	 * 操作不允许
+	 */
+	NOT_PERMIT(6, "NOT_PERMIT"),
+	/**
+	 * 操作实体不存在
+	 */
+	NOT_EXiST(7, "NOT_EXiST"),
+	/**
+	 * 参数异常,不在取值范围之内等原因
+	 */
+	PARAMETER_ERROR(8, "PARAMETER_ERROR"),
+	/**
+	 * 系统的基础参数不存在
+	 */
+	SYSTEM_NOT_EXIST(9, "SYSTEM_NOT_EXIST"),
+
+	/**
+	 * 系统异常
+	 */
+	SYSTEM_ERROR(10, "SYSTEM_ERROR"),
+
+	/**
+	 * 信息不一致
+	 */
+	INFO_UPDATE(11, "信息不一致");
+
+	private int code;
+
+	private String message;
+
+	CodeType(int code, String message) {
+		this.code = code;
+		this.message = message;
+	}
+
+	public int code() {
+		return this.code;
+	}
+
+	public String message() {
+		return this.message;
+	}
+
+	@Override
+	public String toString() {
+		return Integer.toString(code);
+	}
+}

+ 65 - 0
src/main/java/com/uas/cloud/mall/support/PageInfo.java

@@ -0,0 +1,65 @@
+package com.uas.cloud.mall.support;
+
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+
+/**
+ * 分页参数类
+ *
+ * @author huxz
+ * @version 2017-08-03 17:30:28 创建
+ */
+public class PageInfo implements Pageable {
+
+	int pageNumber = 1;
+
+	int pageSize = 10;
+
+	@Override
+	public int getPageNumber() {
+		return 0;
+	}
+
+	public void setPageNumber(int pageNumber) {
+		this.pageNumber = pageNumber;
+	}
+
+	@Override
+	public int getPageSize() {
+		return 0;
+	}
+
+	public void setPageSize(int pageSize) {
+		this.pageSize = pageSize;
+	}
+
+	@Override
+	public int getOffset() {
+		return 0;
+	}
+
+	@Override
+	public Sort getSort() {
+		return null;
+	}
+
+	@Override
+	public Pageable next() {
+		return null;
+	}
+
+	@Override
+	public Pageable previousOrFirst() {
+		return null;
+	}
+
+	@Override
+	public Pageable first() {
+		return null;
+	}
+
+	@Override
+	public boolean hasPrevious() {
+		return false;
+	}
+}

+ 76 - 0
src/main/java/com/uas/cloud/mall/support/ResultMap.java

@@ -0,0 +1,76 @@
+package com.uas.cloud.mall.support;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * 请求结果集
+ *
+ * history:
+ * Created by huxz on 2017-3-29 16:30:32
+ */
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class ResultMap {
+
+	private int code;
+
+	private boolean success;
+
+	private String message;
+
+	private Object data;
+
+	private ResultMap() {
+	}
+
+	private ResultMap(CodeType status, String message) {
+		this.code = status.code();
+		if (CodeType.OK == status) {
+			this.success = true;
+		} else {
+			this.success = false;
+			this.message = message;
+		}
+	}
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public boolean isSuccess() {
+		return success;
+	}
+
+	public void setSuccess(boolean success) {
+		this.success = success;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public Object getData() {
+		return data;
+	}
+
+	public void setData(Object data) {
+		this.data = data;
+	}
+
+	public static ResultMap success(Object data) {
+		ResultMap result = new ResultMap(CodeType.OK, null);
+		result.data = data;
+		return result;
+	}
+
+	public static ResultMap fail(CodeType status, String message) {
+		return new ResultMap(status, message);
+	}
+}

+ 4 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,4 @@
+spring:
+  data:
+    mongodb:
+      uri: mongodb://10.10.100.22:27017/mall_logs

+ 4 - 0
src/main/resources/application-prod.yml

@@ -0,0 +1,4 @@
+spring:
+  data:
+    mongodb:
+      uri: mongodb://10.10.100.18:27017/mall_logs@prod

+ 4 - 0
src/main/resources/application-test.yml

@@ -0,0 +1,4 @@
+spring:
+  data:
+    mongodb:
+      uri: mongodb://10.10.100.22:27017/mall_logs

+ 11 - 0
src/main/resources/application.yml

@@ -0,0 +1,11 @@
+# 服务端口
+server:
+  port: 20250
+
+# 配置信息
+spring:
+  application:
+    name: mall-log-service
+  profiles:
+    active: dev
+

+ 29 - 0
src/main/resources/static/Index.html

@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="UTF-8">
+	<title>平台日志服务</title>
+	<style>
+		body {
+			padding: 0 15px;
+		}
+	</style>
+</head>
+<body>
+	<div>
+		<h1>平台日志服务</h1>
+		<!-- 服务简介 -->
+		<div class="description">
+			<h2>Author: huxz</h2>
+			<h2>CreateTime: 2017-08-03 16:13:32</h2>
+			<p>
+				平台日志服务,主要为平台提供操作日志储存功能,获取操作日志功能,以及统计操作日志功能
+			</p>
+		</div>
+		<!-- 接口介绍 -->
+		<div class="api-details">
+			<h2>接口文档</h2>
+		</div>
+	</div>
+</body>
+</html>