ExchangeLogic.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace app\mobile\logic;
  3. use app\model\CommonModel;
  4. use app\model\CompanyGoodModel;
  5. use app\model\GoodModel;
  6. use app\model\GroupModel;
  7. use think\Exception;
  8. use think\facade\Db;
  9. use think\response\Json;
  10. class ExchangeLogic extends BaseLogic
  11. {
  12. //商品列表
  13. public static function goodList(array $data = []): Json
  14. {
  15. $group_id = GroupModel::where(['is_del' => CommonModel::$del_normal, 'company_id' => self::$company_id, 'card_id' => self::$card_id])
  16. ->value('id', 0);
  17. if (!$group_id) return json_show(CommonModel::$error_param, '该账户所对应的分组不存在');
  18. $db = CompanyGoodModel::alias('a')
  19. ->leftJoin('good b', 'b.id=a.good_id AND b.type=' . GoodModel::$type_exchange . ' AND b.is_del=' . CommonModel::$del_normal)
  20. ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.good_id')
  21. ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => $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,c.inventory')
  25. ->page($data['page'], $data['size'])
  26. ->order(['a.is_top' => 'desc', 'a.weight' => 'desc', 'a.id' => 'desc'])
  27. ->select()
  28. ->toArray();
  29. return json_show(CommonModel::$success, '获取兑换商品列表成功', ['count' => $count, 'list' => $list]);
  30. }
  31. //商品详情
  32. public static function goodInfo(string $code = ''): Json
  33. {
  34. $rs = CompanyGoodModel::alias('a')
  35. ->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,c.inventory,d.unit')
  36. ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
  37. ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.good_id')
  38. ->leftJoin('unit d', 'd.id=b.unit_id AND d.is_del=' . CommonModel::$del_normal)
  39. ->where(['a.is_del' => CommonModel::$del_normal, 'a.code' => $code])
  40. ->withAttr('good_param', function ($val) {
  41. return json_decode($val, true);
  42. })
  43. ->withAttr('good_img', function ($val) {
  44. return explode(',', $val);
  45. })
  46. ->findOrEmpty()
  47. ->toArray();
  48. return json_show(CommonModel::$success, '获取兑换商品详情成功', $rs);
  49. }
  50. //下单
  51. public static function orderAdd(array $data = []): Json
  52. {
  53. Db::startTrans();
  54. try {
  55. Db::commit();
  56. return json_show(CommonModel::$success, '兑换商品成功');
  57. } catch (Exception $exception) {
  58. Db::rollback();
  59. return json_show(CommonModel::$error_param, '兑换失败,' . $exception->getMessage());
  60. }
  61. }
  62. }