package com.quark.fragment.company; import java.util.HashMap; import java.util.Map; import org.json.JSONException; import org.json.JSONObject; 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.broker.BrokerActivity; import com.carson.broker.JiedanActivity; import com.carson.broker.MyFunsActivity; import com.carson.constant.ConstantForSaveList; import com.droid.carson.Activity01; import com.qingmu.jianzhidaren.R; 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.parttime.main.MainTabActivity; import com.quark.model.PublishAvailability; import com.quark.ui.widget.CustomDialog; import com.quark.us.AuthenticationActivity; import com.quark.utils.NetWorkCheck; import com.thirdparty.alipay.RechargeActivity; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; public class ManageFragmentCompany extends BaseFragment implements OnClickListener { private String url, avalible_url;// 获取首页红点数、 是否能发布兼职 private PublishAvailability availability;// 是否能发布兼职 private String user_id, city; private static SharedPreferences sp; private TextView cityTv;// 城市框 private RelativeLayout home_page_city_relayout; private ReceiveBroadCast receiveBroadCast;// 注册广播更换城市数据 private RelativeLayout reLayout1, reLayout2, reLayout3, reLayout4, reLayout5;// 排行榜,我的粉丝,接受活动,发布兼职,活动管理 private TextView paihangbang_mingci_tv, my_funs_num_tv; private static ImageView accept_act_number_imv;// 接单新活动红点提示 private static TextView manage_act_number_tv; public static ManageFragmentCompany newInstance(String param1, String param2) { ManageFragmentCompany fragment = new ManageFragmentCompany(); Bundle args = new Bundle(); fragment.setArguments(args); return fragment; } public ManageFragmentCompany() { } @Override public void onAttach(Activity activity) { /** 注册广播 */ receiveBroadCast = new ReceiveBroadCast(); IntentFilter filter = new IntentFilter(); filter.addAction("com.carson.company.changgecity"); activity.registerReceiver(receiveBroadCast, filter); super.onAttach(activity); } @Override public void onDestroy() { if (receiveBroadCast != null) { getActivity().unregisterReceiver(receiveBroadCast); } super.onDestroy(); } /** * 注册广播用于处理切换城市位置更新兼职信息 */ class ReceiveBroadCast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String changecity = intent.getExtras().getString("changgecity"); city = changecity; cityTv.setText(city); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 100) { switch (resultCode) { case android.app.Activity.RESULT_OK: // String province = data.getExtras().getString("province"); city = data.getExtras().getString("city"); if ((city != null) && (!city.equals(""))) { cityTv.setText(city); // 跟原来保存的城市对比 String old_city = sp.getString("city", "深圳"); if (old_city.equals(city)) { ConstantForSaveList.change_city = false; } else { ConstantForSaveList.change_city = true; } Editor edit = sp.edit(); edit.putString("city", city); edit.commit(); // 切换到指定城市,访问后台传输城市 String cityUrl; cityUrl = Url.CHANGE_CITY_CUSTOM + "?token=" + MainTabActivity.token; StringRequest request = new StringRequest( Request.Method.POST, cityUrl, new Response.Listener<String>() { @Override public void onResponse(String response) { } }, new Response.ErrorListener() { @Override public void onErrorResponse( VolleyError volleyError) { } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> map = new HashMap<String, String>(); map.put("company_id", user_id); map.put("city", city); return map; } }; queue.add(request); request.setRetryPolicy(new DefaultRetryPolicy( ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f)); // 获取区 } default: } } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_manage_company, container, false); sp = getActivity().getSharedPreferences("jrdr.setting", Context.MODE_PRIVATE); user_id = sp.getString("userId", ""); city = sp.getString("city", "深圳"); // 4个显示数字的tv paihangbang_mingci_tv = (TextView) view .findViewById(R.id.paihangbang_mingci_tv); my_funs_num_tv = (TextView) view.findViewById(R.id.my_funs_num_tv); accept_act_number_imv = (ImageView) view .findViewById(R.id.accept_act_number_tv); manage_act_number_tv = (TextView) view .findViewById(R.id.manage_act_number_tv); // 当前城市 cityTv = (TextView) view.findViewById(R.id.home_page_city); cityTv.setText(city); home_page_city_relayout = (RelativeLayout) view .findViewById(R.id.home_page_city_relayout); home_page_city_relayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(); // 传值当前定位城市 intent.putExtra("citylist_city", sp.getString("dingweicity", "定位失败")); intent.setClass(getActivity(), Activity01.class); startActivityForResult(intent, 100); } }); // 获取首页状态 url = Url.BROKER_MAIN_PAGE + "?token=" + MainTabActivity.token; // 获取是否能发布兼职 avalible_url = Url.COMPANY_availability + "?token=" + MainTabActivity.token; // 隐藏右侧发布按钮 LinearLayout right_layout = (LinearLayout) view .findViewById(R.id.right_layout); right_layout.setVisibility(View.GONE); // 头部设置成灰色 RelativeLayout reLayout = (RelativeLayout) view .findViewById(R.id.home_common_guangchang_relayout); reLayout.setBackgroundColor(getResources().getColor( R.color.guanli_common_color)); // 初始化5大layout reLayout1 = (RelativeLayout) view.findViewById(R.id.relayout_1); reLayout2 = (RelativeLayout) view.findViewById(R.id.relayout_2); reLayout3 = (RelativeLayout) view.findViewById(R.id.relayout_3); reLayout4 = (RelativeLayout) view.findViewById(R.id.relayout_4); reLayout5 = (RelativeLayout) view.findViewById(R.id.relayout_5); reLayout1.setOnClickListener(this); reLayout2.setOnClickListener(this); reLayout3.setOnClickListener(this); reLayout4.setOnClickListener(this); reLayout5.setOnClickListener(this); return view; } @Override public void onResume() { super.onResume(); getData(); } /** * 获取首页的信息 */ 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); JSONObject jss = js.getJSONObject("responseStatus"); int status = jss.getInt("status"); if (status == 1) { // todo表示所有活动未处理数目String int todo = jss.getInt("todo"); int rank = jss.getInt("rank"); int fans = jss.getInt("fans"); Editor edt = sp.edit(); edt.putInt(ConstantForSaveList.userId + "todo", todo); edt.putInt(user_id + "rank", rank); edt.putInt(user_id + "fans", fans); edt.commit(); handler.sendEmptyMessage(1); } } catch (JSONException e) { e.printStackTrace(); handler.sendEmptyMessage(1); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { showWait(false); ToastUtil.showShortToast("当前网络状态不好,请检查网络"); handler.sendEmptyMessage(1); } }) { @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)); } /** * 更新活动管理、开始接单红点 */ public static void updateTodoAndjieDan() { int todo = sp.getInt(ConstantForSaveList.userId + "todo", 0); boolean typeFlag = sp.getBoolean(ConstantForSaveList.userId + "type", false); if (todo > 0) { manage_act_number_tv.setText(String.valueOf(todo)); manage_act_number_tv.setVisibility(View.VISIBLE); } else { manage_act_number_tv.setVisibility(View.INVISIBLE); } // 是否显示接单红点 if (typeFlag) { accept_act_number_imv.setVisibility(View.VISIBLE); } else { accept_act_number_imv.setVisibility(View.INVISIBLE); } } private Handler handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 1: int rank = sp.getInt(user_id + "rank", 1); paihangbang_mingci_tv.setText("第" + rank + "名"); int fans = sp.getInt(user_id + "fans", 1); my_funs_num_tv.setText(String.valueOf(fans)); int todo = sp.getInt(ConstantForSaveList.userId + "todo", 0); if (todo > 0) { manage_act_number_tv.setText(String.valueOf(todo)); manage_act_number_tv.setVisibility(View.VISIBLE); } else { manage_act_number_tv.setVisibility(View.INVISIBLE); } break; default: break; } }; }; /** * 获取各种状态 */ 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()) { if (getActivity() != null) { Intent intent = new Intent(); intent.setClass(getActivity(), PublishActivity.class); startActivity(intent); } } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { showWait(false); Toast.makeText(getActivity(), "你的网络不够给力,获取数据失败", 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(getActivity()); 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(getActivity(), 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(getActivity()); 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(getActivity(), AuthenticationActivity.class); startActivity(intent); } if (submintStr.equals("去评价")) { // 到指定评价人员列表 Intent intent = new Intent(); intent.setClass(getActivity(), 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(getActivity()); 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(getActivity(), RechargeActivity.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; } } return true; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.relayout_1: if (getActivity() != null) { if (NetWorkCheck.isOpenNetwork(getActivity())) startActivity(new Intent(getActivity(), BrokerActivity.class)); else ToastUtil.showShortToast("网络连接不给力,请稍后!"); } break; case R.id.relayout_2: if (getActivity() != null) { if (NetWorkCheck.isOpenNetwork(getActivity())) startActivity(new Intent(getActivity(), MyFunsActivity.class).putExtra("funs", sp.getInt(user_id + "fans", 1))); else ToastUtil.showShortToast("网络连接不给力,请稍后!"); } break; case R.id.relayout_3: if (getActivity() != null) { if (NetWorkCheck.isOpenNetwork(getActivity())) { Editor edt = sp.edit(); edt.putBoolean(ConstantForSaveList.userId + "type", false); edt.commit(); accept_act_number_imv.setVisibility(View.INVISIBLE); startActivity(new Intent(getActivity(), JiedanActivity.class)); } else ToastUtil.showShortToast("网络连接不给力,请稍后!"); } break; case R.id.relayout_4: getAvailability(); break; case R.id.relayout_5: if (getActivity() != null) { if (NetWorkCheck.isOpenNetwork(getActivity())) startActivity(new Intent(getActivity(), HomeFragmentCompany.class)); else ToastUtil.showShortToast("网络连接不给力,请稍后!"); } break; default: break; } } }