コード例 #1
0
ファイル: BaseAttribute.php プロジェクト: songhongyu/idaiyan
 /**
  * 数据
  */
 public function val($relid, $attrid)
 {
     $mAttrBase = new ActivityAttrBase();
     $attr = $mAttrBase->pk($attrid);
     $result = false;
     if (!$attr || $attr['status'] == ActivityAttrBase::STATUS_DISABLE) {
         return FALSE;
     }
     $mAttrVal = new ActivityProductAttrVal();
     $attrval = [];
     if (!($attrval = $mAttrVal->getAttrVal($relid, $attrid))) {
         return FALSE;
     }
     $result = $this->parse(['ap_id' => $relid, 'product_id' => $attrval['product_id'], 'acti_id' => $attrval['acti_id'], 'type' => $attr['type'], 'attr_customid' => $attr['custom_id'], 'data_type' => $attr['data_type'], 'attr_val' => $attrval['attr_val']]);
     return $result;
 }
コード例 #2
0
 /**
  * 一呼百应 属性接口
  * @param int   $rel_id   活动产品id
  * @param int   $attrid   活动产品属性值ID
  * @param str   $attval   属性值
  *        endtime    结束时间
  *
  * @return json
  * */
 public function actionBaiyingattr()
 {
     //判断登陆
     $user = PublicLibrary::is_login();
     //if ($user && PublicLibrary::is_ajax()) {
     if ($user) {
         $uid = $user['uid'];
     } else {
         echo PublicLibrary::format_res_encode('1001', 'the user no landing or no ajax!');
         exit;
     }
     //$uid = 241661;
     //$rel_id = 32825;
     //$attrid = 3;
     //$priceDis = 456;
     //$date = ['rel_id' => $rel_id, 'attrid' => $attrid, 'priceDis' => '346'];
     $date = Yii::$app->request->post();
     $date = array_map('trim', $date);
     $date = array_map('strip_tags', $date);
     $rel_id = isset($date['rel_id']) ? intval($date['rel_id']) : 0;
     $attrid = isset($date['attrid']) ? intval($date['attrid']) : 0;
     $attval = isset($date['attval']) ? $date['attval'] : '';
     if (isset($date['endtime']) && $date['endtime'] == 1) {
         $attrid = 2;
     }
     //用活动产品id 获取活动id
     $mpactivity = new ActivityProduct();
     $pcone = $mpactivity->pk($rel_id);
     //当前用户和产品活动发布用户不同
     if (empty($pcone) || $uid != $pcone['user_id'] || $pcone['status'] == ActivityProduct::STATUS_VERIFYING || $pcone['status'] == ActivityProduct::STATUS_VERIFY_THROUGH) {
         echo PublicLibrary::format_res_encode('1003', 'user or status error!');
         exit;
     }
     $acti_id = $pcone->acti_id ? $pcone->acti_id : 0;
     $product_id = $pcone->product_id ? $pcone->product_id : 0;
     if (empty($rel_id) || empty($attrid) || empty($acti_id) || empty($product_id)) {
         echo PublicLibrary::format_res_encode('1004', 'params error');
         exit;
     }
     // 查询属性基础信息
     $mattrbase = new ActivityAttrBase();
     $attr = $mattrbase->pk($attrid);
     //价格处理
     if ($attr['type'] == ActivityAttrBase::DATA_TYPE_MODEL_PRICE) {
         //查询价格属性值 以供修改
         $mAttrval = new ActivityProductAttrVal();
         $pattrv = $mAttrval->getAttrVal($rel_id, $attrid);
         $priceval = [];
         if (isset($pattrv['attr_val']) && !empty($pattrv['attr_val'])) {
             $priceval = json_decode($pattrv['attr_val'], true);
         }
         if (isset($priceval) && !is_array($priceval)) {
             $priceval = [];
         }
         //图片上传
         $priceimg = UploadedFile::getInstanceByName('attval');
         if ($priceimg !== null) {
             //判断图片大小是否符合规定
             if ($priceimg->size > ProductImage::MAX_SIZE || $priceimg->error != 0) {
                 echo PublicLibrary::format_res_encode('1005', 'image error');
                 exit;
             }
             $rootpath = 'uploads/' . date('Y/m/d') . '/';
             //图片保存路径
             file_exists($rootpath) or mkdir($rootpath, 0777, true);
             //生成图片路径
             $randname = time() . rand(0, 500);
             //图片公有名
             $setpimage_path = $rootpath . $randname;
             //封面图路径
             move_uploaded_file($priceimg->tempName, $setpimage_path . '.jpg');
             $priceval['priceimg'] = $setpimage_path;
         } else {
             $priceval['price'] = $attval;
         }
         $attval = $priceval;
     }
     $mbaseattr = new BaseAttribute();
     $btas = $mbaseattr->save($rel_id, $uid, $attrid, $attval, false, 1);
     if ($btas) {
         $pimg = isset($setpimage_path) ? $setpimage_path . '.jpg' : '';
         //查询完成度
         $ActivityRelAttrGroup = new ActivityRelAttrGroup();
         //获取group_id
         $group = ActivityRelAttrGroup::find()->select('group_id')->where(['attr_id' => $attrid, 'acti_id' => ActivityBase::APPLY_BAIYING])->asArray()->one();
         $group_id = $group['group_id'];
         $ids = $ActivityRelAttrGroup->completion($rel_id, ActivityBase::APPLY_BAIYING, $group_id);
         if ($ids) {
             echo PublicLibrary::format_res_encode('0', 'success', ['priceImg' => $pimg]);
         } else {
             echo PublicLibrary::format_res_encode('1', 'success', ['priceImg' => $pimg]);
         }
     } else {
         echo PublicLibrary::format_res_encode('1002', 'save error');
     }
 }
