package com.jshop.aspect; import java.io.IOException; import java.util.List; import org.apache.commons.lang.xwork.StringUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import com.jshop.action.GoodsTNAction; import com.jshop.action.tools.BaseTools; import com.jshop.action.tools.Serial; import com.jshop.action.tools.Validate; import com.jshop.entity.GoodsBelinkedT; import com.jshop.entity.GoodsSpecificationsRelationshipT; import com.jshop.entity.GoodsT; @Aspect public class GoodsTAspect { /** * 在商品增加后增加规格值关系 * @param joinPoint * @throws IOException */ @After("execution(String com.jshop.action.GoodsTNAction.addGoods())") public void afteraddSpecificationGoods(JoinPoint joinPoint) throws IOException{ GoodsTNAction gtn=(GoodsTNAction) joinPoint.getThis(); if (gtn.getIsSpecificationsOpen().equals("1")) { if(gtn.getSpecificationsId()!=null ){ GoodsSpecificationsRelationshipT gsrt = new GoodsSpecificationsRelationshipT(); gsrt.setSpecidicationsId(gtn.getSpecificationsId()); gsrt.setGoodsSetId(gtn.getBean().getGoodsid()); gtn.getGoodsSpecificationsRelationshipTService().addGoodsAssociatedProductById(gsrt); } } } /** * 在商品更新后更新规格值关系 * @param joinPoint * @throws IOException */ @After("execution(String com.jshop.action.GoodsTNAction.updateGoods())") public void afterupdateSpecificationGoods(JoinPoint joinPoint) throws IOException{ GoodsTNAction gtn=(GoodsTNAction) joinPoint.getThis(); //当修改商品规格时关闭规格操作将删除该商品的规格值 if("2".equals(gtn.getIsSpecificationsOpen())||"0".equals(gtn.getIsSpecificationsOpen())){ List<GoodsSpecificationsRelationshipT> list = gtn.getGoodsSpecificationsRelationshipTService().checkSpecificationRelationshipBygoodssetid(gtn.getBean().getGoodsid()); if(!list.isEmpty()){ gtn.getGoodsSpecificationsRelationshipTService().delGoodsAssociatedProductById(gtn.getBean().getGoodsid()); } } if("1".equals(gtn.getIsSpecificationsOpen())&>n.getSpecificationsId() != null){ List<GoodsSpecificationsRelationshipT> list = gtn.getGoodsSpecificationsRelationshipTService().checkSpecificationRelationshipBygoodssetid(gtn.getBean().getGoodsid()); if(list.isEmpty()){ GoodsSpecificationsRelationshipT gsrt = new GoodsSpecificationsRelationshipT(); gsrt.setSpecidicationsId(gtn.getSpecificationsId()); gsrt.setGoodsSetId(gtn.getBean().getGoodsid()); gtn.getGoodsSpecificationsRelationshipTService().addGoodsAssociatedProductById(gsrt); }else{ GoodsSpecificationsRelationshipT gsrt = new GoodsSpecificationsRelationshipT(); gsrt.setSpecidicationsId(gtn.getSpecificationsId()); gsrt.setGoodsSetId(gtn.getBean().getGoodsid()); gtn.getGoodsSpecificationsRelationshipTService().updateGoodsAssociatedProductById(gsrt); } } } /** * 在商品增加时增加关联商品 */ @After("execution(String com.jshop.action.GoodsTNAction.addGoods())") public void aftergoodsIaddGoodsBelinkedT(JoinPoint joinPoint){ GoodsTNAction gtn=(GoodsTNAction) joinPoint.getThis(); if(Validate.StrNotNull(gtn.getBelinkedgoodsid())){ //组装json格式的关联商品串 String belinkedgoodsid=gtn.getBelinkedgoodsid().trim(); String []strs=StringUtils.split(belinkedgoodsid, ','); GoodsT gt=new GoodsT(); StringBuilder belinkedjson=new StringBuilder(); belinkedjson.append("["); for(String s:strs){ gt=gtn.getGoodsTService().findGoodsById(s); String temp[]=StringUtils.split(gt.getPictureurl(), ','); belinkedjson.append("{"); belinkedjson.append("\"goodsid\":\"").append(gt.getGoodsid()).append("\","); belinkedjson.append("\"goodsname\":\"").append(gt.getGoodsname()).append("\","); belinkedjson.append("\"htmlpath\":\"").append(gt.getHtmlPath()).append("\","); belinkedjson.append("\"memberprice\":\"").append(gt.getMemberprice()).append("\","); belinkedjson.append("\"price\":\"").append(gt.getPrice()).append("\","); belinkedjson.append("\"pictureurl\":\"").append(temp[0]).append("\""); belinkedjson.append("},"); } belinkedjson.deleteCharAt(belinkedjson.length()-1); belinkedjson.append("]"); GoodsBelinkedT gbl=new GoodsBelinkedT(); gbl.setBelinkedid(gtn.getSerial().Serialid(Serial.GOODSBELINKED)); gbl.setMaingoodsid(gtn.getBean().getGoodsid()); gbl.setBelinkedgoods(belinkedjson.toString()); gbl.setMode("1");//默认单向模式 gbl.setState("1");//开启关联 gbl.setCreatorid(BaseTools.adminCreateId()); gbl.setCreatetime(BaseTools.systemtime()); gbl.setUpdatetime(BaseTools.systemtime()); gbl.setVersiont(0); gbl.setSxlinkedgoodsid("0"); @SuppressWarnings("unused") int i=gtn.getGoodsBelinkedTService().addGoodsBelinkedT(gbl); } } /** * 在商品增加时增加关联商品 */ @After("execution(String com.jshop.action.GoodsTNAction.updateGoods())") public void aftergoodsUaddGoodsBelinkedT(JoinPoint joinPoint){ GoodsTNAction gtn=(GoodsTNAction) joinPoint.getThis(); if(Validate.StrNotNull(gtn.getBelinkedgoodsid())){ //组装json格式的关联商品串 String belinkedgoodsid=gtn.getBelinkedgoodsid().trim(); String []strs=StringUtils.split(belinkedgoodsid, ','); GoodsT gt=new GoodsT(); StringBuilder belinkedjson=new StringBuilder(); belinkedjson.append("["); for(String s:strs){ gt=gtn.getGoodsTService().findGoodsById(s); String temp[]=StringUtils.split(gt.getPictureurl(), ','); belinkedjson.append("{"); belinkedjson.append("\"goodsid\":\"").append(gt.getGoodsid()).append("\","); belinkedjson.append("\"goodsname\":\"").append(gt.getGoodsname()).append("\","); belinkedjson.append("\"htmlpath\":\"").append(gt.getHtmlPath()).append("\","); belinkedjson.append("\"memberprice\":\"").append(gt.getMemberprice()).append("\","); belinkedjson.append("\"price\":\"").append(gt.getPrice()).append("\","); belinkedjson.append("\"pictureurl\":\"").append(temp[0]).append("\""); belinkedjson.append("},"); } belinkedjson.deleteCharAt(belinkedjson.length()-1); belinkedjson.append("]"); GoodsBelinkedT gbl=new GoodsBelinkedT(); List<GoodsBelinkedT>list=gtn.getGoodsBelinkedTService().findGoodsBelinkedBymaingoodsid(gtn.getBean().getGoodsid()); if(!list.isEmpty()){ gbl.setBelinkedid(list.get(0).getBelinkedid()); gbl.setMaingoodsid(gtn.getBean().getGoodsid()); gbl.setBelinkedgoods(belinkedjson.toString()); gbl.setMode("1");//默认单向模式 gbl.setState("1");//开启关联 gbl.setCreatorid(BaseTools.adminCreateId()); gbl.setCreatetime(list.get(0).getCreatetime()); gbl.setUpdatetime(BaseTools.systemtime()); gbl.setVersiont(0); gbl.setSxlinkedgoodsid("0"); @SuppressWarnings("unused") int i=gtn.getGoodsBelinkedTService().updateGoodsBelinked(gbl); }else{ gbl.setBelinkedid(gtn.getSerial().Serialid(Serial.GOODSBELINKED)); gbl.setMaingoodsid(gtn.getBean().getGoodsid()); gbl.setBelinkedgoods(belinkedjson.toString()); gbl.setMode("1");//默认单向模式 gbl.setState("1");//开启关联 gbl.setCreatorid(BaseTools.adminCreateId()); gbl.setCreatetime(BaseTools.systemtime()); gbl.setUpdatetime(BaseTools.systemtime()); gbl.setVersiont(0); gbl.setSxlinkedgoodsid("0"); @SuppressWarnings("unused") int i=gtn.getGoodsBelinkedTService().addGoodsBelinkedT(gbl); } } } }