|
- <?php
- /**
- * Created by PhpStorm.
- * User: nizongfeng
- * Date: 2021/11/10
- * Time: 11:06
- */
-
- namespace app\admin\service;
-
-
- use app\admin\command\Util;
- use app\admin\dao\OrderMainDao;
- use app\admin\dao\ReceiptOrderDao;
- use think\Db;
-
- class ReceiptOrderService
- {
-
- /**
- * 保存详情
- * @param $param
- * @return array
- */
- public function save($param){
- //保存
- $dao = new ReceiptOrderDao();
- $addRe = $dao->save($param);
- if (!$addRe['flag']) {
- return $addRe;
- }
- return Util::returnArrSu();
-
- }
-
- /**
- * 获取列表
- * @param $param
- * @return array
- */
- public function getList($param){
- $dao = new ReceiptOrderDao();
- return $dao->getList($param);
- }
-
- /**
- * 设置状态
- * @param $id
- * @param $status
- * @return array
- */
- public function setStatus($id,$status) {
- Db::startTrans();
- //1.设置收购单状态
- $dao = new ReceiptOrderDao();
- $statusRe = $dao->setStatus($id,$status);
- if (!$statusRe['flag']) {
- Db::rollback();
- return$statusRe;
- }
- //2.设置所有订单主表的状态
- $orderDao = new OrderMainDao();
- $orderRe = $orderDao->setReceiptOrderStatus($id,$status);
- if (!$orderRe['flag']) {
- Db::rollback();
- return $orderRe;
- }
-
- //3.设置订单状态
- $orderIds = $orderDao->getOrderMainIdsByReceipt($id);
- foreach ($orderIds as $orderId) {
- $setRe = $orderDao->setOrderAmount($orderId);
- if (!$setRe['flag']) {
- Db::rollback();
- return $setRe;
- }
- }
- Db::commit();
- return Util::returnArrSu();
-
- }
-
- /**
- * 添加主订单到采购单
- * @param $id
- * @param $order_id
- * @return array
- */
- public function addOrderMain($id,$order_id){
- $model = new ReceiptOrderDao();
- $infoRe = $model->getInfoById($id);
- if (!$infoRe['flag']) {
- return $infoRe;
- }
- $orderIds = explode(",", $order_id);
- $orderMainDao = new OrderMainDao();
- $addRe = $orderMainDao->addOrderMainInReceipt($infoRe['data'],$orderIds);
- if (!$addRe['flag']) {
- return $addRe;
- }
- return Util::returnArrSu();
- }
-
- /**
- * 移除采购单
- * @param $order_id
- * @return array
- */
- public function removeOrderMain($order_id){
- $orderIds = explode(",", $order_id);
- $orderMainDao = new OrderMainDao();
- return $orderMainDao->removeOrderMainFormReceipt($orderIds);
- }
-
- /**
- * 获取主订单列表
- * @param $param
- * @return array
- */
- public function getOrderMainList($param){
- $orderMainDao = new OrderMainDao();
- $where = ["id"=>["neq",""],"group_id"=>$param['group_id']];
- if (!empty($param['order_id'])) {
- $where["id"]=$param['order_id'];
- }
- if (!empty($param['channel_id'])) {
- $where['channel_id'] = $param['channel_id'];
- }
- if (!empty($param['channel_order_no'])) {
- $where['channel_order_no'] = $param['channel_order_no'];
- }
- if ($param['order_status'] !== '') {
- $where['order_status'] = $param['order_status'];
- }
- if (!empty($param['commissioner_id'])) {
- $where['commissioner_id'] = $param['commissioner_id'];
- }
- if (!empty($param['user_name'])) {
- $where['user_name'] = ["like","%".$param['user_name']."%"];
- }
- if (!empty($param['user_phone'])) {
- $where['user_phone'] = $param['user_phone'];
- }
- if (!empty($param['create_id'])) {
- $where['create_id'] = $param['create_id'];
- }
- //金额区间查询
- if (!empty($param['startMoney'])&& empty($param['endMoney'])) {
- $where['total_amount'] = [">=",$param['startMoney']];
- }
- if (!empty($param['endMoney']) && empty($param['startMoney'])) {
- $where['total_amount'] = ["<=",$param['endMoney']];
- }
- if (!empty($param['endMoney']) && !empty($param['startMoney'])) {
- $where['total_amount'] = ["between",[$param['startMoney'],$param['endMoney']]];
- }
- //时间区间查询
- if (!empty($param['startTime']) && empty($param['endTime'])) {
- $where['create_time'] = [">=",$param['startTime']." 00:00:00"];
- }
- if (!empty($param['endTime'])&& empty($param['startTime'])) {
- $where['create_time'] = ["<=",$param['endTime']." 23:59:59"];
- }
- if(!empty($param['endTime'])&& !empty($param['startTime'])){
- $where['create_time'] = ["between",[$param['startTime']." 00:00:00",$param['endTime']." 23:59:59"]];
- }
- switch ($param['inReceipt']) {
- case 1:
- $where["receipt_order_id"] = $param['receipt_order_id'];
- break;
- case 2:
- $where["receipt_order_id"] = ["neq",$param['receipt_order_id']];
- break;
- case 3:
- $where["receipt_order_id"] = "";
- }
- return $orderMainDao->getOrderListByWhere($where,$param);
- }
-
- /**
- * 删除采购单
- * @param $id
- * @return array
- */
- public function delAll($id){
- Db::startTrans();
- //1.删除采购单下的主订单
- $orderMainDao = new OrderMainDao();
- $delReceipt = $orderMainDao->delReceiptOrder($id);
- if (!$delReceipt['flag']) {
- Db::rollback();
- return $delReceipt;
- }
- //2.删除采购单
- $model = new ReceiptOrderDao();
- $delRe = $model->del($id);
- if (!$delRe['flag']) {
- Db::rollback();
- return $delRe;
- }
- Db::commit();
- return Util::returnArrSu();
- }
- }
|