GoodsController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?php
  2. /**
  3. * GoodsController.php UTF-8
  4. * h5 wap 商品详情
  5. *
  6. * @date : 2018/4/27 17:39
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : liuhongliang <lhl@huosdk.com>
  10. * @version : HUOSDK 8.0
  11. */
  12. namespace h5wap\wap\controller;
  13. use h5wap\common\controller\V2BaseController;
  14. use huo\controller\gift\Gift;
  15. use huo\controller\member\Member;
  16. use huo\controller\shop\Goods;
  17. use huo\controller\shop\ItgOrder;
  18. use huo\logic\shop\ItgOrderLogic;
  19. use huolib\constant\MemItgConst;
  20. use huolib\status\CommonStatus;
  21. use huolib\status\ShopStatus;
  22. class GoodsController extends V2BaseController {
  23. /**
  24. * H5WAP商品列表
  25. * http://doc.1tsdk.com/138?page_id=3220
  26. * 【域名】/wap/goods/list
  27. *
  28. */
  29. public function index() {
  30. $_mem_id = $this->mem_id;
  31. $_param = $this->request->param();
  32. $_can_exchange = $this->request->param('can_exchange');
  33. $_can_ex = false;
  34. if (2 == $_can_exchange) {
  35. $_can_ex = true;
  36. }
  37. $_page = $this->request->param('page/d', 1);
  38. $_offset = $this->request->param('offset/d', 2);
  39. $_page = $_page.','.$_offset;
  40. if (empty($_param['flag'])) {
  41. $_param['flag'] = ['neq', MemItgConst::SHOP_FLAG_LOTTERY];
  42. }
  43. $_goods = (new Goods())->getList($_param, $_page, $_mem_id, $_can_ex);
  44. if (ShopStatus::NO_ERROR != $_goods['code']) {
  45. $this->returnData($_goods);
  46. }
  47. $this->returnData($_goods);
  48. }
  49. /**
  50. * 商品详情页
  51. * http://doc.1tsdk.com/138?page_id=3115
  52. * 【域名】/wap/goods/detail
  53. */
  54. public function detail() {
  55. $_user_info = (new Member())->getMemInfo($this->mem_id);
  56. $this->assign('userinfo', $_user_info);
  57. $_goods_id = $this->request->param('goods_id');
  58. $_order_id = $this->request->param('order_id', 0);
  59. $_goods_data = (new Goods())->getDetail($_goods_id);
  60. if (CommonStatus::NO_ERROR != $_goods_data['code']) {
  61. return $this->returnData($_goods_data);
  62. }
  63. //如果是抽奖商品,需要传递order_id
  64. $_itg_order_data = (new ItgOrder())->getDetail($_order_id);
  65. if ($_itg_order_data['code'] == CommonStatus::NO_ERROR) {
  66. $this->assign("order", $_itg_order_data['data']);
  67. } else {
  68. $this->assign(
  69. "order", [
  70. 'order_id' => '',
  71. 'shipping_status' => ''
  72. ]
  73. );
  74. }
  75. if (MemItgConst::GOODS_IS_GIFT == $_goods_data['data']['object_name']) {
  76. $_gift_class = new Gift();
  77. $_gift_data = $_gift_class->getGiftDetail($_goods_data['data']['object_id'], $this->mem_id);
  78. if (CommonStatus::NO_ERROR == $_goods_data['code']) {
  79. $this->assign('goods', $_goods_data['data']);
  80. $this->assign('gift', $_gift_data['data']);
  81. return $this->fetch('goods/gift');
  82. }
  83. }
  84. //获取发货信息
  85. $_itg_order_logic = new ItgOrderLogic();
  86. $_where['mem_id'] = $this->mem_id;
  87. $_where['goods_id'] = $_goods_id;
  88. $_award_ad = $_itg_order_logic->getDetail($_where);
  89. if (isset($_goods_data['data']['integral'])) {
  90. $_goods_data['data']['integral'] = (int)$_goods_data['data']['integral'];
  91. }
  92. $this->assign('goods', $_goods_data['data']);
  93. return $this->fetch('goods/detail');
  94. }
  95. /**
  96. * 兑换记录
  97. *
  98. * @return mixed
  99. * @throws \think\exception\DbException
  100. */
  101. public function myGoods() {
  102. $_map['mem_id'] = $this->mem_id;
  103. $_map['list_rows'] = 100;
  104. $_item_obj = (new ItgOrderLogic())->getList($_map);
  105. $_shipping_status = array(
  106. MemItgConst::SHIP_STATUS_NOT => '未发货',
  107. MemItgConst::SHIP_STATUS_SUC => '已发货',
  108. MemItgConst::SHIP_STATUS_FAIL => '发货失败',
  109. );
  110. $_data = $_item_obj->toArray();
  111. foreach ($_data['data'] as $_k => $_v) {
  112. $_data['data'][$_k]['shipping_status_txt'] = $_shipping_status[$_v['shipping_status']];
  113. $_order = (new ItgOrder())->getDetail($_v['order_id']);
  114. $_data['data'][$_k]['order'] = $_order;
  115. }
  116. $this->assign('list', $_data);
  117. return $this->fetch('goods/myGoods');
  118. }
  119. }