|
package com.ekexiu.portal.service;
import com.ekexiu.portal.dao.OrgDao;
import com.ekexiu.portal.dao.OrgRegInfoDao;
import com.ekexiu.portal.po.OrgRegInfo;
import com.ekexiu.portal.po.Organization;
import com.ekexiu.portal.pojo.EditOrganization;
import org.jfw.apt.annotation.Autowrie;
import org.jfw.apt.annotation.DefaultValue;
import org.jfw.apt.annotation.Nullable;
import org.jfw.apt.web.annotation.Path;
import org.jfw.apt.web.annotation.operate.Get;
import org.jfw.apt.web.annotation.operate.Post;
import org.jfw.apt.web.annotation.param.JdbcConn;
import org.jfw.apt.web.annotation.param.PathVar;
import org.jfw.util.PageQueryResult;
import org.jfw.util.StringUtil;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collections;
import java.util.List;
@Path("/org")
public class OrgService {
private String defaultOrgType;
/**
* 默认企业认证状态为 0-未认证
*/
private String defaultAuthStatus = "0";
@Autowrie
private ImageService imageService;
@Autowrie
private OrgDao orgDao;
@Autowrie
private OrgRegInfoDao orgRegInfoDao;
@Autowrie
private KeyWordService keyWordService;
public KeyWordService getKeyWordService() {
return keyWordService;
}
public void setKeyWordService(KeyWordService keyWordService) {
this.keyWordService = keyWordService;
}
public OrgRegInfoDao getOrgRegInfoDao() {
return orgRegInfoDao;
}
public void setOrgRegInfoDao(OrgRegInfoDao orgRegInfoDao) {
this.orgRegInfoDao = orgRegInfoDao;
}
public ImageService getImageService() {
return imageService;
}
public void setImageService(ImageService imageService) {
this.imageService = imageService;
}
public OrgDao getOrgDao() {
return orgDao;
}
public void setOrgDao(OrgDao orgDao) {
this.orgDao = orgDao;
}
public String getDefaultOrgType() {
return defaultOrgType;
}
public void setDefaultOrgType(String defaultOrgType) {
this.defaultOrgType = defaultOrgType;
}
public String getDefaultAuthStatus() {
return defaultAuthStatus;
}
public void setDefaultAuthStatus(String defaultAuthStatus) {
this.defaultAuthStatus = defaultAuthStatus;
}
@Post
@Path
public void insert(@JdbcConn(true) Connection con,Organization organization) throws SQLException
{
organization.setId(StringUtil.buildUUID());
//if(organization.getOrgType()== null) organization.setOrgType(this.defaultOrgType);
if(organization.getIsJoin() == null ) organization.setIsJoin("0");
this.orgDao.insert(con, organization);
Organization no = this.orgDao.query(con, organization.getId());
if(no!=null && no.getIsJoin().equals("1")){
String s = no.getSubject();
String in = no.getIndustry();
String kw = s==null?"":s.trim();
kw = kw + (in==null?"":(","+in.trim()));
this.keyWordService.refreshOrg(con,organization.getId(),KeyWordService.splitKeyWord(kw));
}else{
this.keyWordService.refreshOrg(con,organization.getId(),null);
}
}
@Post
@Path("/update")
public void update(@JdbcConn(true) Connection con,Organization organization,@Nullable String fn) throws SQLException, IOException{
if(fn != null){
this.imageService.saveOrgLogo(organization.getId(), fn);
}
this.orgDao.update(con, organization);
Organization no = this.orgDao.query(con, organization.getId());
if(no!=null && no.getIsJoin().equals("1")){
String s = no.getSubject();
String in = no.getIndustry();
String kw = s==null?"":s.trim();
kw = kw + (in==null?"":(","+in.trim()));
this.keyWordService.refreshOrg(con,organization.getId(),KeyWordService.splitKeyWord(kw));
}else{
this.keyWordService.refreshOrg(con,organization.getId(),null);
}
}
@Get
@Path("/{id}")
public EditOrganization query(@JdbcConn(false) Connection con ,@PathVar String id)throws SQLException{
EditOrganization editOrg = this.orgDao.queryEditOrg(con, id);
if(editOrg != null){
editOrg.setHasOrgLogo(this.imageService.hasOrgLogo(id));
}
return editOrg;
}
@Get
@Path("/authStatus")
public String queryAuthStatus(@JdbcConn Connection con,String id)throws SQLException{
return this.orgDao.queryAuthStatus(con, id);
}
@Get
@Path("/qa")
public List<Organization> query(@JdbcConn(false) Connection con )throws SQLException{
return this.orgDao.query(con);
}
@Get
@Path("/lq")
public List<Organization> query(@JdbcConn Connection con,@Nullable String name,@DefaultValue("5") int rows) throws SQLException{
if(name==null) name = "%";
else name="%"+name+"%";
return this.orgDao.limitQuery(con, name, rows);
}
@Get
@Path("/querylimit")
public List<EditOrganization> queryLimit(@JdbcConn Connection con,@Nullable String name,@DefaultValue("3") int rows)throws SQLException{
if(name != null){
name = "%" + name + "%";
}
List<EditOrganization> organizations = this.orgDao.queryLimit(con, name, rows);
if(!organizations.isEmpty()){
for (EditOrganization organization : organizations) {
organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
}
}
return organizations;
}
@Get
@Path("/queryByName")
public EditOrganization queryByName(@JdbcConn Connection con,String name)throws SQLException{
EditOrganization o = this.orgDao.queryOneByName(con, name);
o.setHasOrgLogo(this.imageService.hasOrgLogo(o.getId()));
return o;
}
public String createOrganization(Connection con, String orgName) throws SQLException, IOException {
String id = StringUtil.buildUUID();
Organization org = new Organization();
org.setId(id);
org.setName(orgName);
// org.setOrgType(this.defaultOrgType);
org.setAuthStatus(this.defaultAuthStatus);
org.setIsJoin("0");
try {
orgDao.insert(con, org);
this.imageService.saveDefaultOrgLogo(id);
} catch (SQLException e) {
if ("23505".equals(e.getSQLState())) {
con.rollback();
id = orgDao.queryByName(con, orgName);
if (id == null)
throw new RuntimeException("not fonud with query organization by name");
return id;
}
throw e;
}
return id;
}
@Path("/incPageViews")
@Post
public void incPageViews(@JdbcConn(true) Connection con ,String id)throws SQLException{
this.orgDao.incPageViews(con, id);
}
@Get
@Path("/regInfo")
public OrgRegInfo queryRegInfo(@JdbcConn Connection con,String name) throws SQLException{
return this.orgRegInfoDao.query(con, name);
}
@Get
@Path("/byShareId")
public Organization query(@JdbcConn Connection con,long id)throws SQLException{
return this.orgDao.query(con, id);
}
@Get
@Path("/find/pq")
public PageQueryResult<EditOrganization> pageQuery(@JdbcConn Connection con,@Nullable String kw,@Nullable String industry,
@Nullable String city, @DefaultValue("20") int pageSize,@DefaultValue("1") int pageNo)throws SQLException
{
PageQueryResult<EditOrganization> pqr =null;
if(kw==null && industry==null && city ==null)
{
pqr = this.orgDao.query(con, pageSize, pageNo);
}else if(kw != null && industry==null && city ==null){
pqr =this.orgDao.query(con,"%"+kw+"%", pageSize, pageNo);
}else if(kw == null){
industry = industry==null?"%":("%"+industry+"%");
city = city==null?"%":("%"+city+"%");
pqr = this.orgDao.queryByIndustryAndAddr(con, industry, city, pageSize, pageNo);
}else{
industry = industry==null?"%":("%"+industry+"%");
city = city==null?"%":("%"+city+"%");
pqr = this.orgDao.queryByKwAndIndustryAndAddr(con, "%"+kw+"%", industry, city, pageSize, pageNo);
}
for (EditOrganization organization : pqr.getData()) {
organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
}
return pqr;
}
@Get
@Path("/index/search")
public List<EditOrganization> indexSearch(@JdbcConn Connection con, @Nullable String key, @DefaultValue("Long.MAX_VALUE") long sortNum, @DefaultValue("\"9\"") String modifyTime,@DefaultValue("\"Z\"")String id, @DefaultValue("10000000") int rows)throws SQLException {
if (key != null) {
key = "%" + key + "%";
}
List<EditOrganization> orgs = this.orgDao.indexSearch(con,key,sortNum,modifyTime,id,rows);
for (EditOrganization organization : orgs) {
organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
}
return orgs;
}
@Get
@Path("/qm")
public List<EditOrganization> query(@JdbcConn Connection con,String[] id)throws SQLException{
List<EditOrganization> ret = this.orgDao.query(con, id);
for (EditOrganization organization :ret) {
organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
}
return ret;
}
@Get
@Path("/qr")
public List<EditOrganization> relateQuery(@JdbcConn Connection con,@Nullable String kw,@DefaultValue("3") int limit) throws SQLException{
List<EditOrganization> ret = this.orgDao.relateQuery(con, kw==null?"%":("%"+kw+"%"), limit);
for (EditOrganization organization :ret) {
organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
}
return ret;
}
@Get
@Path("/ralateOrgs")
public List<EditOrganization> ralateArticles(@JdbcConn Connection con,String orgId,@DefaultValue("5") int rows)throws SQLException{
String[] ids = this.orgDao.queryOrgIdWithSameKeyWord(con, orgId, rows);
if(ids!=null){
List<EditOrganization> ret = this.orgDao.query(con,ids);
for (EditOrganization organization :ret) {
organization.setHasOrgLogo(this.imageService.hasOrgLogo(organization.getId()));
}
return ret;
}
return Collections.<EditOrganization>emptyList();
}
}
|