QcMjSendGiftGoods.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace app\common\model\qc;
  3. use app\api\model\member\MemberGoods;
  4. use app\common\model\BaseModel;
  5. use app\common\model\Goods;
  6. /**
  7. * 全场满件赠活动模型
  8. * @package app\store\model\qc
  9. */
  10. class QcMjSendGiftGoods extends BaseModel
  11. {
  12. protected $name = 'qc_mj_send_gift_goods';
  13. // 定义主键
  14. protected $pk = 'id';
  15. protected $append = ['goods_info'];
  16. public function getGoodsInfoAttr($value,$data){
  17. $res = Goods::alias('gd')
  18. ->leftJoin('goods_image gi','gd.goods_id=gi.goods_id')
  19. ->leftJoin('goods_sku gs','gd.goods_id=gs.goods_id')
  20. ->leftJoin('upload_file uf','gi.image_id=uf.file_id')
  21. ->where('gd.goods_id',$data['goods_id'])
  22. ->field('gd.goods_name,gd.goods_no,gd.goods_price_min,gd.line_price_min,gd.status,(gd.sales_initial+gd.sales_actual+gd.sales_shops) as goods_sales,gi.image_id,gd.stock_total,uf.domain,uf.file_path,gs.goods_props')->find();
  23. $res->goods_props_obj = $res->goods_props?json_decode($res->goods_props):null;
  24. $res->goods_image = $res->domain.'/'.$res->file_path;
  25. $res->member_price = (new MemberGoods)->getGoodsMemberPrice($res->goods_id,$res->goods_price_min);
  26. return $res;
  27. }
  28. public function add($activity_id,$data)
  29. {
  30. if (!empty($data)) {
  31. $insert = [];
  32. foreach ($data as $item) {
  33. // 判断是否存在
  34. $info = $this->where('qc_mj_send_activity_id', $activity_id)->where('goods_id', $item['goods_id'])->find();
  35. if (!empty($info)) { // 编辑
  36. $info->save([
  37. 'qc_mj_send_activity_id'=>$activity_id,
  38. 'goods_id' => $item['goods_id'],
  39. ]);
  40. } else { // 新增
  41. $insert[] = [
  42. 'qc_mj_send_activity_id'=>$activity_id,
  43. 'goods_id' => $item['goods_id'],
  44. ];
  45. }
  46. // 更新商品库存(只支持单规格)
  47. // (new QcMjSendGoods())->changeGoodsStocks($item['goods_id'], $act_stock);
  48. }
  49. $this->insertAll($insert);
  50. }
  51. }
  52. }