GoodLogic.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\mobile\logic;
  3. use app\model\AddrModel;
  4. use app\model\CommonModel;
  5. use app\model\CompanyGoodModel;
  6. use app\model\GoodModel;
  7. use app\model\GroupModel;
  8. use app\model\InventoryExchangeModel;
  9. use app\model\InventoryShoppingModel;
  10. use app\model\OrderModel;
  11. use think\Exception;
  12. use think\facade\Db;
  13. use think\response\Json;
  14. class GoodLogic extends BaseLogic
  15. {
  16. //商品列表
  17. public static function goodList(array $data = []): Json
  18. {
  19. $db = CompanyGoodModel::alias('a')
  20. ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
  21. ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => self::$group_id]);
  22. $count = $db->count('a.id');
  23. $list = $db
  24. ->field('a.id,a.code,a.good_id,b.good_cover_img,b.good_name,b.moq,b.step,b.price,b.type,0 inventory')
  25. ->page($data['page'], $data['size'])
  26. ->order(['a.is_top' => 'desc', 'a.weight' => 'desc', 'a.id' => 'desc'])
  27. ->withAttr('inventory', function ($val, $da) {
  28. if ($da['type'] == GoodModel::$type_exchange) return InventoryExchangeModel::where(['account_id' => self::$aid, 'good_id' => $da['good_id']])->value('inventory');
  29. else return InventoryShoppingModel::where(['good_id' => $da['good_id']])->value('inventory');
  30. })
  31. ->select()
  32. ->toArray();
  33. return json_show(CommonModel::$success, '获取商品列表成功', ['count' => $count, 'list' => $list]);
  34. }
  35. //商品详情
  36. public static function goodInfo(string $code = ''): Json
  37. {
  38. $rs = CompanyGoodModel::alias('a')
  39. ->field('a.id,a.code,a.good_id,b.good_cover_img,b.good_code,b.good_name,b.moq,b.step,b.good_banner_img,b.good_img,b.good_param,b.status, 0 inventory,d.unit,b.price,b.type')
  40. ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
  41. // ->leftJoin('inventory_shopping c', 'c.good_id=a.good_id')
  42. ->leftJoin('unit d', 'd.id=b.unit_id AND d.is_del=' . CommonModel::$del_normal)
  43. ->where(['a.is_del' => CommonModel::$del_normal, 'a.code' => $code])
  44. ->withAttr('good_param', function ($val) {
  45. return json_decode($val, true);
  46. })
  47. ->withAttr('good_img', function ($val) {
  48. return explode(',', $val);
  49. })->withAttr('good_banner_img', function ($val) {
  50. return explode(',', $val);
  51. })->withAttr('inventory', function ($val, $da) {
  52. if ($da['type'] == GoodModel::$type_exchange) return InventoryExchangeModel::where(['account_id' => self::$aid, 'good_id' => $da['good_id']])->value('inventory');
  53. else return InventoryShoppingModel::where(['good_id' => $da['good_id']])->value('inventory');
  54. })
  55. ->findOrEmpty()
  56. ->toArray();
  57. return json_show(CommonModel::$success, '获取商品详情成功', $rs);
  58. }
  59. }