RiceCard.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace app\api\model\card;
  3. use app\common\library\helper;
  4. use app\common\model\card\RiceCard as RiceCardModel;
  5. use app\common\model\GoodsCategoryRel;
  6. /**
  7. * 米卡模型
  8. * @package app\api\model\card
  9. */
  10. class RiceCard extends RiceCardModel
  11. {
  12. // protected $append = ['total_stock', 'status_text','image_text'];
  13. public function getList(array $param = [])
  14. {
  15. // 检索查询条件
  16. $query = $this->setQueryFilter($param);
  17. // 查询列表数据
  18. return $query->with([])
  19. ->where("is_delete", '=', 0)
  20. ->where("status",'=',1)
  21. ->order(["id" => 'desc'])
  22. ->paginate(15);
  23. }
  24. /**
  25. * 检索查询条件
  26. * @param array $param
  27. * @return \think\db\BaseQuery
  28. */
  29. private function setQueryFilter(array $param)
  30. {
  31. // 实例化查询对象
  32. $query = $this->getNewQuery();
  33. // 查询参数
  34. $params = $this->setQueryDefaultValue($param, [
  35. 'name' => '', // 米卡名称
  36. 'status' => 0, // 评价状态 -1全部 0-已下架 1-上架中
  37. ]);
  38. // 米卡名称
  39. !empty($params['name']) && $query->where('name', 'like', "%{$params['name']}%");
  40. // 米卡类型
  41. $params['type'] > -1 && $query->where("type", '=', $params['type']);
  42. return $query;
  43. }
  44. /**
  45. * 获取详情
  46. * @param int $id
  47. * @return Comment|array|null
  48. */
  49. public function getDetail(int $id)
  50. {
  51. // 详情
  52. $detail = static::detail($id, ['riceCardPriceValues']);
  53. return $detail;
  54. }
  55. /**
  56. * 验证商品是否可使用现金卡
  57. */
  58. public function validCashRiceCard($goodsInfo)
  59. {
  60. if (empty($goodsInfo)) {
  61. return false;
  62. }
  63. // 查询可用现金卡
  64. $list = $this->with(['riceCardGoodsExcept'])
  65. ->where('type', 2)
  66. ->where('status', 1)
  67. ->where('is_delete', 0)
  68. ->select();
  69. if (empty($list)) {
  70. return false;
  71. }
  72. foreach ($list as $item) {
  73. // 判断抵扣商品类目和除外商品
  74. $exceptGoodsIds = helper::getArrayColumn($item['riceCardGoodsExcept'], 'goods_id');
  75. if (empty($item['dk_cat_ids'])) { // 全部类目
  76. if (!in_array($goodsInfo['goods_id'], $exceptGoodsIds)) {
  77. return true;
  78. }
  79. } else { // 指定类目
  80. $dk_cat_ids = explode(',', $item['dk_cat_ids']);
  81. $goodsIds = GoodsCategoryRel::whereIn('category_id', $dk_cat_ids)->column('goods_id');
  82. if (in_array($goodsInfo['goods_id'], $goodsIds) && !in_array($goodsInfo['goods_id'], $exceptGoodsIds)) {
  83. return true;
  84. }
  85. }
  86. }
  87. return false;
  88. }
  89. }