find();//获取版本详情 //判断是否试用 if($data['year']>0){ //计算费用 if($data['shop_mode']==10){ //单商户 $pay = $template['buy_single'][$data['year']]; $agent_price = $template['single_price']*$data['year']; } if($data['shop_mode']==20){ //多商户 $pay = $template['buy_many'][$data['year']-1]; $agent_price = $template['many_price']*$data['year']; } $expire_time = strtotime('+'.$data['year'].'year');//计算到期时间 }else{ $expire_time = time()+$template['trial_day']*3600*24;//计算到期时间 } $data['expire_time'] = $expire_time; } // 开启事务 Db::startTrans(); try { //扣费 if($data['data_type']=='add' AND $pay>0){ $user = UserModel::get($data['user_id']);//获取商户详情 $admin_price = $pay;//平台获取费用 $order_list = []; $order_no = order_no(); array_push($order_list,[ 'mode' => 20,//消费 'type' => 10,//余额 'order_no' => $order_no, 'money' => $pay, 'remark' => '购买小程序模板', 'user_id' => $data['user_id'] ]); //用户扣费 $money = $user['money']-$pay;//计算扣除后的余额 $user->money = ['dec',$pay]; $user->score = ['inc',$pay]; //增加积分 $user->pay = ['inc',$pay]; //增加消费金额 $user->save(); //代理分账 if($data['agent_id'] > 0){ if($pay - $agent_price < 0){ $this->error = '销售金额小于代理金额'; return false; } $admin_price = $agent_price;//平台获取费用 //代理分红 $agent = UserModel::get($data['agent_id']); $agent->money = ['inc',$pay - $agent_price]; $agent->save(); array_push($order_list,[ 'mode' => 40,//赠送 'type' => 10,//余额 'order_no' => $order_no, 'money' => $pay - $agent_price, 'remark' => '销售模板分红', 'user_id' => $data['agent_id'] ]); } //平台收入记录 if($admin_price > 0){ array_push($order_list,[ 'mode' => 40,//扣减 'type' => 10,//余额 'order_no' => $order_no, 'money' => $admin_price, 'remark' => '销售模板' ]); } //添加流水记录 $model = new RecordModel; $model->saveAll($order_list); } // 添加小程序记录 $this->save($data); // 新增小程序diy配置 $Page = new Page; $Page->insertDefault($this->applet_id,$data); // 新增默认门店 $Shop = new Shop; $Shop->insertDefault($this->applet_id,$data); Db::commit(); if($data['data_type']=='add'){ if($pay>0){ //账户资金变动提醒 sand_account_change_msg('购买小程序模板',$pay,$money,$data['user_id']); }else{ //试用申请成功通知 sand_testing_msg('小程序模板',$expire_time,$data['user_id']); } } return $this->applet_id; } catch (\Exception $e) { Db::rollback(); } return false; } /** * 删除数据 */ public function remove($applet_id) { $filter['applet_id'] = $applet_id; // 开启事务 Db::startTrans(); try { $this->clear($applet_id);//清除数据 DivideAccount::where($filter)->delete(); SettingModel::where($filter)->delete(); AppletName::where($filter)->delete(); Apply::where($filter)->delete(); //删除公众号数据 $model = new Wechat; $model->clear($applet_id); //清除上传的图片 if(get_addons_info('upload')){ $list = (new UploadFile)->where($filter)->select(); foreach ($list as $item){ $file = public_path() . 'uploads/' . $item['file_path']; if (is_file($file)) { @unlink($file);//删除文件 } } UploadFile::where($filter)->delete(); UploadGroup::where($filter)->delete(); } $this->where($filter)->delete(); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); } return false; } /** * 清除数据 */ public function clear($applet_id) { $filter['applet_id'] = $applet_id; // 开启事务 Db::startTrans(); try { Category::where($filter)->delete(); Goods::where($filter)->delete(); GoodsImage::where($filter)->delete(); GoodsSpec::where($filter)->delete(); GoodsSpecRel::where($filter)->delete(); Spec::where($filter)->delete(); SpecValue::where($filter)->delete(); Order::where($filter)->delete(); OrderGoods::where($filter)->delete(); OrderAddress::where($filter)->delete(); OrderDelivery::where($filter)->delete(); Pact::where($filter)->delete(); Comment::where($filter)->delete(); Shop::where($filter)->delete(); ShopClerk::where($filter)->delete(); Record::where($filter)->delete(); Device::where($filter)->delete(); Help::where($filter)->delete(); Coupon::where($filter)->delete(); CouponUser::where($filter)->delete(); CouponLog::where($filter)->delete(); RechargePlan::where($filter)->delete(); User::where($filter)->delete(); Address::where($filter)->delete(); SignLog::where($filter)->delete(); Setting::where($filter)->delete(); Page::where($filter)->delete(); //要删除文件 Qrcode::where($filter)->delete(); Table::where($filter)->delete(); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); } return false; } }