1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace app\common\dao\store\order;
- use app\common\dao\BaseDao;
- use app\common\model\store\order\StoreOrderReceipt;
- use app\common\model\user\User;
- class StoreOrderReceiptDao extends BaseDao
- {
- protected function getModel(): string
- {
- return StoreOrderReceipt::class;
- }
- public function search(array $where)
- {
- if((isset($where['order_type']) && $where['order_type'] !== '') || (isset($where['keyword']) && $where['keyword'] !== '')){
- $query = StoreOrderReceipt::hasWhere('storeOrder',function($query)use($where){
- switch ($where['order_type'])
- {
- case 1:
- $query->where('StoreOrder.paid',0)->where('StoreOrder.is_del',0);
- break; // 未支付
- case 2:
- $query->where('StoreOrder.paid',1)->where('StoreOrder.status',0)->where('StoreOrder.is_del',0);
- break; // 待发货
- case 3:
- $query->where('StoreOrder.status',1)->where('StoreOrder.is_del',0);
- break; // 待收货
- case 4:
- $query->where('StoreOrder.status',2)->where('StoreOrder.is_del',0);
- break; // 待评价
- case 5:
- $query->where('StoreOrder.status',3)->where('StoreOrder.is_del',0);
- break; // 交易完成
- case 6:
- $query->where('StoreOrder.status',-1)->where('StoreOrder.is_del',0);
- break; // 已退款
- case 7:
- $query->where('StoreOrder.is_del',1);
- break; // 已删除
- case 8:
- $query->where('StoreOrder.is_del', 0);
- break; //全部
- default:
- $query->where(true);
- break; //全部
- }
- $query->when(isset($where['keyword']) && $where['keyword'] !== '' ,function($query)use($where){
- $query->whereLike("order_sn|real_name|user_phone","%{$where['keyword']}%");
- });
- });
- }else{
- $query = StoreOrderReceipt::alias('StoreOrderReceipt');
- }
- $query->when(isset($where['status']) && $where['status'] !== '' ,function($query)use($where){
- $query->where('StoreOrderReceipt.status',$where['status']);
- })
- ->when(isset($where['date']) && $where['date'] !== '' ,function($query)use($where){
- getModelTime($query,$where['date'],'StoreOrderReceipt.create_time');
- })
- ->when(isset($where['receipt_sn']) && $where['receipt_sn'] !== '' ,function($query)use($where){
- $query->where('StoreOrderReceipt.receipt_sn',$where['receipt_sn']);
- })
- ->when(isset($where['username']) && $where['username'] !== '' ,function($query)use($where){
- $uid = User::whereLike('nickname|phone',"%{$where['username']}%")->column('uid');
- $query->where('StoreOrderReceipt.uid','in',$uid);
- })
- ->when(isset($where['mer_id']) && $where['mer_id'] !== '' ,function($query)use($where){
- $query->where('StoreOrderReceipt.mer_id',$where['mer_id']);
- })
- ->when(isset($where['uid']) && $where['uid'] !== '' ,function($query)use($where){
- $query->where('StoreOrderReceipt.uid',$where['uid']);
- })
- ;
- return $query->order('StoreOrderReceipt.create_time DESC');
- }
- public function updateBySn(string $receipt_sn,$data)
- {
- return $this->getModel()::getDB()->where('receipt_sn',$receipt_sn)->update($data);
- }
- public function deleteByOrderId($id)
- {
- return $this->getModel()::getDB()->where('order_id',$id)->delete();
- }
- }
|