package com.sp2p.action.admin;
import java.io.IOException;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.simple.JSONArray;
import com.shove.Convert;
import com.shove.data.DataException;
import com.shove.util.SqlInfusion;
import com.shove.web.action.BasePageAction;
import com.shove.web.util.JSONUtils;
import com.sp2p.constants.IConstants;
import com.sp2p.entity.Admin;
import com.sp2p.service.RegionService;
import com.sp2p.service.admin.AdminService;
import com.sp2p.service.admin.RelationService;
/**
* 经纪人
* @author md002
*
*/
@SuppressWarnings({ "unchecked", "serial" })
public class EconomyAction extends BasePageAction {
public static Log log = LogFactory.getLog(EconomyAction.class);
private AdminService adminService;
private RegionService regionService;
private RelationService relationService;
private List<Map<String, Object>> provinceList;
private List<Map<String,Object>> parentList;
public String addEconomyInit(){
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
paramMap.put("enable", "1");
paramMap.put("sex", "1");
paramMap.put("parentId",admin.getId()+"");
return SUCCESS;
}
public String addEconomy() throws SQLException{
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), null);
String password = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("password")), null);
String realName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("realName")), null);
String telphone = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("telphone")), null);
String email = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("email")), null);
String img = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("img")), null);
String card = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("card")), null);
String summary = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("summary")), null);
String address = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("address")), null);
String qq = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("qq")), null);
int enable = Convert.strToInt(paramMap.get("enable"), -1);
long roleId = IConstants.ADMIN_ROLE_ECONOMY;//经纪人角色默认为1
int sex = Convert.strToInt(paramMap.get("sex"), -1);
int nativePlacePro = Convert.strToInt(paramMap.get("nativePlacePro"), -1);
int nativePlaceCity = Convert.strToInt(paramMap.get("nativePlaceCity"), -1);
long returnId;
try {
returnId = adminService.addAdminGroup(userName, password, enable, roleId, realName, telphone, qq, email, img, null, sex, card, summary, nativePlacePro, nativePlaceCity, address,0L,IConstants.RELATION_LEVEL2);
} catch (Exception e) {
log.error(e);
e.printStackTrace();
this.addFieldError("paramMap.allError", "添加失败!");
operationLogService.addOperationLog("t_admin", admin.getUserName(),IConstants.INSERT, admin.getLastIP(), 0, "新增经纪人失败", 2);
return INPUT;
}
if(returnId<=0){
this.addFieldError("paramMap.allError", "添加失败!");
operationLogService.addOperationLog("t_admin", admin.getUserName(),IConstants.INSERT, admin.getLastIP(), 0, "新增经纪人成功", 2);
return INPUT;
}
return SUCCESS;
}
public String queryEconomyInit(){
return SUCCESS;
}
/**
* 经济人管理
* @return
*/
public String queryEconomyInfo(){
String userName1 = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request("userName1")), null);
String userName2 = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request("userName2")), null);
String realName2 = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request("realName2")), null);
String startDate = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request("startDate")),null);
String endDate = Convert.strToStr(request("endDate"),null);
long parentId = Convert.strToLong(request("parentId"), -1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
if(StringUtils.isNotBlank(startDate)){
try {
sdf.parse(startDate);
} catch (Exception e) {
log.info(e);
e.printStackTrace();
startDate = null;
}
}
if(StringUtils.isNotBlank(endDate)){
try {
sdf.parse(endDate);
} catch (Exception e) {
log.info(e);
e.printStackTrace();
endDate = null;
}
}
try {
relationService.queryRelationBy2(userName1, userName2, realName2, startDate, endDate,parentId, pageBean,admin.getRoleId(),admin.getUserName());
} catch (Exception e) {
log.error(e);
e.printStackTrace();
}
return SUCCESS;
}
public String updateEconomyInit() throws Exception{
long id = Convert.strToLong(request("id"), -1);
if(id<=0){
return SUCCESS;
}
List<Map<String,Object>> list = relationService.queryRelationByPeopleId(id);
if(list==null||list.size()<=0){
return SUCCESS;
}
paramMap = adminService.queryAdminById(id);
paramMap.put("parentId", list.get(0).get("parentId")+"");
paramMap.put("relationId", list.get(0).get("id")+"");
return SUCCESS;
}
public String updateEconomy() throws Exception{
long adminId = Convert.strToLong(paramMap.get("id"), -1);
if(adminId<=0){
this.addFieldError("paramMap.allError", "修改失败,数据错误!");
JSONUtils.printStr("2");
}
String password = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("password")), null);
String realName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("realName")), null);
String telphone = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("telphone")), null);
String email = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("email")), null);
String img = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("img")), null);
String card = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("card")), null);
String summary = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("summary")), null);
String address = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("address")), null);
String qq = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("qq")), null);
int enable = Convert.strToInt(paramMap.get("enable"), -1);
long roleId = IConstants.ADMIN_ROLE_ECONOMY;//军团长角色默认为1
int sex = Convert.strToInt(paramMap.get("sex"), -1);
int nativePlacePro = Convert.strToInt(paramMap.get("nativePlacePro"), -1);
int nativePlaceCity = Convert.strToInt(paramMap.get("nativePlaceCity"), -1);
long relationId = Convert.strToLong(paramMap.get("relationId"), -1);
try {
adminService.updateAdminGroup(adminId, null, password, enable, roleId, realName, telphone, qq, email, img, null, sex, card, summary, nativePlacePro, nativePlaceCity, address,relationId,0L);
JSONUtils.printStr("1");
} catch (Exception e) {
log.error(e);
e.printStackTrace();
this.addFieldError("paramMap.allError", "修改失败,数据错误!");
JSONUtils.printStr("2");
}
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
operationLogService.addOperationLog("t_admin", admin.getUserName(),IConstants.UPDATE, admin.getLastIP(), 0, "修改团队长或经纪人信息", 2);
return null;
}
public String updateRelationRelation() throws IOException, SQLException{
JSONObject obj = new JSONObject();
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
long id = Convert.strToLong(request("id"), -1);
if(id<=0){
obj.put("msg", "解除失败!");
JSONUtils.printObject(obj);
return null;
}
int enable = IConstants.RELATION_ENABLE_FALSE;
try {
relationService.updateRelationEnable(id, enable);
} catch (SQLException e) {
e.printStackTrace();
}
if(enable==IConstants.RELATION_ENABLE_FALSE){
obj.put("text", "进行关联");
obj.put("enable", IConstants.RELATION_ENABLE_TRUE);
operationLogService.addOperationLog("t_relation", admin.getUserName(),IConstants.UPDATE, admin.getLastIP(), 0, "添加与经纪人关联", 2);
}else{
obj.put("text", "解除关系");
obj.put("enable", IConstants.RELATION_ENABLE_FALSE);
operationLogService.addOperationLog("t_relation", admin.getUserName(),IConstants.UPDATE, admin.getLastIP(), 0, "解除与经纪人的关联关系", 2);
}
obj.put("msg", 1);
JSONUtils.printObject(obj);
return null;
}
public String updateRelationParentId() throws IOException{
JSONObject obj = new JSONObject();
long id = Convert.strToLong(request("id"), -1);
long parentId = Convert.strToLong(request("parentId"), -1);
if(id<=0||parentId<=0){
obj.put("msg", "重置失败,数据错误!");
JSONUtils.printObject(obj);
return null;
}
long returnId = -1;
try {
returnId = relationService.updateRelation(id, null, parentId, null, IConstants.RELATION_ENABLE_TRUE);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
operationLogService.addOperationLog("t_relation", admin.getUserName(),IConstants.UPDATE, admin.getLastIP(), 0, "修改角色之间的关系", 2);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
obj.put("msg", "重置失败!");
JSONUtils.printObject(obj);
return null;
}
if(returnId<=0){
obj.put("msg", "重置失败!");
JSONUtils.printObject(obj);
return null;
}
obj.put("msg", 1);
JSONUtils.printObject(obj);
return null;
}
// ======地区列表
public String ajaxqueryRegionAdmin() throws SQLException, DataException,
IOException {
Long parentId = Convert.strToLong(request("parentId"), -1);
Integer regionType = Convert.strToInt(request("regionType"), -1);
List<Map<String, Object>> list;
try {
list = regionService.queryRegionList(-1L, parentId, regionType);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
throw e;
} catch (DataException e) {
log.error(e);
e.printStackTrace();
throw e;
}
String jsonStr = JSONArray.toJSONString(list);
JSONUtils.printStr(jsonStr);
return null;
}
/**
* 重置投资人的经纪人
* @return
* @throws IOException
*/
public String updateAgentParentId() throws IOException {
JSONObject obj = new JSONObject();
long id = Convert.strToLong(request("id"), -1);
long parentId = Convert.strToLong(request("parentId"), -1);
if (id <= 0 || parentId <= 0) {
obj.put("msg", "重置失败,数据错误!");
JSONUtils.printObject(obj);
return null;
}
long returnId = -1;
try {
returnId = relationService.updateRelation(id, null, parentId, null,
IConstants.RELATION_ENABLE_TRUE);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
operationLogService.addOperationLog("t_relation", admin.getUserName(),IConstants.UPDATE, admin.getLastIP(), 0, "重置投资人的经纪人", 2);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
obj.put("msg", "重置失败!");
JSONUtils.printObject(obj);
return null;
}
if (returnId <= 0) {
obj.put("msg", "重置失败!");
JSONUtils.printObject(obj);
return null;
}
obj.put("msg", 1);
JSONUtils.printObject(obj);
return null;
}
/**
* 重置理财人的投资人
* @return
* @throws IOException
*/
public String updateInvestorParentId() throws IOException {
JSONObject obj = new JSONObject();
long id = Convert.strToLong(request("id"), -1);
long parentId = Convert.strToLong(request("parentId"), -1);
if (id <= 0 || parentId <= 0) {
obj.put("msg", "重置失败,数据错误!");
JSONUtils.printObject(obj);
return null;
}
long returnId = -1;
try {
returnId = relationService.updateRelation(id, null, parentId, null,
IConstants.RELATION_ENABLE_TRUE);
Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN);
operationLogService.addOperationLog("t_relation", admin.getUserName(),IConstants.UPDATE, admin.getLastIP(), 0, "重置理财人的投资人", 2);
} catch (SQLException e) {
log.error(e);
e.printStackTrace();
obj.put("msg", "重置失败!");
JSONUtils.printObject(obj);
return null;
}
if (returnId <= 0) {
obj.put("msg", "重置失败!");
JSONUtils.printObject(obj);
return null;
}
obj.put("msg", 1);
JSONUtils.printObject(obj);
return null;
}
public void setAdminService(AdminService adminService) {
this.adminService = adminService;
}
public List<Map<String, Object>> getProvinceList() throws DataException, SQLException {
if (provinceList == null) {
try {
provinceList = regionService.queryRegionList(-1L, 1L, 1);
} catch (SQLException e) {
e.printStackTrace();
throw e;
} catch (DataException e) {
e.printStackTrace();
throw e;
}
}
return provinceList;
}
public String economyAwardInit() {
return SUCCESS;
}
public String queryEconomyList() throws Exception {
String userName = SqlInfusion.FilteSqlInfusion(paramMap.get("userName"));
String starttime = SqlInfusion.FilteSqlInfusion(paramMap.get("startDate"));
String endTime = SqlInfusion.FilteSqlInfusion(paramMap.get("endDate"));
try {
adminService.queryEconomyList(userName, pageBean, starttime, endTime);
int pageNum = (int) (pageBean.getPageNum() - 1)* pageBean.getPageSize();
request().setAttribute("pageNum", pageNum);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return SUCCESS;
}
public String queryEconomyAward() throws Exception {
String userName = paramMap.get("userName");
try {
adminService.queryEconomyAward(userName, pageBean);
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return SUCCESS;
}
public void setRegionService(RegionService regionService) {
this.regionService = regionService;
}
public List<Map<String, Object>> getParentList() throws Exception {
if(parentList==null){
parentList = adminService.queryAdminByRoleId(IConstants.ADMIN_ROLE_GROUP);
}
return parentList;
}
public void setRelationService(RelationService relationService) {
this.relationService = relationService;
}
}