FullSendGoods.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace app\common\model\fullsend;
  3. use app\common\model\BaseModel;
  4. use app\common\model\Goods;
  5. use think\facade\Log;
  6. /**
  7. * 满就送活动模型
  8. * @package app\store\model\coupon
  9. */
  10. class FullSendGoods extends BaseModel
  11. {
  12. protected $name = 'full_send_goods';
  13. // 定义主键
  14. protected $pk = 'id';
  15. const EXCEPT_YES = 1;
  16. protected $append = ['goods_info','residue_stock'];
  17. public function getGoodsInfoAttr($value,$data){
  18. $res = Goods::alias('gd')
  19. ->leftJoin('goods_image gi','gd.goods_id=gi.goods_id')
  20. ->leftJoin('goods_sku gs','gd.goods_id=gs.goods_id')
  21. ->leftJoin('upload_file uf','gi.image_id=uf.file_id')
  22. ->where('gd.goods_id',$data['goods_id'])
  23. ->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();
  24. $res->goods_props_obj = $res->goods_props?json_decode($res->goods_props):null;
  25. $res->goods_image = $res->domain.'/'.$res->file_path;
  26. return $res;
  27. //return Goods::alias('gd')->leftJoin('goods_images')->where('goods_id',$data['goods_id'])->field('goods_name,goods_no,')->find();
  28. }
  29. public function getResidueStockAttr($value,$data){
  30. if(isset($data['limit_stock']) && isset($data['purchase_stock'])){
  31. $residue_stock = $data['limit_stock']-$data['purchase_stock'];
  32. return $residue_stock>0?$residue_stock:0;
  33. }
  34. return 0;
  35. }
  36. public function add($coupon_activity_id, $is_expect,$data)
  37. {
  38. // 先删除全部
  39. static::deleteAll(['full_send_activity_id' => $coupon_activity_id]);
  40. if (!empty($data)) {
  41. $dataset = [];
  42. foreach ($data as $item) {
  43. $dataset[] = [
  44. 'full_send_activity_id'=>$coupon_activity_id,
  45. 'goods_id' => $item['goods_id'],
  46. 'limit_stock' => $item['limit_stock'],
  47. 'is_expect' => $is_expect,
  48. ];
  49. }
  50. (new static)->addAll($dataset);
  51. }
  52. }
  53. }