package cn.ksource.web.controller.business.pages.xtpz.sjzd.address;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.apache.commons.collections.map.HashedMap;
|
import org.apache.commons.lang.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import cn.ksource.beans.CONFIG_DATA_DICTIONARY_AREA;
|
import cn.ksource.core.dao.BaseDao;
|
import cn.ksource.core.dao.SqlParameter;
|
import cn.ksource.core.page.PageInfo;
|
import cn.ksource.core.util.ConvertUtil;
|
import cn.ksource.core.util.JsonUtil;
|
import cn.ksource.core.util.StringUtil;
|
import cn.ksource.core.web.TreeNode;
|
import cn.ksource.web.service.DataDictionaryService;
|
|
@Service("addressFacade")
|
public class AddressFacadeImpl implements AddressFacade {
|
|
@Autowired
|
private BaseDao baseDao;
|
|
@Autowired
|
private DataDictionaryService dataDictionaryService;
|
|
/**
|
* 根据ID查询地址信息
|
* 返回map
|
*/
|
@Override
|
public Map getAddressById(String id) {
|
String sql="SELECT * FROM CONFIG_DATA_DICTIONARY_AREA WHERE Id=:id";
|
Map map = baseDao.queryForMap(sql, new SqlParameter().addValue("id", id));
|
return map;
|
}
|
|
/**
|
* 根据名称查询地址信息
|
* 返回map
|
*/
|
@Override
|
public Map getAddressByName(String address_name) {
|
String addressName = StringUtil.decode_utf(address_name);
|
String sql="SELECT * FROM CONFIG_DATA_DICTIONARY_AREA WHERE ADDRESS_NAME=:address_name";
|
Map map = baseDao.queryForMap(sql, new SqlParameter().addValue("address_name", addressName));
|
return map;
|
}
|
|
/**
|
* 查询所有地址信息
|
* 返回list
|
*/
|
@Override
|
public List getAddressList() {
|
String sql = "SELECT * FROM CONFIG_DATA_DICTIONARY_AREA ORDER BY ADDRESS_SN ASC";
|
List list= baseDao.queryForList(sql);
|
return list;
|
}
|
|
/**
|
* 根据上级ID查询下级所有地址信息
|
* 返回list
|
*/
|
@Override
|
public PageInfo getAddressList(PageInfo pageInfo,String up_id) {
|
String sql = "SELECT * FROM CONFIG_DATA_DICTIONARY_AREA WHERE 1=1" ;
|
if (StringUtils.isNotBlank(up_id) && !up_id.toString().equalsIgnoreCase("0")) {
|
sql += " AND UP_ID=:up_id ";
|
} else {
|
sql += " AND UP_ID IS NULL ";
|
}
|
|
sql += " ORDER BY ADDRESS_SN ASC ";
|
Map paramMap = new HashedMap();
|
paramMap.put("up_id", up_id);
|
PageInfo list = baseDao.queryforSplitPageInfo(pageInfo, sql, paramMap);
|
return list;
|
}
|
|
@Override
|
public int getAddressCount(String up_id) {
|
String sql = "SELECT COUNT(ID) FROM CONFIG_DATA_DICTIONARY_AREA WHERE 1=1" ;
|
if (StringUtils.isNotBlank(up_id) && !up_id.toString().equalsIgnoreCase("0")) {
|
sql += " AND UP_ID=:up_id ";
|
} else {
|
sql += " AND UP_ID IS NULL ";
|
}
|
|
Map paramMap = new HashedMap();
|
paramMap.put("up_id", up_id);
|
int count = baseDao.queryForInteger(sql,paramMap);
|
return count;
|
}
|
|
|
/**
|
* 保存地址信息
|
* 返回integer
|
*/
|
@Override
|
public Integer saveAddress(CONFIG_DATA_DICTIONARY_AREA address) {
|
address.insertOrUpdate();
|
dataDictionaryService.updateAreaListByParentID(address.getUp_id());
|
dataDictionaryService.updateAreaById(address.getId());
|
return 0;
|
}
|
|
/**
|
* 获取地址树形菜单
|
* 返回TreeNode
|
*/
|
@Override
|
public TreeNode getAddressTree(String id) {
|
TreeNode root = new TreeNode("0","地址字典");
|
String sql = "select * from CONFIG_DATA_DICTIONARY_AREA where ADDRESS_STATUS=1 ";
|
if (StringUtils.isNotBlank(id)) {
|
sql += " and up_id = :id ";
|
} else {
|
sql += " and level=1 ";
|
}
|
sql += " order by ADDRESS_SN asc ";
|
List<Map> addressList = baseDao.queryForList(sql, new SqlParameter("id",id));
|
for (Map map : addressList) {
|
TreeNode tree = new TreeNode(map.get("ID").toString(),map.get("ADDRESS_NAME").toString());
|
tree.setIsOpen(false);
|
root.addChild(tree);
|
continue;
|
}
|
return root;
|
}
|
|
/**
|
* 根据ID删除地址信息
|
* 无返回值
|
*/
|
@Override
|
public void delAddress(String id) {
|
CONFIG_DATA_DICTIONARY_AREA area = new CONFIG_DATA_DICTIONARY_AREA(id).getInstanceById();
|
|
dataDictionaryService.updateAreaListByParentID(area.getUp_id());
|
dataDictionaryService.updateAreaById(area.getId());
|
area.deleteById();
|
|
}
|
|
/**
|
* 根据名称验证是否存在重名
|
* 返回String
|
*/
|
@Override
|
public String check(String id,String address_name) {
|
String addressName = StringUtil.decode_utf(address_name);
|
String sql="SELECT * FROM CONFIG_DATA_DICTIONARY_AREA WHERE ADDRESS_NAME=:address_name";
|
Map addressMap = baseDao.queryForMap(sql, new SqlParameter().addValue("address_name", addressName));
|
Object addressId = addressMap.get("ID");
|
if(addressId == null){
|
return "1";
|
} else if(!(addressId == null)&&addressId.equals(id)) {
|
return "1";
|
} else {
|
return "2";
|
}
|
}
|
|
/**
|
* 分页获取地址信息地址信息
|
* 返回map
|
*/
|
public Map getAddressListForPagination(HttpServletRequest request){
|
String up_id = request.getParameter("up_id");
|
int pageindex = ConvertUtil.obj2Integer(request.getParameter("page")); //当前页码
|
int pagesize = ConvertUtil.obj2Integer(request.getParameter("rows")); //每页展示数量
|
int begin = (pageindex-1)* pagesize ;
|
int end = (pageindex-1)* pagesize + pagesize;
|
int infoCount = getAddressCount(up_id);//获取总条数
|
String sql = "SELECT * FROM CONFIG_DATA_DICTIONARY_AREA WHERE 1=1" ;
|
if (StringUtils.isNotBlank(up_id) && !up_id.toString().equalsIgnoreCase("0")) {
|
sql += " AND UP_ID=:up_id ";
|
} else {
|
sql += " AND UP_ID IS NULL ";
|
}
|
sql += " ORDER BY ADDRESS_SN ASC LIMIT :begin,:end";
|
Map paramMap = new HashedMap();
|
paramMap.put("up_id", up_id);
|
paramMap.put("begin", begin);
|
paramMap.put("end", end);
|
List<Map> list = baseDao.queryForList(sql,paramMap);
|
Map rootMap = new HashMap();
|
rootMap.put("total", infoCount); //信息总数
|
rootMap.put("rows", list);
|
return rootMap;
|
}
|
|
@Override
|
public List<Map> addressData(HttpServletRequest request) {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
@Override
|
public List<Map> queryAddressYjList(HttpServletRequest request) {
|
|
Map paramMap = new HashMap();
|
|
StringBuilder builder = new StringBuilder("SELECT * FROM CONFIG_DATA_DICTIONARY_AREA WHERE ADDRESS_STATUS=1 ORDER BY UP_ID,ADDRESS_SN ASC");
|
|
List<Map> trees = baseDao.queryForList(builder.toString(),paramMap);
|
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
|
for (Map map : trees) {
|
|
String treeId = ConvertUtil.obj2StrBlank(map.get("ID"));
|
String parentId = ConvertUtil.obj2StrBlank(map.get("UP_ID"));
|
|
//一级树
|
if (!StringUtil.notEmpty(parentId)) {
|
yjgnCache.put(treeId, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
String pId = map.get("UP_ID").toString();
|
if(yjgnCache.containsKey(pId)) {
|
Map yjgnMap = yjgnCache.get(pId);
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
}
|
}
|
|
System.out.println(JsonUtil.list2Json(resultList));
|
return resultList;
|
}
|
|
@Override
|
public List getAreaTree(String areaId) {
|
String proviceId = new String();
|
String cityId = new String();
|
String townId = new String();
|
if(StringUtil.notEmpty(areaId) && areaId.split("-").length==3) {
|
String[] address = areaId.split("-");
|
proviceId = address[0];
|
cityId = address[1];
|
townId = address[2];
|
}
|
String selectSql = "SELECT A.* FROM CONFIG_DATA_DICTIONARY_AREA A WHERE A.ADDRESS_STATUS = 1 ORDER BY A.LEVEL,A.ADDRESS_SN ";
|
|
List<Map> categoryList = baseDao.queryForList(selectSql);
|
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
for (Map map : categoryList) {
|
|
//一级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
|
if(proviceId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("UP_ID").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
|
if(cityId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
ejgnCache.put(id, map);
|
continue;
|
}
|
//三级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("3")) {
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
if(townId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
if(null!=map.get("UP_ID")){
|
String upId = map.get("UP_ID").toString();
|
if(ejgnCache.containsKey(upId)) {
|
Map ejgnMap = ejgnCache.get(upId);
|
List<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
}
|
return resultList;
|
}
|
|
@Override
|
public List getProtypeTree(String typeId,String gysId, String goodsTypeId) {
|
String proviceId = new String();
|
String cityId = new String();
|
String townId = new String();
|
if(StringUtil.notEmpty(typeId) && typeId.split("-").length==3) {
|
String[] address = typeId.split("-");
|
proviceId = address[0];
|
cityId = address[1];
|
townId = address[2];
|
}
|
String selectSql = "SELECT C.TYPE,A.* FROM YSY_GYS_GOODS_CATE A,YSY_GOODS_CATEGORY C WHERE A.CATE_ID = C.ID AND A.STATE = 2 AND A.GYS_ID=:gysId ";
|
if(StringUtil.isNotBlank(goodsTypeId)){
|
selectSql = selectSql + " AND C.TYPE=:goodsTypeId ";
|
|
}
|
selectSql = selectSql + " ORDER BY A.LV ";
|
List<Map> categoryList = baseDao.queryForList(selectSql,new SqlParameter().put("gysId", gysId).put("goodsTypeId", goodsTypeId));
|
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
for (Map map : categoryList) {
|
|
//一级树
|
if (map.get("LV").toString().equalsIgnoreCase("1")) {
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
|
if(proviceId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (map.get("LV").toString().equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("PID").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
|
if(cityId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
ejgnCache.put(id, map);
|
continue;
|
}
|
//三级树
|
if (map.get("LV").toString().equalsIgnoreCase("3")) {
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
if(townId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
if(null!=map.get("PID")){
|
String upId = map.get("PID").toString();
|
if(ejgnCache.containsKey(upId)) {
|
Map ejgnMap = ejgnCache.get(upId);
|
List<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
}
|
return resultList;
|
}
|
|
@Override
|
public List getProtypeTree_PT(String typeId,String goodsTypeId) {
|
String proviceId = new String();
|
String cityId = new String();
|
String townId = new String();
|
if(StringUtil.notEmpty(typeId) && typeId.split("-").length==3) {
|
String[] address = typeId.split("-");
|
proviceId = address[0];
|
cityId = address[1];
|
townId = address[2];
|
}
|
String selectSql = "SELECT A.ID,LV1_NAME AS CATE_NAME,A.LEVEL,A.UP_ID FROM YSY_GOODS_CATEGORY A WHERE A.STATE = 1 AND A.LEVEL=1";
|
if(StringUtil.isNotBlank(goodsTypeId)){
|
selectSql = selectSql + " AND A.TYPE=:goodsTypeId ";
|
|
}
|
List<Map> categoryList=new ArrayList<Map>();
|
|
List<Map> categoryList1 = baseDao.queryForList(selectSql,new SqlParameter().put("goodsTypeId", goodsTypeId));
|
selectSql = "SELECT A.ID,LV2_NAME CATE_NAME ,A.LEVEL,A.UP_ID FROM YSY_GOODS_CATEGORY A WHERE A.STATE = 1 AND A.LEVEL=2";
|
if(StringUtil.isNotBlank(goodsTypeId)){
|
selectSql = selectSql + " AND A.TYPE=:goodsTypeId ";
|
|
}
|
List<Map> categoryList2 = baseDao.queryForList(selectSql,new SqlParameter().put("goodsTypeId", goodsTypeId));
|
selectSql = "SELECT A.ID,LV3_NAME CATE_NAME ,A.LEVEL,A.UP_ID FROM YSY_GOODS_CATEGORY A WHERE A.STATE = 1 AND A.LEVEL=3";
|
if(StringUtil.isNotBlank(goodsTypeId)){
|
selectSql = selectSql + " AND A.TYPE=:goodsTypeId ";
|
|
}
|
List<Map> categoryList3 = baseDao.queryForList(selectSql,new SqlParameter().put("goodsTypeId", goodsTypeId));
|
categoryList.addAll(categoryList1);
|
categoryList.addAll(categoryList2);
|
categoryList.addAll(categoryList3);
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
|
for (Map map : categoryList) {
|
|
//一级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
|
if(proviceId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("UP_ID").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
|
if(cityId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
ejgnCache.put(id, map);
|
continue;
|
}
|
//三级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("3")) {
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
if(townId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
if(null!=map.get("UP_ID")){
|
String upId = map.get("UP_ID").toString();
|
if(ejgnCache.containsKey(upId)) {
|
Map ejgnMap = ejgnCache.get(upId);
|
List<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
}
|
return resultList;
|
}
|
@Override
|
public List getZskTree(Map<String, String> params) {
|
// TODO Auto-generated method stub
|
String type=params.get("type");
|
String address=params.get("treeId");
|
String yjId = new String();
|
String ejId = new String();
|
String sjId = new String();
|
if(StringUtil.notEmpty(address) && address.split("-").length==3) {
|
String[] address1 = address.split("-");
|
yjId = address1[0];
|
ejId = address1[1];
|
sjId = address1[2];
|
}
|
String sql = "SELECT * FROM YSY_PT_KNOWLEDGE_CATEGORY WHERE STATE=1";
|
if(StringUtil.notEmpty(type)){
|
sql+=" AND TYPE=:type";
|
}
|
sql+=" ORDER BY LEVEL,ORDER_NUM";
|
List<Map> categoryList = baseDao.queryForList(sql,params);
|
|
Map result = new HashMap();
|
|
List<Map> resultList = new LinkedList<Map>();
|
|
Map<String, Map> yjgnCache = new HashMap<String, Map>();
|
Map<String, Map> ejgnCache = new HashMap<String, Map>();
|
Map<String, Map> sjgnCache = new HashMap<String, Map>();
|
for (Map map : categoryList) {
|
//一级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("1")) {
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
yjgnCache.put(id, map);
|
List<Map> ejgnList = new LinkedList<Map>();
|
map.put("ejTree", ejgnList);
|
|
if(yjId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
resultList.add(map);
|
continue;
|
}
|
//二级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("2")) {
|
Map yjgnMap = yjgnCache.get(map.get("P_ID").toString());
|
List<Map> list = (List<Map>)yjgnMap.get("ejTree");
|
map.put("sjTree", new LinkedList<Map>());
|
list.add(map);
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
|
if(ejId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
ejgnCache.put(id, map);
|
continue;
|
}
|
//三级树
|
if (map.get("LEVEL").toString().equalsIgnoreCase("3")) {
|
|
String id = ConvertUtil.obj2StrBlank(map.get("ID").toString());
|
if(sjId.equals(id)) {
|
map.put("check", 1);
|
} else {
|
map.put("check", 2);
|
}
|
|
if(null!=map.get("P_ID")){
|
String upId = map.get("P_ID").toString();
|
if(ejgnCache.containsKey(upId)) {
|
Map ejgnMap = ejgnCache.get(upId);
|
List<Map> list = (List<Map>)ejgnMap.get("sjTree");
|
list.add(map);
|
}
|
}
|
}
|
}
|
return resultList;
|
}
|
|
}
|