123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <?php
- namespace app\common\model\coupon;
- use app\common\library\helper;
- use think\facade\Db;
- use app\common\model\coupon\Usercoupon as UsercouponModel;
- use app\common\model\BaseModel;
- use app\common\model\GoodsSku as GoodsSkuModel;
- use app\common\model\Goods as GoodsModel;
- /**
- * 优惠卡模型 已废弃
- * @package app\common\model
- */
- class Couponcard extends BaseModel
- {
- const COUPON_TYPE = [ 1=>'电子卡', 2=>'实体卡'];
- const DIG_CARD = 1;
- CONST ENTITY_CARD = 2;
- const COUPON_CATEGORY = [1=>'兑换卡', 2=>'储值卡'];
- protected $name = 'coupon_card';
- protected $append = ['coupon_type_text','coupon_category_text'];
- public function getCouponTypeTextAttr(){
- return self::COUPON_TYPE[$this->coupon_type]??'';
- }
- public function getCouponCategoryTextAttr(){
- return self::COUPON_CATEGORY[$this->coupon_category]??'';
- }
- /**
- * 米卡列表
- * @param string $dataType 订单类型
- * @param array $param
- * @return mixed
- */
- public function getAllList(array $param = [])
- {
- // 检索查询条件
- $filter = $this->getQueryFilter($param);
- // 获取数据列表
- $query = $this->with([])->where($filter)
- ->alias('card')
- ->field('card.*');
- $list = $query->order(['card.id' => 'desc'])->paginate(15);
- foreach($list as $row){
- $goodsku = GoodsSkuModel::where('goods_sku_id',$row->good_sku_id)->where('goods_id',$row->good_id)->find();
- $goods = GoodsModel::field('goods_name')->where("goods_id",$row->good_id)->find();
- $row->sku_name = $goodsku->goods_props[0]['value']['name']??'';
- $row->good_name = $goods->goods_name??'';
- }
- return $list;
- }
- //查询
- public function getQueryFilter($param){
- return $param;
- }
- // //生成卡券
- // public function autocreate($id,$create_num = 1){
- // $card = Couponcard::where('id',$id)->find();
- // if($card&&$card->good_id&&$card->good_num>0&&$card->coupon_category>0&&$card->coupon_type){
- // for($i=0;$i<$create_num;$i++){
- // $data['coupon_card_id'] =$card->id;
- // $data['coupon_card_name'] =$card->name;
- // }
- // // $data['']
- // }
- // }
- //生成随机数
- public function randSecrets($num){
- $num = $num + 1000;
- $arr = [];
- for($i=0;$i<$num;$i++){
- $arr[] = mt_rand(10000000,99999999);
- }
- return array_unique($arr);
- }
- //批量添加 主要是生成去重复,及查询是否数据库中已存在
- public function addCard($id,$num){
- $card = Couponcard::where('id',$id)->find();
- $start_no = $card->coupon_type.$card->coupon_category.'00000000';
- $end_no = $card->coupon_type.$card->coupon_category.'99999999';
- $max_start_no = Usercoupon::where('coupon_no','>=', $start_no)->where("coupon_no","<",$end_no)->max("coupon_no");
- if(empty($max_start_no)){
- $start_no = intval($start_no);
- }else{
- $start_no = intval($max_start_no);
- }
- $data =[];
- $now = Date("Y-m-d H:i:s",time());
- $randArray = $this->randSecrets($num);
- $coupon_code =[];
- $secrets = UsercouponModel::whereIn('coupon_code',$randArray)->select();
- foreach($secrets as $s){
- $coupon_code[] = $s->coupon_code;
- }
- $avaiableArray = array_diff($randArray,$coupon_code);
- $createNum = $num>count($avaiableArray)?count($avaiableArray):$num;
- $avaiableArray = array_values($avaiableArray);
- $card_name = $card['name']??'';
-
- for($i=1;$i<$createNum+1;$i++){
- $row['coupon_card_id'] = $id;
- $row['coupon_card_name'] = $card_name;
- $row['coupon_no'] = $start_no+$i;
- $row['coupon_code'] = $avaiableArray[$i];
- $row['coupon_type'] = $card->coupon_type;
- $row['coupon_category'] = $card->coupon_category;
- $row['good_num'] = $card->good_num;
- $row['good_id'] = $card->good_id;
- $row['good_sku_id'] = $card->good_sku_id;
- $row['created_at'] = $now;
- $row['avaiable_good_num'] = $card->good_num;
- $data[] = $row;
- }
- $model = new UsercouponModel;
- $model->saveAll($data);
- }
- }
|