diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java index 2eadff9f..1cd42c0c 100644 --- a/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplate.java @@ -1,21 +1,23 @@ package com.ghy.order.domain; +import com.ghy.common.core.domain.BaseEntity; +import com.ghy.goods.domain.Goods; import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; /** * 订单模板 */ @Data -public class OrderTemplate { +@EqualsAndHashCode(callSuper = true) +public class OrderTemplate extends BaseEntity { private Long id; private Long userId; // 模板名称 private String templateName; - // 商品ID - private Long goodsId; - // 商品类型ID(第三层) - private Long deptGoodsCategoryId; // 商品品牌 private String goodsBrand; // 商品规格 @@ -44,8 +46,6 @@ public class OrderTemplate { private Integer informationFee; // 奖励金(限制整数) private Integer bonus; - // 备注 - private String remark; // 物流单号 private String logisticsCode; // 是否需要拉货 @@ -54,4 +54,7 @@ public class OrderTemplate { private int needCarry; // 楼层 private Integer floor; + + // 商品 + private List goods; } diff --git a/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplateGoods.java b/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplateGoods.java new file mode 100644 index 00000000..c5b22ee8 --- /dev/null +++ b/ghy-order/src/main/java/com/ghy/order/domain/OrderTemplateGoods.java @@ -0,0 +1,18 @@ +package com.ghy.order.domain; + +import lombok.Data; + +@Data +public class OrderTemplateGoods { + + // 订单模板Id + private Long orderTemplateId; + // 商品ID + private Long goodsId; + // 商品名称 + private String goodsName; + // 商品类型ID(第三层) + private Long deptGoodsCategoryId; + // 商品数量 + private Long number; +} diff --git a/ghy-order/src/main/java/com/ghy/order/mapper/OrderTemplateMapper.java b/ghy-order/src/main/java/com/ghy/order/mapper/OrderTemplateMapper.java new file mode 100644 index 00000000..96cc9885 --- /dev/null +++ b/ghy-order/src/main/java/com/ghy/order/mapper/OrderTemplateMapper.java @@ -0,0 +1,36 @@ +package com.ghy.order.mapper; + +import com.ghy.order.domain.OrderTemplate; +import com.ghy.order.domain.OrderTemplateGoods; + +import java.util.List; +import java.util.Set; + +/** + * 订单模板Mapper + */ +public interface OrderTemplateMapper { + + int insert(OrderTemplate orderTemplate); + + int update(OrderTemplate orderTemplate); + + int delete(Long id); + + int batchDelete(Set ids); + + OrderTemplate selectById(Long id); + + List selectByIds(Set ids); + + List select(OrderTemplate orderTemplate); + + // OrderTemplateGoods 接口 + + int deleteGoods(Long orderTemplateId); + + List selectGoods(Long orderTemplateId); + + int insertGoods(OrderTemplateGoods goods); + +} diff --git a/ghy-order/src/main/java/com/ghy/order/service/OrderTemplateService.java b/ghy-order/src/main/java/com/ghy/order/service/OrderTemplateService.java new file mode 100644 index 00000000..afcb809e --- /dev/null +++ b/ghy-order/src/main/java/com/ghy/order/service/OrderTemplateService.java @@ -0,0 +1,23 @@ +package com.ghy.order.service; + +import com.ghy.order.domain.OrderTemplate; + +import java.util.List; +import java.util.Set; + +public interface OrderTemplateService { + + int insert(OrderTemplate orderTemplate); + + int update(OrderTemplate orderTemplate); + + int delete(Long id); + + int batchDelete(Set ids); + + OrderTemplate selectById(Long id); + + List selectByIds(Set ids); + + List select(OrderTemplate orderTemplate); +} diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/OrderTemplateServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderTemplateServiceImpl.java new file mode 100644 index 00000000..e90d0626 --- /dev/null +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/OrderTemplateServiceImpl.java @@ -0,0 +1,85 @@ +package com.ghy.order.service.impl; + +import com.ghy.order.domain.OrderTemplate; +import com.ghy.order.domain.OrderTemplateGoods; +import com.ghy.order.mapper.OrderTemplateMapper; +import com.ghy.order.service.OrderTemplateService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +@Service +public class OrderTemplateServiceImpl implements OrderTemplateService { + + @Resource + private OrderTemplateMapper mapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public int insert(OrderTemplate orderTemplate) { + int count = mapper.insert(orderTemplate); + saveGoods(orderTemplate); + return count; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int update(OrderTemplate orderTemplate) { + int count = mapper.update(orderTemplate); + mapper.deleteGoods(orderTemplate.getId()); + saveGoods(orderTemplate); + return count; + } + + private void saveGoods(OrderTemplate orderTemplate) { + List goods = orderTemplate.getGoods(); + if (!CollectionUtils.isEmpty(goods)) { + for (OrderTemplateGoods x : goods) { + x.setOrderTemplateId(orderTemplate.getId()); + mapper.insertGoods(x); + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int delete(Long id) { + mapper.deleteGoods(id); + return mapper.delete(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int batchDelete(Set ids) { + if (CollectionUtils.isEmpty(ids)) { + return 0; + } else { + ids.forEach(x -> mapper.deleteGoods(x)); + return mapper.batchDelete(ids); + } + } + + @Override + public OrderTemplate selectById(Long id) { + return mapper.selectById(id); + } + + @Override + public List selectByIds(Set ids) { + if (CollectionUtils.isEmpty(ids)) { + return new ArrayList<>(); + } else { + return mapper.selectByIds(ids); + } + } + + @Override + public List select(OrderTemplate orderTemplate) { + return mapper.select(orderTemplate); + } +} diff --git a/ghy-order/src/main/resources/mapper/order/OrderTemplateMapper.xml b/ghy-order/src/main/resources/mapper/order/OrderTemplateMapper.xml new file mode 100644 index 00000000..0dc89f1e --- /dev/null +++ b/ghy-order/src/main/resources/mapper/order/OrderTemplateMapper.xml @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE order_template + + template_name = #{templateName}, + goods_brand = #{goodsBrand}, + goods_specification = #{goodsSpecification}, + video_url = #{videoUrl}, + image_url = #{imageUrl}, + address_id = #{addressId}, + street_id = #{streetId}, + full_address = #{fullAddress}, + customer_name = #{customerName}, + customer_phone = #{customerPhone}, + order_mode = #{orderMode}, + price = #{price}, + agency_fund = #{agencyFund}, + information_fee = #{informationFee}, + bonus = #{bonus}, + logistics_code = #{logisticsCode}, + need_wagon = #{needWagon}, + need_carry = #{needCarry}, + floor = #{floor}, + update_by = #{updateBy}, + update_time = SYSDATE() + + WHERE id = #{id} + + + + INSERT INTO order_template( + user_id, + template_name, + goods_brand, + goods_specification = #{goodsSpecification}, + video_url, + image_url, + address_id, + street_id, + full_address, + customer_name, + customer_phone, + order_mode, + price, + agency_fund, + information_fee, + bonus, + logistics_code, + need_wagon, + need_carry, + floor, + create_time + )VALUES( + #{userId}, + #{templateName}, + #{goodsBrand}, + goods_specification = #{goodsSpecification}, + #{videoUrl}, + #{imageUrl}, + #{addressId}, + #{streetId}, + #{fullAddress}, + #{customerName}, + #{customerPhone}, + #{orderMode}, + #{price}, + #{agencyFund}, + #{informationFee}, + #{bonus}, + #{logisticsCode}, + #{needWagon}, + #{needCarry}, + #{floor}, + SYSDATE() + ) + + + + + + + + + + DELETE FROM order_template WHERE order_detail_id = #{orderDetailId} + + + + DELETE FROM order_template WHERE id IN + + #{id} + + + + + SELECT id, user_id, template_name,goods_brand, goods_specification, video_url, image_url, + address_id, street_id, full_address, customer_name, customer_phone, order_mode, + price, agency_fund, information_fee, bonus, logistics_code, need_wagon, need_carry, floor, + create_by, create_time, update_by, update_time, remark + FROM order_template + + + + + + INSERT INTO order_template_goods(order_template_id, goods_id, goods_name, dept_goodscategory_id, number) + VALUES(#{orderTemplateId}, #{goodsId}, #{goodsName}, #{deptGoodsCategoryId}, #{number}) + + + + DELETE FROM order_template_goods WHERE order_template_id = #{orderTemplateId} + + + +