| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace app\modules\admin\models;
- use app\constants\OptionSetting;
- use app\models\Goods;
- use app\models\Store;
- use yii\base\Model;
- class RiskControlForm extends Model
- {
- public function riskControlHandle($risk_control_model, $goods_id = 0) {
- $goods_list = Goods::find()->alias('g')->leftJoin(['s' => Store::tableName()], 'g.store_id = s.id')
- ->where(['g.is_delete' => 0, 'g.status' => 1, 's.is_delete' => 0, 'g.is_wholesale' => 0])->andWhere(['IS NOT', 'g.cloud_goods_id', NULL]);
- if ($goods_id) {
- $goods_list->andWhere(['g.id' => $goods_id]);
- }
- $goods_list = $goods_list->select('g.id, g.price, g.attr, g.cloud_goods_id')->asArray()->all();
- foreach ($goods_list as $item) {
- //获取云仓商品
- $cloud_url = "/goods/getGoodsInfo";
- $cloud_data = [];
- $cloud_data['goods_id'] = $item['cloud_goods_id'];
- $domain = (new OptionSetting)->getCloudDomainName();
- $cloud_info = cloud_post($domain . $cloud_url, $cloud_data);
- $cloud_info = json_decode($cloud_info, true);
- if($cloud_info['code'] != 0){
- debug_log($cloud_info, 'risk_control_result.log');
- }else{
- $goods = Goods::findOne($item['id']);
- //云仓商品协议价大于商品售价
- $cloud_goods = $cloud_info['data']['goods'];
- if ($item['price'] < $cloud_goods['platform_negotiated_price']) {
- if ($risk_control_model) {
- //原始协议价
- $goods->price = $cloud_goods['platform_negotiated_price'];
- } else {
- //商品下架
- $goods->status = 0;
- }
- }
- //规格中的云仓商品协议价大于商品售价处理
- $item['attr'] = json_decode($item['attr'], true);
- $cloud_goods['attrs'] = json_decode($cloud_goods['attrs'], true);
- foreach ($cloud_goods['attrs'] as $cloud_attr_item) {
- $cloud_no = $cloud_attr_item['no'];
- foreach ($item['attr'] as &$attr_item) {
- $_no = $attr_item['no'];
- if (!empty($cloud_no) && !empty($_no)) {
- if (strval($cloud_no) === strval($_no) && $attr_item['price'] < (!empty($cloud_attr_item['platform_negotiated_price']) ? $cloud_attr_item['platform_negotiated_price'] : $cloud_attr_item['price'])) {
- if ($risk_control_model) {
- //原始协议价
- $attr_item['price'] = (!empty($cloud_attr_item['platform_negotiated_price']) ? $cloud_attr_item['platform_negotiated_price'] : $cloud_goods['price']);
- } else {
- //商品下架
- $goods->status = 0;
- }
- }
- }
- }
- }
- $goods->attr = json_encode($item['attr'], JSON_UNESCAPED_UNICODE);
- if (!$goods->save()) {
- debug_log($goods->errors, 'risk_control_result.log');
- }
- }
- }
- }
- }
|