diff --git a/app/common/repositories/store/coupon/StoreCouponRepository.php b/app/common/repositories/store/coupon/StoreCouponRepository.php index 20a0b9a..814fdb4 100644 --- a/app/common/repositories/store/coupon/StoreCouponRepository.php +++ b/app/common/repositories/store/coupon/StoreCouponRepository.php @@ -9,6 +9,7 @@ namespace app\common\repositories\store\coupon; use app\common\dao\store\coupon\StoreCouponDao; use app\common\dao\store\coupon\StoreCouponProductDao; use app\common\model\store\coupon\StoreCoupon; +use app\common\repositories\store\coupon\StoreCouponUserRepository; use app\common\repositories\BaseRepository; use app\common\repositories\store\product\ProductRepository; use app\common\repositories\store\StoreCategoryRepository; @@ -325,7 +326,8 @@ class StoreCouponRepository extends BaseRepository 'use_min_price' => $coupon['use_min_price'], 'type' => $type, 'coupon_id' => $coupon['coupon_id'], - 'mer_id' => $coupon['mer_id'] + 'mer_id' => $coupon['mer_id'], + 'write_code' => $this->writeCodeCreate(), ]; if ($coupon['send_type'] == self::GET_COUPON_TYPE_SVIP) { $data['start_time'] = date('Y-m-d 00:00:00',time()); @@ -662,4 +664,20 @@ class StoreCouponRepository extends BaseRepository } } + + public function writeCodeCreate(string $code = '') + { + $code = $code ?: $this->codeCreate(); + if(app()->make(StoreCouponUserRepository::class)->getSearch(['write_code'=>$code])->field('write_code')->find()){ + $this->writeCodeCreate($this->codeCreate()); + } + return $code; + } + + private function codeCreate() + { + $randomString = uniqid(); // 获取当前时间相关的随机字符串 + $md5HashedString = md5($randomString); // MD5加密字符串 + return substr($md5HashedString, 0, 12); // 提取前12位作为最终结果 + } } diff --git a/app/common/repositories/store/coupon/StoreCouponUserRepository.php b/app/common/repositories/store/coupon/StoreCouponUserRepository.php index 934cbe6..20d18e7 100644 --- a/app/common/repositories/store/coupon/StoreCouponUserRepository.php +++ b/app/common/repositories/store/coupon/StoreCouponUserRepository.php @@ -11,6 +11,8 @@ use app\common\repositories\BaseRepository; use think\db\exception\DataNotFoundException; use think\db\exception\DbException; use think\db\exception\ModelNotFoundException; +use think\exception\ValidateException; +use think\facade\Db; /** * Class StoreCouponUserRepository @@ -100,4 +102,31 @@ class StoreCouponUserRepository extends BaseRepository return compact('count', 'list'); } + public function writeOff(array $data) + { + $coupon = $this->dao->getWhere($data); + if (!$coupon) throw new ValidateException('核销码不存在'); + if ($coupon['status']) throw new ValidateException('已核销,请勿重复操作'); + $coupon->status = 1; + $coupon->use_time = date('Y-m-d H:i:s'); + + //订单记录 + $storeOrderStatusRepository = app()->make(StoreOrderStatusRepository::class); +// Db::transaction(function () use ($coupon,$storeOrderStatusRepository,$serviceId) { +// $coupon->save(); +// $orderStatus = [ +// 'order_id' => $order->order_id, +// 'order_sn' => $order->order_sn, +// 'type' => $storeOrderStatusRepository::TYPE_ORDER, +// 'change_message' => '订单已核销', +// 'change_type' => $storeOrderStatusRepository::ORDER_STATUS_TAKE, +// ]; +// if ($serviceId){ +// $storeOrderStatusRepository->createServiceLog($serviceId,$orderStatus); +// } else { +// $storeOrderStatusRepository->createAdminLog($orderStatus); +// } +// }); +// event('order.verify', compact('order')); + } } diff --git a/app/controller/api/store/product/StoreCoupon.php b/app/controller/api/store/product/StoreCoupon.php index 66257ae..6dcd490 100644 --- a/app/controller/api/store/product/StoreCoupon.php +++ b/app/controller/api/store/product/StoreCoupon.php @@ -9,6 +9,7 @@ namespace app\controller\api\store\product; use app\common\repositories\store\coupon\StoreCouponProductRepository; use app\common\repositories\store\coupon\StoreCouponRepository; use app\common\repositories\store\coupon\StoreCouponUserRepository; +use crmeb\services\QrcodeService; use crmeb\basic\BaseController; use think\App; use think\db\exception\DataNotFoundException; @@ -142,4 +143,26 @@ class StoreCoupon extends BaseController return app('json')->success($coupons); } + public function createQRcode() + { + $write_code = $this->request->param('write_code'); + $valueData = 'write_code='.$write_code; +// $path = 'pages/user/write_off'; + $path = 'pages/index/index'; + $qrcode = app()->make(QrcodeService::class)->createQrCode($valueData,$path); + return app('json')->success(['qr_code' => $qrcode]); + } + + public function writeOff(StoreCouponUserRepository $repository) + { + $data = $this->request->param(); + $result = $repository->writeOff($data); + if(!$result){ + return app('json')->erorr('该商家没有核销权限'); + } + + +// return app('json')->success(['qr_code' => $qrcode]); + } + } diff --git a/config/database.php b/config/database.php index 87d8a80..a05e5fa 100644 --- a/config/database.php +++ b/config/database.php @@ -1,4 +1,4 @@ -