package com.lst.lc.hbase.service;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.springframework.stereotype.Service;
import com.lst.lc.hbase.model.IntegralRecord;
import com.lst.lc.hbase.model.Log;
import com.lst.lc.hbase.model.Message;
@Service
public class ModelMapping {
/**
* 将数据库读出的数据映射到Log的 List
* @param rs
* @return
*/
public List<Log> logListMapping(ResultScanner rs){
List<Log> list = new ArrayList<Log>();
for (Result r : rs) {
Log log = new Log();
log.setKey(new String(r.getRow()));
for(Cell cell:r.rawCells()){
String v = new String(CellUtil.cloneQualifier(cell));
String val = new String(CellUtil.cloneValue(cell));
if (v.equals("userEmail")) {
log.setUserEmail(val);
}
if (v.equals("time")) {
log.setTime(val);
}
if (v.equals("operation")) {
log.setOperation(val);
}
}
list.add(log);
}
rs.close();
if (list.size() == 0) {
return null;
}
return list;
}
/**
* 将数据库读出的数据映射到Message的 List
* @param rs
* @return
*/
public List<Message> messageListMapping(ResultScanner rs){
List<Message> list = new ArrayList<Message>();
for (Result r : rs) {
Message message = new Message();
message.setKey(new String(r.getRow()));
for(Cell cell:r.rawCells()){
String v = new String(CellUtil.cloneQualifier(cell));
String val = new String(CellUtil.cloneValue(cell));
if (v.equals("fromUid")) {
message.setFromUid(val);
}
if (v.equals("toUid")) {
message.setToUid(val);
}
if (v.equals("content")) {
message.setContent(val);
}
if (v.equals("time")) {
message.setTime(val);
}
if (v.equals("state")) {
message.setState(val);
}
}
list.add(message);
}
rs.close();
if (list.size() == 0) {
return null;
}
return list;
}
public List<IntegralRecord> integralListMapping(ResultScanner rs){
List<IntegralRecord> list = new ArrayList<IntegralRecord>();
for (Result r : rs) {
IntegralRecord IntegralRecord = new IntegralRecord();
IntegralRecord.setKey(new String(r.getRow()));
for(Cell cell:r.rawCells()){
String v = new String(CellUtil.cloneQualifier(cell));
String val = new String(CellUtil.cloneValue(cell));
if (v.equals("date")) {
IntegralRecord.setDate(val);
}
if (v.equals("integral")) {
IntegralRecord.setIntegral(val);
}
}
list.add(IntegralRecord);
}
rs.close();
if (list.size() == 0) {
return null;
}
return list;
}
public IntegralRecord integralRecordMapping(Result rs, String rowkey) {
IntegralRecord integral = new IntegralRecord();
if (rs.isEmpty()) {
// 没有检索到,说明数据库中没有该图片,返回错误信息
return null;
} else {
integral.setKey(rowkey);
for (Cell cell : rs.rawCells()) {
String v = new String(
CellUtil.cloneQualifier(cell));
String val = new String(
CellUtil.cloneValue(cell));
if (v.equals("date")) {
integral.setDate(val);
}
if (v.equals("integral")) {
integral.setIntegral(val);
}
}
}
return integral;
}
}