| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- <?php
- namespace addons\Store\common\global_func;
- use addons\Clerk\common\models\ClerkUser;
- use addons\ElectronCoupon\common\models\ElectronCoupon;
- use addons\ElectronCoupon\common\models\ElectronCouponCode;
- use addons\ElectronCoupon\common\models\ElectronCouponUserCoupon;
- use addons\PlatformStoreClerk\common\models\PlatformStoreClerkOrderDetail;
- use addons\Store\addons\Verification\common\models\StoreVerificationCoupons;
- use addons\Store\addons\Verification\common\models\StoreVerificationCouponsUser;
- use addons\Store\common\models\Store;
- use addons\Store\common\models\StoreClerk;
- use addons\Store\common\models\StoreClerkLog;
- use addons\Store\common\models\StoreOrder;
- use common\enums\ClerkEnum;
- use common\enums\StatusEnum;
- use common\models\mall\MallAddons;
- use common\models\user\User;
- class Clerk
- {
- public static function clerk($params)
- {
- if (empty($params['clerk_code']) || empty($params['mall_id']) || empty($params['user_id']) || empty($params['method'])) {
- return [];
- }
- $clerk_code = (string)$params['clerk_code'];
- $clerk_code_pre = $clerk_code[0] . $clerk_code[1];
- switch ($clerk_code_pre) {
- case ClerkEnum::O2O_SELF_PICKUP_ORDERS_CLERK_CODE_PRE:
- switch ($params['method']) {
- case "get":
- return StoreOrder::getStoreSelfPickupOrderClerkData($params);
- case "post":
- return StoreOrder::storeSelfPickupOrderClerk($params);
- }
- break;
- case ClerkEnum::ELECTRON_COUPON_CLERK_CODE_PRE:
- if (!MallAddons::isInstall($params['mall_id'], 'ElectronCoupon')) {
- return [];
- }
- $params['code'] = $params['clerk_code'];
- switch ($params['method']) {
- case "get":
- $e_coupon_code = ElectronCouponCode::findOne(['code' => $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 [];
- }
- }
- }
|