﻿package WebRoot.multimarket.vuedemo;


import java.util.List;

import org.hoyi.DB.ctrl.FILTER;
import org.hoyi.dishop.Hoyipage;
import org.hoyi.util.DateTimeUtil;
import org.hoyi.wb.comment.PostParam;
import org.hoyi.wb.comment.RequestMode;
import org.hoyi.wb.comment.RequestType;

import model.usermanage.user;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


@RequestMode(MODE={RequestType.GET, RequestType.POST})
public class usermanage extends Hoyipage{
	
	@PostParam(ENTITY=user.class)
	@RequestMode(MODE={RequestType.POST})
	public void AddUser()
	{
		user _user = this.getModelFromReq(user.class);
		_user.setState("1");
		_user.setCreatetime(DateTimeUtil.getCurrentDateTime());
		_user.setAppsid("66");
		
		int ret = _user.Insert();
		
		if(ret > 0){
			REUser();
		}else{
			this.WriteUTF8JSONDATAMSG(-1, "添加失败!~", "");
		}
	}
	
	@PostParam(PARMS={"userid"})
	@RequestMode(MODE={RequestType.POST})
	public void DELETE()
	{
		String _userid = this.getParams("userid");
		int ret2 = user.E().Where(user.userid.Equals(_userid)).Delete();

		if(ret2 > 0){
			REUser();
		}else{
			this.WriteUTF8JSONDATAMSG(-1, "删除失败!~", "");
		}
	}
	
	@PostParam(ENTITY=user.class)
	@RequestMode(MODE={RequestType.POST})
	public void UPDATEBYID()
	{
		user _user = this.getModelFromReq(user.class);
		int ret1 = _user.Update(user.username, user.usertype, user.nickname, user.passwords, user.birth, user.sex, user.notes);
		
		if(ret1 > 0){
			REUser();
		}else{
			this.WriteUTF8JSONDATAMSG(-1, "更新失败!~", "");
		}
	}

	public String TrUser() {
		String filter = this.getParams("filter");
		FILTER fil = null;
		if (filter != null && filter.length() > 0 && filter != "undefined") {
			filter = "%" + filter + "%";
			
			fil = user.userid.Like(filter).OR(user.userid.Like(filter))
					.OR(user.username.Like(filter)).OR(user.usertype.Like(filter))
					.OR(user.nickname.Like(filter)).OR(user.passwords.Like(filter))
					.OR(user.birth.Like(filter)).OR(user.sex.Like(filter))
					.OR(user.state.Like(filter)).OR(user.appsid.Like(filter))
					.OR(user.createtime.Like(filter));	
		}
		
		DataCount = user.E().Where(fil).Count();
		
		this.setDataCount(DataCount);
		int pgindx = GetParamsInt("pgindex", 1);
		this.setPageIndex(pgindx);
		
		List<user> _users= user.E()
				.Where(fil)
				.DataCount(DataCount)
				.PgSize(getPageSize())
				.Jump(pgindx).Select();
		
		JSONObject retdata = new JSONObject();
		retdata.put("pgsize", getpagesize());
		retdata.put("datacount", getDataCount());
		retdata.put("pgcount", this.getPageCount());
		retdata.put("filter", "");

		if(pgindx > this.getPageCount()) {
			retdata.put("curpgs", this.getPageCount());
//		}else if(pgindx < 1) {
//			retdata.put("curpgs", 1);
		}else {
			retdata.put("curpgs", pgindx);
		}
		
		JSONArray usarr = JSONArray.fromObject(_users, user.getjsonConfig());
		retdata.put("curus", usarr);
		
		retdata.put("addmodelshow", true);
		
		retdata.put("cur_userid", "");
		retdata.put("cur_username", "");
		retdata.put("cur_sex", "");
		retdata.put("cur_usertype", "");
		retdata.put("cur_nickname", "");
		retdata.put("cur_passwords", "");
		retdata.put("cur_birth", "");
		retdata.put("cur_notes", "");
		
		return retdata.toString();
	}

	@RequestMode(MODE={RequestType.POST})
	public void REUser() {
		String retobj = this.TrUser();
		this.WriteUTF8JSONDATA(retobj);
	}

}
