酒店预订平台
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.
 
 
 
 
 
 

200 lines
5.6 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. //3.设置订单状态
  60. $orderIds = $orderDao->getOrderMainIdsByReceipt($id);
  61. foreach ($orderIds as $orderId) {
  62. $setRe = $orderDao->setOrderAmount($orderId);
  63. if (!$setRe['flag']) {
  64. Db::rollback();
  65. return $setRe;
  66. }
  67. }
  68. Db::commit();
  69. return Util::returnArrSu();
  70. }
  71. /**
  72. * 添加主订单到采购单
  73. * @param $id
  74. * @param $order_id
  75. * @return array
  76. */
  77. public function addOrderMain($id,$order_id){
  78. $model = new ReceiptOrderDao();
  79. $infoRe = $model->getInfoById($id);
  80. if (!$infoRe['flag']) {
  81. return $infoRe;
  82. }
  83. $orderIds = explode(",", $order_id);
  84. $orderMainDao = new OrderMainDao();
  85. $addRe = $orderMainDao->addOrderMainInReceipt($infoRe['data'],$orderIds);
  86. if (!$addRe['flag']) {
  87. return $addRe;
  88. }
  89. return Util::returnArrSu();
  90. }
  91. /**
  92. * 移除采购单
  93. * @param $order_id
  94. * @return array
  95. */
  96. public function removeOrderMain($order_id){
  97. $orderIds = explode(",", $order_id);
  98. $orderMainDao = new OrderMainDao();
  99. return $orderMainDao->removeOrderMainFormReceipt($orderIds);
  100. }
  101. /**
  102. * 获取主订单列表
  103. * @param $param
  104. * @return array
  105. */
  106. public function getOrderMainList($param){
  107. $orderMainDao = new OrderMainDao();
  108. $where = ["id"=>["neq",""]];
  109. if (!empty($param['order_id'])) {
  110. $where["order"]=$param['order_id'];
  111. }
  112. if (!empty($param['channel_id'])) {
  113. $where['channel_id'] = $param['channel_id'];
  114. }
  115. if ($param['order_status'] != '') {
  116. $where['order_status'] = $param['order_status'];
  117. }
  118. if (!empty($param['commissioner_id'])) {
  119. $where['commissioner_id'] = $param['commissioner_id'];
  120. }
  121. if (!empty($param['user_name'])) {
  122. $where['user_name'] = ["like","%".$param['user_name']."%"];
  123. }
  124. if (!empty($param['user_phone'])) {
  125. $where['user_phone'] = $param['user_phone'];
  126. }
  127. if (!empty($param['create_id'])) {
  128. $where['create_id'] = $param['create_id'];
  129. }
  130. //金额区间查询
  131. if (!empty($param['startMoney'])&& empty($param['endMoney'])) {
  132. $where['total_amount'] = [">=",$param['startMoney']];
  133. }
  134. if (!empty($param['endMoney']) && empty($param['startMoney'])) {
  135. $where['total_amount'] = ["<=",$param['endMoney']];
  136. }
  137. if (!empty($param['endMoney']) && !empty($param['startMoney'])) {
  138. $where['total_amount'] = ["between",[$param['startMoney'],$param['endMoney']]];
  139. }
  140. //时间区间查询
  141. if (!empty($param['startTime']) && empty($param['endTime'])) {
  142. $where['create_time'] = [">=",$param['startTime']." 00:00:00"];
  143. }
  144. if (!empty($param['endTime'])&& empty($param['startTime'])) {
  145. $where['create_time'] = ["<=",$param['endTime']." 23:59:59"];
  146. }
  147. if(!empty($param['endTime'])&& !empty($param['startTime'])){
  148. $where['create_time'] = ["between",[$param['startTime']." 00:00:00",$param['endTime']." 23:59:59"]];
  149. }
  150. switch ($param['inReceipt']) {
  151. case 1:
  152. $where["receipt_order_id"] = $param['receipt_order_id'];
  153. break;
  154. case 2:
  155. $where["receipt_order_id"] = ["neq",$param['receipt_order_id']];
  156. break;
  157. case 3:
  158. $where["receipt_order_id"] = "";
  159. }
  160. return $orderMainDao->getOrderListByWhere($where,$param);
  161. }
  162. /**
  163. * 删除采购单
  164. * @param $id
  165. * @return array
  166. */
  167. public function delAll($id){
  168. Db::startTrans();
  169. //1.删除采购单下的主订单
  170. $orderMainDao = new OrderMainDao();
  171. $delReceipt = $orderMainDao->delReceiptOrder($id);
  172. if (!$delReceipt['flag']) {
  173. Db::rollback();
  174. return $delReceipt;
  175. }
  176. //2.删除采购单
  177. $model = new ReceiptOrderDao();
  178. $delRe = $model->del($id);
  179. if (!$delRe['flag']) {
  180. Db::rollback();
  181. return $delRe;
  182. }
  183. Db::commit();
  184. return Util::returnArrSu();
  185. }
  186. }