Clerk.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace addons\ElectronCoupon\common\global_func;
  3. use addons\Clerk\common\models\ClerkUser;
  4. use addons\ElectronCoupon\common\models\ElectronCoupon;
  5. use addons\ElectronCoupon\common\models\ElectronCouponCode;
  6. use addons\ElectronCoupon\common\models\ElectronCouponUserCoupon;
  7. use common\enums\ClerkEnum;
  8. use common\enums\StatusEnum;
  9. use common\models\user\User;
  10. class Clerk
  11. {
  12. public static function clerk($params)
  13. {
  14. if (empty($params['clerk_code']) || empty($params['mall_id']) || empty($params['user_id']) || empty($params['method'])) {
  15. return [];
  16. }
  17. $clerk_code = (string)$params['clerk_code'];
  18. $clerk_code_pre = $clerk_code[0] . $clerk_code[1];
  19. switch ($clerk_code_pre) {
  20. case ClerkEnum::ELECTRON_COUPON_CLERK_CODE_PRE:
  21. $params['code'] = $params['clerk_code'];
  22. switch ($params['method']) {
  23. case "get":
  24. $e_coupon_code = ElectronCouponCode::findOne(['code' => $params['code']]);
  25. if (empty($e_coupon_code)) {
  26. throw new \Exception('该核销码不存在');
  27. }
  28. $e_coupon_user_coupon = ElectronCouponUserCoupon::findOne(['id' => $e_coupon_code['user_e_coupon_id']]);
  29. $e_coupon = ElectronCoupon::findOne(['id' => $e_coupon_user_coupon['e_coupon_id']]);
  30. $data['pic'] = $e_coupon['pic'];
  31. $data['name'] = $e_coupon['name'];
  32. $data['money'] = $e_coupon['price'];
  33. $data['clerk_nums'] = $e_coupon_code['amount'];
  34. return $data;
  35. case "post":
  36. $user = User::findOne(['id' => $params['user_id']]);
  37. $clerk = ClerkUser::getOne([
  38. ['mall_id' => $params['mall_id']],
  39. ['user_id' => $params['user_id']],
  40. ['status' => StatusEnum::ENABLED]], true, [], [], 'id,user_id,store_id,mall_id');
  41. if (empty($clerk)) {
  42. throw new \Exception('您不是核销员');
  43. }
  44. $params['store_id'] = $clerk['store_id'];
  45. $params['clerk_id'] = $clerk['id'];
  46. $params['mobile'] = $user['mobile'] ?? '';
  47. $params['clerk_admin_id'] = $params['user_id'];
  48. $params['clerk_user_id'] = $params['user_id'];
  49. $result = ElectronCouponCode::doClerkCode($params);
  50. if ($result == false) {
  51. throw new \Exception(ElectronCouponCode::getStaticError());
  52. }
  53. return $result;
  54. }
  55. break;
  56. default:
  57. return [];
  58. }
  59. }
  60. }