GoodsForm.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace app\modules\admin\models\agent\front_erp;
  3. use app\models\AgentFrontBind;
  4. use app\models\AgentFrontErpCloudGoods;
  5. use app\models\AgentFrontErpInventory;
  6. use app\models\ErpSupplier;
  7. use app\models\Goods;
  8. class GoodsForm extends Model
  9. {
  10. public $goods_no;
  11. public $front_agent_admin_id;
  12. public function rules()
  13. {
  14. return [
  15. [['goods_no', 'store_id'], 'string']
  16. ];
  17. }
  18. public function getGoodsList() {
  19. $front_agent_admin_id = $this->front_agent_admin_id;
  20. $goods_no = $this->goods_no;
  21. try {
  22. if (empty($goods_no)) {
  23. return [
  24. 'code' => 0,
  25. 'msg' => '货号不能为空',
  26. 'data' => [
  27. 'list' => []
  28. ]
  29. ];
  30. }
  31. $cloud_supplier_id_arr = AgentFrontBind::getAgentFrontBindSupplierId($front_agent_admin_id);
  32. $goods_id = AgentFrontErpCloudGoods::find()->where(['cloud_supplier_id' => $cloud_supplier_id_arr, 'is_delete' => 0])
  33. ->andWhere(['LIKE', 'goods_no', $goods_no])->select('cloud_goods_id')->column();
  34. $query = AgentFrontErpInventory::find()->alias('ei')->where(['ei.is_delete' => 0, 'ei.front_agent_admin_id' => $front_agent_admin_id]);
  35. $query->leftJoin(['g' => AgentFrontErpCloudGoods::tableName()], 'g.cloud_goods_id = ei.goods_id');
  36. if ($goods_id) {
  37. $query->andWhere(['OR', ['ei.goods_no' => $goods_no], ['LIKE', 'ei.sku_id', $goods_no], ['ei.goods_id' => $goods_id]]);
  38. } else {
  39. $query->andWhere(['OR', ['ei.goods_no' => $goods_no], ['LIKE', 'ei.sku_id', $goods_no]]);
  40. }
  41. $query->orderBy('ei.goods_id DESC');
  42. $query->select('ei.*, g.goods_name, g.cover_pic');
  43. $pagination = pagination_make($query);
  44. foreach ($pagination['list'] as &$item) {
  45. // $item['created_at'] = date("Y-m-d H:i:s", $item['created_at']);
  46. $attr_info = json_decode($item['attr_info'], true);
  47. $item['attr_names'] = implode(',', array_column($attr_info['attr_list'], 'attr_name'));
  48. $item['price'] = $attr_info['price'];
  49. if($attr_info['pic']){
  50. $item['cover_pic'] = $attr_info['pic'];
  51. }
  52. $item['num'] = 0;
  53. }
  54. return [
  55. 'code' => 0,
  56. 'msg' => 'success',
  57. 'data' => $pagination,
  58. // 'q' => $query->createCommand()->getRawSql(),
  59. ];
  60. } catch (\Exception $e) {
  61. \Yii::error($e);
  62. return [
  63. 'code' => 1,
  64. 'msg' => $e->getMessage()
  65. ];
  66. }
  67. }
  68. }