コード例 #3
0
 /**
  * 获取分组完成度
  *
  * @param int $apid 活动产品ID
  * @return array 分组完成度数据
  * 分组完成度的数据结构如下:
  * ~~~
  *  [
  *      [
  *          'id' => '分组ID',
  *          'acti_id' => '活动ID',
  *          'name' => '名称',
  *          'is_completed' => '是否已完成, 0: 未完成; 1: 已完成',
  *      ],
  *      // 其他分组数据......
  *  ]
  * ~~~
  *
  */
 public function getCompleteStatus($apid)
 {
     $apid = intval($apid);
     $result = [];
     $attrvals = [];
     $mActiProd = new ActivityProduct();
     $actiprod = $mActiProd->pk($apid);
     if (!$actiprod) {
         return false;
     }
     $aid = intval($actiprod['acti_id']);
     $group = $this->getValidGroupsByAid($aid, TRUE);
     $mAttrVal = new ActivityProductAttrVal();
     $result = $mAttrVal->getAttrVal($apid, false, ['attr_id', 'finish_status']);
     // 重新“组织”数据结构,即使用属性ID作为Key
     if ($result && is_array($result)) {
         foreach ($result as $val) {
             $attrvals[$val['attr_id']] = $val['finish_status'];
         }
     }
     // 针对每一个分组的attrs属性进行完成度"检测",并增加is_completed元素
     // is_completed 1: 已完成, 2: 未完成
     if ($group && is_array($group)) {
         foreach ($group as $key => $val) {
             if ($val['attrs'] && is_array($val['attrs'])) {
                 $group[$key]['is_completed'] = true;
                 foreach ($val['attrs'] as $attr) {
                     $attrid = $attr['attr_id'];
                     if (!isset($attrvals[$attrid]) || !$attrvals[$attrid]) {
                         $group[$key]['is_completed'] = false;
                         break;
                     }
                 }
                 unset($group[$key]['attrs']);
             } else {
                 $group[$key]['is_completed'] = false;
             }
         }
     }
     return $group;
 }