From ecca9ab70a9a87bcb60977c92fbf81053b8fc1bb Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 04 九月 2024 09:17:55 +0800 Subject: [PATCH] 新增优化 --- ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java | 156 +++++++++++++++++++++++----------------------------- 1 files changed, 69 insertions(+), 87 deletions(-) diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java index be6ad9f..2664537 100644 --- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java +++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java @@ -1,21 +1,19 @@ package com.ruoyi.admin.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.admin.entity.ChangeDispatch; import com.ruoyi.admin.entity.MasterWorker; -import com.ruoyi.admin.entity.Order; -import com.ruoyi.admin.service.ChangeDispatchService; +import com.ruoyi.admin.netty.NettyChannelMap; +import com.ruoyi.admin.netty.NettyWebSocketController; import com.ruoyi.admin.service.MasterWorkerService; -import com.ruoyi.admin.service.OrderService; -import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.exception.GlobalException; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.api.entity.ChangeDispatch; +import com.ruoyi.order.api.feignClient.ExchangeDispatchClient; +import com.ruoyi.order.api.request.ChangeDispatchRequest; +import com.ruoyi.system.api.model.LoginUser; +import io.netty.channel.ChannelHandlerContext; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -23,9 +21,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; /** * <p> @@ -41,11 +38,11 @@ public class ChangeDispatchController { @Resource - private ChangeDispatchService changeDispatchService; - @Resource - private OrderService orderService; + private ExchangeDispatchClient dispatchClient; @Resource private MasterWorkerService masterWorkerService; + @Resource + private TokenService tokenService; /** * 订单改派分页列表 @@ -63,15 +60,22 @@ @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true), @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true) }) - public R<IPage<ChangeDispatch>> queryPageList(String workerName, String orderNumber, String userName, - @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { - LambdaQueryChainWrapper<ChangeDispatch> wrapper = changeDispatchService.lambdaQuery(); - wrapper = StringUtils.isNotBlank(workerName) ? wrapper.like(ChangeDispatch::getWorkerName, workerName) : wrapper; - wrapper = StringUtils.isNotBlank(orderNumber) ? wrapper.like(ChangeDispatch::getOrderNumber, orderNumber) : wrapper; - wrapper = StringUtils.isNotBlank(userName) ? wrapper.like(ChangeDispatch::getUserName, userName) : wrapper; - return R.ok(wrapper.eq(ChangeDispatch::getIsDelete, 0) - .orderByDesc(ChangeDispatch::getCreateTime).page(Page.of(pageNum, pageSize))); + public R<Page<ChangeDispatch>> queryPageList(String workerName, String orderNumber, String userName, + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + LoginUser loginUser = tokenService.getLoginUser(); + List<String> cityList = new ArrayList<>(); + if (loginUser.getIsFranchisee()) { + cityList = loginUser.getCityList(); + } + ChangeDispatchRequest changeDispatchRequest = new ChangeDispatchRequest(); + changeDispatchRequest.setWorkerName(workerName); + changeDispatchRequest.setOrderNumber(orderNumber); + changeDispatchRequest.setUserName(userName); + changeDispatchRequest.setPageNum(pageNum); + changeDispatchRequest.setPageSize(pageSize); + changeDispatchRequest.setCityList(cityList); + return dispatchClient.queryPageList(changeDispatchRequest); } /** @@ -82,7 +86,7 @@ @ApiOperation(value = "新增订单改派", tags = {"后台-系统设置-订单改派管理"}) @PostMapping(value = "/save") public R<Boolean> save(@RequestBody ChangeDispatch changeDispatch) { - return R.ok(changeDispatchService.save(changeDispatch)); + return R.ok(dispatchClient.save(changeDispatch).getData()); } /** @@ -90,31 +94,14 @@ * * @param id 订单改派id */ - @RequiresPermissions("reassignment_apply") + @RequiresPermissions("reassignment_detail") @ApiOperation(value = "订单改派详情", tags = {"后台-系统设置-订单改派管理"}) @GetMapping(value = "/detail") @ApiImplicitParams({ @ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true) }) - public R<ChangeDispatch> detail(@RequestParam Integer id) { - return R.ok(changeDispatchService.getById(id)); - } - - /** - * 订单改派详情 远程调用 - * - * @param id 订单id - */ - @GetMapping(value = "/one") - @ApiImplicitParams({ - @ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true) - }) - public R<ChangeDispatch> one(@RequestParam("id") Integer id) { - ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery() - .eq(ChangeDispatch::getOrderId, id) - .eq(ChangeDispatch::getState, Constants.ZERO) - .one(); - return R.ok(changeDispatch); + public R<ChangeDispatch> detail(@RequestParam String id) { + return dispatchClient.detail(id); } /** @@ -122,17 +109,29 @@ * * @param ids 订单改派多条id拼接 */ - @RequiresPermissions("reassignment_apply") + @RequiresPermissions("reassignment_delete") @ApiOperation(value = "批量删除订单改派", tags = {"后台-系统设置-订单改派管理"}) @GetMapping(value = "/batchDelete") @ApiImplicitParams({ @ApiImplicitParam(value = "多条订单改派id ',' 拼接", name = "ids", dataType = "String", required = true) }) public R<String> batchDelete(@RequestParam String ids) { - List<String> idList = Arrays.stream(ids.split(",")).collect(Collectors.toList()); - List<ChangeDispatch> list = changeDispatchService.lambdaQuery().in(ChangeDispatch::getId, idList).list(); - list.forEach(data -> data.setIsDelete(1)); - return changeDispatchService.updateBatchById(list) ? R.ok() : R.fail(); + return dispatchClient.batchDelete(ids); + } + + /** + * 拒绝订单改派申请 + * + * @param id 改派申请记录id + */ + @RequiresPermissions("reassignment_reject") + @ApiOperation(value = "拒绝订单改派申请", tags = {"后台-系统设置-订单改派管理"}) + @GetMapping(value = "/refuse") + @ApiImplicitParams({ + @ApiImplicitParam(value = "改派申请记录id", name = "id", dataType = "String", required = true) + }) + public R<Boolean> refuse(@RequestParam("id") String id) { + return dispatchClient.refuseChangeDispatch(id); } /** @@ -141,51 +140,34 @@ * @param changeId 改派订单id * @param workerId 师傅id */ - @RequiresPermissions("reassignment_apply") + @RequiresPermissions("reassignment_reassignment") @ApiOperation(value = "订单改派师傅", tags = {"后台-系统设置-订单改派管理"}) @GetMapping(value = "/changeWorker") @ApiImplicitParams({ @ApiImplicitParam(value = "改派订单id", name = "changeId", dataType = "Integer", required = true), @ApiImplicitParam(value = "师傅id", name = "workerId", dataType = "Integer", required = true) }) - public R<String> changeWorker(@RequestParam Integer changeId, @RequestParam Integer workerId) { - ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery().eq(ChangeDispatch::getId, changeId) - .eq(ChangeDispatch::getIsDelete, 0).one(); - if (null == changeDispatch || Constants.ONE.equals(changeDispatch.getState())) { - throw new GlobalException("改派申请不存在或已改派!"); - } - Order order = orderService.lambdaQuery().eq(Order::getId, changeDispatch.getOrderId()) - .eq(Order::getIsDelete, 0).one(); - if (null == order) { - throw new GlobalException("订单不存在!"); - } - // 判断订单状态 - if (!Constants.ZERO.equals(order.getState())) { - throw new GlobalException("订单已有师傅正在处理!"); - } - MasterWorker masterWorker = masterWorkerService.lambdaQuery().eq(MasterWorker::getId, workerId) - .eq(MasterWorker::getIsDelete, 0).one(); - // 师傅信息 + public R<String> changeWorker(@RequestParam String changeId, @RequestParam Integer workerId) { + MasterWorker masterWorker = masterWorkerService.lambdaQuery() + .eq(MasterWorker::getId, workerId).eq(MasterWorker::getIsDelete, 0).one(); if (null == masterWorker) { - throw new GlobalException("服务人员信息异常!"); + return R.fail("师傅信息异常!"); } - // 原订单状态改为 5:已改派 - order.setState(Constants.FIVE); - boolean orderUpdate = orderService.updateById(order); - // 生成新订单信息 - Order newOrder = new Order(); - BeanUtils.copyProperties(order, newOrder); - newOrder.setId(null); - newOrder.setServerId(workerId); - newOrder.setServerName(masterWorker.getRealName()); - newOrder.setServerPhone(masterWorker.getPhone()); - newOrder.setState(Constants.ONE); - // 构建新订单 - boolean save = orderService.save(newOrder); - // 改派信息 - boolean update = changeDispatchService.lambdaUpdate().set(ChangeDispatch::getState, 1) - .eq(ChangeDispatch::getId, changeId).eq(ChangeDispatch::getIsDelete, 0).update(); - return orderUpdate && save && update ? R.ok() : R.fail(); + Boolean data = dispatchClient.changeWorker(changeId, workerId, masterWorker.getRealName(), + masterWorker.getPhone()).getData(); + if (null != data && data) { + ChannelHandlerContext context = NettyChannelMap.getData(String.valueOf(workerId)); + if (null != context) { + NettyWebSocketController.sendMsgToClient(context, "您有一条新的订单,请注意查收!"); + } + return R.ok(); +// try { +// WebSocketServer.sendInfo("您有一条新的订单,请注意查收!", String.valueOf(workerId)); +// } catch (IOException e) { +// return R.fail("师傅不在线!"); +// } + } + return R.fail("订单推送异常!"); } } -- Gitblit v1.7.1