package com.wise.service;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EncodingUtils;
import org.json.JSONException;
import org.json.JSONObject;
import com.iflytek.cloud.resource.Resource;
import com.wise.data.Article;
import com.wise.extend.FaceConversionUtil;
import com.wise.list.XListView;
import com.wise.pubclas.BlurImage;
import com.wise.pubclas.Constant;
import com.wise.pubclas.GetSystem;
import com.wise.pubclas.NetThread;
import com.wise.pubclas.Variable;
import com.wise.service.FaceAdapter.ViewHolder;
import com.wise.sql.DBExcute;
import com.wise.wawc.ArticleDetailActivity;
import com.wise.wawc.FriendHomeActivity;
import com.wise.wawc.ImageActivity;
import com.wise.wawc.PicActivity;
import com.wise.wawc.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.ProgressDialog;
import android.app.ActionBar.LayoutParams;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.text.SpannableString;
import android.util.Log;
import android.view.Display;
import android.view.GestureDetector.OnGestureListener;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.BaseAdapter;
import android.widget.GridLayout;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
/**
* 车友圈文章列表
* @author 王庆文
*/
public class MyAdapter extends BaseAdapter{
private static final String TAG = "MyAdapter";
private LayoutInflater inflater;
private Activity activity;
public static boolean isClick = false;
private int commentUserId = 0;
private int blogId = 0;
private int position = 0;
private StringBuffer sb = null;
private static final int articleFavorite = 123;
private static final int refreshList = 555;
private ProgressDialog myDialog = null;
private List<Article> articleList = null;
private DBExcute dbExcute = null;
int padding = 40;
private int selection = 0;
private int screenWidth = 0;
private int imageWidth = 0;
Map<String,String> favoriteMap; //点赞集合
MyHandler myHandler = null;
View view;
XListView listView = null;
int chickIndex1 = 0;
//图片布局类
public MyAdapter(Activity activity,View v,List<Article> articleList,XListView listView){
inflater=LayoutInflater.from(activity);
this.view = v;
this.activity = activity;
this.articleList = articleList;
myHandler = new MyHandler();
dbExcute = new DBExcute();
this.listView = listView;
//计算需要显示多大尺寸的图片
GetSystem.getScreenInfor(activity);
}
public int getCount() {
return articleList.size();
}
public Object getItem(int position) {
return null;
}
//用于获取评论者的id
public long getItemId(int position) {
return commentUserId;
}
@SuppressLint("ResourceAsColor")
public View getView(final int position, View convertView, ViewGroup parent) {
this.position = position;
ViewHolder viewHolder;
if(convertView == null){
convertView = inflater.inflate(R.layout.article_adapter, null);
viewHolder = new ViewHolder();
viewHolder.favoriteStart = (ImageView) convertView.findViewById(R.id.article_praises_star);
viewHolder.favoriteUser = (TextView) convertView.findViewById(R.id.article_praises_user);
viewHolder.saySomething = (ImageView) convertView.findViewById(R.id.list_say_somthing);
viewHolder.userHead = (ImageView) convertView.findViewById(R.id.head_article);
viewHolder.articel_user_name = (TextView) convertView.findViewById(R.id.article_user_name);
viewHolder.tv_article_content = (TextView) convertView.findViewById(R.id.tv_article_content);
viewHolder.publish_time = (TextView) convertView.findViewById(R.id.publish_time);
viewHolder.favorite = (ImageView) convertView.findViewById(R.id.favorite);
viewHolder.line = convertView.findViewById(R.id.article_adapter_line);
viewHolder.articlePraisesLayout = (TableRow) convertView.findViewById(R.id.article_praises_layout);
viewHolder.userImageLayout = (GridView) convertView.findViewById(R.id.user_image);
viewHolder.totalComment = (TextView) convertView.findViewById(R.id.my_vehicle_comment_total_tv);
viewHolder.commentLayout = (LinearLayout) convertView.findViewById(R.id.article_comment_layout);
viewHolder.oneCommentName = (TextView)convertView.findViewById(R.id.my_vehicle_one_comment_name_tv);
viewHolder.oneCommentContent = (TextView)convertView.findViewById(R.id.my_vehicle_one_comment_content_tv);
viewHolder.twoCommentName = (TextView)convertView.findViewById(R.id.my_vehicle_two_comment_name_tv);
viewHolder.twoCommentContent = (TextView)convertView.findViewById(R.id.my_vehicle_two_comment_content_tv);
viewHolder.twoCommentLayout = (LinearLayout) convertView.findViewById(R.id.my_vehicle_two_comment_ll);
viewHolder.allCommentLayout = (TableLayout) convertView.findViewById(R.id.vehicle_friend_comment_tl);
viewHolder.oneCommentLayout = (LinearLayout) convertView.findViewById(R.id.my_vehicle_one_comment_ll);
viewHolder.tl_image = (TableLayout) convertView.findViewById(R.id.tl_image);
convertView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) convertView.getTag();
}
// 评论
int size = articleList.get(position).getCommentList().size();
viewHolder.commentLayout.setVisibility(View.VISIBLE);
viewHolder.oneCommentLayout.setVisibility(View.VISIBLE);
viewHolder.twoCommentLayout.setVisibility(View.VISIBLE);
viewHolder.line.setVisibility(View.VISIBLE);
viewHolder.allCommentLayout.setVisibility(View.VISIBLE);
viewHolder.totalComment.setVisibility(View.GONE);
/**
* 加载之前 所有控件设置为显示
* 没有评论 第一条隐藏 第二条隐藏 总条数隐藏
* 一条评论 第一条显示 第二条隐藏 总条数隐藏
* 两条评论 都显示
*/
if(size == 0 || articleList.get(position).getCommentList() == null){
viewHolder.commentLayout.setVisibility(View.GONE);
viewHolder.line.setVisibility(View.GONE);
}
if(size == 1){
viewHolder.commentLayout.setVisibility(View.VISIBLE);
viewHolder.line.setVisibility(View.VISIBLE);
viewHolder.oneCommentLayout.setVisibility(View.VISIBLE);
viewHolder.oneCommentName.setText(articleList.get(position).getCommentList().get(size - 1)[0]+" : ");
viewHolder.oneCommentContent.setText(getFaceImage(articleList.get(position).getCommentList().get(size - 1)[1]));
viewHolder.twoCommentLayout.setVisibility(View.GONE);
viewHolder.totalComment.setVisibility(View.GONE);
}
if(size == 2){
viewHolder.commentLayout.setVisibility(View.VISIBLE);
viewHolder.line.setVisibility(View.VISIBLE);
viewHolder.oneCommentLayout.setVisibility(View.VISIBLE);
viewHolder.twoCommentLayout.setVisibility(View.VISIBLE);
viewHolder.oneCommentName.setText(articleList.get(position).getCommentList().get(size - 1)[0]+" : ");
viewHolder.oneCommentContent.setText(getFaceImage(articleList.get(position).getCommentList().get(size - 1)[1]));
viewHolder.twoCommentName.setText(articleList.get(position).getCommentList().get(size - 2)[0]+" : ");
viewHolder.twoCommentContent.setText(getFaceImage(articleList.get(position).getCommentList().get(size - 2)[1]));
}
if(size > 2){
viewHolder.commentLayout.setVisibility(View.VISIBLE);
viewHolder.line.setVisibility(View.VISIBLE);
viewHolder.oneCommentLayout.setVisibility(View.VISIBLE);
viewHolder.twoCommentLayout.setVisibility(View.VISIBLE);
viewHolder.oneCommentName.setText(articleList.get(position).getCommentList().get(size - 1)[0]+" : ");
viewHolder.oneCommentContent.setText(getFaceImage(articleList.get(position).getCommentList().get(size - 1)[1]));
viewHolder.twoCommentName.setText(articleList.get(position).getCommentList().get(size - 2)[0]+" : ");
viewHolder.twoCommentContent.setText(getFaceImage(articleList.get(position).getCommentList().get(size - 2)[1]));
viewHolder.totalComment.setVisibility(View.VISIBLE);
viewHolder.totalComment.setText("共" + articleList.get(position).getCommentList().size() + "条评论");
}
List<Bitmap> threeSmallImageList = new ArrayList<Bitmap>();
List<Bitmap> smallImageList = new ArrayList<Bitmap>();
if(articleList.get(position).getImageList() != null){
for(int i = 0 ; i < articleList.get(position).getImageList().size() ; i ++){
Map<String,String> imageMap = articleList.get(position).getImageList().get(i);
//判断小图是否存在sd卡 /点击小图的时候再判断大图是否存在sd卡
String smallImage = imageMap.get("small_pic").substring(imageMap.get("small_pic").lastIndexOf("/") + 1);
//本地不存在图片 存null
Bitmap smallBitmap = imageIsExist(Constant.VehiclePath + smallImage,imageMap.get("small_pic"),3,0);
smallImageList.add(smallBitmap);
if(i <= 2){
threeSmallImageList.add(i, smallBitmap);
}
}
}
//将用户头像url存储起来
File userIconPath = new File(Constant.userIconPath);
if(!userIconPath.exists()){
userIconPath.mkdir();
}
// 赞 如果没有赞 隐藏赞布局 同时将分割线隐藏
if (articleList.get(position).getPraisesList() != null) {
if (articleList.get(position).getPraisesList().size() != 0) {
sb = new StringBuffer();
Iterator iter = articleList.get(position).getPraisesList().entrySet().iterator();
if (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
String val = (String) entry.getValue();
String str = "";
if(articleList.get(position).getPraisesList().size() > 1){
str = "...等共" + articleList.get(position).getPraisesList().size() + "人觉得赞";
}else{
str = "";
}
sb.append(val + str);
}
viewHolder.favoriteStart.setVisibility(View.VISIBLE);
viewHolder.articlePraisesLayout.setVisibility(View.VISIBLE);
viewHolder.favoriteUser.setText(sb.toString());
} else {
viewHolder.articlePraisesLayout.setVisibility(View.GONE);
viewHolder.line.setVisibility(View.GONE);
}
}else{
viewHolder.articlePraisesLayout.setVisibility(View.GONE);
viewHolder.line.setVisibility(View.GONE);
}
boolean isNull1 = false;
boolean isNull2 = false;
if(articleList.get(position).getCommentList() != null){
if(articleList.get(position).getCommentList().size() == 0){
isNull1 = true;
}
}else{
isNull1 = true;
}
if(articleList.get(position).getPraisesList() != null){
if(articleList.get(position).getPraisesList().size() == 0){
isNull2 = true;
}
}else{
isNull2 = true;
}
if(isNull2 && isNull1){
viewHolder.allCommentLayout.setVisibility(View.GONE);
isNull1 = false;
isNull2 = false;
}
if(threeSmallImageList.size() == 0){
viewHolder.tl_image.setVisibility(view.GONE);
}else{
viewHolder.tl_image.setVisibility(view.VISIBLE);
viewHolder.userImageLayout.setAdapter(new UserImageAdapter(threeSmallImageList,position));
}
String str = articleList.get(position).getCreate_time();
String createTime = str.substring(0, str.indexOf(".")).replace("T"," ");
if(!"".equals(articleList.get(position).getUpdateTime())){
String str1 = articleList.get(position).getUpdateTime();
String createTime1 = str1.substring(0, str1.indexOf(".")).replace("T"," ");
}
viewHolder.publish_time.setText(getTime(createTime));
viewHolder.articel_user_name.setText(articleList.get(position).getName());
// if(){
//
// }
viewHolder.tv_article_content.setText(articleList.get(position).getContent());
viewHolder.saySomething.setOnClickListener(new MyClickListener(position));
viewHolder.favorite.setOnClickListener(new MyClickListener(position));
viewHolder.userHead.setOnClickListener(new MyClickListener(position));
viewHolder.articel_user_name.setOnClickListener(new MyClickListener(position));
//设置用户头像
Bitmap userIcons = imageIsExist(Constant.userIconPath + articleList.get(position).getCust_id() + ".jpg",articleList.get(position).getUserLogo(),4,articleList.get(position).getCust_id());
if(userIcons == null){
viewHolder.userHead.setImageBitmap(getBitmap(R.drawable.body_icon_help)); // 使用缓存
}else{
// 使用缓存
viewHolder.userHead.setImageBitmap(BlurImage.getRoundedCornerBitmap(getBitmap(Constant.userIconPath + articleList.get(position).getCust_id()+".jpg")));
}
return convertView;
}
//判断图片是否存在SD卡
private Bitmap imageIsExist(final String path,final String loadUrl,final int action,final int custId) {
File file = new File(path);
if(file.exists()){
// return getBitmap(path); // 使用缓存
return BitmapFactory.decodeFile(path);
}else{
new Thread(new Runnable() {
public void run() {
Bitmap bitmap = GetSystem.getBitmapFromURL(loadUrl);
if(bitmap != null){
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
File imagePath = new File(Constant.VehiclePath);
if(!imagePath.exists()){
imagePath.mkdir();
}
if(action == 3){
createImage(Constant.VehiclePath + loadUrl.substring(loadUrl.lastIndexOf("/")),bitmap);
}
if(action == 4){
createImage(Constant.userIconPath + custId + ".jpg",bitmap);
}
}
}
}
}).start();
return null;
}
}
public void createImage(String fileName,Bitmap bitmap){
FileOutputStream b = null;
try {
b = new FileOutputStream(fileName);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
b.flush();
b.close();
} catch (IOException e) {
e.printStackTrace();
}
}
Message msg = new Message();
msg.what = refreshList;
myHandler.sendMessage(msg);
}
public static String getTime(String time){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = sdf.format(new Date());
String time1 = transform(time);
if(Integer.parseInt(time1.substring(0,4)) < Integer.parseInt(currentTime.substring(0,4))){
return time1.substring(0, 16);
}else{
if((Integer.parseInt(currentTime.substring(8,10)) - Integer.parseInt(time1.substring(8,10))) == 1){
return "昨天" + time1.substring(11, 16);
}else if((Integer.parseInt(currentTime.substring(8,10)) - Integer.parseInt(time1.substring(8,10))) == 2){
return "前天" + time1.substring(11, 16);
}else if((Integer.parseInt(currentTime.substring(8,10)) == Integer.parseInt(time1.substring(8,10)))){
return time1.substring(11, 16);
}
return time1.substring(5, 16);
}
}
//转换时区
public static String transform(String from){
String to = "";
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//本地时区
Calendar nowCal = Calendar.getInstance();
TimeZone localZone = nowCal.getTimeZone();
//设定SDF的时区为本地
simple.setTimeZone(localZone);
SimpleDateFormat simple1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//设置 DateFormat的时间区域为GMT
simple1.setTimeZone(TimeZone.getTimeZone("GMT"));
//把字符串转化为Date对象,然后格式化输出这个Date
Date fromDate = new Date();
try {
//时间string解析成GMT时间
fromDate = simple1.parse(from);
//GMT时间转成当前时区的时间
to = simple.format(fromDate);
} catch (ParseException e1) {
e1.printStackTrace();
}
return to;
}
class MyClickListener implements OnClickListener{
int index = 0 ;
MyClickListener(int chickIndex){
this.index = chickIndex;
}
public void onClick(View v) {
switch(v.getId()){
case R.id.list_say_somthing:
//VehicleFriendActivity.blogId = articleList.get(index).getBlog_id();
if(onItemContentClickListener != null){
onItemContentClickListener.say_somthing(articleList.get(index).getBlog_id());
}
//编辑框不可见,设置为可见
if(!isClick){
isClick = true;
view.setVisibility(View.VISIBLE);
//编辑框可见,设置为不可见
}else if(isClick){
isClick = false;
view.setVisibility(View.GONE);
}
break;
case R.id.head_article: //点击用户头像 进入好友主页
Intent intent = new Intent(activity,FriendHomeActivity.class);
intent.putExtra("cust_id", String.valueOf(articleList.get(index).getCust_id()));
intent.putExtra("user_logo", String.valueOf(articleList.get(index).getUserLogo()));
intent.putExtra("user_name", String.valueOf(articleList.get(index).getName()));
activity.startActivity(intent);
break;
case R.id.article_user_name: //点击进入文章的详细介绍
Intent articleDetailIntent = new Intent(activity,ArticleDetailActivity.class);
articleDetailIntent.putExtra("article", articleList.get(index));
activity.startActivity(articleDetailIntent);
break;
case R.id.favorite:
boolean hasFavorite = true;
//判断当前登录用户是否已经赞过
favoriteMap = articleList.get(index).getPraisesList();
if(favoriteMap != null){
Iterator iter = favoriteMap.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
String userName = (String) entry.getValue();
String userId = (String) entry.getKey();
//已经赞过 不许再赞 TODO
if(Variable.cust_id.equals(userId)){
hasFavorite = false;
}
}
}
if(hasFavorite){
blogId = articleList.get(index).getBlog_id();
myDialog = ProgressDialog.show(activity, "提示","数据提交中...");
myDialog.setCancelable(true);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name",Variable.cust_name));
params.add(new BasicNameValuePair("cust_id",Variable.cust_id));
new Thread(new NetThread.putDataThread(myHandler, Constant.BaseUrl + "blog/" + articleList.get(index).getBlog_id()+"/praise?auth_code=" + Variable.auth_code, params, articleFavorite)).start();
}else{
hasFavorite = true;
Toast.makeText(activity,"已经赞过了", 0).show();
}
break;
}
}
}
class MyHandler extends Handler{
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case articleFavorite:
String result = msg.obj.toString();
try {
JSONObject jsonObject = new JSONObject(result);
if(Integer.valueOf(jsonObject.getString("status_code")) == 0){
if(onItemContentClickListener != null){
onItemContentClickListener.Favorite(blogId);
myDialog.dismiss();
}
}
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
break;
case refreshList:
new UserImageAdapter().notifyDataSetChanged();
MyAdapter.this.notifyDataSetChanged();
break;
}
}
}
public void refreshDates(List<Article> articleList){
this.articleList = articleList;
this.notifyDataSetChanged();
}
//屏蔽List item 点击事件(避免点击变色 影响ui)
public boolean isEnabled(int position) {
return false;
}
class ViewHolder {
public TextView articel_user_name; //点击查看详细信息
public TextView tv_article_content;
public TextView publish_time;
public ImageView favorite = null;
public ImageView saySomething;
public ImageView userHead = null;
public ImageView favoriteStart = null;
public TextView favoriteUser = null;
public View line = null; //分割线
public TableRow articlePraisesLayout = null; //点赞者
public GridView userImageLayout = null;
public UserImageAdapter userImageAdapter = null;
//暂时显示两条评论
public TextView oneCommentName = null;
public TextView oneCommentContent = null;
public TextView twoCommentName = null;
public TextView twoCommentContent = null;
public TextView totalComment = null;
public LinearLayout twoCommentLayout = null;
public LinearLayout oneCommentLayout = null;
public LinearLayout commentLayout = null;
public TableLayout allCommentLayout = null;
public TableLayout tl_image;
}
//得到缓存图片
public Bitmap getBitmap(Object obj){
BitmapCache bitmapCache = BitmapCache.getInstance();
Bitmap image = null;
if(obj instanceof String){// 对象 内存卡上面的图片
String path = (String) obj;
if(bitmapCache.getBitmap(path) == null){
BitmapDrawable drawable = new BitmapDrawable(BitmapFactory.decodeFile(path));
bitmapCache.putBitmap(path, drawable);
}
image = bitmapCache.getBitmap(path).getBitmap();
}
if(obj instanceof Integer){ // 资源文件中的图片
int resId = (Integer) obj;
if(bitmapCache.getBitmap(resId) == null){
BitmapDrawable drawable = new BitmapDrawable(BitmapFactory.decodeResource(activity.getResources(), resId));
bitmapCache.putBitmap(resId, drawable);
}
image = bitmapCache.getBitmap(resId).getBitmap();
}
return image;
}
//得到缓存控件
public View getView(int hashCode, View view){
String name = String.valueOf(hashCode);
ViewCache viewCache = ViewCache.getInstance();
if(viewCache.getView(name) == null){
viewCache.putView(name, view);
}
return viewCache.getView(name);
}
public SpannableString getFaceImage(String faceContent){
return FaceConversionUtil.getInstace().getExpressionString(activity, faceContent);
}
/**
* 显示图片列表
* @author Mr.Wang
*/
class UserImageAdapter extends BaseAdapter{
List<Bitmap> smallImageList;
int indexId = 0;
UserImageAdapter(List<Bitmap> smallImageList,int indexId){
this.smallImageList = smallImageList;
this.indexId = indexId;
}
UserImageAdapter(){}
public int getCount() {
return smallImageList.size();
}
public Object getItem(int position) {
return smallImageList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
UserImageHolder userImageHolder = null;
if(convertView == null){
userImageHolder = new UserImageHolder();
convertView = inflater.inflate(R.layout.user_image_item, null);
userImageHolder.userImage = (ImageView) convertView.findViewById(R.id.one_image);
userImageHolder.userImage.setLayoutParams(new LinearLayout.LayoutParams(Variable.smallImageReqWidth, Variable.smallImageReqWidth));
convertView.setTag(userImageHolder);
}else{
userImageHolder = (UserImageHolder) convertView.getTag();
}
Bitmap bitmap = smallImageList.get(position);
if(bitmap == null){ //显示临时图片
Bitmap im = BitmapFactory.decodeResource(activity.getResources(), R.drawable.article);
userImageHolder.userImage.setImageBitmap(im);
// userImageHolder.userImage.setBackgroundResource(R.drawable.article_comment_bg);
}else{
userImageHolder.userImage.setImageBitmap(smallImageList.get(position));
userImageHolder.userImage.setLayoutParams(new LinearLayout.LayoutParams(Variable.smallImageReqWidth, Variable.smallImageReqWidth));
userImageHolder.userImage.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//查看大图
Intent intent = new Intent(activity,PicActivity.class);
intent.putExtra("article", articleList.get(indexId));
activity.startActivity(intent);
}
});
}
return convertView;
}
class UserImageHolder{
ImageView userImage = null;
}
}
OnItemContentClickListener onItemContentClickListener;
public void setOnItemContentClickListener(OnItemContentClickListener onItemContentClickListener){
this.onItemContentClickListener = onItemContentClickListener;
}
public interface OnItemContentClickListener{
public abstract void say_somthing(int index);
public abstract void Favorite(int bolg_id);
}
}