package cn.com.basic.face.service.sqlite; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import java.util.ArrayList; import java.util.List; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.common.ResultBean; import cn.com.basic.face.discern.query.item.AttendanceQueryItem; import cn.com.basic.face.discern.query.item.VisitQueryItem; public class VisitDao extends BaseDao{ public static VisitDao instance = new VisitDao(); public static VisitDao getInstance() { return instance; } /** * 访客管理列表 * @param searchText * @param pageNum * @return */ public ResultBean findLeftVisitorList(String searchText, int pageNum) { ResultBean resultBean = new ResultBean(); SQLiteDatabase db = MainActivity.getInstance().db; try { StringBuilder sb = new StringBuilder(40); sb.append("SELECT a.register_id,a.username,a.surveillance_photo,d.company_name,a.tel,a.identify_num,b.dept_name,") .append("d.company_id,e.post_name,a.mobile_phone,0 as type,f.`name` gender,g.`name` identity_type,") .append("a.birthday,h.`name` country_name,j.username visitee,k.`name` visit_reason,i.enter_time,i.exit_time,") .append("l.`name` current_status,a.id_card_photo").append(" FROM ").append(" visit i ") .append(" LEFT JOIN register a on i.visitor_id=a.register_id ") .append(" LEFT JOIN company d on d.company_id=a.company_id ") .append(" LEFT JOIN department b on a.department_id = b.dept_id ") .append(" LEFT JOIN post e on e.post_id=a.post_id ") .append(" LEFT JOIN dictionary f on f.dict_id=a.gender_id ") .append(" LEFT JOIN dictionary g on g.dict_id=a.identity_type_id ") .append(" LEFT JOIN dictionary h on h.dict_id=a.country_id ") .append(" LEFT JOIN register j on j.register_id=a.register_id ") .append(" LEFT JOIN dictionary k on k.dict_id=i.visit_reason_id ") .append(" LEFT JOIN dictionary l on l.dict_id=i.current_state_id ") .append(" WHERE ").append(" 1 = 1 AND a.register_id IS NOT NULL "); if(searchText != null && !searchText.trim().isEmpty()) { sb.append(" AND b.username LIKE '%").append(searchText).append("%'"); } sb.append(" ORDER BY i.enter_time desc "); StringBuilder count = new StringBuilder(sb.length()); count.append("select count(*) as count from (").append(sb).append(" ) _table"); sb.append(" LIMIT ").append(getStartIndex(pageNum)).append(",").append(CommonVariables.Page.DEFAULT_PAGE_SIZE); List list = new ArrayList(); VisitQueryItem aqi = null; Cursor c = db.rawQuery(sb.toString(),new String[]{}); Cursor c_count = db.rawQuery(count.toString(),new String[]{}); while (c.moveToNext()) { aqi = new VisitQueryItem(); aqi.setRegisterId(c.getString(c.getColumnIndex("register_id"))); aqi.setUsername(c.getString(c.getColumnIndex("username"))); aqi.setSurveillancePhoto(c.getString(c.getColumnIndex("surveillance_photo"))); aqi.setIdentifyNum(c.getString(c.getColumnIndex("company_name"))); aqi.setPostName(c.getString(c.getColumnIndex("tel"))); aqi.setGender(c.getString(c.getColumnIndex("identify_num"))); aqi.setDeptName(c.getString(c.getColumnIndex("dept_name"))); aqi.setRegisterId(c.getString(c.getColumnIndex("company_id"))); aqi.setUsername(c.getString(c.getColumnIndex("post_name"))); aqi.setSurveillancePhoto(c.getString(c.getColumnIndex("mobile_phone"))); aqi.setIdentifyNum(c.getString(c.getColumnIndex("type"))); aqi.setPostName(c.getString(c.getColumnIndex("gender"))); aqi.setGender(c.getString(c.getColumnIndex("identity_type"))); aqi.setDeptName(c.getString(c.getColumnIndex("birthday"))); aqi.setRegisterId(c.getString(c.getColumnIndex("country_name"))); aqi.setUsername(c.getString(c.getColumnIndex("visitee"))); aqi.setSurveillancePhoto(c.getString(c.getColumnIndex("visit_reason"))); aqi.setIdentifyNum(c.getString(c.getColumnIndex("enter_time"))); aqi.setPostName(c.getString(c.getColumnIndex("exit_time"))); aqi.setGender(c.getString(c.getColumnIndex("current_status"))); aqi.setDeptName(c.getString(c.getColumnIndex("id_card_photo"))); list.add(aqi); } Integer total = null; while (c_count.moveToNext()) { total = c_count.getInt(0); } resultBean.setTotalPages(getTotalPageSize(total)); resultBean.setPageNum(pageNum); resultBean.setData(list); } catch (Exception e) { e.printStackTrace(); } return resultBean; } }