123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace app\common\model\groupbuylb;
- use app\common\model\BaseModel;
- use app\common\model\Goods;
- /**
- * 拼团裂变活动商品模型
- * @package app\store\model\coupon
- */
- class GroupBuyLbGoods extends BaseModel
- {
- protected $name = 'group_buy_lb_goods';
- // 定义主键
- protected $pk = 'id';
- protected $append = ['goods_info','residue_stock'];
- public function getGoodsInfoAttr($value,$data){
- $res = Goods::alias('gd')
- ->leftJoin('goods_image gi','gd.goods_id=gi.goods_id')
- ->leftJoin('goods_sku gs','gd.goods_id=gs.goods_id')
- ->leftJoin('upload_file uf','gi.image_id=uf.file_id')
- ->where('gd.goods_id',$data['goods_id'])
- ->field('gd.goods_name,gd.goods_no,gd.goods_price_min,gd.status,gi.image_id,uf.domain,uf.file_path,gs.goods_props')->find();
- $res->goods_props_obj = $res->goods_props?json_decode($res->goods_props):null;
- $res->goods_image = $res->domain.'/'.$res->file_path;
- return $res;
- }
- public function getResidueStockAttr($value,$data){
- if(isset($data['limit_stock']) && isset($data['purchase_stock'])){
- $residue_stock = $data['limit_stock']-$data['purchase_stock'];
- return $residue_stock>0?$residue_stock:0;
- }
- return 0;
- }
- public function add($coupon_activity_id,$data)
- {
- // 先删除全部
- static::deleteAll(['group_buy_lb_activity_id' => $coupon_activity_id]);
- if (!empty($data)) {
- $dataset = [];
- foreach ($data as $item) {
- $goods = \app\store\model\Goods::detail($item['goods_id'],['images.file']);
- $dataset[] = [
- 'group_buy_lb_activity_id'=>$coupon_activity_id,
- 'goods_id' => $item['goods_id'],
- 'limit_stock' => $item['limit_stock']??0,
- 'goods_sku_id' => $item['goods_sku_id']??0,
- 'goods_sku_no' => $item['goods_sku_no']??'',
- 'group_price' => $item['group_price'],
- 'limit_mount' => $item['limit_mount'],
- 'goods_name' => $goods['goods_name']??'',
- 'preview_url' => $goods['images'][0]['file']['preview_url']??'',
- ];
- }
- (new static)->addAll($dataset);
- }
- }
- }
|