diff --git a/mallinkNeuPosAdmin/pom.xml b/mallinkNeuPosAdmin/pom.xml
new file mode 100644
index 000000000..3243a872b
--- /dev/null
+++ b/mallinkNeuPosAdmin/pom.xml
@@ -0,0 +1,154 @@
+
+
+ 4.0.0
+
+ mallink
+ com.iformall
+ 1.0
+
+
+ mallinkNeuPosAdmin
+
+
+
+ com.iformall
+ mallinkService
+ 1.0
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+ ZIP
+
+ antlr,
+ cn.afterturn,
+ ch.qos.logback,
+ com.alibaba,
+ com.amazonaws,
+ com.baomidou,
+ com.mchange,
+ com.fasterxml.jackson.core,
+ com.fasterxml.jackson.dataformat,
+ com.fasterxml.jackson.datatype,
+ com.fasterxml.jackson.module,
+ com.fasterxml.uuid,
+ com.fasterxml,
+ com.github.axet,
+ com.github.jsqlparser,
+ com.github.pagehelper,
+ com.github.ulisesbocchio,
+ com.github.virtuald,
+ com.google.code.findbugs,
+ com.google.code.gson,
+ com.google.errorprone,
+ com.google.guava,
+ com.google.protobuf,
+ com.google.zxing,
+ com.jayway.jsonpath,
+ com.jhlabs,
+ com.puppycrawl.tools,
+ com.rabbitmq,
+ com.squareup.okhttp3,
+ com.squareup.okio,
+ com.sun,
+ com.sun.mail,
+ com.thoughtworks.xstream,
+ com.zaxxer,
+ commons-beanutils,
+ commons-cli,
+ commons-codec,
+ commons-collections,
+ commons-fileupload,
+ commons-io,
+ commons-logging,
+ io.lettuce,
+ io.netty,
+ io.projectreactor,
+ io.springfox,
+ io.swagger,
+ io.undertow,
+ javax.activation,
+ javax.annotation,
+ javax.mail,
+ javax.persistence,
+ javax.servlet,
+ javax.validation,
+ javax.xml.bind,
+ javax.xml.soap,
+ javax.xml.ws,
+ joda-time,
+ junit,
+ mysql,
+ net.bytebuddy,
+ net.minidev,
+ net.sf.dozer,
+ net.sf.saxon,
+ ognl,
+ org.antlr,
+ org.apache.commons,
+ org.apache.httpcomponents,
+ org.apache.logging.log4j,
+ org.apache.poi,
+ org.apache.poi.wso2,
+ org.apache.rocketmq,
+ org.apache.shiro,
+ org.apache.tomcat.embed,
+ org.apache.xmlbeans,
+ org.aspectj,
+ org.assertj,
+ org.bouncycastle,
+ org.checkerframework,
+ org.codehaus.mojo,
+ org.crazycake,
+ org.dom4j,
+ org.flowable,
+ org.flywaydb,
+ org.glassfish,
+ org.hibernate.validator,
+ org.jasypt,
+ org.javassist,
+ org.jboss.logging,
+ org.jboss.spec.javax.annotation,
+ org.jboss.spec.javax.websocket,
+ org.jboss.xnio,
+ org.jdom,
+ org.jodd,
+ org.jvnet.mimepull,
+ org.jvnet.staxex,
+ org.mapstruct,
+ org.mockito,
+ org.mybatis,
+ org.mybatis.generator,
+ org.mybatis.spring.boot,
+ org.ow2.asm,
+ org.projectlombok,
+ org.quartz-scheduler,
+ org.reactivestreams,
+ org.reflections,
+ org.rocketmq.spring.boot,
+ org.slf4j,
+ org.springframework,
+ org.springframework.amqp,
+ org.springframework.boot,
+ org.springframework.data,
+ org.springframework.retry,
+ org.springframework.ws,
+ org.yaml,
+ redis.clients,
+ software.amazon.ion,
+ tk.mybatis,
+ xmlpull,
+ xpp3
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/NeuPosAdminApplication.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/NeuPosAdminApplication.java
new file mode 100644
index 000000000..405397ab8
--- /dev/null
+++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/NeuPosAdminApplication.java
@@ -0,0 +1,75 @@
+package com.iformall;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.rocketmq.starter.annotation.EnableRocketMQ;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
+
+/**
+ * @author chenkx
+ * @date 2017-12-26
+ */
+@SpringBootApplication
+@MapperScan(basePackages = {"com.iformall.mapper"})
+@EnableEncryptableProperties
+@EnableRocketMQ
+@EnableAspectJAutoProxy(exposeProxy = true)
+public class NeuPosAdminApplication {
+
+ @Value("${fm.exception}")
+ private boolean fmException;
+
+ @Value("${fm.exception_emails}")
+ private String fmExceptionEmails;
+
+ @Value("${fm.open}")
+ private boolean fmOpen;
+
+ @Value("${fm.upload_dir}")
+ private String uploadDir;
+
+ @Value("${fm.ocr_data}")
+ private String ocrData;
+
+ @Value("${fm.videoType}")
+ private String videoType;
+
+ @Bean
+ public boolean isFmException() {
+ return fmException;
+ }
+
+ @Bean
+ public String fmExceptionEmails() {
+ return fmExceptionEmails;
+ }
+
+ @Bean
+ public boolean isFmOpen() {
+ return fmOpen;
+ }
+
+ @Bean
+ public String fmUploadDir() {
+ return uploadDir;
+ }
+
+ @Bean
+ public String ocrData() {
+ return ocrData;
+ }
+
+ @Bean
+ public String videoType() {
+ return videoType;
+ }
+
+ public static void main(String[] args) {
+ SpringApplication.run(NeuPosAdminApplication.class, args);
+ }
+}
diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/AuthIgnore.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/AuthIgnore.java
new file mode 100644
index 000000000..f8d88a5a2
--- /dev/null
+++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/AuthIgnore.java
@@ -0,0 +1,16 @@
+package com.iformall.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * api接口,忽略Token验证
+ * @author stormeye.wu
+ * @email wuguoqiang@iformall.com
+ * @date 2017-03-23 15:44
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface AuthIgnore {
+
+}
diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/LoginUser.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/LoginUser.java
new file mode 100644
index 000000000..c5dc1646c
--- /dev/null
+++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/LoginUser.java
@@ -0,0 +1,19 @@
+package com.iformall.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 登录用户信息
+ *
+ * @author stormeye.wu
+ * @email wuguoqiang@iformall.com
+ * @date 2017-03-23 20:39
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface LoginUser {
+
+}
diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/TenantIgnore.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/TenantIgnore.java
new file mode 100644
index 000000000..2623b71e2
--- /dev/null
+++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/annotation/TenantIgnore.java
@@ -0,0 +1,16 @@
+package com.iformall.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * api接口,忽略Token验证
+ * @author stormeye.wu
+ * @email wuguoqiang@iformall.com
+ * @date 2017-03-23 15:44
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface TenantIgnore {
+
+}
diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java
new file mode 100644
index 000000000..af4d6009a
--- /dev/null
+++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/config/MyBatisConfiguration.java
@@ -0,0 +1,14 @@
+package com.iformall.config;
+
+import com.iformall.plugin.MyBatisItercepters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MyBatisConfiguration extends BaseMyBatisConfiguration {
+
+ @Bean
+ public MyBatisItercepters intercepters() {
+ return allIntercepters();
+ }
+}
diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/config/RedisConfig.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/config/RedisConfig.java
new file mode 100644
index 000000000..02e61114a
--- /dev/null
+++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/config/RedisConfig.java
@@ -0,0 +1,335 @@
+package com.iformall.config;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.pagehelper.PageInfo;
+import com.iformall.domain.po.*;
+import com.iformall.domain.po.base.BaseCUserEntity;
+import com.iformall.domain.vo.WxCouponCVo;
+import com.iformall.domain.vo.WxCouponChannelVo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.CachingConfigurerSupport;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.cache.RedisCacheWriter;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by Stormeye on 2018/10/1.
+ */
+@Configuration
+@EnableCaching
+public class RedisConfig extends CachingConfigurerSupport {
+
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+ //缓存管理器
+ @Bean
+ public CacheManager cacheManager(RedisConnectionFactory connectionFactory) {
+ //user信息缓存配置
+ RedisCacheConfiguration userCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(10)).disableCachingNullValues().prefixKeysWith("user");
+ Map redisCacheConfigurationMap = new HashMap<>();
+ redisCacheConfigurationMap.put("user", userCacheConfiguration);
+ //初始化一个RedisCacheWriter
+ RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory);
+ // 设置CacheManager的值序列化方式为JdkSerializationRedisSerializer,但其实RedisCacheConfiguration默认就是使用StringRedisSerializer序列化key,JdkSerializationRedisSerializer序列化value,所以以下注释代码为默认实现
+ // ClassLoader loader = this.getClass().getClassLoader();
+ // JdkSerializationRedisSerializer jdkSerializer = new JdkSerializationRedisSerializer(loader);
+ // RedisSerializationContext.SerializationPair