MDdController.java 6.68 KB
package com.hotent.lpg.manage.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hotent.base.model.CommonResult;
import com.hotent.base.util.StringUtil;
import com.hotent.lpg.common.enums.DdztEnum;
import com.hotent.lpg.common.model.WDd;
import com.hotent.lpg.common.model.WYgxx;
import com.hotent.lpg.manage.dto.DeliveryOrderResponse;
import com.hotent.lpg.manage.dto.OrderPeishengRequest;
import com.hotent.lpg.manage.dto.StaffOrderRequest;
import com.hotent.lpg.manage.dto.WStaffOrderQueryRequsest;
import com.hotent.lpg.manage.manager.MCurrentInfoManager;
import com.hotent.lpg.manage.manager.MDdManager;
import com.hotent.lpg.manage.vo.DdxxVo;
import com.hotent.runtime.script.ScriptImpl;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 员工订单
 */
@Slf4j
@RestController
@RequestMapping("/manage/dd/v1")
public class MDdController {

    @Autowired
    private MDdManager mDdManager;
    @Autowired
    private ScriptImpl scriptImpl;
    @Autowired
    private MCurrentInfoManager mCurrentInfoManager;

    /**
     * 移动端:员工订单列表(员工操作)
     * @param page
     * @param wStaffOrderQuery
     * @return
     */
    @GetMapping(value = "/staffOrderPage", produces = {"application/json; charset=utf-8"})
    @ApiOperation(value = "员工订单列表", httpMethod = "GET", notes = "员工订单列表")
    public CommonResult staffOrderPage(Page page, WStaffOrderQueryRequsest wStaffOrderQuery) {
        log.info("员工订单列表参数,wStaffOrderQuery={}", wStaffOrderQuery);
        //获取当前员工在uc_user表中的信息
        String currentUserId = scriptImpl.getCurrentUserId();
        //获取当前员工在w_ygxx表中的信息
        WYgxx wYgxx = mCurrentInfoManager.getCurrentWygxxByUserId(currentUserId);
        if (wYgxx == null) {
            return CommonResult.error("员工信息不存在");
        }
        //分页查询
        if (wStaffOrderQuery == null) {
            wStaffOrderQuery = new WStaffOrderQueryRequsest();
        }
        IPage<WDd> resultPage = mDdManager.staffOrderPage(page, wStaffOrderQuery, wYgxx);

        return new CommonResult(true, "", resultPage);
    }

    /**
     * 移动端:员工配送(员工操作)
     * @param orderPeisheng
     * @return
     */
    @PostMapping(value = "/delivery", produces = {"application/json; charset=utf-8"})
    @ApiOperation(value = "员工配送", httpMethod = "POST", notes = "员工配送")
    public CommonResult orderDelivery(@ApiParam(name = "orderPeisheng", value = "配送参数", required = true) @RequestBody(required = true) OrderPeishengRequest orderPeisheng) {
        log.info("员工配送参数,orderPeisheng={}", orderPeisheng);
        WDd wdd = mDdManager.getById(orderPeisheng.getDdid());
        if (wdd == null) {
            return new CommonResult(false, "订单信息不存在");
        }
        if (DdztEnum.COMPLETED.getCode().equals(wdd.getFDdzt())) {
            return new CommonResult(false, "订单已完成,不可再次操作");
        }
        if (DdztEnum.REFUNDED.getCode().equals(wdd.getFDdzt())) {
            return new CommonResult(false, "订单已取消,不可再次操作");
        }
        //获取当前员工在uc_user表中的信息
        String currentUserId = scriptImpl.getCurrentUserId();
        //获取当前员工在w_ygxx表中的信息
        WYgxx wYgxx = mCurrentInfoManager.getCurrentWygxxByUserId(currentUserId);

        DeliveryOrderResponse deliveryOrderResponse = new DeliveryOrderResponse();
        try {
            deliveryOrderResponse = mDdManager.orderDelivery(wYgxx, orderPeisheng);
        } catch (Exception e) {
            return new CommonResult(false, e.getMessage());
        }

        return new CommonResult(true, "", deliveryOrderResponse);
    }

    /**
     * 移动端:帮助下单(员工操作)
     * @param staffOrderRequest
     * @return
     * @throws Exception
     * @throws
     */
    @PostMapping(value = "/helpCreateOrder")
    @ApiOperation(value = "帮助下单", httpMethod = "POST", notes = "帮助下单")
    public CommonResult createOrder(@ApiParam(name = "staffOrderRequest", value = "帮助下单请求对象", required = true) @RequestBody StaffOrderRequest staffOrderRequest) throws Exception {
        log.info("帮助下单参数,staffOrderRequest={}", staffOrderRequest);
        WDd wdd = null;
        try {
            if (StringUtil.isEmpty(staffOrderRequest.getPsfs())) {
                return CommonResult.error("请选择提取方式");
            }
            wdd = mDdManager.helpCreateOrder(staffOrderRequest);
        } catch (Exception e) {
            return CommonResult.error(e.getMessage());
        }
        return CommonResult.ok().value(wdd);
    }


    /**
     * 根据订单id查询订单详情
     *
     * @param oracleId
     * @return
     */
    @GetMapping(value = "/getOrderByid", produces = {"application/json; charset=utf-8"})
    @ApiOperation(value = "订单详情", httpMethod = "GET", notes = "订单详情")
    public CommonResult getOrderByid(@ApiParam(name = "oracleId", value = "气瓶条码", required = true) @RequestParam String oracleId) {
        DdxxVo ddxxVo = mDdManager.getOrderByid(oracleId);
        return CommonResult.<DdxxVo>ok().value(ddxxVo);
    }

    /**
     * 移动端:无单配送(员工操作)
     * @param orderPeisheng
     * @return
     */
    @PostMapping(value = "/noOrderDelivery", produces = {"application/json; charset=utf-8"})
    @ApiOperation(value = "无单配送", httpMethod = "POST", notes = "无单配送")
    public CommonResult noOrderDelivery(@ApiParam(name = "orderPeisheng", value = "配送参数", required = true) @RequestBody(required = true) OrderPeishengRequest orderPeisheng) {
        log.info("无单配送参数,orderPeisheng={}", orderPeisheng);
        //获取当前员工在uc_user表中的信息
        String currentUserId = scriptImpl.getCurrentUserId();
        //获取当前员工在w_ygxx表中的信息
        WYgxx wYgxx = mCurrentInfoManager.getCurrentWygxxByUserId(currentUserId);
        if (wYgxx == null) {
            return CommonResult.error("员工信息不存在");
        }
        DeliveryOrderResponse deliveryOrderResponse = new DeliveryOrderResponse();
        try {
            deliveryOrderResponse = mDdManager.noOrderDelivery(wYgxx, orderPeisheng);
        } catch (Exception e) {
            return new CommonResult(false, e.getMessage());
        }
        return new CommonResult(true, "", deliveryOrderResponse);
    }

}