| | |
| | | namespace app\common\model\order; |
| | | |
| | | use app\common\enum\order\OrderSourceEnum; |
| | | use app\common\enum\supplier\SupplierType; |
| | | use app\common\exception\BaseException; |
| | | use app\common\library\easywechat\AppWx; |
| | | use app\common\library\easywechat\wx\WxOrder; |
| | |
| | | 'order_source_text', |
| | | 'pay_end_time_text', |
| | | ]; |
| | | |
| | | /** |
| | | * 关联预售定金订单 |
| | | * @return \think\model\relation\HasOne |
| | |
| | | */ |
| | | public function supplier() |
| | | { |
| | | return $this->belongsTo('app\\common\\model\\supplier\\Supplier', 'shop_supplier_id', 'shop_supplier_id')->field(['shop_supplier_id', 'name', 'user_id']); |
| | | return $this->belongsTo('app\\common\\model\\supplier\\Supplier', 'shop_supplier_id', 'shop_supplier_id')->field(['shop_supplier_id', 'name', 'user_id', 'referee_id','supplier_type','gift_type']); |
| | | } |
| | | |
| | | /** |
| | |
| | | // 回退用户积分 |
| | | $user = UserModel::detail($this['user_id']); |
| | | $describe = "订单取消:{$this['order_no']}"; |
| | | $this['points_num'] > 0 && $user->setIncPoints($this['points_num'], $describe); |
| | | $this['points_num'] > 0 && $user->setIncPoints($this['points_num'], $describe,0,true,($this['supplier']['supplier_type'] == SupplierType::GROUPBUYING?1:0)); |
| | | //预售订单 |
| | | if ($this['order_source'] == OrderSourceEnum::ADVANCE) { |
| | | if ($this['advance']['money_return'] == 1) {//预售订单退定金 |
| | |
| | | |
| | | return $num; |
| | | } |
| | | |
| | | /** |
| | | * 获取用户是否购买过指定商品 |
| | | * @param int $user_id 用户ID |
| | | * @param array $product_ids 商品ID数组 |
| | | * @param bool $is_complete 是否只查询已完成的订单 |
| | | * @return array|bool |
| | | */ |
| | | public static function getOrderProductIds($user_id, $product_ids = [], $is_complete = false) |
| | | { |
| | | // 构建查询条件 |
| | | $model = (new static())->alias('o') |
| | | ->join('order_product op', 'o.order_id = op.order_id') |
| | | ->where('o.user_id', '=', $user_id) |
| | | ->where('o.order_source', '=', OrderSourceEnum::MASTER) |
| | | ->where('o.is_delete', '=', 0); |
| | | // 如果指定了商品ID,则只查询这些商品 |
| | | if (!empty($product_ids)) { |
| | | $model->where('op.product_id', 'in', $product_ids); |
| | | } |
| | | |
| | | // 如果只查询已完成的订单 |
| | | if ($is_complete) { |
| | | $model->where('o.order_status', '=', 30); // 已完成状态 |
| | | } else { |
| | | // 排除已取消的订单 |
| | | $model->where('o.order_status', '<>', 20); |
| | | } |
| | | |
| | | // 查询用户购买过的商品ID |
| | | $result = $model->group('op.product_id')->column('op.product_id'); |
| | | return $result ?true:false; |
| | | } |
| | | } |