酒店预订平台
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

294 строки
9.1 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\dao;
  9. use app\admin\command\Util;
  10. use app\admin\model\CfItem;
  11. use app\admin\model\OrderItem;
  12. use app\admin\model\Purchase;
  13. use think\Exception;
  14. class OrderItemDao
  15. {
  16. /**
  17. * 新增、更新记录
  18. * @param $param
  19. * @param $orderId
  20. * @return array|string
  21. */
  22. public function modify($param, $orderId)
  23. {
  24. $itemInfo = $this->getItemInfo($param['item_id']);
  25. if (!$itemInfo['flag']){
  26. return $itemInfo;
  27. }
  28. try{
  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. "area_name" => $itemInfo['data']['area_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" => empty($param['customer_comments'])?"":$param['customer_comments'],
  48. "trade_order_number" => $param['trade_order_number'],
  49. "purchase_user_id" => $param['purchase_user_id'],
  50. "purchase_user" => $param['purchase_user'],
  51. "supplier_id" => $param['supplier_id'],
  52. "supplier_name" => $param['supplier_name'],
  53. "del_flag"=>0
  54. ];
  55. $model = new OrderItem();
  56. if (empty($param['id'])) {
  57. $id = $model->insertGetId($data);
  58. return Util::returnArrSu("",$id);
  59. }else {
  60. $model->save($data,["id"=>$param['id']]);
  61. return Util::returnArrSu("",$param['id']);
  62. }
  63. }catch (Exception $e){
  64. return Util::returnArrEr("更新附加项目子订单失败:".$e->getMessage());
  65. }
  66. }
  67. /**
  68. * 获取附加项目信息
  69. * @param $id
  70. * @return array
  71. */
  72. public function getItemInfo($id)
  73. {
  74. try {
  75. $model = new CfItem();
  76. $result = $model->where(["id" => $id])->find();
  77. if ($result == null) {
  78. return Util::returnArrEr("获取附加项目信息失败:" . $id);
  79. }
  80. return Util::returnArrSu("",$result->toArray());
  81. } catch (Exception $e) {
  82. return Util::returnArrEr("获取附加项目信息失败:" . $id);
  83. }
  84. }
  85. /**
  86. * 设置子订单金额
  87. * @param int $subOrderId
  88. * @return array
  89. */
  90. public function setSubOrderAmount( int $subOrderId) {
  91. try{
  92. $purchaseModel = new Purchase();
  93. $purchaseList = $purchaseModel->where(["order_detail_id"=>$subOrderId,"del_flag"=>0])->select()->toArray();
  94. $cost = 0;
  95. $amount = 0;
  96. $count = 0;
  97. foreach ($purchaseList as $purchase) {
  98. $cost += $purchase['total_cost'];
  99. $amount += $purchase['total_price'];
  100. $count += $purchase['count'];
  101. }
  102. //更新数据
  103. $oderItem = new OrderItem();
  104. $oderItem->save(["total_price"=>$amount,"total_cost"=>$cost,"prod_num"=>$count,"profit"=>$amount-$cost],["id"=>$subOrderId]);
  105. return Util::returnArrSu();
  106. }catch (Exception $e){
  107. return Util::returnArrEr("更新附加项目订单子表金额失败:".$subOrderId);
  108. }
  109. }
  110. /**
  111. * 获取详情
  112. * @param $id
  113. * @return array
  114. */
  115. public function getInfoById($id) {
  116. try {
  117. $model = new OrderItem();
  118. $result = $model->where(["id" => $id])->find();
  119. if ($result == null) {
  120. return Util::returnArrEr("获取子订单信息失败:" . $id);
  121. }
  122. return Util::returnArrSu("", $result->toArray());
  123. } catch (Exception $e) {
  124. return Util::returnArrEr("获取子订单信息失败:" . $id);
  125. }
  126. }
  127. /**
  128. * 删除记录
  129. * @param $order_id
  130. */
  131. public function delete($order_id){
  132. $model = new OrderItem();
  133. $model->save(["del_flag"=>1],["order_id"=>$order_id]);
  134. }
  135. /**
  136. * 删除记录
  137. * @param $id
  138. */
  139. public function delById($id) {
  140. $model = new OrderItem();
  141. $model->save(["del_flag"=>1],["id"=>$id]);
  142. }
  143. /**
  144. * 获取附加项目子订单列表
  145. * @param $orderId
  146. * @return array
  147. */
  148. public function getListByOrderId($orderId){
  149. $subOrderModel = new OrderItem();
  150. try {
  151. $subOrderList = $subOrderModel->where(["order_id" => $orderId, "del_flag" => 0])->select()->toArray();
  152. if (null == $subOrderList) {
  153. return Util::returnArrSu("",[]);
  154. }
  155. return Util::returnArrSu("", $subOrderList);
  156. }catch (Exception $e) {
  157. return Util::returnArrEr("获取附加项目订单列表异常".$e->getMessage());
  158. }
  159. }
  160. /**=====================================**/
  161. /**
  162. * 更新付款单下的状态
  163. * @param $paymentOrderId
  164. * @param $status
  165. * @return array
  166. */
  167. public function setPaymentOrderStatus($paymentOrderId, $status){
  168. try{
  169. $model = new OrderItem();
  170. $model->save(['payment_order_status'=>$status],['payment_order_id'=>$paymentOrderId]);
  171. return Util::returnArrSu();
  172. }catch (Exception $e){
  173. return Util::returnArrEr("更新收款单下的附加项目订单状态失败".$e->getMessage());
  174. }
  175. }
  176. /**
  177. * 添加附加项目订单到付款单下
  178. * @param $paymentOrder
  179. * @param $orderIds
  180. * @return array
  181. */
  182. public function addSubOrderInPayment($paymentOrder,$orderIds){
  183. try{
  184. $data = [
  185. "payment_order_id"=>$paymentOrder['id'],
  186. "payment_order_status"=>$paymentOrder['status'],
  187. "payment_order_name"=>$paymentOrder['name']
  188. ];
  189. $model = new OrderItem();
  190. $model->save($data,["id"=>["in",$orderIds]]);
  191. return Util::returnArrSu();
  192. }catch (Exception $e){
  193. return Util::returnArrEr("添加附加项目订单到付款单下失败".$e->getMessage());
  194. }
  195. }
  196. /**
  197. * 将附加项目订单从付款单下移除
  198. * @param $orderIds
  199. * @return array
  200. */
  201. public function removeSubOrderFormPayment($orderIds){
  202. try{
  203. $data = [
  204. "payment_order_id"=>0,
  205. "payment_order_status"=>0,
  206. "payment_order_name"=>""
  207. ];
  208. $model = new OrderItem();
  209. $model->save($data,["id"=>["in",$orderIds]]);
  210. return Util::returnArrSu();
  211. }catch (Exception $e){
  212. return Util::returnArrEr("将附加项目订单从付款单下移除失败".$e->getMessage());
  213. }
  214. }
  215. /**
  216. * 删除采购单
  217. * @param $id
  218. * @return array
  219. */
  220. public function delPaymentOrder($id){
  221. try{
  222. $data = [
  223. "payment_order_id"=>0,
  224. "payment_order_status"=>0,
  225. "payment_order_name"=>""
  226. ];
  227. $model = new OrderItem();
  228. $model->save($data,["payment_order_id"=>$id]);
  229. return Util::returnArrSu();
  230. }catch (Exception $e){
  231. return Util::returnArrEr("将附加项目订单从付款单下移除失败".$e->getMessage());
  232. }
  233. }
  234. /**
  235. * 获取主订单ID
  236. * @param $payment_order_id
  237. * @return array
  238. */
  239. public function getOrderMainIdByPayment($payment_order_id){
  240. $subOrderModel = new OrderItem();
  241. try {
  242. $subOrderList = $subOrderModel->where(["payment_order_id" => $payment_order_id, "del_flag" => 0])->select()->toArray();
  243. if (null == $subOrderList) {
  244. return [];
  245. }
  246. $id = [];
  247. foreach ($subOrderList as $val){
  248. $id[] = $val['order_id'];
  249. }
  250. return array_unique($id);
  251. }catch (Exception $e) {
  252. return [];
  253. }
  254. }
  255. /**
  256. * 获取订单列表
  257. * @param $orderIds
  258. * @return array
  259. */
  260. public function getOrderListByOrderIds($orderIds){
  261. $subOrderModel = new OrderItem();
  262. try {
  263. $subOrderList = $subOrderModel->where(["order_id" => ["in",$orderIds], "del_flag" => 0])->select()->toArray();
  264. if (null == $subOrderList) {
  265. return [];
  266. }
  267. return $subOrderList;
  268. }catch (Exception $e) {
  269. return [];
  270. }
  271. }
  272. }