zhang song 6 лет назад
Родитель
Сommit
89c077faee
47 измененных файлов с 739 добавлено и 1964 удалено
  1. 14 1
      pine-admin/pom.xml
  2. 21 0
      pine-admin/src/main/java/com/pine/admin/aop/Operation.java
  3. 90 0
      pine-admin/src/main/java/com/pine/admin/aop/SysLogAspect.java
  4. 1 0
      pine-admin/src/main/java/com/pine/admin/config/RedisConfig.java
  5. 1 27
      pine-admin/src/main/java/com/pine/admin/config/ShiroConfig.java
  6. 0 144
      pine-admin/src/main/java/com/pine/admin/modules/base/controller/AreasController.java
  7. 0 80
      pine-admin/src/main/java/com/pine/admin/modules/base/controller/AssetsController.java
  8. 0 143
      pine-admin/src/main/java/com/pine/admin/modules/base/controller/ProvincesController.java
  9. 0 63
      pine-admin/src/main/java/com/pine/admin/modules/base/controller/WeiXinLoginController.java
  10. 0 26
      pine-admin/src/main/java/com/pine/admin/modules/base/dao/AreasDao.java
  11. 0 26
      pine-admin/src/main/java/com/pine/admin/modules/base/dao/CitiesDao.java
  12. 0 26
      pine-admin/src/main/java/com/pine/admin/modules/base/dao/ProvincesDao.java
  13. 0 48
      pine-admin/src/main/java/com/pine/admin/modules/base/entity/Areas.java
  14. 0 50
      pine-admin/src/main/java/com/pine/admin/modules/base/entity/Cities.java
  15. 0 44
      pine-admin/src/main/java/com/pine/admin/modules/base/entity/Provinces.java
  16. 0 35
      pine-admin/src/main/java/com/pine/admin/modules/base/service/AreasService.java
  17. 0 35
      pine-admin/src/main/java/com/pine/admin/modules/base/service/CitiesService.java
  18. 0 35
      pine-admin/src/main/java/com/pine/admin/modules/base/service/ProvincesService.java
  19. 3 2
      pine-admin/src/main/java/com/pine/admin/modules/base/service/RedisService.java
  20. 0 24
      pine-admin/src/main/java/com/pine/admin/modules/base/service/WeiXinService.java
  21. 0 168
      pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/AreasServiceImpl.java
  22. 0 167
      pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/CitiesServiceImpl.java
  23. 0 168
      pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/ProvincesServiceImpl.java
  24. 0 140
      pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/WeiXinServiceImpl.java
  25. 34 34
      pine-admin/src/main/java/com/pine/admin/modules/business/controller/SysLogController.java
  26. 15 0
      pine-admin/src/main/java/com/pine/admin/modules/business/dao/SysLogDao.java
  27. 72 0
      pine-admin/src/main/java/com/pine/admin/modules/business/entity/SysLog.java
  28. 16 0
      pine-admin/src/main/java/com/pine/admin/modules/business/service/SysLogService.java
  29. 0 7
      pine-admin/src/main/java/com/pine/admin/modules/business/service/impl/CarBackOrderServiceImpl.java
  30. 6 21
      pine-admin/src/main/java/com/pine/admin/modules/business/service/impl/CarOrderServiceImpl.java
  31. 168 0
      pine-admin/src/main/java/com/pine/admin/modules/business/service/impl/SysLogServiceImpl.java
  32. 10 3
      pine-admin/src/main/java/com/pine/admin/modules/system/controller/SysUserLoginController.java
  33. 9 2
      pine-admin/src/main/java/com/pine/admin/modules/system/service/SysService.java
  34. 33 10
      pine-admin/src/main/java/com/pine/admin/modules/system/service/impl/SysServiceImpl.java
  35. 4 0
      pine-admin/src/main/java/com/pine/admin/shiro/ShiroUserInfo.java
  36. 54 28
      pine-admin/src/main/resources/application-dev.properties
  37. 2 2
      pine-admin/src/main/resources/application-prod.properties
  38. 2 7
      pine-admin/src/main/resources/application.properties
  39. 0 128
      pine-admin/src/main/resources/mapper/base/AreasDao.xml
  40. 0 139
      pine-admin/src/main/resources/mapper/base/CitiesDao.xml
  41. 0 127
      pine-admin/src/main/resources/mapper/base/ProvincesDao.xml
  42. 1 0
      pine-admin/src/main/resources/mapper/business/OrderSkuDao.xml
  43. 28 0
      pine-admin/src/test/com/pine/admin/modules/base/service/RedisServiceTest.java
  44. 20 2
      pine-admin/src/test/com/pine/admin/modules/system/service/impl/SysPermissionServiceImplTest.java
  45. 52 0
      pine-common/src/main/java/com/pine/common/utils/IpUtil.java
  46. 51 0
      pine-common/src/main/java/com/pine/common/utils/JacksonUtil.java
  47. 32 2
      pine-common/src/main/java/com/pine/common/utils/RSAUtils.java

+ 14 - 1
pine-admin/pom.xml

@@ -29,7 +29,20 @@
 
     <dependencies>
 
-
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.aspectj</groupId>
+            <artifactId>aspectjweaver</artifactId>
+        </dependency>
         <dependency>
             <groupId>joda-time</groupId>
             <artifactId>joda-time</artifactId>

+ 21 - 0
pine-admin/src/main/java/com/pine/admin/aop/Operation.java

