StoreOrderReceiptDao.php 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace app\common\dao\store\order;
  3. use app\common\dao\BaseDao;
  4. use app\common\model\store\order\StoreOrderReceipt;
  5. use app\common\model\user\User;
  6. class StoreOrderReceiptDao extends BaseDao
  7. {
  8. protected function getModel(): string
  9. {
  10. return StoreOrderReceipt::class;
  11. }
  12. public function search(array $where)
  13. {
  14. if((isset($where['order_type']) && $where['order_type'] !== '') || (isset($where['keyword']) && $where['keyword'] !== '')){
  15. $query = StoreOrderReceipt::hasWhere('storeOrder',function($query)use($where){
  16. switch ($where['order_type'])
  17. {
  18. case 1:
  19. $query->where('StoreOrder.paid',0)->where('StoreOrder.is_del',0);
  20. break; // 未支付
  21. case 2:
  22. $query->where('StoreOrder.paid',1)->where('StoreOrder.status',0)->where('StoreOrder.is_del',0);
  23. break; // 待发货
  24. case 3:
  25. $query->where('StoreOrder.status',1)->where('StoreOrder.is_del',0);
  26. break; // 待收货
  27. case 4:
  28. $query->where('StoreOrder.status',2)->where('StoreOrder.is_del',0);
  29. break; // 待评价
  30. case 5:
  31. $query->where('StoreOrder.status',3)->where('StoreOrder.is_del',0);
  32. break; // 交易完成
  33. case 6:
  34. $query->where('StoreOrder.status',-1)->where('StoreOrder.is_del',0);
  35. break; // 已退款
  36. case 7:
  37. $query->where('StoreOrder.is_del',1);
  38. break; // 已删除
  39. case 8:
  40. $query->where('StoreOrder.is_del', 0);
  41. break; //全部
  42. default:
  43. $query->where(true);
  44. break; //全部
  45. }
  46. $query->when(isset($where['keyword']) && $where['keyword'] !== '' ,function($query)use($where){
  47. $query->whereLike("order_sn|real_name|user_phone","%{$where['keyword']}%");
  48. });
  49. });
  50. }else{
  51. $query = StoreOrderReceipt::alias('StoreOrderReceipt');
  52. }
  53. $query->when(isset($where['status']) && $where['status'] !== '' ,function($query)use($where){
  54. $query->where('StoreOrderReceipt.status',$where['status']);
  55. })
  56. ->when(isset($where['date']) && $where['date'] !== '' ,function($query)use($where){
  57. getModelTime($query,$where['date'],'StoreOrderReceipt.create_time');
  58. })
  59. ->when(isset($where['receipt_sn']) && $where['receipt_sn'] !== '' ,function($query)use($where){
  60. $query->where('StoreOrderReceipt.receipt_sn',$where['receipt_sn']);
  61. })
  62. ->when(isset($where['username']) && $where['username'] !== '' ,function($query)use($where){
  63. $uid = User::whereLike('nickname|phone',"%{$where['username']}%")->column('uid');
  64. $query->where('StoreOrderReceipt.uid','in',$uid);
  65. })
  66. ->when(isset($where['mer_id']) && $where['mer_id'] !== '' ,function($query)use($where){
  67. $query->where('StoreOrderReceipt.mer_id',$where['mer_id']);
  68. })
  69. ->when(isset($where['uid']) && $where['uid'] !== '' ,function($query)use($where){
  70. $query->where('StoreOrderReceipt.uid',$where['uid']);
  71. })
  72. ;
  73. return $query->order('StoreOrderReceipt.create_time DESC');
  74. }
  75. public function updateBySn(string $receipt_sn,$data)
  76. {
  77. return $this->getModel()::getDB()->where('receipt_sn',$receipt_sn)->update($data);
  78. }
  79. public function deleteByOrderId($id)
  80. {
  81. return $this->getModel()::getDB()->where('order_id',$id)->delete();
  82. }
  83. }