$params['code']]); if (empty($e_coupon_code)) { throw new \Exception('该核销码不存在'); } $e_coupon_user_coupon = ElectronCouponUserCoupon::findOne(['id' => $e_coupon_code['user_e_coupon_id']]); $e_coupon = ElectronCoupon::findOne(['id' => $e_coupon_user_coupon['e_coupon_id']]); $data['pic'] = $e_coupon['pic']; $data['name'] = $e_coupon['name']; $data['money'] = $e_coupon['price']; $data['clerk_nums'] = $e_coupon_code['amount']; return $data; case "post": $user = User::findOne(['id' => $params['user_id']]); $clerk = ClerkUser::getOne([ ['mall_id' => $params['mall_id']], ['user_id' => $params['user_id']], ['status' => StatusEnum::ENABLED]], true, [], [], 'id,user_id,store_id,mall_id'); if (empty($clerk)) { throw new \Exception('您不是核销员'); } $params['store_id'] = $clerk['store_id']; $params['clerk_id'] = $clerk['id']; $params['mobile'] = $user['mobile'] ?? ''; $params['clerk_admin_id'] = $params['user_id']; $params['clerk_user_id'] = $params['user_id']; $result = ElectronCouponCode::doClerkCode($params); if ($result == false) { throw new \Exception(ElectronCouponCode::getStaticError()); } return $result; } break; case ClerkEnum::O2O_STORE_CLERK_COUPON_CODE_PRE: switch ($params['method']) { case "get": $coupon_user = StoreVerificationCouponsUser::findOne(['mall_id' => $params['mall_id'], 'clerk_code' => $params['clerk_code']]); if (empty($coupon_user)) { throw new \Exception('核销券不存在'); } $coupon = StoreVerificationCoupons::findOne(['id' => $coupon_user['coupon_id'], 'status' => StatusEnum::ENABLED]); if (empty($coupon)) { throw new \Exception('核销券不存在或已删除'); } $store = Store::findOne($coupon_user['store_id']); $returnData = []; $returnData['detail'] = [ 'name' => $coupon['name'], 'num' => $coupon_user['num'], 'used_num' => $coupon_user['used_num'], 'logo_img' => $store['logo_img'], 'store_name' => $store['store_name'], 'start_at' => date('Y-m-d H:i:s', $coupon['start_at']), 'end_at' => date('Y-m-d H:i:s', $coupon['end_at']), ]; return $returnData; case "post": $store_clerk = StoreClerk::findOne(['user_id' => $params['user_id']]); $params['clerk_id'] = $store_clerk['id'] ?? 0; return StoreClerkLog::clerkStoreVerificationByClerkCode($params); } break; case ClerkEnum::PLATFORM_ORDER_BY_O2O_STORE_CLERK_CODE_PRE: switch ($params['method']) { case "get": $clerk_detail = PlatformStoreClerkOrderDetail::getOrderByCode($params['mall_id'], $params['clerk_code']); if (!$clerk_detail) { throw new \Exception('该订单不存在'); } if ($clerk_detail['clerk_status'] > 0) { throw new \Exception('该订单已核销'); } $params['order_id'] = $clerk_detail['order_id']; $params['goods_id'] = $clerk_detail['goods_id']; $params['order_detail_id'] = $clerk_detail['order_detail_id']; return StoreClerkLog::getPlatformStoreOrderDetail($params); case "post": return StoreClerkLog::clerkPlatformStoreOrderDetail($params); } break; default: return []; } } public static function clerkDetail($params) { if (empty($params['clerk_log_id']) || empty($params['mall_id']) || empty($params['user_id']) || empty($params['type'])) { return []; } $clerk_code_pre = $params['type']; switch ($clerk_code_pre) { case ClerkEnum::O2O_SELF_PICKUP_ORDERS_CLERK_CODE_PRE: return StoreOrder::getClerkLogDetail($params); case ClerkEnum::ELECTRON_COUPON_CLERK_CODE_PRE: if (!MallAddons::isInstall($params['mall_id'], 'ElectronCoupon')) { return []; } $clerk_log_model = \common\models\common\ClerkLog::findOne(['id' => $params['clerk_log_id'], 'mall_id' => $params['mall_id'], 'user_id' => $params['user_id'], 'type' => $params['type']]); $params['code'] = $clerk_log_model['clerk_code']; $extra = json_decode($clerk_log_model['extra'],true); $e_coupon = ElectronCoupon::findOne(['id' => $extra['e_coupon_id']]); $data['pic'] = $e_coupon['pic']; $data['name'] = $e_coupon['name']; $data['money'] = $e_coupon['price']; return $data; case ClerkEnum::O2O_STORE_CLERK_COUPON_CODE_PRE: $clerk_log_model = \common\models\common\ClerkLog::findOne(['id' => $params['clerk_log_id'], 'mall_id' => $params['mall_id'], 'user_id' => $params['user_id'], 'type' => $params['type']]); $extra = json_decode($clerk_log_model['extra'],true); $coupon_user = StoreVerificationCouponsUser::findOne(['mall_id' => $params['mall_id'], 'clerk_code' => $extra['store_verification_coupons_user_id']]); if (empty($coupon_user)) { throw new \Exception('核销券不存在'); } $coupon = StoreVerificationCoupons::findOne(['id' => $coupon_user['coupon_id'], 'status' => StatusEnum::ENABLED]); if (empty($coupon)) { throw new \Exception('核销券不存在或已删除'); } $store = Store::findOne($coupon_user['store_id']); $returnData = []; $returnData['detail'] = [ 'name' => $coupon['name'], 'num' => $coupon_user['num'], 'used_num' => $coupon_user['used_num'], 'logo_img' => $store['logo_img'], 'store_name' => $store['store_name'], 'start_at' => date('Y-m-d H:i:s', $coupon['start_at']), 'end_at' => date('Y-m-d H:i:s', $coupon['end_at']), ]; return $returnData; case ClerkEnum::PLATFORM_ORDER_BY_O2O_STORE_CLERK_CODE_PRE: $clerk_log_model = \common\models\common\ClerkLog::findOne(['id' => $params['clerk_log_id'], 'mall_id' => $params['mall_id'], 'user_id' => $params['user_id'], 'type' => $params['type']]); $extra = json_decode($clerk_log_model['extra'],true); $clerk_detail = PlatformStoreClerkOrderDetail::find()->where(['id'=>$extra['platform_store_clerk_order_detail_id']])->asArray()->one(); if (!$clerk_detail) { throw new \Exception('该订单不存在'); } $params['order_id'] = $clerk_detail['order_id']; $params['goods_id'] = $clerk_detail['goods_id']; $params['order_detail_id'] = $clerk_detail['order_detail_id']; $params['clerk_code'] = $clerk_log_model['clerk_code']; return StoreClerkLog::getPlatformStoreOrderDetail($params); default: return []; } } }