business.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. <?php
  2. /**
  3. * 通用业务
  4. * shish 2019.8.20
  5. */
  6. namespace common\components;
  7. use Yii;
  8. use yii\imagine\Image;
  9. class business
  10. {
  11. //支付方式对应资金要保存的字段 shish 2019.8.20
  12. public static function savePayWayAmount($object, $amount, $payWay)
  13. {
  14. switch ($payWay) {
  15. case 0:
  16. $object->weixin += $amount;
  17. break;
  18. case 1:
  19. $object->alipay += $amount;
  20. break;
  21. case 2:
  22. $object->balancePay += $amount;
  23. break;
  24. case 3:
  25. $object->cash += $amount;
  26. break;
  27. default:
  28. util::fail('付款方式不存在');
  29. }
  30. return $object;
  31. }
  32. //对商品图片转化 shish 2019.12.2
  33. public static function formatGoodsImg($info)
  34. {
  35. $shopImg = isset($info['shopImg']) ? $info['shopImg'] : [];
  36. unset($info['shopImg']);
  37. //没有保存图片返回空
  38. if (empty($shopImg)) {
  39. $info['shortImgList'] = [];
  40. $info['imgList'] = [];
  41. $info['smallImgList'] = [];
  42. return $info;
  43. }
  44. $arr = json_decode($shopImg, true);
  45. //图片内容转化失败返回空
  46. if (is_array($arr) == false) {
  47. $info['shortImgList'] = [];
  48. $info['imgList'] = [];
  49. $info['smallImgList'] = [];
  50. return $info;
  51. }
  52. $imgList = [];
  53. $smallImgList = [];
  54. $prefixImgUrl = Yii::$app->params['imgHost'];
  55. $imageRoot = dirUtil::getImgUploadDir();
  56. foreach ($arr as $imgUrl) {
  57. $smallImg = self::getSmallImg($imgUrl);
  58. $small = $prefixImgUrl . $smallImg;
  59. $normal = $prefixImgUrl . $imgUrl;
  60. /*
  61. $preImg = $imageRoot . str_replace('/uploads', '', $imgUrl);
  62. if (file_exists($preImg)) {
  63. //没有小图则生成小图,兼容旧系统
  64. if (file_exists($imageRoot . $smallImg) == false) {
  65. $imgInfo = getimagesize($preImg);
  66. $width = isset($imgInfo[0]) ? $imgInfo[0] : 0;
  67. $height = isset($imgInfo[1]) ? $imgInfo[1] : 0;
  68. if ($width > 0) {
  69. //生成小图 300px
  70. $smallWidth = 300;
  71. $smallHeight = ceil((300 * $height) / $width);
  72. $smallFullPathFile = $imageRoot . str_replace('/uploads', '', $smallImg);
  73. Image::thumbnail($preImg, $smallWidth, $smallHeight)->save($smallFullPathFile, ['quality' => 100]);
  74. }
  75. }
  76. }
  77. */
  78. $imgList[] = $normal;
  79. $smallImgList[] = $small;
  80. }
  81. $info['shortImgList'] = $arr;
  82. $info['imgList'] = $imgList;
  83. $info['smallImgList'] = $smallImgList;
  84. return $info;
  85. }
  86. //对商品款式的转化 shish 2019.12.4
  87. public static function formatGoodsStyleImg($info)
  88. {
  89. $imgUrl = isset($info['picture']) ? $info['picture'] : '';
  90. if (empty($imgUrl)) {
  91. $info['img'] = '';
  92. }
  93. $prefixImgUrl = Yii::$app->params['imgHost'];
  94. $smallImg = self::getSmallImg($imgUrl);
  95. $small = $prefixImgUrl . $smallImg;
  96. //没有小图的生成小图(兼容旧系统) shish 2020.6.4
  97. $imageRoot = dirUtil::getImgUploadDir();
  98. $preImg = $imageRoot . str_replace('/uploads', '', $imgUrl);
  99. if (file_exists($preImg)) {
  100. //没有小图则生成小图,兼容旧系统
  101. if (file_exists($imageRoot . $smallImg) == false) {
  102. $imgInfo = getimagesize($preImg);
  103. $width = isset($imgInfo[0]) ? $imgInfo[0] : 0;
  104. $height = isset($imgInfo[1]) ? $imgInfo[1] : 0;
  105. if ($width > 0) {
  106. //生成小图 150px
  107. $smallWidth = 150;
  108. $smallHeight = ceil((150 * $height) / $width);
  109. $smallFullPathFile = $imageRoot . str_replace('/uploads', '', $smallImg);
  110. Image::thumbnail($preImg, $smallWidth, $smallHeight)->save($smallFullPathFile, ['quality' => 100]);
  111. }
  112. }
  113. }
  114. $info['img'] = $small;
  115. return $info;
  116. }
  117. //图库图片的转化
  118. public static function formatPic($info)
  119. {
  120. $imgUrl = isset($info['img']) ? $info['img'] : '';
  121. if (empty($imgUrl)) {
  122. $info['imgUrl'] = '';
  123. }
  124. $prefixImgUrl = Yii::$app->params['imgHost'];
  125. $smallImg = self::getSmallImg($imgUrl);
  126. $small = $prefixImgUrl . $smallImg;
  127. $info['imgUrl'] = $small;
  128. return $info;
  129. }
  130. //分类图的处理
  131. public static function formatCategoryImg($info)
  132. {
  133. $imgUrl = isset($info['img']) ? $info['img'] : '';
  134. if (empty($imgUrl)) {
  135. $info['imgUrl'] = '';
  136. }
  137. $prefixImgUrl = Yii::$app->params['imgHost'];
  138. $smallImg = self::getSmallImg($imgUrl);
  139. $small = $prefixImgUrl . $smallImg;
  140. $info['imgUrl'] = $small;
  141. return $info;
  142. }
  143. //客户头像处理 shish 2019.12.20
  144. public static function formatUserAvatar($info)
  145. {
  146. $imgUrl = isset($info['avatar']) ? $info['avatar'] : '';
  147. $prefixImgUrl = Yii::$app->params['imgHost'];
  148. $dir = dirUtil::getImgDir();
  149. if (empty($imgUrl) || file_exists($dir . $imgUrl) == false) {
  150. $defaultImg = $prefixImgUrl . '/retail/default-img.png';
  151. $info['avatarUrl'] = $defaultImg;
  152. $info['smallAvatarUrl'] = $defaultImg;
  153. return $info;
  154. }
  155. $smallImg = self::getSmallImg($imgUrl);
  156. $small = $prefixImgUrl . $smallImg;
  157. $info['smallAvatarUrl'] = $small;
  158. $info['avatarUrl'] = $prefixImgUrl . $imgUrl;
  159. $info['avatar'] = $prefixImgUrl . $imgUrl;
  160. return $info;
  161. }
  162. public static function formatOrderGoodsCover($info)
  163. {
  164. $imgUrl = isset($info['cover']) ? $info['cover'] : '';
  165. if (empty($imgUrl)) {
  166. $info['coverUrl'] = '';
  167. $info['smallCoverUrl'] = '';
  168. return $info;
  169. }
  170. $prefixImgUrl = Yii::$app->params['imgHost'];
  171. $smallImg = self::getSmallImg($imgUrl);
  172. $small = $prefixImgUrl . $smallImg;
  173. $info['smallCoverUrl'] = $small;
  174. $info['coverUrl'] = $prefixImgUrl . $imgUrl;
  175. return $info;
  176. }
  177. //商家公众号logo处理 shish 2019.12.20
  178. public static function formatMerchantLogo($info)
  179. {
  180. $imgUrl = isset($info['logo']) ? $info['logo'] : '';
  181. if (empty($imgUrl)) {
  182. $info['logoUrl'] = '';
  183. $info['smallLogoUrl'] = '';
  184. $info['smallWxQrCodeUrl'] = '';
  185. $info['wxQrCodeUrl'] = '';
  186. return $info;
  187. }
  188. $prefixImgUrl = Yii::$app->params['imgHost'];
  189. //logo
  190. $smallImg = self::getSmallImg($imgUrl);
  191. $small = $prefixImgUrl . $smallImg;
  192. $info['smallLogoUrl'] = $small;
  193. $info['logoUrl'] = $prefixImgUrl . $imgUrl;
  194. //二维码
  195. $smallImg = self::getSmallImg($info['wxQrCodeUrl']);
  196. $small = $prefixImgUrl . $smallImg;
  197. $info['smallWxQrCodeUrl'] = $small;
  198. $info['wxQrCodeUrl'] = $prefixImgUrl . $imgUrl;
  199. return $info;
  200. }
  201. //上传的图片进行转换 shish 2019.12.28
  202. public static function formatUploadImg($imgUrl)
  203. {
  204. $prefix = Yii::$app->params['imgHost'];
  205. $small = self::getSmallImg($imgUrl);
  206. $url = $prefix . $imgUrl;
  207. $smallUrl = $prefix . $small;
  208. return ['url' => $url, 'smallUrl' => $smallUrl];
  209. }
  210. //取小图,尺寸 200px shish 2019.12.4
  211. public static function getSmallImg($imgUrl)
  212. {
  213. //如果没有小图需要生成小图
  214. $pos = strrpos($imgUrl, '.');
  215. $pre = substr($imgUrl, 0, $pos);
  216. $ext = substr($imgUrl, ($pos + 1));
  217. $smallImg = $pre . '_small.' . $ext;
  218. return $smallImg;
  219. }
  220. //平台员工头像处理 shish 2020.1.5
  221. public static function formatStaffAvatar($info)
  222. {
  223. $imgUrl = isset($info['avatar']) ? $info['avatar'] : '';
  224. if (empty($imgUrl)) {
  225. $info['avatarUrl'] = '';
  226. $info['smallAvatarUrl'] = '';
  227. return $info;
  228. }
  229. $prefixImgUrl = Yii::$app->params['imgHost'];
  230. $smallImg = self::getSmallImg($imgUrl);
  231. $small = $prefixImgUrl . $smallImg;
  232. $info['smallAvatarUrl'] = $small;
  233. $info['avatarUrl'] = $prefixImgUrl . $imgUrl;
  234. return $info;
  235. }
  236. }