package com.parttime.net;
import android.util.Log;
import com.android.volley.RequestQueue;
import com.parttime.pojo.JobAuthType;
import com.parttime.pojo.PartJob;
import com.parttime.pojo.SalaryUnit;
import com.parttime.publish.vo.JobBrokerChartsFragmentVo;
import com.parttime.publish.vo.JobBrokerListVo;
import com.parttime.publish.vo.JobManageListVo;
import com.parttime.publish.vo.JobPlazaActivityListVo;
import com.parttime.publish.vo.JobPlazaListVo;
import com.parttime.publish.vo.PublishActivityListVo;
import com.parttime.utils.ApplicationUtils;
import com.parttime.utils.CheckUtils;
import com.qingmu.jianzhidaren.R;
import com.quark.common.Url;
import com.quark.jianzhidaren.ApplicationControl;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* 发布相关接口
* Created by wyw on 2015/7/25.
*/
public class PublishRequest extends BaseRequest {
public final static int PUBLISH_ACTIVITY_LIST_TYPE_RECRUIT = 1;
public final static int PUBLISH_ACTIVITY_LIST_TYPE_AUDITING = 2;
public final static int PUBLISH_ACTIVITY_LIST_TYPE_UNDERCARRIAGE = 3;
public void publish(PartJob partJob, RequestQueue requestQueue, DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(partJob.companyId));
reqParams.put("type", partJob.type);
reqParams.put("title", partJob.title);
reqParams.put("start_time", partJob.beginTime);
reqParams.put("end_time", partJob.endTime);
reqParams.put("city", partJob.city);
reqParams.put("county", partJob.area);
reqParams.put("address", partJob.address);
reqParams.put("pay", String.valueOf(partJob.salary));
reqParams.put("pay_type", String.valueOf(partJob.salaryUnit.ordinal()));
reqParams.put("pay_form", partJob.payType);
int apartSexInt = partJob.apartSex ? 1 : 0;
reqParams.put("apart_sex", String.valueOf(apartSexInt));
if (partJob.apartSex) {
reqParams.put("male_count", String.valueOf(partJob.maleNum));
reqParams.put("female_count", String.valueOf(partJob.femaleNum));
} else {
reqParams.put("head_count", String.valueOf(partJob.headSum));
}
reqParams.put("require_info", partJob.workRequire);
int isShowTelInt = partJob.isShowTel ? 1 : 0;
reqParams.put("show_telephone", String.valueOf(isShowTelInt));
if (partJob.isHasMoreRequire()) {
if (partJob.height != null) {
reqParams.put("require_height", String.valueOf(partJob.height));
}
if (partJob.isHasMeasurements()) {
reqParams.put("require_bust", String.valueOf(partJob.bust));
reqParams.put("require_beltline", String.valueOf(partJob.beltline));
reqParams.put("require_hipline", String.valueOf(partJob.hipline));
}
if (partJob.healthProve != null) {
int healthProveInt = partJob.healthProve ? 1 : 0;
reqParams.put("require_health_rec", String.valueOf(healthProveInt));
}
if (CheckUtils.isEmpty(partJob.language)) {
reqParams.put("require_language", partJob.language);
}
}
// String url = Url.COMPANY_publish + "?token=" + MainTabActivity.token;
String url = Url.COMPANY_publish;
request(url, reqParams, requestQueue, callback);
}
/**
* 我的已发布活动列表
*
* @param page 页码号
* @param count 分页大小
* @param type 类型(1-招人中,2-审核中,3已下架,null是全部)
*/
public void publishActivityList(int page, int count, Integer type,
RequestQueue requestQueue, final DefaultCallback callback) {
int companyId = ApplicationUtils.getLoginId();
publishActivityList(companyId, page, count, type, requestQueue, callback);
}
/**
* 已发布活动列表
*
* @param companyId 指定商家
* @param page 页码号
* @param count 分页大小
* @param type 类型(1-招人中,2-审核中,3已下架,null是全部)
*/
public void publishActivityList(int companyId, int page, int count, Integer type, RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(companyId));
reqParams.put("pn", String.valueOf(page));
reqParams.put("page_size", String.valueOf(count));
if (type != null) {
reqParams.put("type", String.valueOf(type));
}
String url = Url.COMPANY_MyJianzhi_List;
request(url, reqParams, requestQueue, new Callback() {
@Override
public void success(Object obj) throws JSONException {
JSONObject jsonObject = (JSONObject) obj;
JSONObject activityPage = jsonObject.getJSONObject("activityPage");
PublishActivityListVo publishActivityListVo = new PublishActivityListVo();
publishActivityListVo.pageNumber = activityPage.getInt("pageNumber");
publishActivityListVo.pageSize = activityPage.getInt("pageSize");
publishActivityListVo.totlePage = activityPage.getInt("totalPage");
publishActivityListVo.totleRow = activityPage.getInt("totalRow");
JSONArray list = activityPage.getJSONArray("list");
List<JobManageListVo> jobManageListVoList = new ArrayList<>();
if (list != null) {
for (int i = 0; i < list.length(); ++i) {
JSONObject listItem = list.getJSONObject(i);
JobManageListVo jobManageListVo = new JobManageListVo();
jobManageListVo.jobId = listItem.getInt("activity_id");
jobManageListVo.jobTitle = listItem.getString("title");
jobManageListVo.view = listItem.getInt("view_count");
jobManageListVo.hire = listItem.getInt("confirmed_count");
jobManageListVoList.add(jobManageListVo);
}
}
publishActivityListVo.jobManageListVoList = jobManageListVoList;
callback.success(publishActivityListVo);
}
@Override
public void failed(Object obj) {
callback.failed(obj);
}
});
}
public void publishActivityDetail(int jobId, String groupId, RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(ApplicationUtils.getLoginId()));
if (jobId > 0) {
reqParams.put("activity_id", String.valueOf(jobId));
} else {
reqParams.put("group_id", groupId);
}
String url = Url.COMPANY_MyJianzhi_detail;
request(url, reqParams, requestQueue, new Callback() {
@Override
public void success(Object obj) throws JSONException {
JSONObject activityDetail = ((JSONObject) obj).getJSONObject("activityDetail");
PartJob partJob = new PartJob();
partJob.id = activityDetail.getInt("activity_id");
partJob.companyId = activityDetail.getInt("company_id");
partJob.isStart = activityDetail.getInt("isStart") != 0;
partJob.companyName = activityDetail.getString("company_name");
partJob.type = activityDetail.getString("type");
partJob.title = activityDetail.getString("title");
partJob.beginTime = activityDetail.getString("start_time");
partJob.endTime = activityDetail.getString("end_time");
partJob.area = activityDetail.getString("county");
partJob.address = activityDetail.getString("address");
partJob.salary = activityDetail.getInt("pay");
partJob.salaryUnit = SalaryUnit.parse(activityDetail.getInt("pay_type"));
partJob.payType = activityDetail.getString("pay_form");
partJob.apartSex = activityDetail.getInt("apart_sex") != 0;
if (partJob.apartSex) {
partJob.maleNum = activityDetail.getInt("male_count");
partJob.femaleNum = activityDetail.getInt("female_count");
} else {
partJob.headSum = activityDetail.getInt("head_count");
}
partJob.workRequire = activityDetail.getString("require_info");
// partJob.isShowTel = activityDetail.get
partJob.jobAuthType = JobAuthType.parse(activityDetail.getInt("status"));
partJob.viewCount = activityDetail.getInt("view_count");
partJob.handCount = activityDetail.getInt("apply_count");
callback.success(partJob);
}
@Override
public void failed(Object obj) {
callback.failed(obj);
}
});
}
public void preRefresh(int jobId, RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(ApplicationUtils.getLoginId()));
reqParams.put("activity_id", String.valueOf(jobId));
String url = Url.COMPANY_MyJianzhi_previewReflesh;
request(url, reqParams, requestQueue, callback);
}
public void refresh(int jobId, RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(ApplicationUtils.getLoginId()));
reqParams.put("activity_id", String.valueOf(jobId));
String url = Url.COMPANY_MyJianzhi_reflesh;
request(url, reqParams, requestQueue, callback);
}
public void preUrgent(int jobId, RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(ApplicationUtils.getLoginId()));
reqParams.put("activity_id", String.valueOf(jobId));
String url = Url.COMPANY_MyJianzhi_preUrgent;
request(url, reqParams, requestQueue, callback);
}
public void setUrgent(int jobId, RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(ApplicationUtils.getLoginId()));
reqParams.put("activity_id", String.valueOf(jobId));
String url = Url.COMPANY_MyJianzhi_setUrgent;
request(url, reqParams, requestQueue, callback);
}
public void modify(PartJob partJob, RequestQueue requestQueue, DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("type", partJob.type);
reqParams.put("title", partJob.title);
reqParams.put("start_time", partJob.beginTime);
reqParams.put("end_time", partJob.endTime);
reqParams.put("city", partJob.city);
reqParams.put("county", partJob.area);
reqParams.put("address", partJob.address);
reqParams.put("pay", String.valueOf(partJob.salary));
reqParams.put("pay_type", String.valueOf(partJob.salaryUnit.ordinal()));
reqParams.put("pay_form", partJob.payType);
int apartSexInt = partJob.apartSex ? 1 : 0;
reqParams.put("apart_sex", String.valueOf(apartSexInt));
if (partJob.apartSex) {
reqParams.put("male_count", String.valueOf(partJob.maleNum));
reqParams.put("female_count", String.valueOf(partJob.femaleNum));
} else {
reqParams.put("head_count", String.valueOf(partJob.headSum));
}
reqParams.put("require_info", partJob.workRequire);
int isShowTelInt = partJob.isShowTel ? 1 : 0;
reqParams.put("show_telephone", String.valueOf(isShowTelInt));
if (partJob.isHasMoreRequire()) {
if (partJob.height != null) {
reqParams.put("require_height", String.valueOf(partJob.height));
}
if (partJob.isHasMeasurements()) {
reqParams.put("require_bust", String.valueOf(partJob.bust));
reqParams.put("require_beltline", String.valueOf(partJob.beltline));
reqParams.put("require_hipline", String.valueOf(partJob.hipline));
}
if (partJob.healthProve != null) {
int healthProveInt = partJob.healthProve ? 1 : 0;
reqParams.put("require_health_rec", String.valueOf(healthProveInt));
}
if (CheckUtils.isEmpty(partJob.language)) {
reqParams.put("require_language", partJob.language);
}
}
// String url = Url.COMPANY_publish + "?token=" + MainTabActivity.token;
String url = Url.COMPANY_MyJianzhi_modifyCommit;
request(url, reqParams, requestQueue, callback);
}
public void shelve(int jobId, RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("company_id", String.valueOf(ApplicationUtils.getLoginId()));
reqParams.put("activity_id", String.valueOf(jobId));
String url = Url.COMPANY_MyJianzhi_cancelActivity;
request(url, reqParams, requestQueue, callback);
}
/**
* 兼职广场
*
* @param page 页码号
* @param count 分页大小
* @param type 类型(1-招人中,2-审核中,3已下架)
*/
public void plazaList(int page, int count, int type,
RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("city", ApplicationUtils.getCity());
reqParams.put("pn", String.valueOf(page));
reqParams.put("page_size", String.valueOf(count));
String url = Url.COMPANY_Plaza_List;
request(url, reqParams, requestQueue, new Callback() {
@Override
public void success(Object obj) throws JSONException {
JSONObject jsonObject = (JSONObject) obj;
JSONObject activityPage = jsonObject.getJSONObject("activityPage");
JobPlazaActivityListVo publishActivityListVo = new JobPlazaActivityListVo();
publishActivityListVo.pageNumber = activityPage.getInt("pageNumber");
publishActivityListVo.pageSize = activityPage.getInt("pageSize");
publishActivityListVo.totlePage = activityPage.getInt("totalPage");
publishActivityListVo.totleRow = activityPage.getInt("totalRow");
String now = jsonObject.getString("now");
JSONArray list = activityPage.getJSONArray("list");
List<JobPlazaListVo> jobManageListVoList = new ArrayList<>();
if (list != null) {
for (int i = 0; i < list.length(); ++i) {
JSONObject listItem = list.getJSONObject(i);
JobPlazaListVo jobManageListVo = new JobPlazaListVo();
jobManageListVo.jobId = listItem.getInt("activity_id");
jobManageListVo.jobTitle = listItem.getString("title");
jobManageListVo.time = JobPlazaListVo.Convertor.convertTime(now, listItem.getString("publish_time"));
jobManageListVo.area = listItem.getString("county");
jobManageListVo.type = listItem.getString("type");
jobManageListVo.typeDrawableId = JobPlazaListVo.Convertor.convertTypeDrawableId(jobManageListVo.type);
jobManageListVo.salary = JobPlazaListVo.Convertor.convertSalary(listItem.getInt("pay_type"), listItem.getInt("pay"));
jobManageListVo.isGuarantee = listItem.getInt("guarantee") != 0;
jobManageListVo.isSuper = listItem.getInt("superJob") != 0;
jobManageListVo.isTime = listItem.getString("time_tag").equals(
ApplicationControl.getInstance().getString(R.string.job_plaza_time_tag));
jobManageListVo.isExpedited = listItem.getInt("urgent") != 0;
jobManageListVoList.add(jobManageListVo);
}
}
publishActivityListVo.jobPlazaListVoList = jobManageListVoList;
callback.success(publishActivityListVo);
}
@Override
public void failed(Object obj) {
callback.failed(obj);
}
});
}
/**
* 经纪人列表
*
* @param page 页码号
* @param count 分页大小
* @param type 类型(1-招人中,2-审核中,3已下架)
*/
public void agentList(int page, int count, int type,
RequestQueue requestQueue, final DefaultCallback callback) {
HashMap<String, String> reqParams = new HashMap<>();
reqParams.put("city", ApplicationUtils.getCity());
reqParams.put("pn", String.valueOf(page));
reqParams.put("page_size", String.valueOf(count));
String url = Url.COMPANY_MyJianzhi_agentList;
request(url, reqParams, requestQueue, new Callback() {
@Override
public void success(Object obj) throws JSONException {
JSONObject jsonObject = (JSONObject) obj;
JSONObject activityPage = jsonObject.getJSONObject("agentPage");
JobBrokerChartsFragmentVo publishActivityListVo = new JobBrokerChartsFragmentVo();
publishActivityListVo.pageNumber = activityPage.getInt("pageNumber");
publishActivityListVo.pageSize = activityPage.getInt("pageSize");
publishActivityListVo.totlePage = activityPage.getInt("totalPage");
publishActivityListVo.totleRow = activityPage.getInt("totalRow");
JSONArray list = activityPage.getJSONArray("list");
List<JobBrokerListVo> jobManageListVoList = new ArrayList<>();
if (list != null) {
for (int i = 0; i < list.length(); ++i) {
JSONObject listItem = list.getJSONObject(i);
JobBrokerListVo jobManageListVo = new JobBrokerListVo();
jobManageListVo.companyId = listItem.getInt("company_id");
jobManageListVo.name = listItem.getString("company_name");
jobManageListVo.picInfo = listItem.getString("avatar");
jobManageListVo.hireType = listItem.getString("hire_type");
jobManageListVo.fans = listItem.getInt("fans");
jobManageListVoList.add(jobManageListVo);
}
}
publishActivityListVo.jobBrokerListVos = jobManageListVoList;
callback.success(publishActivityListVo);
}
@Override
public void failed(Object obj) {
callback.failed(obj);
}
});
}
}