package com.quark.fragment.company;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import me.maxwin.view.XListView;
import me.maxwin.view.XListView.IXListViewListener;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.carson.constant.ConstantForSaveList;
import com.qingmu.jianzhidaren.R;
import com.quark.adapter.MyJianzhiAdapter;
import com.quark.common.JsonUtil;
import com.quark.common.ToastUtil;
import com.quark.common.Url;
import com.quark.company.function.PersonAssessActivity;
import com.quark.company.function.RosterActivity;
import com.quark.guanli.PublishActivity;
import com.quark.jianzhidaren.BaseActivity;
import com.parttime.main.MainTabActivity;
import com.quark.model.MyJianzhi;
import com.quark.model.PublishAvailability;
import com.quark.ui.widget.CustomDialog;
import com.quark.ui.widget.CustomDialogThree;
import com.quark.us.AuthenticationActivity;
import com.thirdparty.alipay.RechargeActivity;
/**
* 商家端 管理
*
* @ClassName: HomeFragment
* @Description: TODO
* @author howe
* @date 2015-1-16 下午9:28:49
*
*/
public class HomeFragmentCompany extends BaseActivity implements
IXListViewListener {
private MyJianzhiAdapter mjzAdapter;
static XListView listView;
static View findLayout;
ArrayList<MyJianzhi> jianzhis = new ArrayList<MyJianzhi>();
int pageNumber = 1;
int currentCount = 1;
int page_size = 3;
private String url;// 获取管理兼职列表
private String avalible_url;// 是否能发布兼职
private PublishAvailability availability;// 是否能发布兼职
private String user_id, city;
private SharedPreferences sp;
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_home_company);
sp = getSharedPreferences("jrdr.setting", Context.MODE_PRIVATE);
user_id = sp.getString("userId", "");
city = sp.getString("city", "深圳");
// 当前城市
url = Url.COMPANY_MyJianzhi_List + "?token="
+ MainTabActivity.token;
// 获取是否能发布兼职
avalible_url = Url.COMPANY_availability + "?token="
+ MainTabActivity.token;
listView = (XListView) findViewById(R.id.list1);
listView.setPullLoadEnable(true);
mjzAdapter = new MyJianzhiAdapter(HomeFragmentCompany.this, jianzhis);
listView.setAdapter(mjzAdapter);
listView.setXListViewListener(this);
RelativeLayout reLayout = (RelativeLayout) findViewById(R.id.top_title_layout);
reLayout.setBackgroundColor(getResources().getColor(
R.color.guanli_common_color));
setBackButton();
}
/**
* 设置返回按钮
*/
public void setBackButton() {
LinearLayout back_lay = (LinearLayout) findViewById(R.id.left);
back_lay.setVisibility(View.VISIBLE);
back_lay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
/**
* 获取各种状态
*/
public void getAvailability() {
showWait(true);
StringRequest request = new StringRequest(Request.Method.POST,
avalible_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
try {
JSONObject js = new JSONObject(response);
JSONObject sd = js
.getJSONObject("AvailabilityResponse");
availability = (PublishAvailability) JsonUtil
.jsonToBean(sd, PublishAvailability.class);
if (checkStatus()) {
Intent intent = new Intent();
intent.setClass(HomeFragmentCompany.this,
PublishActivity.class);
startActivity(intent);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
showWait(false);
Toast.makeText(HomeFragmentCompany.this,
"你的网络不够给力,获取数据失败", Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("company_id", user_id);
return map;
}
};
queue.add(request);
request.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
/**
* @param str
* @param str2
*/
private void showAlertDialogPingJia(String str, final String str2,
final String submintStr, final String activity_id,
final String totalCount) {
CustomDialog.Builder builder = new CustomDialog.Builder(
HomeFragmentCompany.this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton(submintStr,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
// 到指定评价人员列表
Intent intent = new Intent();
intent.setClass(HomeFragmentCompany.this,
PersonAssessActivity.class);
intent.putExtra("activity_id", activity_id);
intent.putExtra("total_num", totalCount);
startActivity(intent);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}
});
builder.create().show();
}
/**
* @param str
* @param str2
*/
private void showAlertDialog1(String str, final String str2,
final String submintStr) {
CustomDialog.Builder builder = new CustomDialog.Builder(
HomeFragmentCompany.this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton(submintStr,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (submintStr.equals("去认证")) {
Intent intent = new Intent();
intent.setClass(HomeFragmentCompany.this,
AuthenticationActivity.class);
startActivity(intent);
}
if (submintStr.equals("去评价")) {
// 到指定评价人员列表
Intent intent = new Intent();
intent.setClass(HomeFragmentCompany.this,
RosterActivity.class);
startActivity(intent);
}
}
});
if (!"快一点吧".equals(submintStr)) {
builder.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}
});
}
builder.create().show();
}
/**
* @param str
* @param str2
*/
private void showAlertDialog2(String str, final String str2) {
CustomDialog.Builder builder = new CustomDialog.Builder(
HomeFragmentCompany.this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton("立即充值",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Intent intent = new Intent();
intent.setClass(HomeFragmentCompany.this,
RechargeActivity.class);
startActivity(intent);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}
});
builder.create().show();
}
/**
* @param str
* @param str2
*/
private void showAlertDialog3(String str, final String str2, String str3) {
CustomDialogThree.Builder builder = new CustomDialogThree.Builder(
HomeFragmentCompany.this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setMoney(str3);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Intent intent = new Intent();
intent.setClass(HomeFragmentCompany.this, PublishActivity.class);
startActivity(intent);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}
});
builder.create().show();
}
/**
* 点击发布时判断是否能发布
*/
public boolean checkStatus() {
// 以发布过一条信息 未实名验证 商家注册可以在未实名认证条件下发布一条信息
if (availability == null) {
return false;
} else {
// 0未提交审核,1审核中,3驳回
if ((availability.getTotal_count() > 0)
&& (availability.getCertification() == 0)) {
showAlertDialog1("您需要完成实名认证,才可以继续发布兼职信息", "温馨提示", "去认证");
return false;
}
// 实名认证正式审核中
if ((availability.getTotal_count() > 0)
&& (availability.getCertification() == 1)) {
showAlertDialog1("您的实名认证正在审核中,审核通过我们将会第一时间通知您", "温馨提示", "快一点吧");
return false;
}
// 实名认证被驳回
if ((availability.getTotal_count() > 0)
&& (availability.getCertification() == 3)) {
showAlertDialog1("您需要完成实名认证,才可以继续发布兼职信息", "温馨提示", "去认证");
return false;
}
// 未评论
if (availability.getTobe_comment_activity_id() == -1) {
} else {
showAlertDialogPingJia(
"完成" + availability.getTobe_comment_activity_title()
+ "人员评价后,才可以发布新的招聘信息", "温馨提示", "去评论",
String.valueOf(availability
.getTobe_comment_activity_id()),
String.valueOf(availability.getTotal_count()));
return false;
}
int s = availability.getCharge_count()
+ availability.getFree_count();
if (s < 1) {
showAlertDialog2("您今日已发布过一条免费招聘信息,如需再发布需要付费5元(账户余额"
+ availability.getMoney() + "元)", "余额不足");
return false;
}
// 已经发布过免费的,本次需要付费发布
// if (availability.getFree_count() < 1) {
// if (availability.getCharge_count() >= 1) {
// showAlertDialog3("您今日已发布过一条免费招聘信息,如需再发布需要付费5元,", "发布兼职",
// "(账号余额:" + availability.getMoney() + "元)");
// return false;
// }
// }
}
return true;
}
public void getData() {
showWait(true);
StringRequest request = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
try {
JSONObject js = new JSONObject(response);
// todo表示所有活动未处理数目String
String todo = js.getString("todo");
int temp = 0;
try {
temp = Integer.parseInt(todo);
} catch (Exception e) {
temp = 0;
}
Editor edt = sp.edit();
edt.putInt(ConstantForSaveList.userId + "todo",
temp);
edt.commit();
JSONObject jss = js.getJSONObject("MyActivity");
JSONArray jsss = jss.getJSONArray("list");
if (jsss.length() > 0) {
for (int i = 0; i < jsss.length(); i++) {
MyJianzhi jianzhi = new MyJianzhi();
jianzhi = (MyJianzhi) JsonUtil.jsonToBean(
jsss.getJSONObject(i),
MyJianzhi.class);
jianzhis.add(jianzhi);
}
}
currentCount = jsss.length();
Message msg = handler.obtainMessage();
msg.what = 1;
handler.sendMessage(msg);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
showWait(false);
ToastUtil.showShortToast("当前网络状态不好,请检查网络");
currentCount = 0;
Message msg = handler.obtainMessage();
msg.what = 1;
handler.sendMessage(msg);
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("company_id", user_id);
map.put("page_size", page_size + "");
map.put("pn", pageNumber + "");
return map;
}
};
queue.add(request);
request.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
// ========================xlist=================================================
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
listView.setLoadOver(currentCount, page_size);// 用于是否加载完了
mjzAdapter.notifyDataSetChanged();
onLoad();
};
};
private void onLoad() {
listView.stopRefresh();
listView.stopLoadMore();
listView.setRefreshTime("刚刚");
}
@Override
public void onRefresh() {
pageNumber = 1;
jianzhis.clear();
getData();
// mAdapter.notifyDataSetChanged();
mjzAdapter = new MyJianzhiAdapter(HomeFragmentCompany.this, jianzhis);
listView.setAdapter(mjzAdapter);
}
@Override
public void onLoadMore() {
pageNumber++;
getData();
}
// ======xlist end============
@Override
public void onResume() {
super.onResume();
jianzhis.clear();
pageNumber = 1;
getData();
}
}