GhsClass.php 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <?php
  2. namespace biz\ghs\classes;
  3. use biz\notice\classes\NoticeClass;
  4. use biz\shop\classes\ShopClass;
  5. use biz\shop\services\ShopService;
  6. use biz\sj\classes\MerchantAssetClass;
  7. use biz\sj\classes\SjClass;
  8. use biz\wx\classes\WxMessageClass;
  9. use bizGhs\custom\classes\CustomClass;
  10. use common\components\imgUtil;
  11. use common\components\stringUtil;
  12. use common\components\util;
  13. use biz\base\classes\BaseClass;
  14. use bizHd\purchase\classes\PurchaseClass;
  15. class GhsClass extends BaseClass
  16. {
  17. const DEBT_NO = 1;
  18. const DEBT_YES = 2;
  19. public static $baseFile = '\biz\ghs\models\Ghs';
  20. //补充供货商 ssh 20211028
  21. public static function bcGhs($hdShopId)
  22. {
  23. return false;
  24. }
  25. //新增客户和供货商关系 ssh 2021.4.13
  26. public static function build($ghsShopId, $hdShopId, $type = 1, $changeName = '')
  27. {
  28. if ($type == 1) {
  29. $ghs = self::getByCondition(['ownShopId' => $hdShopId, 'shopId' => $ghsShopId]);
  30. if (!empty($ghs)) {
  31. return $ghs;
  32. }
  33. } else {
  34. $custom = CustomClass::getByCondition(['ownShopId' => $ghsShopId, 'shopId' => $hdShopId]);
  35. if (!empty($custom)) {
  36. return $custom;
  37. }
  38. }
  39. $ghsShop = ShopClass::getShopInfo($ghsShopId);
  40. $ghsSjId = $ghsShop['sjId'] ?? 0;
  41. $ghsMainId = $ghsShop['mainId'] ?? 0;
  42. $ghsDefault = $ghsShop['default'] ?? 0;
  43. $name = $ghsDefault == 1 ? $ghsShop['merchantName'] : $ghsShop['merchantName'] . ' ' . $ghsShop['shopName'];
  44. $py = stringUtil::py($name);
  45. $hdShopInfo = ShopClass::getShopInfo($hdShopId);
  46. $hdSjId = $hdShopInfo['sjId'] ?? 0;
  47. $hdMainId = $hdShopInfo['mainId'] ?? 0;
  48. $data = [
  49. 'sjId' => $ghsSjId,
  50. 'shopId' => $ghsShopId,
  51. 'mainId' => $ghsMainId,
  52. 'ownSjId' => $hdSjId,
  53. 'ownShopId' => $hdShopId,
  54. 'ownMainId' => $hdMainId,
  55. 'name' => $name,
  56. 'py' => $py,
  57. 'mobile' => $ghsShop['mobile'] ?? '',
  58. 'province' => $ghsShop['province'] ?? '',
  59. 'city' => $ghsShop['city'] ?? '',
  60. 'dist' => $ghsShop['dist'] ?? '',
  61. 'address' => $ghsShop['address'] ?? '',
  62. 'floor' => $ghsShop['floor'] ?? '',
  63. 'fullAddress' => $ghsShop['fullAddress'] ?? '',
  64. 'lat' => $ghsShop['lat'] ?? '',
  65. 'long' => $ghsShop['long'] ?? '',
  66. ];
  67. $ghs = self::addGhs($data);
  68. $ghsId = $ghs['id'] ?? 0;
  69. $shop = ShopClass::getShopInfo($hdShopId);
  70. $default = $shop['default'] ?? 0;
  71. $name = $default == 1 ? $shop['merchantName'] : $shop['merchantName'] . ' ' . $shop['shopName'];
  72. //从分店同步客户,客户被修改的名称也要同步过来
  73. $firstName = empty($changeName) ? $name : $changeName;
  74. $py = stringUtil::py($firstName);
  75. $secondName = $name;
  76. $mobile = $shop['mobile'] ?? '';
  77. $uniGhsId = $shop['uniGhsId'] ?? 0;
  78. $hasManyGhs = $shop['hasManyGhs'] ?? 0;
  79. if ($uniGhsId == 0 && $hasManyGhs == 0) {
  80. ShopClass::updateById($hdShopId, ['uniGhsId' => $ghsId]);
  81. } else {
  82. //从只有一个供货商变成有多个供货商
  83. ShopClass::updateById($hdShopId, ['hasManyGhs' => 1]);
  84. }
  85. $debtLimit = 5000;//欠款额度
  86. $customData = [
  87. 'sjId' => $hdSjId,
  88. 'ghsId' => $ghsId,
  89. 'shopId' => $hdShopId,
  90. 'mainId' => $hdMainId,
  91. 'ownSjId' => $ghsSjId,
  92. 'ownShopId' => $ghsShopId,
  93. 'ownMainId' => $ghsMainId,
  94. 'name' => $firstName,
  95. 'originName' => $secondName,
  96. 'py' => $py,
  97. 'mobile' => $mobile,
  98. 'province' => $shop['province'] ?? '',
  99. 'city' => $shop['city'] ?? '',
  100. 'dist' => $shop['dist'] ?? '',
  101. 'address' => $shop['address'] ?? '',
  102. 'fullAddress' => $shop['fullAddress'] ?? '',
  103. 'long' => $shop['long'] ?? '',
  104. 'lat' => $shop['lat'] ?? '',
  105. 'debtLimit' => $debtLimit,
  106. ];
  107. $custom = CustomClass::addCustom($customData);
  108. $customId = $custom['id'] ?? 0;
  109. self::updateById($ghsId, ['customId' => $customId]);
  110. $customSjId = $custom['sjId'] ?? 0;
  111. $customSj = SjClass::getById($customSjId, true);
  112. $parentShopId = $customSj->parentShopId ?? 0;
  113. $introduce = [];
  114. if (!empty($parentShopId)) {
  115. $introduce = CustomClass::getByCondition(['ownShopId' => $ghsShopId, 'shopId' => $parentShopId], true);
  116. }
  117. //有新客户提醒供货商
  118. WxMessageClass::newGhsCustomInform($ghsShop, $custom, $introduce);
  119. //新客户加入app通知
  120. NoticeClass::newCustomNotice($ghsShop, $custom);
  121. if ($type == 1) {
  122. return $ghs;
  123. }
  124. return $custom;
  125. }
  126. //增加供货商 ssh 2021.3.29
  127. public static function addGhs($data)
  128. {
  129. return self::add($data);
  130. }
  131. //供货商列表 ssh 2021.1.24
  132. public static function getGhsList($where)
  133. {
  134. $data = self::getList('*', $where, 'inTurn DESC,addTime DESC');
  135. $data['list'] = self::groupBaseInfo($data['list']);
  136. return $data;
  137. }
  138. //根据xhSupplier的id数组 取供货商信息 ssh 2021.1.18
  139. public static function getGhsByIds($ids)
  140. {
  141. $list = self::getByIds($ids, null, 'id');
  142. if (empty($list)) {
  143. return [];
  144. }
  145. $list = self::groupBaseInfo($list);
  146. return $list;
  147. }
  148. public static function groupBaseInfo($list)
  149. {
  150. if (empty($list)) {
  151. return $list;
  152. }
  153. $ids = array_column($list, 'shopId');
  154. $shopInfo = ShopClass::getByIds($ids, null, 'id');
  155. foreach ($list as $key => $val) {
  156. $avatar = $val['avatar'] ?? '';
  157. $list[$key]['shortAvatar'] = $avatar;
  158. $list[$key]['avatar'] = imgUtil::groupImg($avatar);
  159. $currentShopId = $val['shopId'] ?? 0;
  160. //新人福利和推荐福利
  161. $xrFl = $shopInfo[$currentShopId]['xrFl'] ?? 0;
  162. $xrFlAmount = $shopInfo[$currentShopId]['xrFlAmount'] ?? 0;
  163. $tjFl = $shopInfo[$currentShopId]['tjFl'] ?? 0;
  164. $tjFlAmount = $shopInfo[$currentShopId]['tjFlAmount'] ?? 0;
  165. $list[$key]['xrFl'] = $xrFl;
  166. $list[$key]['xrFlAmount'] = $xrFlAmount;
  167. $list[$key]['tjFl'] = $tjFl;
  168. $list[$key]['tjFlAmount'] = $tjFlAmount;
  169. $list[$key]['miniKilo'] = $shopInfo[$currentShopId]['miniKilo'] ?? 0;
  170. $list[$key]['kiloFee'] = $shopInfo[$currentShopId]['kiloFee'] ?? 0;
  171. $isOpen = 0;
  172. if (isset($shopInfo[$currentShopId])) {
  173. $isOpen = ShopClass::isOpen($shopInfo[$currentShopId]);
  174. }
  175. //营业状态
  176. $list[$key]['isOpen'] = $isOpen;
  177. $list[$key]['openStartTime'] = $shopInfo[$currentShopId]['openStartTime'] ?? '';
  178. $list[$key]['openEndTime'] = $shopInfo[$currentShopId]['openEndTime'] ?? '';
  179. $count = PurchaseClass::getCount(['ghsId' => $val['id'], 'debt' => PurchaseClass::DEBT_YES]);
  180. $list[$key]['debtNum'] = $count;
  181. }
  182. return $list;
  183. }
  184. //根据供货商信息 ssh 2021.1.18
  185. public static function getGhsInfo($id)
  186. {
  187. $info = self::getById($id);
  188. if (empty($info)) {
  189. return [];
  190. }
  191. $list = self::groupBaseInfo([$info]);
  192. return current($list);
  193. }
  194. //待结款列表 ssh 2021.126
  195. public static function getDebtList($where)
  196. {
  197. $sjId = $where['sjId'] ?? 0;
  198. if (empty($sjId)) {
  199. util::fail('没有找到商家');
  200. }
  201. $data = self::getList('*', $where, 'debtAmount DESC');
  202. $data['list'] = self::groupBaseInfo($data['list']);
  203. $asset = MerchantAssetClass::getBySjId($sjId);
  204. $data['debtAmount'] = $asset['cgDebtAmount'] ?? 0.00;
  205. $data['debtNum'] = $asset['cgDebtNum'] ?? 0;
  206. return $data;
  207. }
  208. //验证权限 ssh 2021.4.11
  209. public static function valid($info, $shopId)
  210. {
  211. if (empty($info)) {
  212. util::fail('没有供货商');
  213. }
  214. if ($info['ownShopId'] == $shopId) {
  215. return true;
  216. }
  217. util::fail('您没有权限访问的供货商');
  218. }
  219. }