mitao
2024-09-04 ecca9ab70a9a87bcb60977c92fbf81053b8fc1bb
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
@@ -3,12 +3,17 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.entity.MasterWorker;
import com.ruoyi.admin.netty.NettyChannelMap;
import com.ruoyi.admin.netty.NettyWebSocketController;
import com.ruoyi.admin.service.MasterWorkerService;
import com.ruoyi.admin.sorcket.WebSocketServer;
import com.ruoyi.common.core.domain.R;
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;
@@ -16,7 +21,8 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
 * <p>
@@ -35,6 +41,8 @@
    private ExchangeDispatchClient dispatchClient;
    @Resource
    private MasterWorkerService masterWorkerService;
    @Resource
    private TokenService tokenService;
    /**
     * 订单改派分页列表
@@ -55,7 +63,19 @@
    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) {
        return dispatchClient.queryPageList(workerName, orderNumber, userName, pageNum, 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);
    }
    /**
@@ -74,7 +94,7 @@
     *
     * @param id 订单改派id
     */
    @RequiresPermissions("reassignment_apply")
    @RequiresPermissions("reassignment_detail")
    @ApiOperation(value = "订单改派详情", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/detail")
    @ApiImplicitParams({
@@ -89,7 +109,7 @@
     *
     * @param ids 订单改派多条id拼接
     */
    @RequiresPermissions("reassignment_apply")
    @RequiresPermissions("reassignment_delete")
    @ApiOperation(value = "批量删除订单改派", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/batchDelete")
    @ApiImplicitParams({
@@ -104,7 +124,7 @@
     *
     * @param id 改派申请记录id
     */
    @RequiresPermissions("reassignment_apply")
    @RequiresPermissions("reassignment_reject")
    @ApiOperation(value = "拒绝订单改派申请", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/refuse")
    @ApiImplicitParams({
@@ -120,7 +140,7 @@
     * @param changeId 改派订单id
     * @param workerId 师傅id
     */
    @RequiresPermissions("reassignment_apply")
    @RequiresPermissions("reassignment_reassignment")
    @ApiOperation(value = "订单改派师傅", tags = {"后台-系统设置-订单改派管理"})
    @GetMapping(value = "/changeWorker")
    @ApiImplicitParams({
@@ -136,12 +156,16 @@
        Boolean data = dispatchClient.changeWorker(changeId, workerId, masterWorker.getRealName(),
                masterWorker.getPhone()).getData();
        if (null != data && data) {
            try {
                WebSocketServer.sendInfo("您有一条新的订单,请注意查收!", String.valueOf(workerId));
                return R.ok();
            } catch (IOException e) {
                return R.fail("师傅不在线!");
            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("订单推送异常!");
    }