소스 검색

定时任务服务实现

gaoxiong 2 년 전
부모
커밋
cfe3728932

+ 107 - 68
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/utils/ServletUtils.java

@@ -1,11 +1,9 @@
 package com.xunmei.common.core.utils;
 
-import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson2.JSON;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.text.Convert;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.core.io.buffer.DataBuffer;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
@@ -25,54 +23,63 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
-import java.util.*;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 客户端工具类
  *
  * @author xunmei
  */
-@Slf4j
-public class ServletUtils {
+public class ServletUtils
+{
     /**
      * 获取String参数
      */
-    public static String getParameter(String name) {
+    public static String getParameter(String name)
+    {
         return getRequest().getParameter(name);
     }
 
     /**
      * 获取String参数
      */
-    public static String getParameter(String name, String defaultValue) {
+    public static String getParameter(String name, String defaultValue)
+    {
         return Convert.toStr(getRequest().getParameter(name), defaultValue);
     }
 
     /**
      * 获取Integer参数
      */
-    public static Integer getParameterToInt(String name) {
+    public static Integer getParameterToInt(String name)
+    {
         return Convert.toInt(getRequest().getParameter(name));
     }
 
     /**
      * 获取Integer参数
      */
-    public static Integer getParameterToInt(String name, Integer defaultValue) {
+    public static Integer getParameterToInt(String name, Integer defaultValue)
+    {
         return Convert.toInt(getRequest().getParameter(name), defaultValue);
     }
 
     /**
      * 获取Boolean参数
      */
-    public static Boolean getParameterToBool(String name) {
+    public static Boolean getParameterToBool(String name)
+    {
         return Convert.toBool(getRequest().getParameter(name));
     }
 
     /**
      * 获取Boolean参数
      */
-    public static Boolean getParameterToBool(String name, Boolean defaultValue) {
+    public static Boolean getParameterToBool(String name, Boolean defaultValue)
+    {
         return Convert.toBool(getRequest().getParameter(name), defaultValue);
     }
 
@@ -82,7 +89,8 @@ public class ServletUtils {
      * @param request 请求对象{@link ServletRequest}
      * @return Map
      */
-    public static Map<String, String[]> getParams(ServletRequest request) {
+    public static Map<String, String[]> getParams(ServletRequest request)
+    {
         final Map<String, String[]> map = request.getParameterMap();
         return Collections.unmodifiableMap(map);
     }
@@ -93,9 +101,11 @@ public class ServletUtils {
      * @param request 请求对象{@link ServletRequest}
      * @return Map
      */
-    public static Map<String, String> getParamMap(ServletRequest request) {
+    public static Map<String, String> getParamMap(ServletRequest request)
+    {
         Map<String, String> params = new HashMap<>();
-        for (Map.Entry<String, String[]> entry : getParams(request).entrySet()) {
+        for (Map.Entry<String, String[]> entry : getParams(request).entrySet())
+        {
             params.put(entry.getKey(), StringUtils.join(entry.getValue(), ","));
         }
         return params;
@@ -104,15 +114,14 @@ public class ServletUtils {
     /**
      * 获取request
      */
-    public static HttpServletRequest getRequest() {
-        try {
-            if (getRequestAttributes() != null) {
-                return getRequestAttributes().getRequest();
-            }
-            HttpServletRequest bean = SpringUtil.getBean(HttpServletRequest.class);
-            return bean;
-        } catch (Exception e) {
-            log.error("获取request异常", e);
+    public static HttpServletRequest getRequest()
+    {
+        try
+        {
+            return getRequestAttributes().getRequest();
+        }
+        catch (Exception e)
+        {
             return null;
         }
     }
@@ -120,14 +129,14 @@ public class ServletUtils {
     /**
      * 获取response
      */
-    public static HttpServletResponse getResponse() {
-        try {
-            if (getRequestAttributes() != null) {
-                return getRequestAttributes().getResponse();
-            }
-            return SpringUtil.getBean(HttpServletResponse.class);
-        } catch (Exception e) {
-            log.error("获取response异常", e);
+    public static HttpServletResponse getResponse()
+    {
+        try
+        {
+            return getRequestAttributes().getResponse();
+        }
+        catch (Exception e)
+        {
             return null;
         }
     }
@@ -135,32 +144,42 @@ public class ServletUtils {
     /**
      * 获取session
      */
-    public static HttpSession getSession() {
+    public static HttpSession getSession()
+    {
         return getRequest().getSession();
     }
 
-    public static ServletRequestAttributes getRequestAttributes() {
-        try {
+    public static ServletRequestAttributes getRequestAttributes()
+    {
+        try
+        {
             RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
             return (ServletRequestAttributes) attributes;
-        } catch (Exception e) {
+        }
+        catch (Exception e)
+        {
             return null;
         }
     }
 
-    public static String getHeader(HttpServletRequest request, String name) {
+    public static String getHeader(HttpServletRequest request, String name)
+    {
         String value = request.getHeader(name);
-        if (StringUtils.isEmpty(value)) {
+        if (StringUtils.isEmpty(value))
+        {
             return StringUtils.EMPTY;
         }
         return urlDecode(value);
     }
 
-    public static Map<String, String> getHeaders(HttpServletRequest request) {
+    public static Map<String, String> getHeaders(HttpServletRequest request)
+    {
         Map<String, String> map = new LinkedCaseInsensitiveMap<>();
         Enumeration<String> enumeration = request.getHeaderNames();
-        if (enumeration != null) {
-            while (enumeration.hasMoreElements()) {
+        if (enumeration != null)
+        {
+            while (enumeration.hasMoreElements())
+            {
                 String key = enumeration.nextElement();
                 String value = request.getHeader(key);
                 map.put(key, value);
@@ -173,15 +192,19 @@ public class ServletUtils {
      * 将字符串渲染到客户端
      *
      * @param response 渲染对象
-     * @param string   待渲染的字符串
+     * @param string 待渲染的字符串
      */
-    public static void renderString(HttpServletResponse response, String string) {
-        try {
+    public static void renderString(HttpServletResponse response, String string)
+    {
+        try
+        {
             response.setStatus(200);
             response.setContentType("application/json");
             response.setCharacterEncoding("utf-8");
             response.getWriter().print(string);
-        } catch (IOException e) {
+        }
+        catch (IOException e)
+        {
             e.printStackTrace();
         }
     }
@@ -191,19 +214,23 @@ public class ServletUtils {
      *
      * @param request
      */
-    public static boolean isAjaxRequest(HttpServletRequest request) {
+    public static boolean isAjaxRequest(HttpServletRequest request)
+    {
         String accept = request.getHeader("accept");
-        if (accept != null && accept.contains("application/json")) {
+        if (accept != null && accept.contains("application/json"))
+        {
             return true;
         }
 
         String xRequestedWith = request.getHeader("X-Requested-With");
-        if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest")) {
+        if (xRequestedWith != null && xRequestedWith.contains("XMLHttpRequest"))
+        {
             return true;
         }
 
         String uri = request.getRequestURI();
-        if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) {
+        if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml"))
+        {
             return true;
         }
 
@@ -217,10 +244,14 @@ public class ServletUtils {
      * @param str 内容
      * @return 编码后的内容
      */
-    public static String urlEncode(String str) {
-        try {
+    public static String urlEncode(String str)
+    {
+        try
+        {
             return URLEncoder.encode(str, Constants.UTF8);
-        } catch (UnsupportedEncodingException e) {
+        }
+        catch (UnsupportedEncodingException e)
+        {
             return StringUtils.EMPTY;
         }
     }
@@ -231,10 +262,14 @@ public class ServletUtils {
      * @param str 内容
      * @return 解码后的内容
      */
-    public static String urlDecode(String str) {
-        try {
+    public static String urlDecode(String str)
+    {
+        try
+        {
             return URLDecoder.decode(str, Constants.UTF8);
-        } catch (UnsupportedEncodingException e) {
+        }
+        catch (UnsupportedEncodingException e)
+        {
             return StringUtils.EMPTY;
         }
     }
@@ -243,10 +278,11 @@ public class ServletUtils {
      * 设置webflux模型响应
      *
      * @param response ServerHttpResponse
-     * @param value    响应内容
+     * @param value 响应内容
      * @return Mono<Void>
      */
-    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value) {
+    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value)
+    {
         return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL);
     }
 
@@ -254,11 +290,12 @@ public class ServletUtils {
      * 设置webflux模型响应
      *
      * @param response ServerHttpResponse
-     * @param code     响应状态码
-     * @param value    响应内容
+     * @param code 响应状态码
+     * @param value 响应内容
      * @return Mono<Void>
      */
-    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value, int code) {
+    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, Object value, int code)
+    {
         return webFluxResponseWriter(response, HttpStatus.OK, value, code);
     }
 
@@ -266,26 +303,28 @@ public class ServletUtils {
      * 设置webflux模型响应
      *
      * @param response ServerHttpResponse
-     * @param status   http状态码
-     * @param code     响应状态码
-     * @param value    响应内容
+     * @param status http状态码
+     * @param code 响应状态码
+     * @param value 响应内容
      * @return Mono<Void>
      */
-    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code) {
+    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code)
+    {
         return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code);
     }
 
     /**
      * 设置webflux模型响应
      *
-     * @param response    ServerHttpResponse
+     * @param response ServerHttpResponse
      * @param contentType content-type
-     * @param status      http状态码
-     * @param code        响应状态码
-     * @param value       响应内容
+     * @param status http状态码
+     * @param code 响应状态码
+     * @param value 响应内容
      * @return Mono<Void>
      */
-    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) {
+    public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code)
+    {
         response.setStatusCode(status);
         response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType);
         R<?> result = R.fail(code, value.toString());

+ 5 - 3
soc-common/soc-common-security/src/main/java/com/xunmei/common/security/feign/FeignRequestInterceptor.java

@@ -8,6 +8,8 @@ import feign.RequestInterceptor;
 import feign.RequestTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
@@ -19,12 +21,12 @@ import java.util.Map;
  */
 @Component
 public class FeignRequestInterceptor implements RequestInterceptor {
-    @Autowired
+  /*  @Autowired
     private HttpServletRequest httpServletRequest;
-
+*/
     @Override
     public void apply(RequestTemplate requestTemplate) {
-        // HttpServletRequest httpServletRequest = ServletUtils.getRequest();
+        HttpServletRequest httpServletRequest = ServletUtils.getRequest();
         if (StringUtils.isNotNull(httpServletRequest)) {
             Map<String, String> headers = ServletUtils.getHeaders(httpServletRequest);
             // 传递用户信息请求头,防止丢失

+ 18 - 0
soc-modules/soc-modules-job/pom.xml

@@ -83,4 +83,22 @@
 
     </dependencies>
 
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+
 </project>

+ 56 - 56
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/config/ScheduleConfig.java

@@ -1,57 +1,57 @@
 package com.xunmei.job.config;
-//
-//import java.util.Properties;
-//import javax.sql.DataSource;
-//import org.springframework.context.annotation.Bean;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.scheduling.quartz.SchedulerFactoryBean;
-//
-///**
-// * 定时任务配置(单机部署建议删除此类和qrtz数据库表,默认走内存会最高效)
-// * 
-// * @author xunmei
-// */
-//@Configuration
-//public class ScheduleConfig
-//{
-//    @Bean
-//    public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource)
-//    {
-//        SchedulerFactoryBean factory = new SchedulerFactoryBean();
-//        factory.setDataSource(dataSource);
-//
-//        // quartz参数
-//        Properties prop = new Properties();
-//        prop.put("org.quartz.scheduler.instanceName", "xunmeiScheduler");
-//        prop.put("org.quartz.scheduler.instanceId", "AUTO");
-//        // 线程池配置
-//        prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");
-//        prop.put("org.quartz.threadPool.threadCount", "20");
-//        prop.put("org.quartz.threadPool.threadPriority", "5");
-//        // JobStore配置
-//        prop.put("org.quartz.jobStore.class", "org.springframework.scheduling.quartz.LocalDataSourceJobStore");
-//        // 集群配置
-//        prop.put("org.quartz.jobStore.isClustered", "true");
-//        prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000");
-//        prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1");
-//        prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true");
-//
-//        // sqlserver 启用
-//        // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?");
-//        prop.put("org.quartz.jobStore.misfireThreshold", "12000");
-//        prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");
-//        factory.setQuartzProperties(prop);
-//
-//        factory.setSchedulerName("xunmeiScheduler");
-//        // 延时启动
-//        factory.setStartupDelay(1);
-//        factory.setApplicationContextSchedulerContextKey("applicationContextKey");
-//        // 可选,QuartzScheduler
-//        // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了
-//        factory.setOverwriteExistingJobs(true);
-//        // 设置自动启动,默认为true
-//        factory.setAutoStartup(true);
-//
-//        return factory;
-//    }
-//}
+
+import java.util.Properties;
+import javax.sql.DataSource;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.quartz.SchedulerFactoryBean;
+
+/**
+ * 定时任务配置(单机部署建议删除此类和qrtz数据库表,默认走内存会最高效)
+ *
+ * @author xunmei
+ */
+@Configuration
+public class ScheduleConfig
+{
+    @Bean
+    public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource)
+    {
+        SchedulerFactoryBean factory = new SchedulerFactoryBean();
+        factory.setDataSource(dataSource);
+
+        // quartz参数
+        Properties prop = new Properties();
+        prop.put("org.quartz.scheduler.instanceName", "xunmeiScheduler");
+        prop.put("org.quartz.scheduler.instanceId", "AUTO");
+        // 线程池配置
+        prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");
+        prop.put("org.quartz.threadPool.threadCount", "20");
+        prop.put("org.quartz.threadPool.threadPriority", "5");
+        // JobStore配置
+        prop.put("org.quartz.jobStore.class", "org.springframework.scheduling.quartz.LocalDataSourceJobStore");
+        // 集群配置
+        prop.put("org.quartz.jobStore.isClustered", "true");
+        prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000");
+        prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1");
+        prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true");
+
+        // sqlserver 启用
+        // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?");
+        prop.put("org.quartz.jobStore.misfireThreshold", "12000");
+        prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");
+        factory.setQuartzProperties(prop);
+
+        factory.setSchedulerName("xunmeiScheduler");
+        // 延时启动
+        factory.setStartupDelay(1);
+        factory.setApplicationContextSchedulerContextKey("applicationContextKey");
+        // 可选,QuartzScheduler
+        // 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了
+        factory.setOverwriteExistingJobs(true);
+        // 设置自动启动,默认为true
+        factory.setAutoStartup(true);
+
+        return factory;
+    }
+}

+ 4 - 5
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/controller/SysJobController.java

@@ -5,6 +5,7 @@ import com.xunmei.common.core.exception.job.TaskException;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.log.annotation.Log;
 import com.xunmei.common.log.enums.BusinessType;
 import com.xunmei.common.security.annotation.RequiresPermissions;
@@ -32,14 +33,12 @@ public class SysJobController extends BaseController
     /**
      * 查询定时任务列表
      */
-  /*  @RequiresPermissions("monitor:job:list")
+    @RequiresPermissions("monitor:job:list")
     @GetMapping("/list")
     public TableDataInfo list(SysJob sysJob)
     {
-        startPage();
-        List<SysJob> list = jobService.selectJobList(sysJob);
-        return getDataTable(list);
-    }*/
+        return jobService.selectJob(sysJob);
+    }
 
 
     /**

+ 3 - 1
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/mapper/SysJobMapper.java

@@ -1,6 +1,8 @@
 package com.xunmei.job.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.job.domain.SysJob;
+import com.xunmei.system.api.domain.SysDictData;
 
 import java.util.List;
 
@@ -9,7 +11,7 @@ import java.util.List;
  * 
  * @author xunmei
  */
-public interface SysJobMapper
+public interface SysJobMapper extends BaseMapper<SysJob>
 {
     /**
      * 查询调度任务日志集合

+ 11 - 1
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/service/ISysJobService.java

@@ -1,7 +1,10 @@
 package com.xunmei.job.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.exception.job.TaskException;
+import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.job.domain.SysJob;
+import com.xunmei.system.api.domain.SysDictData;
 import org.quartz.SchedulerException;
 
 import java.util.List;
@@ -11,8 +14,15 @@ import java.util.List;
  * 
  * @author xunmei
  */
- public interface ISysJobService
+ public interface ISysJobService extends IService<SysJob>
 {
+
+    /**
+     * 获取分页调度任务
+     * @param job
+     * @return
+     */
+    TableDataInfo selectJob(SysJob job);
     /**
      * 获取quartz调度器的计划任务
      * 

+ 24 - 1
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/service/impl/SysJobServiceImpl.java

@@ -1,12 +1,17 @@
 package com.xunmei.job.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.ScheduleConstants;
 import com.xunmei.common.core.exception.job.TaskException;
+import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.job.domain.SysJob;
 import com.xunmei.job.mapper.SysJobMapper;
 import com.xunmei.job.service.ISysJobService;
 import com.xunmei.job.util.CronUtils;
 import com.xunmei.job.util.ScheduleUtils;
+import com.xunmei.system.api.domain.SysDictData;
 import org.quartz.JobDataMap;
 import org.quartz.JobKey;
 import org.quartz.Scheduler;
@@ -24,7 +29,7 @@ import java.util.List;
  * @author xunmei
  */
 @Service
-public class SysJobServiceImpl implements ISysJobService
+public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> implements ISysJobService
 {
     @Autowired
     private Scheduler scheduler;
@@ -46,6 +51,24 @@ public class SysJobServiceImpl implements ISysJobService
         }
     }
 
+    @Override
+    public TableDataInfo selectJob(SysJob job) {
+        Page<SysJob> page;
+        if (job.getPageNum() != null &&job.getPageSize() != null){
+            page = new Page<>(job.getPageNum(), job.getPageSize());
+        }else{
+            page = new Page<>();
+        }
+        QueryWrapper<SysJob> where = new QueryWrapper<SysJob>();
+        Page<SysJob> list = baseMapper.selectPage(page, where);
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setRows(list.getRecords());
+        rspData.setTotal(list.getTotal());
+        rspData.setCode(200);
+        rspData.setMsg("查询成功");
+        return rspData;
+    }
+
     /**
      * 获取quartz调度器的计划任务列表
      * 

+ 0 - 28
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/RyTask.java

@@ -1,28 +0,0 @@
-package com.xunmei.job.task;
-
-import com.xunmei.common.core.utils.StringUtils;
-import org.springframework.stereotype.Component;
-
-/**
- * 定时任务调度测试
- * 
- * @author xunmei
- */
-@Component("ryTask")
-public class RyTask
-{
-    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
-    {
-        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
-    }
-
-    public void ryParams(String params)
-    {
-        System.out.println("执行有参方法:" + params);
-    }
-
-    public void ryNoParams()
-    {
-        System.out.println("执行无参方法");
-    }
-}

+ 59 - 0
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/TestTask.java

@@ -0,0 +1,59 @@
+package com.xunmei.job.task;
+
+
+import com.alibaba.fastjson.JSON;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.R;
+import com.xunmei.common.core.utils.SpringUtils;
+import com.xunmei.system.api.RemoteUserService;
+import com.xunmei.system.api.model.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 定时任务调度测试
+ *
+ * @author xunmei
+ */
+
+@Component("TestTask")
+public class TestTask {
+
+    @Autowired
+    private RemoteUserService remoteUserService;
+
+    /**
+     * 无参数调用
+     */
+    public void noParams()
+    {
+        System.out.println("执行无参方法");
+        R<LoginUser> userResult = remoteUserService.getUserInfo("admin", SecurityConstants.INNER);
+        System.out.println(JSON.toJSONString(userResult));
+    }
+
+    /**
+     * 有参数调用
+     * @param userName
+     */
+    public void yesParams(String userName)
+    {
+        System.out.println("执行单个参方法");
+        R<LoginUser> userResult = remoteUserService.getUserInfo(userName, SecurityConstants.INNER);
+        System.out.println(JSON.toJSONString(userResult));
+    }
+
+    /**
+     * 多个参数调用
+     * @param userName
+     */
+    public void manyParams(String userName,String source)
+    {
+        System.out.println("执行多个方法");
+        System.out.println(source);
+        R<LoginUser> userResult = remoteUserService.getUserInfo(userName, SecurityConstants.INNER);
+        System.out.println(JSON.toJSONString(userResult));
+    }
+
+
+}

+ 1 - 4
soc-modules/soc-modules-job/src/main/resources/mapper/job/SysJobMapper.xml

@@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</resultMap>
 	
 	<sql id="selectJobVo">
-        select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark 
+        select job_id, job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time
 		from sys_job
     </sql>
 	
@@ -72,7 +72,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="misfirePolicy != null and misfirePolicy != ''">misfire_policy = #{misfirePolicy},</if>
  			<if test="concurrent != null and concurrent != ''">concurrent = #{concurrent},</if>
  			<if test="status !=null">status = #{status},</if>
- 			<if test="remark != null and remark != ''">remark = #{remark},</if>
  			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
  			update_time = sysdate()
  		</set>
@@ -89,7 +88,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="misfirePolicy != null and misfirePolicy != ''">misfire_policy,</if>
  			<if test="concurrent != null and concurrent != ''">concurrent,</if>
  			<if test="status != null and status != ''">status,</if>
- 			<if test="remark != null and remark != ''">remark,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			create_time
  		)values(
@@ -101,7 +99,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="misfirePolicy != null and misfirePolicy != ''">#{misfirePolicy},</if>
  			<if test="concurrent != null and concurrent != ''">#{concurrent},</if>
  			<if test="status != null and status != ''">#{status},</if>
- 			<if test="remark != null and remark != ''">#{remark},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			sysdate()
  		)

+ 2 - 3
soc-modules/soc-modules-system/pom.xml

@@ -40,19 +40,18 @@
         </dependency>
 
         <!-- Swagger UI -->
-        <dependency>
+  <!--      <dependency>
             <groupId>io.springfox</groupId>
             <artifactId>springfox-swagger-ui</artifactId>
             <version>${swagger.fox.version}</version>
         </dependency>
-
+-->
         <!-- Mysql Connector -->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
         </dependency>
 
-
         <!--soc datascope 数据权限-->
         <dependency>
             <groupId>com.xunmei</groupId>

+ 5 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -77,9 +77,14 @@ public class SysUserController extends BaseController {
     @GetMapping("/info/{username}")
     public R<LoginUser> info(@PathVariable("username") String username) {
         SysUser sysUser = userService.selectUserByUserName(username);
+
         if (StringUtils.isNull(sysUser)) {
             return R.fail("用户名或密码错误");
         }
+        //获取当前用户的角色数据。
+        List<SysRole> sysRoles = roleService.selectRolesByUserId(sysUser.getId());
+        sysUser.setRoles(sysRoles);
+
         // 角色集合
         Set<String> roles = permissionService.getRolePermission(sysUser);
         // 权限集合

+ 3 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserOnlineController.java

@@ -64,8 +64,9 @@ public class SysUserOnlineController extends BaseController
         }
         Collections.reverse(userOnlineList);
         userOnlineList.removeAll(Collections.singleton(null));
-//        return getDataTable(userOnlineList);
-        return null;
+        TableDataInfo info = new TableDataInfo();
+        info.setRows(userOnlineList);
+        return info;
     }
 
     /**

+ 1 - 1
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -153,7 +153,7 @@
 	<select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
 		select distinct m.perms
 		from sys_menu m
-			 left join sys_role_menu rm on m.menu_id = rm.menu_id
+			 left join sys_role_menu rm on m.id = rm.menu_id
 		where m.status = '0' and rm.role_id = #{roleId}
 	</select>