123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- <?php
- namespace common\models;
- use common\library\Pay\lib\Log;
- use Yii;
- /**
- * This is the model class for table "{{%user_mater}}".
- *
- * @property integer $id
- * @property integer $uid
- * @property string $out_trade_no
- * @property string $openid
- * @property integer $type
- * @property integer $amount
- * @property integer $c_time
- * @property integer $u_time
- * @property integer $status
- */
- class OpenMember extends \yii\db\ActiveRecord
- {
- /**
- * @inheritdoc
- */
- const STATUS_YES = 10;//已支付
- const STATUS_NO = 0;//未支付
- const TYPE_COMPANY = 1;//装修
- const TYPE_MATER = 2;//建材
- public static function tableName()
- {
- return '{{%open_member}}';
- }
- /**
- * @inheritdoc
- */
- public function rules()
- {
- return [
- [['c_time'], 'default','value'=>time()],
- //[['status'], 'default','value'=>self::STATUS_YES],
- //[['uid','company','type_id','name','tel'], 'required'],
- [['uid','out_trade_no','openid','amount','status'], 'required'],
- [['out_trade_no','openid'], 'string'],
- [['c_time','uid','u_time','status','type'], 'integer'],
- ];
- }
- /**
- * @inheritdoc
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'uid' => '用户id',
- 'out_trade_no' => '订单号',
- 'openid' => 'openid',
- 'type' => '类型',
- 'amount' => '金额',
- 'c_time' => '创建时间',
- 'u_time' => '更新时间',
- 'status' => '状态',
- ];
- }
- /**
- * 建材订单号
- * @return string
- */
- public function outTradeNo()
- {
- $out_trade_no = "openmember".date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
- $count =$this::find()->where(['out_trade_no'=>$out_trade_no])->count();
- if($count>0)
- {
- $this->outTradeNo();
- }
- return $out_trade_no;
- }
- /**
- * 装修订单号
- * @return string
- */
- public function outTradeNo2()
- {
- $out_trade_no = "companyopenmember".date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
- $count =$this::find()->where(['out_trade_no'=>$out_trade_no])->count();
- if($count>0)
- {
- $this->outTradeNo();
- }
- return $out_trade_no;
- }
- public function notify($order_sn)
- {
- Log::DEBUG("notify:begin");
- $model = OpenMember::find()->where(['out_trade_no'=>$order_sn])->one();
- if(empty($model))
- return false;
- if($model->status == self::STATUS_YES)
- return true;
- $model->status = self::STATUS_YES;
- $model->u_time = time();
- if($model->save())
- {
- Log::DEBUG('model:'.json_encode($model->getFirstErrors()));
- if($model->type == OpenMember::TYPE_COMPANY){
- $user = UserCompany::find()->where(['uid'=>$model->uid])->one();
- if(!empty($user))
- {
- $user->member = UserCompany::ISMEMBER;
- $user->save();
- Log::DEBUG('user:'.json_encode($user->getFirstErrors()));
- return true;
- }
- }else{
- $user = UserMater::find()->where(['uid'=>$model->uid])->one();
- if(!empty($user))
- {
- $user->member = UserMater::MEMBER_YES;
- $user->save();
- Log::DEBUG('user:'.json_encode($user->getFirstErrors()));
- return true;
- }
- }
- }else{
- Log::DEBUG("notify:error");
- return false;
- }
- Log::DEBUG("notify:error2");
- return false;
- }
- }
|