酒店预订平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

190 lines
5.3 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: nizongfeng
  5. * Date: 2021/11/10
  6. * Time: 11:06
  7. */
  8. namespace app\admin\service;
  9. use app\admin\command\Util;
  10. use think\Db;
  11. use think\Exception;
  12. class ReceiptOrderService
  13. {
  14. /**
  15. * 保存详情
  16. * @param $param
  17. * @return array
  18. */
  19. public function save($param){
  20. //保存
  21. $dao = new ReceiptOrderDao();
  22. $addRe = $dao->save($param);
  23. if (!$addRe['flag']) {
  24. return $addRe;
  25. }
  26. return Util::returnArrSu();
  27. }
  28. /**
  29. * 获取列表
  30. * @param $param
  31. * @return array
  32. */
  33. public function getList($param){
  34. $dao = new ReceiptOrderDao();
  35. return $dao->getList($param);
  36. }
  37. /**
  38. * 设置状态
  39. * @param $id
  40. * @param $status
  41. * @return array
  42. */
  43. public function setStatus($id,$status) {
  44. Db::startTrans();
  45. //1.设置收购单状态
  46. $dao = new ReceiptOrderDao();
  47. $statusRe = $dao->setStatus($id,$status);
  48. if (!$statusRe['flag']) {
  49. Db::rollback();
  50. return$statusRe;
  51. }
  52. //2.设置所有订单主表的状态
  53. $orderDao = new OrderMainDao();
  54. $orderRe = $orderDao->setReceiptOrderStatus($id,$status);
  55. if (!$orderRe['flag']) {
  56. Db::rollback();
  57. return $orderRe;
  58. }
  59. Db::commit();
  60. return Util::returnArrSu();
  61. }
  62. /**
  63. * 添加主订单到采购单
  64. * @param $id
  65. * @param $order_id
  66. * @return array
  67. */
  68. public function addOrderMain($id,$order_id){
  69. $model = new ReceiptOrderDao();
  70. $infoRe = $model->getInfoById($id);
  71. if (!$infoRe['flag']) {
  72. return $infoRe;
  73. }
  74. $orderIds = explode(",", $order_id);
  75. $orderMainDao = new OrderMainDao();
  76. $addRe = $orderMainDao->addOrderMainInReceipt($infoRe['data'],$orderIds);
  77. if (!$addRe['flag']) {
  78. return $addRe;
  79. }
  80. return Util::returnArrSu();
  81. }
  82. /**
  83. * 移除采购单
  84. * @param $order_id
  85. * @return array
  86. */
  87. public function removeOrderMain($order_id){
  88. $orderIds = explode(",", $order_id);
  89. $orderMainDao = new OrderMainDao();
  90. return $orderMainDao->removeOrderMainFormReceipt($orderIds);
  91. }
  92. /**
  93. * 获取主订单列表
  94. * @param $param
  95. * @return array
  96. */
  97. public function getOrderMainList($param){
  98. $orderMainDao = new OrderMainDao();
  99. $where = ["id"=>["neq",""]];
  100. if (!empty($param['order_id'])) {
  101. $where["order"]=$param['order_id'];
  102. }
  103. if (!empty($param['channel_id'])) {
  104. $where['channel_id'] = $param['channel_id'];
  105. }
  106. if ($param['order_status'] != '') {
  107. $where['order_status'] = $param['order_status'];
  108. }
  109. if (!empty($param['commissioner_id'])) {
  110. $where['commissioner_id'] = $param['commissioner_id'];
  111. }
  112. if (!empty($param['user_name'])) {
  113. $where['user_name'] = ["like","%".$param['user_name']."%"];
  114. }
  115. if (!empty($param['user_phone'])) {
  116. $where['user_phone'] = $param['user_phone'];
  117. }
  118. if (!empty($param['create_id'])) {
  119. $where['create_id'] = $param['create_id'];
  120. }
  121. //金额区间查询
  122. if (!empty($param['startMoney'])&& empty($param['endMoney'])) {
  123. $where['total_amount'] = [">=",$param['startMoney']];
  124. }
  125. if (!empty($param['endMoney']) && empty($param['startMoney'])) {
  126. $where['total_amount'] = ["<=",$param['endMoney']];
  127. }
  128. if (!empty($param['endMoney']) && !empty($param['startMoney'])) {
  129. $where['total_amount'] = ["between",[$param['startMoney'],$param['endMoney']]];
  130. }
  131. //时间区间查询
  132. if (!empty($param['startTime']) && empty($param['endTime'])) {
  133. $where['create_time'] = [">=",$param['startTime']." 00:00:00"];
  134. }
  135. if (!empty($param['endTime'])&& empty($param['startTime'])) {
  136. $where['create_time'] = ["<=",$param['endTime']." 23:59:59"];
  137. }
  138. if(!empty($param['endTime'])&& !empty($param['startTime'])){
  139. $where['create_time'] = ["between",[$param['startTime']." 00:00:00",$param['endTime']." 23:59:59"]];
  140. }
  141. switch ($param['inReceipt']) {
  142. case 1:
  143. $where["receipt_order_id"] = $param['receipt_order_id'];
  144. break;
  145. case 2:
  146. $where["receipt_order_id"] = ["neq",$param['receipt_order_id']];
  147. break;
  148. case 3:
  149. $where["receipt_order_id"] = "";
  150. }
  151. return $orderMainDao->getOrderListByWhere($where,$param);
  152. }
  153. /**
  154. * 删除采购单
  155. * @param $id
  156. * @return array
  157. */
  158. public function delAll($id){
  159. Db::startTrans();
  160. //1.删除采购单下的主订单
  161. $orderMainDao = new OrderMainDao();
  162. $delReceipt = $orderMainDao->delReceiptOrder($id);
  163. if (!$delReceipt['flag']) {
  164. Db::rollback();
  165. return $delReceipt;
  166. }
  167. //2.删除采购单
  168. $model = new ReceiptOrderDao();
  169. $delRe = $model->del($id);
  170. if (!$delRe['flag']) {
  171. Db::rollback();
  172. return $delRe;
  173. }
  174. Db::commit();
  175. return Util::returnArrSu();
  176. }
  177. }