From 8580d469d032881be90724628067fc81e09fd27e Mon Sep 17 00:00:00 2001 From: luojian <1327479187@qq.com> Date: Sat, 21 Dec 2024 17:14:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/BizOrderTaskController.java | 35 ++++++++++++++ .../controller/system/SysLoginController.java | 16 +++++++ .../web/service/SysLoginService.java | 48 ++++++++++++++++++- .../cpxt/biz/mapper/BizOrderTaskMapper.java | 4 ++ .../biz/service/IBizOrderTaskService.java | 2 + .../service/impl/BizOrderTaskServiceImpl.java | 5 ++ 6 files changed, 109 insertions(+), 1 deletion(-) diff --git a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java index af3d878..0c7c905 100644 --- a/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java +++ b/cpxt-admin/src/main/java/com/cpxt/web/controller/biz/BizOrderTaskController.java @@ -5,6 +5,10 @@ import javax.servlet.http.HttpServletResponse; import com.cpxt.biz.domain.BizOrderTask; import com.cpxt.biz.service.IBizOrderTaskService; +import com.cpxt.quartz.domain.SysJob; +import com.cpxt.quartz.service.ISysJobService; +import org.quartz.SchedulerException; +import org.springframework.beans.BeanUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -35,6 +39,9 @@ public class BizOrderTaskController extends BaseController @Autowired private IBizOrderTaskService bizOrderTaskService; + @Autowired + private ISysJobService jobService; + /** * 查询订单任务列表 */ @@ -102,4 +109,32 @@ public class BizOrderTaskController extends BaseController { return toAjax(bizOrderTaskService.deleteBizOrderTaskByIds(ids)); } + + /** + * 定时任务状态修改 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") + @Log(title = "定时任务", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody BizOrderTask orderTask) throws SchedulerException + { + // 同步修改task表中的状态 + bizOrderTaskService.updateBizOrderTaskStatus(orderTask.getJobId(),orderTask.getStatus()); + SysJob newJob = jobService.selectJobById(orderTask.getJobId()); + newJob.setStatus(orderTask.getStatus()); + return toAjax(jobService.changeStatus(newJob)); + } + + /** + * 定时任务立即执行一次 + */ + @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')") + @Log(title = "定时任务", businessType = BusinessType.UPDATE) + @PutMapping("/run") + public AjaxResult run(@RequestBody BizOrderTask orderTask) throws SchedulerException + { + SysJob newJob = jobService.selectJobById(orderTask.getJobId()); + boolean result = jobService.run(newJob); + return result ? success() : error("任务不存在或已过期!"); + } } diff --git a/cpxt-admin/src/main/java/com/cpxt/web/controller/system/SysLoginController.java b/cpxt-admin/src/main/java/com/cpxt/web/controller/system/SysLoginController.java index bb6cd56..afe678a 100644 --- a/cpxt-admin/src/main/java/com/cpxt/web/controller/system/SysLoginController.java +++ b/cpxt-admin/src/main/java/com/cpxt/web/controller/system/SysLoginController.java @@ -56,6 +56,22 @@ public class SysLoginController return ajax; } + /** + * 登录方法 + * + * @param loginBody 登录信息 + * @return 结果 + */ + @PostMapping("/appLogin") + public AjaxResult appLogin(@RequestBody LoginBody loginBody) + { + AjaxResult ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.appLogin(loginBody.getUsername(), loginBody.getPassword()); + ajax.put(Constants.TOKEN, token); + return ajax; + } + /** * 获取用户信息 * diff --git a/cpxt-framework/src/main/java/com/cpxt/framework/web/service/SysLoginService.java b/cpxt-framework/src/main/java/com/cpxt/framework/web/service/SysLoginService.java index 1255c1c..2350c0e 100644 --- a/cpxt-framework/src/main/java/com/cpxt/framework/web/service/SysLoginService.java +++ b/cpxt-framework/src/main/java/com/cpxt/framework/web/service/SysLoginService.java @@ -54,7 +54,7 @@ public class SysLoginService /** * 登录验证 - * + * * @param username 用户名 * @param password 密码 * @param code 验证码 @@ -100,6 +100,52 @@ public class SysLoginService return tokenService.createToken(loginUser); } + /** + * 登录验证 + * + * @param username 用户名 + * @param password 密码 + * @return 结果 + */ + public String appLogin(String username, String password) + { + // 验证码校验 +// validateCaptcha(username, code, uuid); + // 登录前置校验 + loginPreCheck(username, password); + // 用户验证 + Authentication authentication = null; + try + { + UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password); + AuthenticationContextHolder.setContext(authenticationToken); + // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername + authentication = authenticationManager.authenticate(authenticationToken); + } + catch (Exception e) + { + if (e instanceof BadCredentialsException) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } + else + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); + throw new ServiceException(e.getMessage()); + } + } + finally + { + AuthenticationContextHolder.clearContext(); + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + recordLoginInfo(loginUser.getUserId()); + // 生成token + return tokenService.createToken(loginUser); + } + /** * 校验验证码 * diff --git a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java index 458810c..f7d6ce9 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/mapper/BizOrderTaskMapper.java @@ -5,6 +5,8 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cpxt.biz.domain.BizOrderTask; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; /** * 订单任务Mapper接口 @@ -16,4 +18,6 @@ import org.apache.ibatis.annotations.Mapper; public interface BizOrderTaskMapper extends BaseMapper { + @Update("update biz_order_task set status = #{status} where job_id = ${jobId}") + void updateBizOrderTaskStatus(@Param("jobId") Long jobId,@Param("status") String status); } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java index 48f0599..4e15a2b 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/IBizOrderTaskService.java @@ -58,4 +58,6 @@ public interface IBizOrderTaskService * @return 结果 */ public int deleteBizOrderTaskById(Integer id); + + void updateBizOrderTaskStatus(Long jobId,String status); } diff --git a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java index 5dd8068..4ad4027 100644 --- a/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java +++ b/cpxt-system/src/main/java/com/cpxt/biz/service/impl/BizOrderTaskServiceImpl.java @@ -141,4 +141,9 @@ public class BizOrderTaskServiceImpl implements IBizOrderTaskService { return bizOrderTaskMapper.deleteById(id); } + + @Override + public void updateBizOrderTaskStatus(Long jobId,String status) { + bizOrderTaskMapper.updateBizOrderTaskStatus(jobId,status); + } }