@@ -0,0 +1,21 @@
+package com.pine.admin.aop;
+
+import java.lang.annotation.*;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+
+/**
+ * com.pine.admin.aop
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019/9/29
+ */
+@Target({METHOD, TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Inherited
+@Documented
+public @interface Operation {
+    String value() default "";
+}

+ 90 - 0
pine-admin/src/main/java/com/pine/admin/aop/SysLogAspect.java

@@ -0,0 +1,90 @@
+package com.pine.admin.aop;
+
+
+import com.pine.admin.modules.business.entity.SysLog;
+import com.pine.admin.modules.business.service.SysLogService;
+import com.pine.admin.shiro.ShiroUtils;
+import com.pine.common.utils.JacksonUtil;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+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.lang.reflect.Method;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+ * com.pine.admin.aop
+ * 系统日志:切面处理类
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019/9/29
+ */
+
+@Aspect
+@Component
+public class SysLogAspect {
+    @Autowired
+    private SysLogService sysLogService;
+
+    //定义切点 @Pointcut
+    //在注解的位置切入代码
+    @Pointcut("@annotation(com.pine.admin.aop.Operation)")
+    public void logPoinCut() {
+    }
+
+    //切面 配置通知
+    @AfterReturning("logPoinCut()")
+    public void saveSysLog(JoinPoint joinPoint) throws UnknownHostException {
+        //保存日志
+        SysLog sysLog = new SysLog();
+
+        //从切面织入点处通过反射机制获取织入点处的方法
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+        //获取切入点所在的方法
+        Method method = signature.getMethod();
+
+
+        //获取操作
+        Operation operation = method.getAnnotation(Operation.class);
+        if (operation != null) {
+            String value = operation.value();
+            sysLog.setOperation(value);//保存获取的操作
+        }
+
+        //获取请求的类名
+        String className = joinPoint.getTarget().getClass().getName();
+
+        //获取请求的方法名
+        String methodName = method.getName();
+        sysLog.setMethod(className + "." + methodName);
+
+        //请求的参数
+        Object[] args = joinPoint.getArgs();
+        //将参数所在的数组转换成json
+        String params = null;
+        try {
+            params = JacksonUtil.obj2json(args);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        sysLog.setParams(params);
+
+        //获取用户名
+
+        sysLog.setUsername(ShiroUtils.getShiroUserInfo().getName());
+
+
+        //获取用户ip地址
+
+        sysLog.setIp(InetAddress.getLocalHost().toString().substring(InetAddress.getLocalHost().toString().lastIndexOf("/") + 1));
+
+        //调用service保存SysLog实体类到数据库
+        sysLogService.create(sysLog);
+    }
+}

+ 1 - 0
pine-admin/src/main/java/com/pine/admin/config/RedisConfig.java

@@ -62,6 +62,7 @@ public class RedisConfig extends CachingConfigurerSupport {
     @Bean
     public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
         StringRedisTemplate template = new StringRedisTemplate(factory);
+//        template.s
         Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
         ObjectMapper om = new ObjectMapper();
         om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

+ 1 - 27
pine-admin/src/main/java/com/pine/admin/config/ShiroConfig.java

@@ -31,23 +31,6 @@ import javax.servlet.Filter;
  */
 @Configuration
 public class ShiroConfig {
-
-
-    /**
-     * 单机环境,session交给shiro管理
-     */
-//    @Bean
-//    @ConditionalOnProperty(prefix = "pine", name = "cluster", havingValue = "false")
-//    public DefaultWebSessionManager sessionManager(@Value("${pine.globalSessionTimeout:3600}") long globalSessionTimeout){
-//        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
-//        sessionManager.setSessionValidationSchedulerEnabled(true);
-//        sessionManager.setSessionIdUrlRewritingEnabled(false);
-//        sessionManager.setSessionValidationInterval(globalSessionTimeout * 1000);
-//        sessionManager.setGlobalSessionTimeout(globalSessionTimeout * 1000);
-//
-//        return sessionManager;
-//    }
-
     /**
      * 使注解生效
      *
@@ -154,21 +137,12 @@ public class ShiroConfig {
         return simpleCookie;
     }
 
-
-//    @Bean
-//    @DependsOn("lifecycleBeanPostProcessor")
-//    public DefaultAdvisorAutoProxyCreator  defaultAdvisorAutoProxyCreator() {
-//        DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
-//        defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
-//        return defaultAdvisorAutoProxyCreator;
-//    }
-
-
     /**
      * 配置shiro session 的一个管理器
      *
      * @return
      */
+
     @Bean(name = "sessionManager")
     public SessionManager sessionManager() {
         DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();

+ 0 - 144
pine-admin/src/main/java/com/pine/admin/modules/base/controller/AreasController.java

@@ -1,144 +0,0 @@
-package com.pine.admin.modules.base.controller;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.pine.common.dto.Page;
-import com.pine.admin.modules.base.binder.BaseController;
-import com.pine.common.dto.Result;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-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.bind.annotation.RequestMethod;
-import com.pine.admin.modules.base.entity.Areas;
-import com.pine.admin.modules.base.service.AreasService;
-
-
-/**
- * 区县信息表
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:56
- */
-@Api(value = "区县信息表接口", tags = {"区县信息表接口" })
-@RestController
-@RequestMapping("base/Areas")
-public class AreasController extends BaseController {
-
-    @Autowired
-    private AreasService areasService;
-
-
-    /**
-     * <p>获取全部记录。</p>
-     */
-    @ApiOperation(value = "获取所有区县信息表数据", notes = "可以根据条件获取")
-    @RequestMapping(value = "/all", method = RequestMethod.GET)
-    public Result all(Areas record) {
-
-        List<Areas> pp = areasService.getAreasList(record);
-        return Result.success(true, pp);
-    }
-
-
-    /**
-     * <p>根据Id。</p>
-     */
-    @ApiOperation(value = "获取区县信息表数据", notes = "根据id来获取区县信息表详细信息")
-    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
-    public Result getAreasEntity(@PathVariable("id") String id) {
-
-        Areas data = areasService.getAreasById(id);
-        return Result.success(true, data);
-    }
-
-    /**
-     * <p>根据条件获取。</p>
-     */
-    @ApiOperation(value = "获取区县信息表数据", notes = "根据条件获取")
-    @RequestMapping(value = "/getOne", method = RequestMethod.GET)
-    public Result getOne(Areas record) {
-
-        Areas data = areasService.getAreas(record);
-        return Result.success(true, data);
-    }
-
-    /**
-     * <p>分页查询。</p>
-     */
-    @ApiOperation(value = "分页获取区县信息表数据", notes = "根据条件获取")
-    @RequestMapping(value = "/page", method = RequestMethod.GET)
-    public Result page(Page page, Areas record) {
-
-        Map<String, Object> result = new HashMap<>();
-
-        List<Areas> pp = areasService.getAreasByPage(page, record);
-
-        result.put("page", page);
-        result.put("pp", pp);
-        return Result.success(true, result);
-    }
-
-    /**
-     * <p>保存。</p>
-     */
-    @ApiOperation(value = "新增一条区县信息表数据", notes = "新增一条区县信息表数据")
-    @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(Areas record) {
-
-        boolean num = areasService.createAreas(record);
-        if (num) {
-            return Result.success(true, record.getId());
-        }
-        return Result.error("保存异常");
-    }
-
-    /**
-     * <p>更新信息。</p>
-     */
-    @ApiOperation(value = "更新一条区县信息表数据", notes = "更新一条区县信息表数据")
-    @RequestMapping(value = "/update", method = RequestMethod.PUT)
-    public Result updateAreas(Areas record) {
-
-        boolean num = areasService.updateAreas(record);
-        if (num) {
-            return Result.success(true, "保存成功");
-        }
-        return Result.error("保存异常");
-    }
-
-    /**
-     * <p>删除。</p>
-     */
-    @RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE)
-    @ApiOperation(value = "删除一条区县信息表数据", notes = "根据Id一条区县信息表数据")
-    public Result deleteAreas(@PathVariable("id") String id) {
-
-        boolean num = areasService.deleteAreas(id);
-        if (num) {
-            return Result.success(true, "删除成功");
-        }
-        return Result.error("删除异常");
-    }
-
-    /**
-     * <p>批量删除。</p>
-     */
-    @RequestMapping(value = "/delAll", method = RequestMethod.DELETE)
-    @ApiOperation(value = "删除多条区县信息表数据", notes = "删除id的集合多个用英文逗号分隔")
-    public Result delAreasAll(@RequestParam(required = true, value = "ids") String ids) {
-
-        boolean num = areasService.deleteAreasAll(ids);
-        if (num) {
-            return Result.success(true, "删除成功");
-        }
-        return Result.error("删除异常");
-    }
-
-}

+ 0 - 80
pine-admin/src/main/java/com/pine/admin/modules/base/controller/AssetsController.java

@@ -1,80 +0,0 @@
-package com.pine.admin.modules.base.controller;
-
-
-import com.pine.admin.modules.base.binder.BaseController;
-import com.pine.common.dto.Result;
-import com.pine.common.utils.DateTimeTool;
-import com.pine.common.utils.ImageFileUtil;
-import org.springframework.web.bind.annotation.PostMapping;
-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 org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.multipart.commons.CommonsMultipartResolver;
-
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.util.Iterator;
-
-/**
- * Created by pine.
- */
-@RestController
-@RequestMapping("/assets")
-public class AssetsController extends BaseController {
-
-
-    @PostMapping(value = "/uploadImg")
-    public Result uploadImg(@RequestParam(value = "base64", required = true) String base64) {
-
-        try {
-            String path = ImageFileUtil.uploadImg(base64);
-
-            return Result.success(true, path);
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
-        return Result.error("上传失败");
-    }
-
-
-    @PostMapping(value = "/uploadFile")
-    public Result uploadFile(HttpServletRequest request) {
-
-        long startTime = System.currentTimeMillis();
-        //将当前上下文初始化给  CommonsMutipartResolver (多部分解析器)
-        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
-        //检查form中是否有enctype="multipart/form-data"
-        if (multipartResolver.isMultipart(request)) {
-            //将request变成多部分request
-            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
-            //获取multiRequest 中所有的文件名
-            Iterator iter = multiRequest.getFileNames();
-
-            String paths = "";
-
-            while (iter.hasNext()) {
-                //一次遍历所有文件
-                MultipartFile file = multiRequest.getFile(iter.next().toString());
-                if (file != null) {
-                    try {
-                        String date = DateTimeTool.dateTimeToStringYearMMdd(new Date());
-                        String path = ImageFileUtil.upLoadImage(file.getInputStream(), "koi/application/"+date +"/" + System.currentTimeMillis()
-                                + file.getOriginalFilename().replaceAll(".+\\.", "."));
-                        paths += path + ";";
-                        System.out.println("pat::::" + path);
-                    } catch (IOException e) {
-                        e.printStackTrace();
-                        return Result.error("上传失败");
-                    }
-                }
-
-            }
-            return Result.success(true, paths.split(";"));
-        }
-        return Result.error("上传失败");
-    }
-}

+ 0 - 143
pine-admin/src/main/java/com/pine/admin/modules/base/controller/ProvincesController.java

@@ -1,143 +0,0 @@
-package com.pine.admin.modules.base.controller;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.pine.common.dto.Page;
-import com.pine.admin.modules.base.binder.BaseController;
-import com.pine.common.dto.Result;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.bind.annotation.RequestMethod;
-import com.pine.admin.modules.base.entity.Provinces;
-import com.pine.admin.modules.base.service.ProvincesService;
-
-
-/**
- * 省份信息
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
- */
-@Api(value = "省份信息接口", tags = {"省份信息接口" })
-@RestController
-@RequestMapping("base/Provinces")
-public class ProvincesController extends BaseController {
-
-    @Autowired
-    private ProvincesService provincesService;
-
-
-    /**
-     * <p>获取全部记录。</p>
-     */
-    @ApiOperation(value = "获取所有省份信息数据", notes = "可以根据条件获取")
-    @RequestMapping(value = "/all", method = RequestMethod.GET)
-    public Result all(Provinces record) {
-
-        List<Provinces> pp = provincesService.getProvincesList(record);
-        return Result.success(true, pp);
-    }
-
-
-    /**
-     * <p>根据Id。</p>
-     */
-    @ApiOperation(value = "获取省份信息数据", notes = "根据id来获取省份信息详细信息")
-    @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
-    public Result getProvincesEntity(@PathVariable("id") String id) {
-
-        Provinces data = provincesService.getProvincesById(id);
-        return Result.success(true, data);
-    }
-
-    /**
-     * <p>根据条件获取。</p>
-     */
-    @ApiOperation(value = "获取省份信息数据", notes = "根据条件获取")
-    @RequestMapping(value = "/getOne", method = RequestMethod.GET)
-    public Result getOne(Provinces record) {
-
-        Provinces data = provincesService.getProvinces(record);
-        return Result.success(true, data);
-    }
-
-    /**
-     * <p>分页查询。</p>
-     */
-    @ApiOperation(value = "分页获取省份信息数据", notes = "根据条件获取")
-    @RequestMapping(value = "/page", method = RequestMethod.GET)
-    public Result page(Page page, Provinces record) {
-
-        Map<String, Object> result = new HashMap<>();
-
-        List<Provinces> pp = provincesService.getProvincesByPage(page, record);
-
-        result.put("page", page);
-        result.put("pp", pp);
-        return Result.success(true, result);
-    }
-
-    /**
-     * <p>保存。</p>
-     */
-    @ApiOperation(value = "新增一条省份信息数据", notes = "新增一条省份信息数据")
-    @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(Provinces record) {
-
-        boolean num = provincesService.createProvinces(record);
-        if (num) {
-            return Result.success(true, record.getId());
-        }
-        return Result.error("保存异常");
-    }
-
-    /**
-     * <p>更新信息。</p>
-     */
-    @ApiOperation(value = "更新一条省份信息数据", notes = "更新一条省份信息数据")
-    @RequestMapping(value = "/update", method = RequestMethod.PUT)
-    public Result updateProvinces(Provinces record) {
-
-        boolean num = provincesService.updateProvinces(record);
-        if (num) {
-            return Result.success(true, "保存成功");
-        }
-        return Result.error("保存异常");
-    }
-
-    /**
-     * <p>删除。</p>
-     */
-    @RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE)
-    @ApiOperation(value = "删除一条省份信息数据", notes = "根据Id一条省份信息数据")
-    public Result deleteProvinces(@PathVariable("id") String id) {
-
-        boolean num = provincesService.deleteProvinces(id);
-        if (num) {
-            return Result.success(true, "删除成功");
-        }
-        return Result.error("删除异常");
-    }
-
-    /**
-     * <p>批量删除。</p>
-     */
-//    @RequestMapping(value = "/delAll", method = RequestMethod.DELETE)
-//    @ApiOperation(value = "删除多条省份信息数据", notes = "删除id的集合多个用英文逗号分隔")
-//    public Result delProvincesAll(@RequestParam(required = true, value = "ids") String ids ) {
-//
-//        boolean num = provincesService.deleteProvincesAll(ids);
-//        if (num) {
-//            return Result.success(true, "删除成功");
-//        }
-//        return Result.error( "删除异常");
-//    }
-
-}

+ 0 - 63
pine-admin/src/main/java/com/pine/admin/modules/base/controller/WeiXinLoginController.java

@@ -1,63 +0,0 @@
-package com.pine.admin.modules.base.controller;
-
-import com.pine.admin.modules.base.service.WeiXinService;
-import com.pine.admin.modules.business.entity.UserInfo;
-import com.pine.admin.modules.business.service.UserInfoService;
-import com.pine.admin.shiro.ShiroUtils;
-import com.pine.admin.shiro.WxOpenIdToken;
-import com.pine.common.dto.Result;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.authc.*;
-import org.apache.shiro.subject.Subject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @Author: Pine
- * @Date: 2019/3/31
- * @Email:771190883@qq.com
- */
-@RestController
-@RequestMapping("wx")
-public class WeiXinLoginController {
-
-    @Autowired
-    private WeiXinService weiXinService;
-    @Autowired
-    private UserInfoService userInfoService;
-
-    @PostMapping("/login")
-    public Result userLoginWx(@RequestParam(value = "code", required = true) String code) {
-        boolean b = weiXinService.weixinLogin(code);
-        SecurityUtils.getSubject().getSession().setTimeout(-1000L);
-        if (b) {
-            return Result.success(true, ShiroUtils.getShiroUserInfo());
-        }
-        return Result.error("error");
-    }
-
-    @PostMapping("/logintest")
-    public Result logintest() {
-        try {
-            UserInfo useinfo = userInfoService.getById("1");
-            Subject subject = SecurityUtils.getSubject();
-            WxOpenIdToken wxOpenIdToken = new WxOpenIdToken(useinfo.getWxOpenid());
-            subject.login(wxOpenIdToken);
-            SecurityUtils.getSubject().getSession().setTimeout(-1000L);
-            return Result.success(true, ShiroUtils.getShiroUserInfo());
-        } catch (UnknownAccountException e) {
-            return Result.error(e.getMessage());
-        } catch (IncorrectCredentialsException e) {
-            return Result.error("账号或密码不正确");
-        } catch (LockedAccountException e) {
-            return Result.error("账号已被锁定,请联系管理员");
-        } catch (AuthenticationException e) {
-            return Result.error("账户验证失败");
-        }
-    }
-
-
-}

+ 0 - 26
pine-admin/src/main/java/com/pine/admin/modules/base/dao/AreasDao.java

@@ -1,26 +0,0 @@
-package com.pine.admin.modules.base.dao;
-
-import java.util.List;
-import java.util.Map;
-
-import com.pine.admin.modules.base.binder.BaseDao;
-import com.pine.admin.modules.base.entity.Areas;
-
-/**
- * 区县信息表
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:56
- */
-public interface AreasDao extends BaseDao<Areas> {
-
-    List<Areas> queryAllAreas(Areas record);
-
-    List<Areas> queryAreassByPage(Map<String, Object> parameter);
-
-    Areas queryAreas(Areas record);
-
-    String queryAreasName(Integer areaid);
-
-}

+ 0 - 26
pine-admin/src/main/java/com/pine/admin/modules/base/dao/CitiesDao.java

@@ -1,26 +0,0 @@
-package com.pine.admin.modules.base.dao;
-
-import java.util.List;
-import java.util.Map;
-
-import com.pine.admin.modules.base.binder.BaseDao;
-import com.pine.admin.modules.base.entity.Cities;
-
-/**
- * 城市信息表
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
- */
-public interface CitiesDao extends BaseDao<Cities> {
-
-    List<Cities> queryAllCities(Cities record);
-
-    List<Cities> queryCitiessByPage(Map<String, Object> parameter);
-
-    Cities queryCities(Cities record);
-
-    String queryCitiesName(Integer cityid);
-
-}

+ 0 - 26
pine-admin/src/main/java/com/pine/admin/modules/base/dao/ProvincesDao.java

@@ -1,26 +0,0 @@
-package com.pine.admin.modules.base.dao;
-
-import java.util.List;
-import java.util.Map;
-
-import com.pine.admin.modules.base.binder.BaseDao;
-import com.pine.admin.modules.base.entity.Provinces;
-
-/**
- * 省份信息
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
- */
-public interface ProvincesDao extends BaseDao<Provinces> {
-
-
-    List<Provinces> queryAllProvinces(Provinces record);
-
-    List<Provinces> queryProvincessByPage(Map<String, Object> parameter);
-
-    Provinces queryProvinces(Provinces record);
-
-    String queryProvincesName(Integer provinceid);
-}

+ 0 - 48
pine-admin/src/main/java/com/pine/admin/modules/base/entity/Areas.java

@@ -1,48 +0,0 @@
-package com.pine.admin.modules.base.entity;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 区县信息表
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:56
- */
-@Getter
-@Setter
-@ToString
-@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-@ApiModel(value = "区县信息表对象", description = "区县信息表对象")
-public class Areas implements Serializable {
-    private static final long serialVersionUID = 1L;
-    /**
-     * 主键
-     */
-    @ApiModelProperty(value = "主键", name = "id")
-    private Integer id;
-    /**
-     * 区县编码
-     */
-    @ApiModelProperty(value = "区县编码", name = "areaid")
-    private String areaid;
-    /**
-     * 区县名称
-     */
-    @ApiModelProperty(value = "区县名称", name = "area")
-    private String area;
-    /**
-     * 所属城市编码
-     */
-    @ApiModelProperty(value = "所属城市编码", name = "cityid")
-    private String cityid;
-
-}

+ 0 - 50
pine-admin/src/main/java/com/pine/admin/modules/base/entity/Cities.java

@@ -1,50 +0,0 @@
-package com.pine.admin.modules.base.entity;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 城市信息表
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
- */
-@Getter
-@Setter
-@ToString
-@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-@ApiModel(value = "城市信息表对象", description = "城市信息表对象")
-public class Cities implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主键
-     */
-    @ApiModelProperty(value = "主键", name = "id")
-    private Integer id;
-    /**
-     * 城市编码
-     */
-    @ApiModelProperty(value = "城市编码", name = "cityid")
-    private String cityid;
-    /**
-     * 城市名称
-     */
-    @ApiModelProperty(value = "城市名称", name = "city")
-    private String city;
-    /**
-     * 所属省份编码
-     */
-    @ApiModelProperty(value = "所属省份编码", name = "provinceid")
-    private String provinceid;
-
-    private List<Areas> areas;
-}

+ 0 - 44
pine-admin/src/main/java/com/pine/admin/modules/base/entity/Provinces.java

@@ -1,44 +0,0 @@
-package com.pine.admin.modules.base.entity;
-
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * 省份信息
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
- */
-@Getter
-@Setter
-@ToString
-@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
-@ApiModel(value = "省份信息对象", description = "省份信息对象")
-public class Provinces implements Serializable {
-    private static final long serialVersionUID = 1L;
-    /**
-     *
-     */
-    @ApiModelProperty(value = "", name = "id")
-    private Integer id;
-    /**
-     *
-     */
-    @ApiModelProperty(value = "", name = "provinceid")
-    private Integer provinceid;
-    /**
-     *
-     */
-    @ApiModelProperty(value = "", name = "province")
-    private String province;
-
-    private List<Cities> cities;
-}

+ 0 - 35
pine-admin/src/main/java/com/pine/admin/modules/base/service/AreasService.java

@@ -1,35 +0,0 @@
-package com.pine.admin.modules.base.service;
-
-import com.pine.admin.modules.base.entity.Areas;
-
-import java.util.List;
-
-import com.pine.common.dto.Page;
-
-/**
- * 区县信息表
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:56
- */
-public interface AreasService {
-
-    List<Areas> getAreasList(Areas record);
-
-    List<Areas> getAreasByPage(Page page, Areas record);
-
-    Areas getAreasById(String id);
-
-    Areas getAreas(Areas record);
-
-    boolean createAreas(Areas record);
-
-    boolean deleteAreas(String id);
-
-    boolean deleteAreasAll(String ids);
-
-    boolean updateAreas(Areas record);
-
-}
-

+ 0 - 35
pine-admin/src/main/java/com/pine/admin/modules/base/service/CitiesService.java

@@ -1,35 +0,0 @@
-package com.pine.admin.modules.base.service;
-
-import com.pine.admin.modules.base.entity.Cities;
-
-import java.util.List;
-
-import com.pine.common.dto.Page;
-
-/**
- * 城市信息表
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
- */
-public interface CitiesService {
-
-    List<Cities> getCitiesList(Cities record);
-
-    List<Cities> getCitiesByPage(Page page, Cities record);
-
-    Cities getCitiesById(String id);
-
-    Cities getCities(Cities record);
-
-    boolean createCities(Cities record);
-
-    boolean deleteCities(String id);
-
-    boolean deleteCitiesAll(String ids);
-
-    boolean updateCities(Cities record);
-
-}
-

+ 0 - 35
pine-admin/src/main/java/com/pine/admin/modules/base/service/ProvincesService.java

@@ -1,35 +0,0 @@
-package com.pine.admin.modules.base.service;
-
-import com.pine.admin.modules.base.entity.Provinces;
-
-import java.util.List;
-
-import com.pine.common.dto.Page;
-
-/**
- * 省份信息
- *
- * @author Pine
- * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
- */
-public interface ProvincesService {
-
-    List<Provinces> getProvincesList(Provinces record);
-
-    List<Provinces> getProvincesByPage(Page page, Provinces record);
-
-    Provinces getProvincesById(String id);
-
-    Provinces getProvinces(Provinces record);
-
-    boolean createProvinces(Provinces record);
-
-    boolean deleteProvinces(String id);
-
-    boolean deleteProvincesAll(String ids);
-
-    boolean updateProvinces(Provinces record);
-
-}
-

+ 3 - 2
pine-admin/src/main/java/com/pine/admin/modules/base/service/RedisService.java

@@ -1,12 +1,10 @@
 package com.pine.admin.modules.base.service;
 
-import org.apache.shiro.session.Session;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.*;
 import org.springframework.stereotype.Service;
 
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
@@ -83,6 +81,7 @@ public class RedisService {
             redisTemplate.delete(keys);
         }
     }
+
     /**
      * 删除对应的value
      *
@@ -93,6 +92,7 @@ public class RedisService {
             redisTemplate.delete(key);
         }
     }
+
     /**
      * 判断缓存中是否有对应的value
      *
@@ -102,6 +102,7 @@ public class RedisService {
     public boolean exists(final String key) {
         return redisTemplate.hasKey(key);
     }
+
     /**
      * 读取缓存
      *

+ 0 - 24
pine-admin/src/main/java/com/pine/admin/modules/base/service/WeiXinService.java

@@ -1,24 +0,0 @@
-package com.pine.admin.modules.base.service;
-
-/**
- * @Author: Pine
- * @Date: 2019/3/31
- * @Email:771190883@qq.com
- */
-public interface WeiXinService {
-    /**
-     * 微信登陆接口
-     *
-     * @param code
-     * @return
-     */
-    boolean weixinLogin(String code);
-
-    /**
-     * 微信回调接口
-     *
-     * @param notifyData
-     * @return
-     */
-    String payBack(String notifyData);
-}

+ 0 - 168
pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/AreasServiceImpl.java

@@ -1,168 +0,0 @@
-package com.pine.admin.modules.base.service.impl;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import lombok.extern.slf4j.Slf4j;
-import com.pine.common.dto.Page;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.pine.admin.modules.base.dao.AreasDao;
-import com.pine.admin.modules.base.entity.Areas;
-import com.pine.admin.modules.base.service.AreasService;
-
-
-@Service("areasService")
-@Slf4j
-public class AreasServiceImpl implements AreasService {
-
-    @Autowired
-    private AreasDao areasDao;
-
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public List<Areas> getAreasList(Areas record) {
-
-        log.info("getAreasList");
-        try {
-
-            return areasDao.queryAllAreas(record);
-        } catch (Exception e) {
-            log.error("getAreasList", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public List<Areas> getAreasByPage(Page page, Areas record) {
-
-        log.info("getAreasByPage");
-        try {
-
-            Map<String, Object> parameter = new HashMap<String, Object>();
-            parameter.put("record", record);
-            parameter.put("page", page);
-
-            return areasDao.queryAreassByPage(parameter);
-        } catch (Exception e) {
-            log.error("getAreasByPage", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Areas getAreasById(String id) {
-
-        log.info("getAreasById");
-        try {
-
-            return areasDao.selectByPrimaryKey(Integer.valueOf(id));
-        } catch (Exception e) {
-            log.error("getAreasById", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Areas getAreas(Areas record) {
-
-        log.info("getAreas");
-        try {
-
-            return areasDao.queryAreas(record);
-        } catch (Exception e) {
-            log.error("getAreas", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean createAreas(Areas record) {
-
-        log.info("createAreas");
-        try {
-
-            int updates = areasDao.insertSelective(record);
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("createAreas", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean deleteAreas(String id) {
-
-        log.info("deleteAreas");
-        try {
-
-            int updates = areasDao.delete(Integer.valueOf(id));
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("deleteAreas", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean deleteAreasAll(String ids) {
-
-        log.info("deleteeAreasAll");
-        try {
-
-            String[] id = ids.split(";");
-            int updates = areasDao.deleteIds(id);
-
-            if (id.length == updates) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("deleteeAreasAll", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean updateAreas(Areas record) {
-
-        log.info("updateAreas");
-        try {
-
-            int updates = areasDao.updateByPrimaryKeySelective(record);
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("updateAreas", e);
-        }
-
-        return false;
-    }
-
-}

+ 0 - 167
pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/CitiesServiceImpl.java

@@ -1,167 +0,0 @@
-package com.pine.admin.modules.base.service.impl;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import lombok.extern.slf4j.Slf4j;
-import com.pine.common.dto.Page;
-import org.springframework.transaction.annotation.Transactional;
-import com.pine.admin.modules.base.dao.CitiesDao;
-import com.pine.admin.modules.base.entity.Cities;
-import com.pine.admin.modules.base.service.CitiesService;
-
-
-@Service("citiesService")
-@Slf4j
-public class CitiesServiceImpl implements CitiesService {
-
-    @Autowired
-    private CitiesDao citiesDao;
-
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public List<Cities> getCitiesList(Cities record) {
-
-        log.info("getCitiesList");
-        try {
-
-            return citiesDao.queryAllCities(record);
-        } catch (Exception e) {
-            log.error("getCitiesList", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public List<Cities> getCitiesByPage(Page page, Cities record) {
-
-        log.info("getCitiesByPage");
-        try {
-
-            Map<String, Object> parameter = new HashMap<String, Object>();
-            parameter.put("record", record);
-            parameter.put("page", page);
-
-            return citiesDao.queryCitiessByPage(parameter);
-        } catch (Exception e) {
-            log.error("getCitiesByPage", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Cities getCitiesById(String id) {
-
-        log.info("getCitiesById");
-        try {
-
-            return citiesDao.selectByPrimaryKey(Integer.valueOf(id));
-        } catch (Exception e) {
-            log.error("getCitiesById", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Cities getCities(Cities record) {
-
-        log.info("getCities");
-        try {
-
-            return citiesDao.queryCities(record);
-        } catch (Exception e) {
-            log.error("getCities", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean createCities(Cities record) {
-
-        log.info("createCities");
-        try {
-
-            int updates = citiesDao.insertSelective(record);
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("createCities", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean deleteCities(String id) {
-
-        log.info("deleteCities");
-        try {
-
-            int updates = citiesDao.delete(Integer.valueOf(id));
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("deleteCities", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean deleteCitiesAll(String ids) {
-
-        log.info("deleteeCitiesAll");
-        try {
-
-            String[] id = ids.split(";");
-            int updates = citiesDao.deleteIds(id);
-
-            if (id.length == updates) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("deleteeCitiesAll", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean updateCities(Cities record) {
-
-        log.info("updateCities");
-        try {
-
-            int updates = citiesDao.updateByPrimaryKeySelective(record);
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("updateCities", e);
-        }
-
-        return false;
-    }
-
-}

+ 0 - 168
pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/ProvincesServiceImpl.java

@@ -1,168 +0,0 @@
-package com.pine.admin.modules.base.service.impl;
-
-import com.pine.admin.modules.base.entity.Provinces;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import lombok.extern.slf4j.Slf4j;
-import com.pine.common.dto.Page;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.pine.admin.modules.base.dao.ProvincesDao;
-import com.pine.admin.modules.base.service.ProvincesService;
-
-
-@Service("provincesService")
-@Slf4j
-public class ProvincesServiceImpl implements ProvincesService {
-
-    @Autowired
-    private ProvincesDao provincesDao;
-
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public List<Provinces> getProvincesList(Provinces record) {
-
-        log.info("getProvincesList");
-        try {
-
-            return provincesDao.queryAllProvinces(record);
-        } catch (Exception e) {
-            log.error("getProvincesList", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public List<Provinces> getProvincesByPage(Page page, Provinces record) {
-
-        log.info("getProvincesByPage");
-        try {
-
-            Map<String, Object> parameter = new HashMap<String, Object>();
-            parameter.put("record", record);
-            parameter.put("page", page);
-
-            return provincesDao.queryProvincessByPage(parameter);
-        } catch (Exception e) {
-            log.error("getProvincesByPage", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Provinces getProvincesById(String id) {
-
-        log.info("getProvincesById");
-        try {
-
-            return provincesDao.selectByPrimaryKey(Integer.valueOf(id));
-        } catch (Exception e) {
-            log.error("getProvincesById", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public Provinces getProvinces(Provinces record) {
-
-        log.info("getProvinces");
-        try {
-
-            return provincesDao.queryProvinces(record);
-        } catch (Exception e) {
-            log.error("getProvinces", e);
-        }
-
-        return null;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean createProvinces(Provinces record) {
-
-        log.info("createProvinces");
-        try {
-
-            int updates = provincesDao.insertSelective(record);
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("createProvinces", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean deleteProvinces(String id) {
-
-        log.info("deleteProvinces");
-        try {
-
-            int updates = provincesDao.delete(Integer.valueOf(id));
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("deleteProvinces", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean deleteProvincesAll(String ids) {
-
-        log.info("deleteProvincesAll");
-        try {
-
-            String[] id = ids.split(";");
-            int updates = provincesDao.deleteIds(id);
-
-            if (id.length == updates) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("deleteeProvincesAll", e);
-        }
-
-        return false;
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public boolean updateProvinces(Provinces record) {
-
-        log.info("updateProvinces");
-        try {
-
-            int updates = provincesDao.updateByPrimaryKeySelective(record);
-
-            if (updates > 0) {
-                return true;
-            }
-        } catch (Exception e) {
-            log.error("updateProvinces", e);
-        }
-
-        return false;
-    }
-
-}

+ 0 - 140
pine-admin/src/main/java/com/pine/admin/modules/base/service/impl/WeiXinServiceImpl.java

@@ -1,140 +0,0 @@
-package com.pine.admin.modules.base.service.impl;
-
-import com.pine.admin.config.WeChatConfig;
-import com.pine.admin.modules.base.service.WeiXinService;
-import com.pine.admin.modules.business.dao.UserInfoDao;
-import com.pine.admin.modules.business.entity.UserInfo;
-import com.pine.admin.shiro.WxOpenIdToken;
-import com.pine.common.utils.Constant;
-import com.pine.common.utils.HttpGetRequestUtil;
-import com.pine.common.wxpay.WXPay;
-import com.pine.common.wxpay.WXPayUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.subject.Subject;
-import org.json.JSONObject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-
-/**
- * @Author: Pine
- * @Date: 2019/3/31
- * @Email:771190883@qq.com
- */
-@Service("weiXinService")
-@Slf4j
-public class WeiXinServiceImpl implements WeiXinService {
-
-
-    @Autowired
-    private UserInfoDao userInfoDao;
-
-    @Override
-    public boolean weixinLogin(String code) {
-        try {
-
-            /**
-             * 无缓存用户
-             */
-            // System.out.println("code : " + code);
-            String url = WeChatConfig.OPENID_URL + "appid=" + WeChatConfig.APP_ID + "&secret=" + WeChatConfig.APP_SECRET + "&code=" + code
-                    + "&grant_type=authorization_code";
-            JSONObject data = HttpGetRequestUtil.loadJSON(url);
-            // System.out.println("data : " + data);
-
-            //System.out.println(json.toString());
-
-            String openId = (String) data.get("openid");
-
-            String accessToken = (String) data.get("access_token");
-
-            url = WeChatConfig.USER_INFO_URL +"access_token=" + accessToken + "&openid=" + openId + "&lang=zh_CN";
-
-            data = HttpGetRequestUtil.loadJSON(url);
-            //获得用户信息
-
-            String userName = (String) data.get("nickname");
-//            userName = userName.replaceAll("[^\\\\uD000-\\\\uFFFF]", "");
-            String headimgurl = (String) data.get("headimgurl");
-            //查询微信用户
-            UserInfo userInfo = new UserInfo();
-            userInfo.setWxOpenid(openId);
-            userInfo = userInfoDao.queryOne(userInfo);
-
-            if (null == userInfo) {
-                UserInfo recod = new UserInfo();
-                recod.setWxOpenid(openId);
-                recod.setUserName(userName);
-                recod.setUserIcon(headimgurl);
-                recod.setId(null);
-                userInfoDao.insertSelective(recod);
-                Subject subject = SecurityUtils.getSubject();
-                //使用自定义realm验证openid是否已绑定用户
-                WxOpenIdToken wxOpenIdToken = new WxOpenIdToken(recod.getWxOpenid());
-                subject.login(wxOpenIdToken);
-                return true;
-            } else {
-                userInfo.setUserName(userName);
-                userInfo.setUserIcon(headimgurl);
-                userInfoDao.updateByPrimaryKeySelective(userInfo);
-                Subject subject = SecurityUtils.getSubject();
-                //使用自定义realm验证openid是否已绑定用户
-                WxOpenIdToken wxOpenIdToken = new WxOpenIdToken(userInfo.getWxOpenid());
-                subject.login(wxOpenIdToken);
-                return true;
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return false;
-    }
-
-    @Override
-    public String payBack(String notifyData) {
-        log.info("payBack() start, notifyData={}", notifyData);
-        String xmlBack = "";
-        Map<String, String> notifyMap = null;
-        try {
-            WXPay wxpay = new WXPay(new WeChatConfig());
-            // 转换成map
-            notifyMap = WXPayUtil.xmlToMap(notifyData);
-            if (wxpay.isPayResultNotifySignatureValid(notifyMap)) {
-                if (WXPayUtil.isSignatureValid(xmlBack, WeChatConfig.PAY_KEY)) {
-                    // 签名正确
-                    // 进行处理。
-                    // 注意特殊情况:订单已经退款,但收到了支付结果成功的通知,不应把商户侧订单状态从退款改成支付成功
-
-                    //状态
-                    String return_code = notifyMap.get("return_code");
-                    //订单号
-                    String out_trade_no = notifyMap.get("out_trade_no");
-
-                    if (out_trade_no == null) {
-                        log.info("微信支付回调失败订单号: {}", notifyMap);
-                        xmlBack = "&lt;xml&gt;" + "&lt;return_code&gt;&lt;![CDATA[FAIL]]&gt;&lt;/return_code&gt;" + "&lt;return_msg&gt;&lt;![CDATA[报文为空]]&gt;&lt;/return_msg&gt;" + "&lt;/xml&gt; ";
-                        return xmlBack;
-                    }
-
-                    // 业务逻辑处理 ****************************
-                    log.info("微信支付回调成功订单号: {}", notifyMap);
-
-                    //TODO 订单更新支付状态
-
-                    xmlBack = "&lt;xml&gt;" + "&lt;return_code&gt;&lt;![CDATA[SUCCESS]]&gt;&lt;/return_code&gt;" + "&lt;return_msg&gt;&lt;![CDATA[SUCCESS]]&gt;&lt;/return_msg&gt;" + "&lt;/xml&gt; ";
-                    return xmlBack;
-                }
-            } else {
-                log.error("微信支付回调通知签名错误");
-                xmlBack = "&lt;xml&gt;" + "&lt;return_code&gt;&lt;![CDATA[FAIL]]&gt;&lt;/return_code&gt;" + "&lt;return_msg&gt;&lt;![CDATA[报文为空]]&gt;&lt;/return_msg&gt;" + "&lt;/xml&gt; ";
-                return xmlBack;
-            }
-        } catch (Exception e) {
-            log.error("微信支付回调通知失败", e);
-            xmlBack = "&lt;xml&gt;" + "&lt;return_code&gt;&lt;![CDATA[FAIL]]&gt;&lt;/return_code&gt;" + "&lt;return_msg&gt;&lt;![CDATA[报文为空]]&gt;&lt;/return_msg&gt;" + "&lt;/xml&gt; ";
-        }
-        return xmlBack;
-    }
-
-}

+ 34 - 34
pine-admin/src/main/java/com/pine/admin/modules/base/controller/CitiesController.java → pine-admin/src/main/java/com/pine/admin/modules/business/controller/SysLogController.java

@@ -1,4 +1,4 @@
-package com.pine.admin.modules.base.controller;
+package com.pine.admin.modules.business.controller;
 
 import java.util.HashMap;
 import java.util.List;
@@ -15,34 +15,34 @@ 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.bind.annotation.RequestMethod;
-import com.pine.admin.modules.base.entity.Cities;
-import com.pine.admin.modules.base.service.CitiesService;
+import com.pine.admin.modules.business.entity.SysLog;
+import com.pine.admin.modules.business.service.SysLogService;
 
 
 /**
- * 城市信息表
+ * 日志操作记录
  *
  * @author Pine
  * @email 771190883@qq.com
- * @date 2019-03-30 15:41:57
+ * @date 2019-10-16 13:58:24
  */
-@Api(value = "城市信息表接口", tags = {"城市信息表接口" })
+@Api(value = "日志操作记录接口", tags = {"日志操作记录接口" })
 @RestController
-@RequestMapping("base/Cities")
-public class CitiesController extends BaseController {
+@RequestMapping("business/SysLog")
+public class SysLogController extends BaseController {
 
     @Autowired
-    private CitiesService citiesService;
+    private SysLogService sysLogService;
 
 
     /**
      * <p>获取全部记录。</p>
      */
-    @ApiOperation(value = "获取所有城市信息表数据", notes = "可以根据条件获取")
+    @ApiOperation(value = "获取所有日志操作记录数据", notes = "可以根据条件获取")
     @RequestMapping(value = "/all", method = RequestMethod.GET)
-    public Result all(Cities record) {
+    public Result all(SysLog record) {
 
-        List<Cities> pp = citiesService.getCitiesList(record);
+        List<SysLog> pp = sysLogService.getAllList(record);
         return Result.success(true, pp);
     }
 
@@ -50,35 +50,35 @@ public class CitiesController extends BaseController {
     /**
      * <p>根据Id。</p>
      */
-    @ApiOperation(value = "获取城市信息表数据", notes = "根据id来获取城市信息表详细信息")
+    @ApiOperation(value = "获取日志操作记录数据", notes = "根据id来获取日志操作记录详细信息")
     @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
-    public Result getCitiesEntity(@PathVariable("id") String id) {
+    public Result getSysLogEntity(@PathVariable("id") String id) {
 
-        Cities data = citiesService.getCitiesById(id);
+            SysLog data = sysLogService.getById(id);
         return Result.success(true, data);
     }
 
     /**
      * <p>根据条件获取。</p>
      */
-    @ApiOperation(value = "获取城市信息表数据", notes = "根据条件获取")
+    @ApiOperation(value = "获取日志操作记录数据", notes = "根据条件获取")
     @RequestMapping(value = "/getOne", method = RequestMethod.GET)
-    public Result getOne(Cities record) {
+    public Result getOne(SysLog record) {
 
-        Cities data = citiesService.getCities(record);
+            SysLog data = sysLogService.getOne(record);
         return Result.success(true, data);
     }
 
     /**
      * <p>分页查询。</p>
      */
-    @ApiOperation(value = "分页获取城市信息表数据", notes = "根据条件获取")
+    @ApiOperation(value = "分页获取日志操作记录数据", notes = "根据条件获取")
     @RequestMapping(value = "/page", method = RequestMethod.GET)
-    public Result page(Page page, Cities record) {
+    public Result page(Page page, SysLog record) {
 
         Map<String, Object> result = new HashMap<>();
 
-        List<Cities> pp = citiesService.getCitiesByPage(page, record);
+        List<SysLog> pp = sysLogService.getByPage(page, record);
 
         result.put("page", page);
         result.put("pp", pp);
@@ -88,11 +88,11 @@ public class CitiesController extends BaseController {
     /**
      * <p>保存。</p>
      */
-    @ApiOperation(value = "新增一条城市信息表数据", notes = "新增一条城市信息表数据")
+    @ApiOperation(value = "新增一条日志操作记录数据", notes = "新增一条日志操作记录数据")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public Result save(Cities record) {
+    public Result save(SysLog record) {
 
-        boolean num = citiesService.createCities(record);
+        boolean num = sysLogService.create(record);
         if (num) {
             return Result.success(true, record.getId());
         }
@@ -102,11 +102,11 @@ public class CitiesController extends BaseController {
     /**
      * <p>更新信息。</p>
      */
-    @ApiOperation(value = "更新一条城市信息表数据", notes = "更新一条城市信息表数据")
+    @ApiOperation(value = "更新一条日志操作记录数据", notes = "更新一条日志操作记录数据")
     @RequestMapping(value = "/update", method = RequestMethod.PUT)
-    public Result updateCities(Cities record) {
+    public Result updateSysLog(SysLog record) {
 
-        boolean num = citiesService.updateCities(record);
+        boolean num = sysLogService.update(record);
         if (num) {
             return Result.success(true, "保存成功");
         }
@@ -117,10 +117,10 @@ public class CitiesController extends BaseController {
      * <p>删除。</p>
      */
     @RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE)
-    @ApiOperation(value = "删除一条城市信息表数据", notes = "根据Id一条城市信息表数据")
-    public Result deleteCities(@PathVariable("id") String id) {
+    @ApiOperation(value = "删除一条日志操作记录数据", notes = "根据Id一条日志操作记录数据")
+    public Result deleteSysLog(@PathVariable("id") String id) {
 
-        boolean num = citiesService.deleteCities(id);
+        boolean num = sysLogService.delete(id);
         if (num) {
             return Result.success(true, "删除成功");
         }
@@ -130,11 +130,11 @@ public class CitiesController extends BaseController {
     /**
      * <p>批量删除。</p>
      */
-    @RequestMapping(value = "/delAll", method = RequestMethod.DELETE)
-    @ApiOperation(value = "删除多条城市信息表数据", notes = "删除id的集合多个用英文逗号分隔")
-    public Result delCitiesAll(@RequestParam(required = true, value = "ids") String ids) {
+    @RequestMapping(value = "/deltetByIds", method = RequestMethod.DELETE)
+    @ApiOperation(value = "删除多条日志操作记录数据", notes = "删除id的集合多个用英文逗号分隔")
+    public Result delSysLogAll(@RequestParam(required = true, value = "ids") String ids) {
 
-        boolean num = citiesService.deleteCitiesAll(ids);
+        boolean num = sysLogService.deltetByIds(ids);
         if (num) {
             return Result.success(true, "删除成功");
         }

+ 15 - 0
pine-admin/src/main/java/com/pine/admin/modules/business/dao/SysLogDao.java

@@ -0,0 +1,15 @@
+package com.pine.admin.modules.business.dao;
+
+import com.pine.admin.modules.business.entity.SysLog;
+import com.pine.admin.modules.base.binder.BaseDao;
+
+/**
+ * 日志操作记录
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019-10-16 13:58:24
+ */
+public interface SysLogDao extends BaseDao<SysLog> {
+
+}

+ 72 - 0
pine-admin/src/main/java/com/pine/admin/modules/business/entity/SysLog.java

@@ -0,0 +1,72 @@
+package com.pine.admin.modules.business.entity;
+
+    import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 日志操作记录
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019-10-16 13:58:24
+ */
+@Data
+@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
+@ApiModel(value = "日志操作记录对象", description = "日志操作记录对象")
+public class SysLog implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键", name = "id")
+    private Integer id;
+    /**
+     * 用户名
+     */
+    @ApiModelProperty(value = "用户名", name = "username")
+    private String username;
+    /**
+     * 操作
+     */
+    @ApiModelProperty(value = "操作", name = "operation")
+    private String operation;
+    /**
+     * 方法名
+     */
+    @ApiModelProperty(value = "方法名", name = "method")
+    private String method;
+    /**
+     * 参数
+     */
+    @ApiModelProperty(value = "参数", name = "params")
+    private String params;
+    /**
+     * 用户IP
+     */
+    @ApiModelProperty(value = "用户IP", name = "ip")
+    private String ip;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间", name = "createTime")
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间", name = "updateTime")
+    private Date updateTime;
+    /**
+     *
+     */
+    @ApiModelProperty(value = "", name = "delFlag")
+    private String delFlag;
+
+}

+ 16 - 0
pine-admin/src/main/java/com/pine/admin/modules/business/service/SysLogService.java

@@ -0,0 +1,16 @@
+package com.pine.admin.modules.business.service;
+
+import com.pine.admin.modules.business.entity.SysLog;
+import com.pine.admin.modules.base.binder.BaseService;
+
+/**
+ * 日志操作记录
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019-10-16 13:58:24
+ */
+public interface SysLogService extends BaseService<SysLog> {
+
+}
+

+ 0 - 7
pine-admin/src/main/java/com/pine/admin/modules/business/service/impl/CarBackOrderServiceImpl.java

@@ -85,13 +85,6 @@ public class CarBackOrderServiceImpl implements CarBackOrderService {
 
         return null;
     }
-
-    public static void main(String[] args) {
-//        Random random = new Random();
-//        for (int i = 0; i < 1000; i++) {
-//            System.out.println(random.nextLong(32));
-//        }
-    }
     @Override
     @Transactional
     public boolean create(CarBackOrder record) {

+ 6 - 21
pine-admin/src/main/java/com/pine/admin/modules/business/service/impl/CarOrderServiceImpl.java

@@ -2,6 +2,7 @@ package com.pine.admin.modules.business.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.pine.admin.aop.Operation;
 import com.pine.admin.modules.business.dao.OfflinePaymentsDao;
 import com.pine.admin.modules.business.entity.CarOrder;
 import com.pine.admin.modules.business.entity.OfflinePayments;
@@ -214,7 +215,7 @@ public class CarOrderServiceImpl implements CarOrderService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-
+    @Operation("线下审核")
     public boolean offlineReview(Long id, String loanStatus, BigDecimal downPaymentRate) {
 
 
@@ -285,6 +286,7 @@ public class CarOrderServiceImpl implements CarOrderService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    @Operation("交付")
     public boolean pay(Long id, String invoicePath) {
         log.info("pay");
         try {
@@ -332,6 +334,7 @@ public class CarOrderServiceImpl implements CarOrderService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+    @Operation("交车")
     public boolean delivery(Long id, String invoicePath) {
 
         log.info("delivery");
@@ -375,7 +378,7 @@ public class CarOrderServiceImpl implements CarOrderService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-
+    @Operation("查询退款")
     public String refund(String orderId, String customerId) {
         log.info("delivery");
 
@@ -421,23 +424,5 @@ public class CarOrderServiceImpl implements CarOrderService {
         }
         return carOrderLast;
     }
-//
-//    public static void main(String[] args) {
-//        Map<String, String> map = new HashMap<>();
-//
-//        map.put("account", "xszyx");
-//        map.put("password", "4QrcOUm6Wau+VuBX8g+IPg==");
-//
-//        String s = JSONObject.toJSONString(map);
-//
-//        String s2 = PostUtil.formUpload("http://47.100.17.208:8280/api/auth/sys-user/getShopRoleByAccountAndPassword", map, null, "");
-//        String s1 = PostUtil.httpPostFromData("http://47.100.17.208:8280/api/auth/sys-user/getShopRoleByAccountAndPassword", map);
-//        System.out.println(s2);
-//    }
-
-    public static void main(String[] args) {
-        DecimalFormat decimalFormat = new DecimalFormat("0.##");
-        System.out.println(decimalFormat.format(new BigDecimal(20))
-        );
-    }
+
 }

+ 168 - 0
pine-admin/src/main/java/com/pine/admin/modules/business/service/impl/SysLogServiceImpl.java

@@ -0,0 +1,168 @@
+package com.pine.admin.modules.business.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import lombok.extern.slf4j.Slf4j;
+import com.pine.common.dto.Page;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.pine.admin.modules.business.dao.SysLogDao;
+import com.pine.admin.modules.business.entity.SysLog;
+import com.pine.admin.modules.business.service.SysLogService;
+
+
+@Service("sysLogService")
+@Slf4j
+public class SysLogServiceImpl implements SysLogService {
+
+    @Autowired
+    private SysLogDao sysLogDao;
+
+
+    @Override
+    @Transactional
+    public List<SysLog> getAllList(SysLog record) {
+
+        log.info("getSysLogList");
+        try {
+
+            return sysLogDao.queryAll(record);
+        } catch (Exception e) {
+            log.error("getSysLogList", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    @Transactional
+    public List<SysLog> getByPage(Page page, SysLog record) {
+
+        log.info("getSysLogByPage");
+        try {
+
+            Map<String, Object> parameter = new HashMap<String, Object>();
+            parameter.put("record", record);
+            parameter.put("page", page);
+
+            return sysLogDao.queryByPage(parameter);
+        } catch (Exception e) {
+            log.error("getSysLogByPage", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    @Transactional
+    public SysLog getById(String id) {
+
+        log.info("getSysLogById");
+        try {
+
+            return sysLogDao.selectByPrimaryKey(Integer.valueOf(id));
+        } catch (Exception e) {
+            log.error("getSysLogById", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    @Transactional
+    public SysLog getOne(SysLog record) {
+
+        log.info("getSysLog");
+        try {
+
+            return sysLogDao.queryOne(record);
+        } catch (Exception e) {
+            log.error("getSysLog", e);
+        }
+
+        return null;
+    }
+
+    @Override
+    @Transactional
+    public boolean create(SysLog record) {
+
+        log.info("createSysLog");
+        try {
+
+            int updates = sysLogDao.insertSelective(record);
+
+            if (updates > 0) {
+                return true;
+            }
+        } catch (Exception e) {
+            log.error("createSysLog", e);
+        }
+
+        return false;
+    }
+
+    @Override
+    @Transactional
+    public boolean delete(String id) {
+
+        log.info("deleteSysLog");
+        try {
+
+            int updates = sysLogDao.delete(Integer.valueOf(id));
+
+            if (updates > 0) {
+                return true;
+            }
+        } catch (Exception e) {
+            log.error("deleteSysLog", e);
+        }
+
+        return false;
+    }
+
+    @Override
+    @Transactional
+    public boolean deltetByIds(String ids) {
+
+        log.info("deleteeSysLog byIDS");
+        try {
+
+            String[] id = ids.split(";");
+            int updates = sysLogDao.deleteIds(id);
+
+            if (id.length == updates) {
+                return true;
+            }
+        } catch (Exception e) {
+            log.error("deleteeSysLog byIDS", e);
+        }
+
+        return false;
+    }
+
+    @Override
+    @Transactional
+    public boolean update(SysLog record) {
+
+        log.info("updateSysLog");
+        try {
+
+            int updates = sysLogDao.updateByPrimaryKeySelective(record);
+
+            if (updates > 0) {
+                return true;
+            }
+        } catch (Exception e) {
+            log.error("updateSysLog", e);
+        }
+
+        return false;
+    }
+
+}

+ 10 - 3
pine-admin/src/main/java/com/pine/admin/modules/system/controller/SysUserLoginController.java

@@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.imageio.ImageIO;
 import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
@@ -44,13 +45,18 @@ public class SysUserLoginController {
 
     @Autowired
     private SysService sysService;
-
+    @GetMapping("/getIp")
+    public Result getIp(HttpServletRequest request) {
+        return Result.success(true,IpUtil.getIpAddr(request));
+    }
 
     @PostMapping("/secretLogin")
-    public Result secretLogin(@RequestParam(value = "casualBacking") String casualBacking) {
+    public Result secretLogin(HttpServletRequest request) {
         try {
 
-            String responseString = sysService.decryptUser(casualBacking);
+            String casualBacking = request.getParameter("casualBacking");
+
+            String responseString = sysService.decryptUser(IpUtil.getIpAddr(request),casualBacking);
 
             DealerOpenIdToken dealerOpenIdToken;
 
@@ -61,6 +67,7 @@ public class SysUserLoginController {
             subject.login(dealerOpenIdToken);
 
             SecurityUtils.getSubject().getSession().setTimeout(-1000L);
+
             return Result.success(true, ShiroUtils.getShiroUserInfo());
         } catch (UnknownAccountException e) {
             return Result.error(e.getMessage());

+ 9 - 2
pine-admin/src/main/java/com/pine/admin/modules/system/service/SysService.java

@@ -26,8 +26,15 @@ public interface SysService {
     //根据用户id查询权限范围内的url
     List<SysPermission> findPermissionListByUserId(Integer userId);
 
-    //RAS解析用户信息
-    String decryptUser(String casualBacking);
+
+
+    /**
+     *    //RAS解析用户信息
+     * @param Ip
+     * @param casualBacking
+     * @return
+     */
+    String decryptUser(String Ip,String casualBacking);
 
     //经销商登录(亿客接口)
     DealerOpenIdToken dealerLogin(String userCode, String password) throws Exception;

+ 33 - 10
pine-admin/src/main/java/com/pine/admin/modules/system/service/impl/SysServiceImpl.java

@@ -2,6 +2,7 @@ package com.pine.admin.modules.system.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.pine.admin.modules.base.service.RedisService;
 import com.pine.admin.modules.system.dao.SysPermissionDao;
 import com.pine.admin.modules.system.dao.SysUserDao;
 import com.pine.admin.modules.system.entity.ActiveUser;
@@ -13,9 +14,11 @@ import com.pine.admin.shiro.ShiroUserInfo;
 import com.pine.common.dto.Result;
 import com.pine.common.exception.ApiException;
 import com.pine.common.utils.*;
+import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 import org.springframework.util.StringUtils;
 
 import java.util.Date;
@@ -37,6 +40,9 @@ public class SysServiceImpl implements SysService {
     @Autowired
     private SysPermissionDao sysPermissionMapper;
 
+    @Autowired
+    private RedisService redisService;
+
     @Override
     public ActiveUser authenticat(String userCode, String password) {
 
@@ -90,16 +96,33 @@ public class SysServiceImpl implements SysService {
     }
 
     @Override
-    public String decryptUser(String casualBacking) {
+    public String decryptUser(String ip,String casualBacking) {
 
-        String responseString = RSAUtils.decrypt(RSAUtils.privateKey, casualBacking);
+        String responseString = RSAUtils.changeSpecialToString(casualBacking);
 
+         ip ="127.0.0.1";
         if (StringUtils.isEmpty(responseString)) {
             log.error("offlineAudit fail due to rsa decrypt fail");
             throw new ApiException("秘钥解析失败");
         }
+        String redisKey = ip +"+" + responseString;
+
+
+        Object o = redisService.get(redisKey);
+
+
+        if (ObjectUtils.isEmpty(o)){
+            throw new ApiException("用户未登录");
+        }
+
+        String dealerInfo = String.valueOf(o);
+
+        ShiroUserInfo userInfo = JSONObject.parseObject(dealerInfo, ShiroUserInfo.class);
+
+        if (!userInfo.getAccount().equals(responseString)){
+            throw new ApiException("非法操作");
+        }
 
-        ShiroUserInfo userInfo = JSONObject.parseObject(responseString, ShiroUserInfo.class);
         if (StringUtils.isEmpty(userInfo.getDealerID())) {
             throw new ApiException("用户信息丢失");
         }
@@ -107,13 +130,13 @@ public class SysServiceImpl implements SysService {
             throw new ApiException("用户信息丢失");
         }
         userInfo.getCreateTime();
-        Date nowDate = new Date();
-        Date effectiveTime = DateTimeTool.dateTimeSubtractMinutes(nowDate, 30);
-        boolean effectiveDate = DateTimeTool.isEffectiveDate(userInfo.getCreateTime(), effectiveTime, nowDate);
-        if (effectiveDate == false) {
-            throw new ApiException("秘钥已失效");
-        }
-        return responseString;
+//        Date nowDate = new Date();
+//        Date effectiveTime = DateTimeTool.dateTimeSubtractMinutes(nowDate, 30);
+//        boolean effectiveDate = DateTimeTool.isEffectiveDate(userInfo.getCreateTime(), effectiveTime, nowDate);
+//        if (effectiveDate == false) {
+//            throw new ApiException("秘钥已失效");
+//        }
+        return dealerInfo;
     }
 
     @Override

+ 4 - 0
pine-admin/src/main/java/com/pine/admin/shiro/ShiroUserInfo.java

@@ -23,6 +23,10 @@ public class ShiroUserInfo implements Serializable {
      * 用户姓名
      */
     private String name;
+    /**
+     * 用户账号
+     */
+    private String account;
     /**
      * 用户类型
      */

+ 54 - 28
pine-admin/src/main/resources/application-dev.properties

@@ -1,31 +1,57 @@
+#\u7AEF\u53E3
+server.port=8888
+#servlet.context-path=/dealer
 # \u9A71\u52A8\u914D\u7F6E\u4FE1\u606F
-#spring.datasource.url=jdbc:mysql://49.4.21.118:3306/renren
-#spring.datasource.username=root
-#spring.datasource.password=NJhby2018..
-#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+#spring.boot.admin.url=http://localhost:9090
+spring.redis.host=47.100.53.184
+# Redis服务器连接端口
+spring.redis.port=6379
+# Redis服务器连接密码(默认为空)
+spring.redis.password=
+#数据库索引
+spring.redis.database=4
+# 连接池最大连接数(使用负值表示没有限制)
+spring.redis.pool.max-active=8
+# 连接池最大阻塞等待时间(使用负值表示没有限制)
+spring.redis.pool.max-wait=-1
+# 连接池中的最大空闲连接
+spring.redis.pool.max-idle=8
+# 连接池中的最小空闲连接
+spring.redis.pool.min-idle=0
+# 连接超时时间(毫秒)
+spring.redis.timeout=30000
 #\u8FDE\u63A5\u6C60\u7684\u914D\u7F6E\u4FE1\u606F
-spring.datasource.initialSize=5  
-spring.datasource.minIdle=5  
-spring.datasource.maxActive=20  
-spring.datasource.maxWait=60000  
-spring.datasource.timeBetweenEvictionRunsMillis=60000  
-spring.datasource.minEvictableIdleTimeMillis=300000  
-spring.datasource.validationQuery=SELECT 1 FROM DUAL  
-spring.datasource.testWhileIdle=true  
-spring.datasource.testOnBorrow=false  
-spring.datasource.testOnReturn=false  
-spring.datasource.poolPreparedStatements=true  
-spring.datasource.maxPoolPreparedStatementPerConnectionSize=20  
-spring.datasource.filters=stat,wall,log4j  
+spring.datasource.initialSize=5
+spring.datasource.minIdle=5
+spring.datasource.maxActive=20
+spring.datasource.maxWait=60000
+spring.datasource.timeBetweenEvictionRunsMillis=60000
+spring.datasource.minEvictableIdleTimeMillis=300000
+spring.datasource.validationQuery=SELECT 1 FROM DUAL
+spring.datasource.testWhileIdle=true
+spring.datasource.testOnBorrow=false
+spring.datasource.testOnReturn=false
+spring.datasource.poolPreparedStatements=true
+spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
+spring.datasource.filters=stat,wall,log4j
 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
-#\u5FAE\u4FE1appid
-wxAppId=wx82563ca212c7fd38
-wxSecret=1dcf984e4baac37c2f9dccce1273f569
-#\u963F\u91CC\u4E91OSS
-ossAccessKeyId=LTAI3wEaDKjYiFhv
-ossAccessKeySecret=WY68TRQzIkdve9LjS4Og8fHXZKmlE7
-ossSendPoint=http://oss-cn-hangzhou.aliyuncs.com
-ossBucketName=huabangyun
-ossImagerServer=http://huabangyun.oss-cn-hangzhou.aliyuncs.com
-
-
+#EMALI 发送配置
+spring.mail.default-encoding=UTF-8
+spring.mail.host=smtp.qq.com
+#发送者的邮箱账号
+spring.mail.username=45380843@qq.com
+#发送者的邮箱密码
+spring.mail.password=augicbgyajvrbgcd
+#端口
+spring.mail.port=587
+#协议
+spring.mail.protocol=smtp
+spring.mail.properties.mail.smtp.auth=true
+spring.mail.properties.mail.smtp.starttls.enable=true
+spring.mail.properties.mail.smtp.starttls.required=true
+### mysql config   ###
+spring.datasource.url=jdbc:mysql://47.100.127.59:3306/lecshop_v2?useUnicode=true&characterEncoding=utf8&useSSL=false
+spring.datasource.username=root
+spring.datasource.password=pl,okmijn
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+logging.level.io.swagger.models.parameters.AbstractSerializableParameter=error

+ 2 - 2
pine-admin/src/main/resources/application-prod.properties

@@ -10,11 +10,11 @@ server.port=8888
 #spring.datasource.username=postgres
 #spring.datasource.password=postgres
 #spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-spring.redis.host=39.108.234.18
+spring.redis.host=172.30.15.123
 # Redis服务器连接端口
 spring.redis.port=6379
 # Redis服务器连接密码(默认为空)
-spring.redis.password=pine7711
+spring.redis.password=
 # 连接池最大连接数(使用负值表示没有限制)
 spring.redis.pool.max-active=8
 # 连接池最大阻塞等待时间(使用负值表示没有限制)

+ 2 - 7
pine-admin/src/main/resources/application.properties

@@ -5,7 +5,7 @@ server.tomcat.max-threads:1000
 server.tomcat.mix-threads:30
 #server.context-path=/best
 # \u73AF\u5883 dev|test|pro
-spring.profiles.active=prod
+spring.profiles.active=dev
 #\u70ED\u90E8\u7F72\u914D\u7F6E
 spring.devtools.livereload.enabled=true
 spring.devtools.restart.enabled=true
@@ -18,9 +18,4 @@ mybatis.configuration.mapUnderscoreToCamelCase=true
 logging.level.com.pine=DEBUG
 logging.path=/home/INFO_FILE.%d{yyyy-MM-dd}.gz
 logging.level.com.pine.admin.modules.system.dao=DEBUG
-### mysql config   ###
-spring.datasource.url=jdbc:mysql://47.100.127.59:3306/lecshop_v2?useUnicode=true&characterEncoding=utf8&useSSL=false
-spring.datasource.username=root
-spring.datasource.password=pl,okmijn
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-logging.level.io.swagger.models.parameters.AbstractSerializableParameter=error
+

+ 0 - 128
pine-admin/src/main/resources/mapper/base/AreasDao.xml

@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<mapper namespace="com.pine.admin.modules.base.dao.AreasDao">
-
-    <!-- 可根据自己的需求,是否要使用 -->
-    <resultMap type="com.pine.admin.modules.base.entity.Areas" id="areasMap">
-        <result property="id" column="id"/>
-        <result property="areaid" column="areaid"/>
-        <result property="area" column="area"/>
-        <result property="cityid" column="cityid"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-                 id,
-                     areaid,
-                     area,
-                    cityid         </sql>
-    <!-- 根据Id查询-->
-    <select id="selectByPrimaryKey" resultMap="areasMap" parameterType="java.lang.Integer">
-        select
-        <include refid="Base_Column_List"/>
-        from areas
-        where id = #{id,jdbcType=INTEGER}
-    </select>
-
-    <!-- 根据Id删除-->
-    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
-		delete from areas
-		where id = #{id,jdbcType=INTEGER}
-	</delete>
-
-    <!-- 插入数据-->
-    <insert id="insertSelective" parameterType="com.pine.admin.modules.base.entity.Areas" useGeneratedKeys="true"
-            keyProperty="id">
-        insert into areas
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="areaid != null">areaid,</if>
-            <if test="area != null">area,</if>
-            <if test="cityid != null">cityid,</if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="areaid != null">#{areaid},</if>
-            <if test="area != null">#{area},</if>
-            <if test="cityid != null">#{cityid},</if>
-        </trim>
-    </insert>
-
-    <!-- 更新数据-->
-    <update id="updateByPrimaryKeySelective" parameterType="com.pine.admin.modules.base.entity.Areas">
-        update areas
-        <set>
-            <if test="id != null">id = #{id},</if>
-            <if test="areaid != null">areaid = #{areaid},</if>
-            <if test="area != null">area = #{area},</if>
-            <if test="cityid != null">cityid = #{cityid},</if>
-        </set>
-        where id = #{id,jdbcType=INTEGER}
-    </update>
-
-    <!-- 分页查询-->
-    <select id="queryAreassByPage" parameterType="java.util.Map" resultType="com.pine.admin.modules.base.entity.Areas">
-        select
-        <include refid="Base_Column_List"/>
-        from areas
-        <where>
-            <if test="record.id != null and !&quot;&quot;.equals(record.id)">and id = #{record.id}</if>
-            <if test="record.areaid != null and !&quot;&quot;.equals(record.areaid)">and areaid = #{record.areaid}</if>
-            <if test="record.area != null and !&quot;&quot;.equals(record.area)">and area = #{record.area}</if>
-            <if test="record.cityid != null and !&quot;&quot;.equals(record.cityid)">and cityid = #{record.cityid}</if>
-        </where>
-        order by id desc
-    </select>
-
-    <!-- 全部查询 -->
-    <select id="queryAllAreas" parameterType="java.util.Map" resultType="com.pine.admin.modules.base.entity.Areas">
-        select
-        <include refid="Base_Column_List"/>
-        from areas
-        <where>
-            <if test="id != null and !&quot;&quot;.equals(id)">and id = #{id}</if>
-            <if test="areaid != null and !&quot;&quot;.equals(areaid)">and areaid = #{areaid}</if>
-            <if test="area != null and !&quot;&quot;.equals(area)">and area = #{area}</if>
-            <if test="cityid != null and !&quot;&quot;.equals(cityid)">and cityid = #{cityid}</if>
-        </where>
-        order by id asc
-    </select>
-
-    <!-- 根据条件查询一个 -->
-    <select id="queryAreas" parameterType="java.util.Map" resultType="com.pine.admin.modules.base.entity.Areas">
-        select
-        <include refid="Base_Column_List"/>
-        from areas
-        <where>
-            <if test="id != null and !&quot;&quot;.equals(id)">and id = #{id}</if>
-            <if test="areaid != null and !&quot;&quot;.equals(areaid)">and areaid = #{areaid}</if>
-            <if test="area != null and !&quot;&quot;.equals(area)">and area = #{area}</if>
-            <if test="cityid != null and !&quot;&quot;.equals(cityid)">and cityid = #{cityid}</if>
-        </where>
-        LIMIT 1
-    </select>
-
-    <select id="queryAreasName" parameterType="java.lang.Integer" resultType="java.lang.String">
-        select area from areas
-        <where>
-            <if test="areaid != null and !&quot;&quot;.equals(areaid)">and areaid = #{areaid}</if>
-        </where>
-        LIMIT 1
-    </select>
-
-    <delete id="delete">
-        DELETE from areas
-        <where>
-            AND id = #{id}
-        </where>
-    </delete>
-
-    <update id="deleteIds" parameterType="java.util.ArrayList">
-        UPDATE areas SET del_flag = 'Y'
-        WHERE id IN
-        <foreach item='ids' collection="array" index="index" open="(" separator="," close=")">
-            #{ids}
-        </foreach>
-    </update>
-
-</mapper>

+ 0 - 139
pine-admin/src/main/resources/mapper/base/CitiesDao.xml

@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<mapper namespace="com.pine.admin.modules.base.dao.CitiesDao">
-
-    <!-- 可根据自己的需求,是否要使用 -->
-    <resultMap type="com.pine.admin.modules.base.entity.Cities" id="citiesMap">
-        <result property="id" column="id"/>
-        <result property="cityid" column="cityid"/>
-        <result property="city" column="city"/>
-        <result property="provinceid" column="provinceid"/>
-    </resultMap>
-
-    <resultMap id="areas" type="com.pine.admin.modules.base.entity.Cities" extends="citiesMap">
-
-        <collection property="areas"
-                    ofType="com.pine.admin.modules.base.entity.Areas"
-                    select="com.pine.admin.modules.base.dao.AreasDao.queryAllAreas"
-                    column="{ cityid = cityid }"/>
-    </resultMap>
-    <sql id="Base_Column_List">
-                 id,
-                     cityid,
-                     city,
-                    provinceid         </sql>
-    <!-- 根据Id查询-->
-    <select id="selectByPrimaryKey" resultMap="citiesMap" parameterType="java.lang.Integer">
-        select
-        <include refid="Base_Column_List"/>
-        from cities
-        where id = #{id,jdbcType=INTEGER}
-    </select>
-
-    <!-- 根据Id删除-->
-    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
-		delete from cities
-		where id = #{id,jdbcType=INTEGER}
-	</delete>
-
-    <!-- 插入数据-->
-    <insert id="insertSelective" parameterType="com.pine.admin.modules.base.entity.Cities" useGeneratedKeys="true"
-            keyProperty="id">
-        insert into cities
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="cityid != null">cityid,</if>
-            <if test="city != null">city,</if>
-            <if test="provinceid != null">provinceid,</if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="cityid != null">#{cityid},</if>
-            <if test="city != null">#{city},</if>
-            <if test="provinceid != null">#{provinceid},</if>
-        </trim>
-    </insert>
-
-    <!-- 更新数据-->
-    <update id="updateByPrimaryKeySelective" parameterType="com.pine.admin.modules.base.entity.Cities">
-        update cities
-        <set>
-            <if test="id != null">id = #{id},</if>
-            <if test="cityid != null">cityid = #{cityid},</if>
-            <if test="city != null">city = #{city},</if>
-            <if test="provinceid != null">provinceid = #{provinceid},</if>
-        </set>
-        where id = #{id,jdbcType=INTEGER}
-    </update>
-
-    <!-- 分页查询-->
-    <select id="queryCitiessByPage" parameterType="java.util.Map"
-            resultType="com.pine.admin.modules.base.entity.Cities">
-        select
-        <include refid="Base_Column_List"/>
-        from cities
-        <where>
-            <if test="record.id != null and !&quot;&quot;.equals(record.id)">and id = #{record.id}</if>
-            <if test="record.cityid != null and !&quot;&quot;.equals(record.cityid)">and cityid = #{record.cityid}</if>
-            <if test="record.city != null and !&quot;&quot;.equals(record.city)">and city = #{record.city}</if>
-            <if test="record.provinceid != null and !&quot;&quot;.equals(record.provinceid)">and provinceid =
-                #{record.provinceid}
-            </if>
-        </where>
-        order by id desc
-    </select>
-
-    <!-- 全部查询 -->
-    <select id="queryAllCities" parameterType="java.util.Map" resultMap="areas">
-        select
-        <include refid="Base_Column_List"/>
-        from cities
-        <where>
-            <if test="id != null and !&quot;&quot;.equals(id)">and id = #{id}</if>
-            <if test="cityid != null and !&quot;&quot;.equals(cityid)">and cityid = #{cityid}</if>
-            <if test="city != null and !&quot;&quot;.equals(city)">and city = #{city}</if>
-            <if test="provinceid != null and !&quot;&quot;.equals(provinceid)">and provinceid = #{provinceid}</if>
-        </where>
-        order by id asc
-    </select>
-
-    <!-- 根据条件查询一个 -->
-    <select id="queryCities" parameterType="java.util.Map" resultType="com.pine.admin.modules.base.entity.Cities">
-        select
-        <include refid="Base_Column_List"/>
-        from cities
-        <where>
-            <if test="id != null and !&quot;&quot;.equals(id)">and id = #{id}</if>
-            <if test="cityid != null and !&quot;&quot;.equals(cityid)">and cityid = #{cityid}</if>
-            <if test="city != null and !&quot;&quot;.equals(city)">and city = #{city}</if>
-            <if test="provinceid != null and !&quot;&quot;.equals(provinceid)">and provinceid = #{provinceid}</if>
-        </where>
-        LIMIT 1
-    </select>
-
-
-    <select id="queryCitiesName" parameterType="java.lang.Integer" resultType="java.lang.String">
-        select city from cities
-        <where>
-            <if test="cityid != null and !&quot;&quot;.equals(cityid)">and cityid = #{cityid}</if>
-        </where>
-        LIMIT 1
-    </select>
-
-    <delete id="delete">
-        DELETE from cities
-        <where>
-            AND id = #{id}
-        </where>
-    </delete>
-
-    <update id="deleteIds" parameterType="java.util.ArrayList">
-        UPDATE cities SET del_flag = 'Y'
-        WHERE id IN
-        <foreach item='ids' collection="array" index="index" open="(" separator="," close=")">
-            #{ids}
-        </foreach>
-    </update>
-
-</mapper>

+ 0 - 127
pine-admin/src/main/resources/mapper/base/ProvincesDao.xml

@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-<mapper namespace="com.pine.admin.modules.base.dao.ProvincesDao">
-
-    <!-- 可根据自己的需求,是否要使用 -->
-    <resultMap type="com.pine.admin.modules.base.entity.Provinces" id="provincesMap">
-        <result property="id" column="id"/>
-        <result property="provinceid" column="provinceid"/>
-        <result property="province" column="province"/>
-    </resultMap>
-
-    <resultMap id="cities" type="com.pine.admin.modules.base.entity.Provinces" extends="provincesMap">
-
-        <collection property="cities"
-                    ofType="com.pine.admin.modules.base.entity.Cities"
-                    select="com.pine.admin.modules.base.dao.CitiesDao.queryAllCities"
-                    column="{ provinceid = provinceid }"/>
-    </resultMap>
-    <sql id="Base_Column_List">
-                 id,
-                     provinceid,
-                    province         </sql>
-    <!-- 根据Id查询-->
-    <select id="selectByPrimaryKey" resultMap="cities" parameterType="java.lang.Integer">
-        select
-        <include refid="Base_Column_List"/>
-        from provinces
-        where id = #{id,jdbcType=INTEGER}
-    </select>
-    <!-- 根据Id删除-->
-    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
-		delete from provinces
-		where id = #{id,jdbcType=INTEGER}
-	</delete>
-
-    <!-- 插入数据-->
-    <insert id="insertSelective" parameterType="com.pine.admin.modules.base.entity.Provinces" useGeneratedKeys="true"
-            keyProperty="id">
-        insert into provinces
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="id != null">id,</if>
-            <if test="provinceid != null">provinceid,</if>
-            <if test="province != null">province,</if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="id != null">#{id},</if>
-            <if test="provinceid != null">#{provinceid},</if>
-            <if test="province != null">#{province},</if>
-        </trim>
-    </insert>
-
-    <!-- 更新数据-->
-    <update id="updateByPrimaryKeySelective" parameterType="com.pine.admin.modules.base.entity.Provinces">
-        update provinces
-        <set>
-            <if test="id != null">id = #{id},</if>
-            <if test="provinceid != null">provinceid = #{provinceid},</if>
-            <if test="province != null">province = #{province},</if>
-        </set>
-        where id = #{id,jdbcType=INTEGER}
-    </update>
-
-    <!-- 分页查询-->
-    <select id="queryProvincessByPage" parameterType="java.util.Map"
-            resultType="com.pine.admin.modules.base.entity.Provinces">
-        select
-        <include refid="Base_Column_List"/>
-        from provinces
-        <where>
-            <if test="record.id != null and !&quot;&quot;.equals(record.id)">and id = #{record.id}</if>
-            <if test="record.provinceid != null and !&quot;&quot;.equals(record.provinceid)">and provinceid =
-                #{record.provinceid}
-            </if>
-            <if test="record.province != null and !&quot;&quot;.equals(record.province)">and province =
-                #{record.province}
-            </if>
-        </where>
-        order by id desc
-    </select>
-
-    <!-- 全部查询 -->
-    <select id="queryAllProvinces" parameterType="java.util.Map" resultMap="cities">
-        select
-        <include refid="Base_Column_List"/>
-        from provinces
-        <where>
-            <if test="id != null and !&quot;&quot;.equals(id)">and id = #{id}</if>
-            <if test="provinceid != null and !&quot;&quot;.equals(provinceid)">and provinceid = #{provinceid}</if>
-            <if test="province != null and !&quot;&quot;.equals(province)">and province = #{province}</if>
-        </where>
-        order by id asc
-    </select>
-
-    <!-- 根据条件查询一个 -->
-    <select id="queryProvinces" parameterType="java.util.Map" resultMap="cities">
-        select
-        <include refid="Base_Column_List"/>
-        from provinces
-        <where>
-            <if test="id != null and !&quot;&quot;.equals(id)">and id = #{id}</if>
-            <if test="provinceid != null and !&quot;&quot;.equals(provinceid)">and provinceid = #{provinceid}</if>
-            <if test="province != null and !&quot;&quot;.equals(province)">and province = #{province}</if>
-        </where>
-        LIMIT 1
-    </select>
-
-    <select id="queryProvincesName" parameterType="java.lang.Integer" resultType="java.lang.String">
-        select province from provinces where provinceid = #{provinceid} LIMIT 1
-    </select>
-
-    <delete id="delete">
-        DELETE from provinces
-        <where>
-            AND id = #{id}
-        </where>
-    </delete>
-
-    <update id="deleteIds" parameterType="java.util.ArrayList">
-        UPDATE provinces SET del_flag = 'Y'
-        WHERE id IN
-        <foreach item='ids' collection="array" index="index" open="(" separator="," close=")">
-            #{ids}
-        </foreach>
-    </update>
-
-</mapper>

+ 1 - 0
pine-admin/src/main/resources/mapper/business/OrderSkuDao.xml

@@ -38,6 +38,7 @@
                      cate_rate,
                      old_price,
                     supply_price         </sql>
+
     <!-- 根据Id查询-->
     <select id="selectByPrimaryKey" resultMap="entityMap" parameterType="java.lang.Integer">
         select

+ 28 - 0
pine-admin/src/test/com/pine/admin/modules/base/service/RedisServiceTest.java

@@ -0,0 +1,28 @@
+package com.pine.admin.modules.base.service;
+
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * com.pine.admin.modules.base.service
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019/10/15
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class RedisServiceTest {
+
+    @Autowired
+    private RedisService redisService;
+
+    @Test
+    public void get() {
+        Object o = redisService.get("127.0.0.1+cscscs123");
+    }
+}

+ 20 - 2
pine-admin/src/test/com/pine/admin/modules/system/service/impl/SysPermissionServiceImplTest.java

@@ -1,9 +1,11 @@
 package com.pine.admin.modules.system.service.impl;
 
+
 import com.pine.admin.modules.system.entity.SysPermission;
 import com.pine.admin.modules.system.service.SysPermissionService;
-
-import org.junit.jupiter.api.Test;
+import com.pine.admin.modules.system.service.SysService;
+import com.pine.common.utils.RSAUtils;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -24,8 +26,24 @@ public class SysPermissionServiceImplTest {
 
     @Autowired
     private SysPermissionService sysPermissionService;
+    @Autowired
+    private SysService sysService;
     @Test
     public void getSysPermissionList() {
         List<SysPermission> sysPermissionList = sysPermissionService.getSysPermissionList(null);
     }
+    @Test
+    public void token() {
+        String data =
+//                "{\"account\":\"hh\",\"password\":6906,\"erp\":\"12818\",\"dealerId\":6906,\"name\":\"芜湖福瑞汽车销售有限公司\",\"roleType\":\"商城经销商\",\"createTime\":\"1570856401000\"}";
+                "cscscs123";
+        String encrypt = RSAUtils.encrypt(RSAUtils.publicKey, data);
+        encrypt =
+                "GitGts1op8Y%2B76cBxONNGXEwzaXlN/XbQOVygLUv3c7NA6EINwv1IsbiHLoMmqao8MGjyaVcFzKXg9nfxDh93vVI6vlJ4jQxltVMAzlR%2BX/nEpT%2BhNxPeEnyfhNwT6gkcR%2BNiOIkeU4%2BKUsfmr7nsYiM8d9JBpgdX9ibKFY%2BFpM=";
+        //   防止URL 传参 + 号丢失
+        encrypt  = encrypt.replace("+", "%2B");
+        System.out.println(encrypt);
+        sysService.decryptUser("127.0.0.1",encrypt);
+
+    }
 }

+ 52 - 0
pine-common/src/main/java/com/pine/common/utils/IpUtil.java

@@ -0,0 +1,52 @@
+package com.pine.common.utils;
+
+import javax.servlet.http.HttpServletRequest;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+ * com.pine.common.utils
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019/10/16
+ */
+public class IpUtil {
+    public static String getIpAddr(HttpServletRequest request) {
+        String ipAddress = null;
+        try {
+            ipAddress = request.getHeader("x-forwarded-for");
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getHeader("Proxy-Client-IP");
+            }
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getHeader("WL-Proxy-Client-IP");
+            }
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getRemoteAddr();
+                if (ipAddress.equals("127.0.0.1")) {
+                    // 根据网卡取本机配置的IP
+                    InetAddress inet = null;
+                    try {
+                        inet = InetAddress.getLocalHost();
+                    } catch (UnknownHostException e) {
+                        e.printStackTrace();
+                    }
+                    ipAddress = inet.getHostAddress();
+                }
+            }
+            // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
+            if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
+                // = 15
+                if (ipAddress.indexOf(",") > 0) {
+                    ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
+                }
+            }
+        } catch (Exception e) {
+            ipAddress="";
+        }
+        // ipAddress = this.getRequest().getRemoteAddr();
+
+        return "0:0:0:0:0:0:0:1".equals(ipAddress) ? "127.0.0.1" : ipAddress;
+    }
+}

+ 51 - 0
pine-common/src/main/java/com/pine/common/utils/JacksonUtil.java

@@ -0,0 +1,51 @@
+package com.pine.common.utils;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Map;
+
+/**
+ * com.pine.common.utils
+ *
+ * @author Pine
+ * @email 771190883@qq.com
+ * @date 2019/9/29
+ */
+public class JacksonUtil {
+    private final static ObjectMapper objectMapper = new ObjectMapper();
+
+    private JacksonUtil() {
+
+    }
+
+    public static ObjectMapper getInstance() {
+        return objectMapper;
+    }
+
+    /**
+     * javaBean、列表数组转换为json字符串
+     */
+    public static String obj2json(Object obj) throws Exception {
+        return objectMapper.writeValueAsString(obj);
+    }
+
+    /**
+     * json 转JavaBean
+     */
+
+    public static <T> T json2pojo(String jsonString, Class<T> clazz) throws Exception {
+        objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
+        return objectMapper.readValue(jsonString, clazz);
+    }
+
+    /**
+     * json字符串转换为map
+     */
+    public static <T> Map<String, Object> json2map(String jsonString) throws Exception {
+        ObjectMapper mapper = new ObjectMapper();
+        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+        return mapper.readValue(jsonString, Map.class);
+    }
+}

+ 32 - 2
pine-common/src/main/java/com/pine/common/utils/RSAUtils.java

@@ -29,9 +29,15 @@ public class RSAUtils {
     public final static String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIBrI6Kss2zUAajbdtYBsNWhNCR70rD7P4aEH8Uoe1y8pTECjGTvYVl9RctNpvgjLMmejYc9mqnLPvkfusJZLGMNDeOMh1do2XrYJl02frK5Tss1C1o92W4hFnGDn8c1HWPLIFCvk+WNPQ9EMfRFJUDI7ej8XlF9bHtt4Oq36fdNAgMBAAECgYAqxANFDGBgUKYQ1q1XjY6XRiz4LWg32iQIpv1xig6zDnuwu5mHj5SK2cYhc0W0gvpKVovpSuGzw+S/0ApA6LN391dYWtB/ndRMHH9EzQBqQYeaEibt6/i2KeTS7fY2a1rgK/kFNvFihh6JRPUd4iltQQbFIZqHWXDaQYEkGFZjPQJBAPDp/1f9L93V8gItFlhVb9LehboPNYDg2VlrALoe15/umu+AYuG4bmOSyKV39RiTDsVp3BzH/Az4Gsb92w+ac4cCQQCIdcSgiVQNour9+qtOSFSHziYMO8CsbL0NcxrkrfwsevNtOQu6GPVqPHtKy9bnI7hxMBxmKmvd49kfhZ2XshuLAkB7soorMZMMQjfaqi/Y9zVNfngHSpvcKpcu9GQRLJjmQ2tGIhOjdkEn20wuueMc1RU2g95C4OQn/JQzLFD4OAOtAkBTO7IRUXJJVwQKomj2uLuGkkE22QNuqGyv1XOj5FOaNexgxJjYi/y1Lert9mNAXNNVhsjrsBhXIXD//xneuy59AkEAwhX9aQIuUnaRKOrc7RvcCZhjp0DFfrUz70n9PEAbTKFx7jDsPcRx2Lj6tok3eCw1uRCE99JsxR/fiiMaYcnqLg==";
 
     public static void main(String[] args) throws ParseException {
-        //     createTime为当前时间 秘钥半小时失效
-        String data = "{\"account\":\"hh\",\"password\":6906,\"erp\":\"12818\",\"dealerId\":6906,\"name\":\"芜湖福瑞汽车销售有限公司\",\"roleType\":\"商城经销商\",\"createTime\":\"1570856401000\"}";
+        String aa = "123456";
+        aa = aa.replace("1", "5");
+        System.out.println(aa);
+        //   createTime为当前时间 秘钥半小时失效
+        String data =
+//                "{\"account\":\"hh\",\"password\":6906,\"erp\":\"12818\",\"dealerId\":6906,\"name\":\"芜湖福瑞汽车销售有限公司\",\"roleType\":\"商城经销商\",\"createTime\":\"1570856401000\"}";
+                "cscscs123";
         String encrypt = RSAUtils.encrypt(RSAUtils.publicKey, data);
+
         //   防止URL 传参 + 号丢失
         System.out.println(encrypt.replace("+", "%2B"));
 
@@ -40,8 +46,32 @@ public class RSAUtils {
         System.out.println(responseString);
     }
 
+    /**
+     * 将特殊符合转换成正确的字符再进行解密
+     *
+     * @param data
+     * @return
+     */
+    public static String changeSpecialToString(String data) {
+        if (!"".equals(data) && !"".equals(data.trim())) {
+            data = data.replace("%2B", "+").
+                    replace("%20", " ").
+                    replace("%2F", "/").
+                    replace("%3F", "?").
+                    replace("%252B", "+").
+                    replace("%23", "#").
+                    replace("%26", "&").
+                    replace("%3D", "=");
+            System.out.println(data);
+            return RSAUtils.decrypt(RSAUtils.privateKey, data);
+        } else {
+            return null;
+        }
+    }
+
     /**
      * 加密
+     *
      * @param publicKey 公钥
      * @param plainText 加密的内容
      * @return 返回加密后的内容