package com.iamberry.wechat.service.agentInfo; import com.iamberry.wechat.core.entity.OrderUtil; import com.iamberry.wechat.core.entity.agentInfo.AgentConfig; import com.iamberry.wechat.core.entity.agentInfo.AgentOrder; import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem; import com.iamberry.wechat.core.entity.product.Product; import com.iamberry.wechat.core.entity.product.ProductColor; import com.iamberry.wechat.face.agentInfo.AgentPurchaseOrderService; import com.iamberry.wechat.service.mapper.AgentInfoMapper; import com.iamberry.wechat.service.mapper.AgentPurchaseOrderMapper; import com.iamberry.wechat.service.mapper.ProductInfoMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by liuzhiwei on 2017/10/11. */ @Service public class AgentPurchaseOrderServiceImpl implements AgentPurchaseOrderService { @Autowired private AgentPurchaseOrderMapper agentPurchaseOrderMapper; @Autowired private ProductInfoMapper productInfoMapper; @Autowired private AgentInfoMapper agentInfoMapper; @Override @Transactional public Map addAgentOrder(AgentOrder agentOrder, List agentOrderItemList) { Map map = new HashMap(); map.put("status",400); agentOrder.setAgentStatus(OrderUtil.ORDERSTAUTS_TOBEPAID); //设置状态为:未支付 int amount = 0; //订单总金额 for(AgentOrderItem agentOrderItem : agentOrderItemList){ ProductColor productColor = new ProductColor(); productColor.setColorId(agentOrderItem.getColorId()); productColor.setColorProductId(agentOrderItem.getProductId()); productColor = productInfoMapper.getProductColor(productColor); Product product = productInfoMapper.getProductByProductId(agentOrderItem.getProductId(),agentOrderItem.getColorId()); if(productColor == null || product == null){ map.put("msg","查询产品出错!"); return map; } agentOrderItem.setAgentOrderid(agentOrder.getAgentOrderid()); //订单id agentOrderItem.setProductId(product.getProductId()); //产品id agentOrderItem.setItemProductName(product.getProductName()); //产品名称 agentOrderItem.setColorId(productColor.getColorId()); //颜色id agentOrderItem.setItemColorName(productColor.getColorName()); //颜色名称 agentOrderItem.setProductType(product.getProductType().getTypeId()); //产品类型id agentOrderItem.setProductRentType(product.getProductRentType()); //销售类型 agentOrderItem.setItemProductPrice(productColor.getColorPrice()); //商品原价 agentOrderItem.setItemProductPic(product.getProductIntroduceImg()); //介绍图 // -------- 计算金额 --------- Integer discount = 0; //优惠价 AgentConfig agentConfig = new AgentConfig(); agentConfig.setColorId(productColor.getColorId()); agentConfig.setAgentId(agentOrder.getAgentId()); agentConfig = agentInfoMapper.getAgentConfig(agentConfig); if(agentConfig != null){ discount = agentConfig.getConfigAmount(); }else{ discount = productColor.getColorDiscount(); } agentOrderItem.setItemProductDiscount(discount); //商品优惠价 Integer itemSummary = 0; if(agentOrderItem.getItemNum() == null || agentOrderItem.getItemNum() < 1){ map.put("msg","产品数量不能小于1!"); return map; } itemSummary = agentOrderItem.getItemNum() * discount; //计算订单项小结 amount += itemSummary; //计算订单总金额 } agentOrder.setAgentAmount(amount); //订单金额 agentOrder.setAgentYetAmount(amount); //付款金额 Integer flag = agentPurchaseOrderMapper.addAgentOrder(agentOrder); if(flag < 1){ map.put("msg","生成订单失败!"); return map; } flag = agentPurchaseOrderMapper.addAgentOrderItemList(agentOrderItemList); map.put("status",200); map.put("agentOrder",agentOrder); map.put("msg","订单生成成功!"); return map; } @Override public List listAgentOrderItemByOrderId(String orderId) { AgentOrderItem agentOrderItem = new AgentOrderItem(); agentOrderItem.setAgentOrderid(orderId); return agentPurchaseOrderMapper.listAgentOrderItem(agentOrderItem); } @Override public List listAgentOrder(AgentOrder agentOrder) { return agentPurchaseOrderMapper.listAgentOrder(agentOrder); } }