package com.jshoperx.action.backstage.goods;
import com.jshoperx.action.backstage.base.BaseTAction;
import com.jshoperx.action.backstage.utils.BaseTools;
import com.jshoperx.action.backstage.utils.statickey.StaticKey;
import com.jshoperx.entity.GoodsTypeTN;
import com.jshoperx.service.GoodsTypeTNService;
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.Criterion;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import javax.annotation.Resource;
import java.sql.Date;
import java.util.*;
@Namespace("")
@ParentPackage("jshoperx")
//@InterceptorRefs({
// @InterceptorRef("goodsmoduleGoodsTypeTNInterecptor"),
// @InterceptorRef("defaultStack")
//})
public class GoodsTypeTNAction extends BaseTAction {
private static final long serialVersionUID = 1L;
@Resource
private GoodsTypeTNService goodsTypeTNService;
private String goodsTypeId;
private String name;
private Date createtime;
private String creatorid;
private String goodsParameter;
private GoodsTypeTN bean;
private List<GoodsTypeTN> beanlist=new ArrayList<GoodsTypeTN>();;
private String goodstypetnlist;
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 getGoodsTypeId() {
return goodsTypeId;
}
public void setGoodsTypeId(String goodsTypeId) {
this.goodsTypeId = goodsTypeId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
public String getCreatorid() {
return creatorid;
}
public void setCreatorid(String creatorid) {
this.creatorid = creatorid;
}
public String getGoodsParameter() {
return goodsParameter;
}
public void setGoodsParameter(String goodsParameter) {
this.goodsParameter = goodsParameter;
}
public GoodsTypeTN getBean() {
return bean;
}
public void setBean(GoodsTypeTN 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 getGoodstypetnlist() {
return goodstypetnlist;
}
public void setGoodstypetnlist(String goodstypetnlist) {
this.goodstypetnlist = goodstypetnlist;
}
public List<GoodsTypeTN> getBeanlist() {
return beanlist;
}
public void setBeanlist(List<GoodsTypeTN> beanlist) {
this.beanlist = beanlist;
}
/**
*清理错误
*/
@Override
public void validate() {
this.clearErrorsAndMessages();
}
/**
* 增加商品类型
*
* @return
*/
@Action(value = "addGoodsTypeTN", results = { @Result(name = "json", type = "json") })
public String addGoodsTypeTN() {
if(StringUtils.isBlank(this.getName())){
return JSON;
}
Criterion criterion=Restrictions.eq("name", this.getName());
List<GoodsTypeTN> list=this.goodsTypeTNService.findByCriteria(GoodsTypeTN.class, criterion);
if(list.isEmpty()){
GoodsTypeTN gtn = new GoodsTypeTN();
gtn.setGoodsTypeId(this.getSerial().Serialid(Serial.GOODSTYPE));
gtn.setName(this.getName().trim());
gtn.setCreatetime(BaseTools.getSystemTime());
gtn.setCreatorid(BaseTools.getAdminCreateId());
gtn.setGoodsParameter(this.getGoodsParameter());
this.goodsTypeTNService.save(gtn);
this.setSucflag(true);
return JSON;
}
return JSON;
}
/**
* 增加商品类型参数
* @return
*/
@Action(value = "addgoodsParameter", results = { @Result(name = "json", type = "json") })
public String addgoodsParameter() {
if(StringUtils.isBlank(this.getName())){
//this.setSucflag(true);
return JSON;
}
Criterion criterion=Restrictions.eq("name", this.getName());
GoodsTypeTN gtn=this.goodsTypeTNService.findOneByCriteria(GoodsTypeTN.class, criterion);
if(gtn!=null){
gtn.setGoodsParameter(this.getGoodsParameter());
this.goodsTypeTNService.update(gtn);
this.setSucflag(true);
}
return JSON;
}
/**
* 获取所有商品类型
*
* @return
*/
@Action(value = "findAllGoodsTypeTN", results = { @Result(name = "json", type = "json") })
public String findAllGoodsTypeTN() {
if (StaticKey.SC.equals(this.getQtype())) {
findDefaultAllGoodsTypeTN();
} else {
if (StringUtils.isNotBlank(this.getQtype())) {
return JSON;
} else {
if(this.getQtype().equals("name")){
findGoodsTypeTNByParams();
}
return JSON;
}
}
return JSON;
}
public void processGoodsTypeTNList(List<GoodsTypeTN> list) {
for (Iterator<GoodsTypeTN> it = list.iterator(); it.hasNext();) {
GoodsTypeTN gtn = it.next();
Map<String, Object> cellMap = new HashMap<String, Object>();
cellMap.put("id", gtn.getGoodsTypeId());
cellMap.put("cell", new Object[] {gtn.getName(), BaseTools.formateDbDate(gtn.getCreatetime()),"<a id='editegoodstypetn' name='editegoodstypetn' href='goodstypetn.jsp?operate=edit&folder=goods&goodsTypeId=" + gtn.getGoodsTypeId() + "'>[编辑]</a>" });
rows.add(cellMap);
}
}
private void findGoodsTypeTNByParams() {
int currentPage = page;
int lineSize = rp;
Criterion criterion=Restrictions.like(this.getQtype(), this.getQuery().trim(), MatchMode.ANYWHERE);
total = this.goodsTypeTNService.count(GoodsTypeTN.class, criterion).intValue();
if(StringUtils.isNotBlank(this.getSortname())&&StringUtils.isNotBlank(this.getSortorder())){
Order order=null;
if(StringUtils.equals(this.getSortorder(), StaticKey.ASC)){
order=Order.asc(this.getSortname());
}else{
order=Order.desc(this.getSortname());
}
List<GoodsTypeTN>list=this.goodsTypeTNService.findByCriteriaByPage(GoodsTypeTN.class, criterion, order, currentPage, lineSize);
this.processGoodsTypeTNList(list);
}
}
public void findDefaultAllGoodsTypeTN() {
int currentPage = page;
int lineSize = rp;
total = this.goodsTypeTNService.count(GoodsTypeTN.class).intValue();
if(StringUtils.isNotBlank(this.getSortname())&&StringUtils.isNotBlank(this.getSortorder())){
Order order=null;
if(StringUtils.equals(this.getSortorder(), StaticKey.ASC)){
order=Order.asc(this.getSortname());
}else{
order=Order.desc(this.getSortname());
}
List<GoodsTypeTN>list=this.goodsTypeTNService.findByCriteriaByPage(GoodsTypeTN.class,order, currentPage, lineSize);
this.processGoodsTypeTNList(list);
}
}
/**
* 根据id获取商品类型
*
* @return
*/
@Action(value = "findGoodsTypeTNById", results = { @Result(name = "json", type = "json") })
public String findGoodsTypeTNById() {
if (StringUtils.isNotBlank(this.getGoodsTypeId())) {
bean=this.goodsTypeTNService.findByPK(GoodsTypeTN.class, this.getGoodsTypeId());
if(bean!=null){
this.setSucflag(true);
}
}
return JSON;
}
/**
* 更新商品类型
*
* @return
*/
@Action(value = "updateGoodsTypeTN", results = { @Result(name = "json", type = "json") })
public String updateGoodsTypeTN() {
if(StringUtils.isBlank(this.getGoodsTypeId())){
return JSON;
}
GoodsTypeTN gtn = this.goodsTypeTNService.findByPK(GoodsTypeTN.class, this.getGoodsTypeId());
if(gtn!=null){
gtn.setGoodsTypeId(this.getGoodsTypeId().trim());
gtn.setName(this.getName());
gtn.setCreatetime(BaseTools.getSystemTime());
gtn.setCreatorid(BaseTools.getAdminCreateId());
gtn.setGoodsParameter(this.getGoodsParameter());
this.goodsTypeTNService.update(gtn);
this.setSucflag(true);
}
return JSON;
}
/**
* 删除商品类型
*
* @return
*/
@Action(value = "delGoodsTypeTN", results = { @Result(name = "json", type = "json") })
public String delGoodsTypeTN() {
if (StringUtils.isNotBlank(this.getGoodsTypeId())) {
String[] strs = StringUtils.split(this.getGoodsTypeId(), StaticKey.SPLITDOT);
for(String s:strs){
GoodsTypeTN gtn=this.goodsTypeTNService.findByPK(GoodsTypeTN.class, s);
if(gtn!=null){
this.goodsTypeTNService.delete(gtn);
}
}
this.setSucflag(true);
}
return JSON;
}
@Action(value = "findGoodsTypeTNForSelect", results = { @Result(name = "json", type = "json") })
public String findGoodsTypeTNForSelect() {
this.setGoodstypetnlist(StaticKey.EMPTY);
List<GoodsTypeTN> list = this.goodsTypeTNService.findAll(GoodsTypeTN.class);
if (list != null) {
this.setGoodstypetnlist("<option value='0'>---请选择---</option>");
for (Iterator<GoodsTypeTN> it = list.iterator(); it.hasNext();) {
GoodsTypeTN gtn =it.next();
this.goodstypetnlist += "<option value='" + gtn.getGoodsTypeId() + "'>" + gtn.getName() + "</option>";
}
this.setGoodstypetnlist(goodstypetnlist);
return JSON;
}
this.setGoodstypetnlist(StaticKey.EMPTY);
return JSON;
}
/**
* 获取商品参数
*
* @return
*/
@Action(value = "findGoodsParameter", results = { @Result(name = "json", type = "json") })
public String findGoodsParameter() {
if(StringUtils.isNotBlank(this.getGoodsTypeId())){
bean=this.goodsTypeTNService.findByPK(GoodsTypeTN.class, this.getGoodsTypeId());
if(bean!=null){
this.setSucflag(true);
}
}
return JSON;
}
}