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

107 lines
3.3 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: nizongfeng
  5. * Date: 2021/10/27
  6. * Time: 13:36
  7. */
  8. namespace app\admin\service;
  9. use app\admin\command\Util;
  10. use app\admin\model\CfItem;
  11. use app\admin\model\OrderHotel;
  12. use app\admin\model\OrderItem;
  13. use app\admin\model\Purchase;
  14. use think\Exception;
  15. class OrderHotelDao
  16. {
  17. /**
  18. * 添加失败
  19. * @param $param
  20. * @param $orderId
  21. * @return array|string
  22. */
  23. public function addInfo($param, $orderId)
  24. {
  25. $itemInfo = $this->getItemInfo($param['item_id']);
  26. if (!$itemInfo['flag']){
  27. return $itemInfo;
  28. }
  29. //设置入参
  30. $data = [
  31. "order_id" => $orderId,
  32. //附加项目
  33. "item_id"=>$itemInfo['data']['id'],
  34. "item_type"=>$itemInfo['data']['item_type'],
  35. "item_name"=>$itemInfo['data']['item_name'],
  36. "item_memo"=>$itemInfo['data']['item_memo'],
  37. "item_unit"=>$itemInfo['data']['item_unit'],
  38. "country_name" => $itemInfo['data']['country_name'],
  39. "province_name" => $itemInfo['data']['province_name'],
  40. "city_name" => $itemInfo['data']['city_name'],
  41. "detail_address" => $itemInfo['data']['detail_address'],
  42. //其他
  43. "check_in_date" => $param['check_in_date'],
  44. "confirm_status" => $param['confirm_status'],
  45. "confirm_no" => $param['confirm_no'],
  46. "customer_name" => $param['customer_name'],
  47. "customer_comments" => $param['customer_comments'],
  48. "trade_order_number" => $param['trade_order_number'],
  49. "res_person" => $param['res_person'],
  50. "res_person_id" => $param['res_person_id']
  51. ];
  52. $orderHotelModel = new OrderHotel();
  53. $id = $orderHotelModel->insertGetId($data);
  54. return Util::returnArrSu($id);
  55. }
  56. /**
  57. * 获取附加项目信息
  58. * @param $id
  59. * @return array
  60. */
  61. public function getItemInfo($id)
  62. {
  63. try {
  64. $model = new CfItem();
  65. $result = $model->where(["id" => $id])->find();
  66. if ($result == null) {
  67. return Util::returnArrEr("获取附加项目信息失败" . $id);
  68. }
  69. return Util::returnArrSu($result);
  70. } catch (Exception $e) {
  71. return Util::returnArrEr("获取附加项目信息失败" . $id);
  72. }
  73. }
  74. /**
  75. * 设置子订单金额
  76. * @param int $subOrderId
  77. * @return array
  78. */
  79. public static function setSubOrderAmount( int $subOrderId) {
  80. try{
  81. $purchaseModel = new Purchase();
  82. $purchaseList = $purchaseModel->where(["order_detail_id"=>$subOrderId,"del_flag"=>0])->select();
  83. $cost = 0;
  84. $amount = 0;
  85. $count = 0;
  86. foreach ($purchaseList as $purchase) {
  87. $cost += $purchase['total_cost'];
  88. $amount += $purchase['total_price'];
  89. $count += $purchase['count'];
  90. }
  91. //更新数据
  92. $oderItem = new OrderItem();
  93. $oderItem->update(["total_price"=>$amount,"total_cost"=>$cost,"count"=>$count])->where(["id"=>$subOrderId]);
  94. return Util::returnArrSu();
  95. }catch (Exception $e){
  96. return Util::returnArrEr("更新附加项目订单子表金额失败".$subOrderId);
  97. }
  98. }
  99. }