package com.jshoperx.action.backstage.content;
import com.jshoperx.action.backstage.base.BaseTAction;
import com.jshoperx.action.backstage.utils.BaseTools;
import com.jshoperx.action.backstage.utils.enums.BaseEnums.SiteNavPosition;
import com.jshoperx.action.backstage.utils.statickey.StaticKey;
import com.jshoperx.entity.SiteNavigationT;
import com.jshoperx.service.SiteNavigationTService;
import com.jshoperx.service.impl.Serial;
import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.hibernate.criterion.Order;
import javax.annotation.Resource;
import java.util.*;
@Namespace("")
@ParentPackage("jshoperx")
public class SiteNavigationTAction extends BaseTAction {
private static final long serialVersionUID = 1L;
@Resource
private SiteNavigationTService siteNavigationTService;
private String snid;
private String isTargetBlank;
private String isVisible;
private String name;
private String position;
private String createtime;
private String creatorid;
private String htmlPath;
private String sort;
private String sign;
private SiteNavigationT bean = new SiteNavigationT();
private List<Map<String, Object>> rows = new ArrayList<Map<String, Object>>();
private int rp;
private int page = 1;
private int total = 0;
private boolean sucflag;
public String getSnid() {
return snid;
}
public void setSnid(String snid) {
this.snid = snid;
}
public String getIsTargetBlank() {
return isTargetBlank;
}
public void setIsTargetBlank(String isTargetBlank) {
this.isTargetBlank = isTargetBlank;
}
public String getIsVisible() {
return isVisible;
}
public void setIsVisible(String isVisible) {
this.isVisible = isVisible;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public String getCreatorid() {
return creatorid;
}
public void setCreatorid(String creatorid) {
this.creatorid = creatorid;
}
public String getHtmlPath() {
return htmlPath;
}
public void setHtmlPath(String htmlPath) {
this.htmlPath = htmlPath;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public SiteNavigationT getBean() {
return bean;
}
public void setBean(SiteNavigationT bean) {
this.bean = bean;
}
public List<Map<String, Object>> getRows() {
return rows;
}
public void setRows(List<Map<String, Object>> rows) {
this.rows = rows;
}
public int getRp() {
return rp;
}
public void setRp(int rp) {
this.rp = rp;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public boolean isSucflag() {
return sucflag;
}
public void setSucflag(boolean sucflag) {
this.sucflag = sucflag;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
/**
* 清理错误
*/
@Override
public void validate() {
this.clearErrorsAndMessages();
}
/**
* 查询所有导航
*
* @return
*/
@Action(value = "findAllSiteNavigationT", results = { @Result(name = "json", type = "json") })
public String findAllSiteNavigationT() {
if (StringUtils.equals(StaticKey.SC, this.getQtype())) {
this.findDefaultAllSiteNavigation();
} else {
if (StringUtils.isBlank(this.getQuery())) {
return JSON;
} else {
return JSON;
}
}
return JSON;
}
public void findDefaultAllSiteNavigation() {
int currentPage = page;
int lineSize = rp;
total = this.siteNavigationTService.countfindAll(SiteNavigationT.class);
if (StringUtils.isNotBlank(getSortname())
&& StringUtils.isNotBlank(getSortorder())) {
// String queryString =
// "from SiteNavigationT as st where st.creatorid=:creatorid order by "
// + getSortname() + " " + getSortorder() + "";
Order order = null;
if (StringUtils.equals(this.getSortorder(), StaticKey.ASC)) {
order = Order.asc(this.getSortname());
}
if (StringUtils.equals(this.getSortorder(), StaticKey.DESC)) {
order = Order.desc(this.getSortname());
}
List<SiteNavigationT> list = this.siteNavigationTService
.findByCriteriaByPage(SiteNavigationT.class, order,
currentPage, lineSize);
this.processSiteNavigationList(list);
}
}
public void processSiteNavigationList(List<SiteNavigationT> list) {
rows.clear();
for (Iterator<SiteNavigationT> it = list.iterator(); it.hasNext();) {
SiteNavigationT sn = (SiteNavigationT) it.next();
if (sn.getIsTargetBlank().equals("1")) {
sn.setIsTargetBlank("<span class='truestatue'><img width='20px' height='20px' src='../ui/assets/img/header/icon-48-apply.png'/></span>");
} else {
sn.setIsTargetBlank("<span class='falsestatue'><img width='20px' height='20px' src='../ui/assets/img/header/icon-48-deny.png'/></span>");
}
if (sn.getIsVisible().equals(StaticKey.ONE)) {
sn.setIsVisible("<span class='truestatue'><img width='20px' height='20px' src='../ui/assets/img/header/icon-48-apply.png'/></span>");
} else {
sn.setIsVisible("<span class='falsestatue'><img width='20px' height='20px' src='../ui/assets/img/header/icon-48-deny.png'/></span>");
}
sn.setPosition(SiteNavPosition.getName(sn.getPosition()));
Map<String, Object> cellMap = new HashMap<String, Object>();
cellMap.put("id", sn.getSnid());
cellMap.put(
"cell",
new Object[] {
sn.getShopname(),
sn.getName(),
sn.getPosition(),
sn.getSign(),
sn.getSort(),
sn.getIsTargetBlank(),
sn.getIsVisible(),
BaseTools.formateDbDate(sn.getCreatetime()),
sn.getCreatorid(),
"<a id='editsitenavigation' href='sitenavigation.jsp?operate=edit&folder=pagecontent&snid="
+ sn.getSnid()
+ "' name='editsitenavigation'>[编辑]</a>" });
rows.add(cellMap);
}
}
/**
* 增加导航
*
* @return
*/
@Action(value = "addSiteNavigationT", results = { @Result(name = "json", type = "json") })
public String addSiteNavigationT() {
SiteNavigationT sn = new SiteNavigationT();
sn.setSnid(this.getSerial().Serialid(Serial.SITENAVIGATION));
sn.setIsTargetBlank(this.getIsTargetBlank());
sn.setIsVisible(this.getIsVisible());
sn.setName(this.getName());
sn.setPosition(this.getPosition());
sn.setCreatetime(BaseTools.getSystemTime());
sn.setCreatorid(BaseTools.getAdminCreateId());
sn.setHtmlPath(this.getHtmlPath());
sn.setSort(Integer.parseInt(this.getSort()));
sn.setSign(this.getSign());
sn.setShopid(BaseTools.getShopId());
sn.setShopname(BaseTools.getShopName());
this.siteNavigationTService.save(sn);
// 这里需要对应模板生成静态页面
this.setSucflag(true);
return JSON;
}
/**
* 根据snid获取导航数据
*
* @return
*/
@Action(value = "findSiteNavigationBysnid", results = { @Result(name = "json", type = "json") })
public String findSiteNavigationBysnid() {
bean = this.siteNavigationTService.findByPK(SiteNavigationT.class,
this.getSnid());
if (bean != null) {
this.setSucflag(true);
}
return JSON;
}
/**
* 更新导航
*
* @return
*/
@Action(value = "updateSiteNavigationT", results = { @Result(name = "json", type = "json") })
public String updateSiteNavigationT() {
SiteNavigationT sn = this.siteNavigationTService.findByPK(
SiteNavigationT.class, this.getSnid());
if (sn != null) {
sn.setIsTargetBlank(this.getIsTargetBlank());
sn.setIsVisible(this.getIsVisible());
sn.setName(this.getName());
sn.setPosition(this.getPosition());
sn.setCreatetime(BaseTools.getSystemTime());
sn.setCreatorid(BaseTools.getAdminCreateId());
sn.setHtmlPath(this.getHtmlPath());
sn.setSort(Integer.parseInt(this.getSort()));
sn.setSign(this.getSign());
sn.setShopid(BaseTools.getShopId());
sn.setShopname(BaseTools.getShopName());
this.siteNavigationTService.update(sn);
// 更新模板页面数据
this.setSucflag(true);
}
return JSON;
}
/**
* 删除导航
*
* @return
*/
@Action(value = "delSiteNavigationT", results = { @Result(name = "json", type = "json") })
public String delSiteNavigationT() {
if (StringUtils.isNotBlank(this.getSnid())) {
String[] strs = StringUtils.split(this.getSnid(),
StaticKey.SPLITDOT);
for (String s : strs) {
SiteNavigationT sn = this.siteNavigationTService.findByPK(
SiteNavigationT.class, s);
if (sn != null) {
this.siteNavigationTService.delete(sn);
}
}
this.setSucflag(true);
}
return JSON;
}
}