From 419f7c9886c771266c114d41a067cee910dbd334 Mon Sep 17 00:00:00 2001 From: chenxin <14373293+axindata@user.noreply.gitee.com> Date: Wed, 26 Feb 2025 10:34:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9C=80=E7=BB=88=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PmsProductServiceImpl.java | 2 +- .../mall/mapper/OmsOrderItemMapper.java | 2 + .../buy507/mall/mapper/PmsProductMapper.java | 6 +- .../buy507/mall/mapper/PmsSkuStockMapper.java | 1 + .../com/buy507/mall/model/OmsOrderItem.java | 2 + .../com/buy507/mall/model/PmsProduct.java | 2 +- .../buy507/mall/mapper/OmsOrderItemMapper.xml | 7 +- .../buy507/mall/mapper/PmsProductMapper.xml | 122 ++++++- .../buy507/mall/mapper/PmsSkuStockMapper.xml | 1 + .../portal/controller/HomeController.java | 12 +- .../mall/portal/domain/OrderItemResult.java | 24 +- .../mall/portal/domain/OrderResult.java | 21 ++ .../portal/domain/ProductDetailResult.java | 49 ++- .../mall/portal/domain/ProductSkuResult.java | 10 + .../portal/service/impl/HomeServiceImpl.java | 83 ++--- .../impl/OmsPortalOrderServiceImpl.java | 316 +++++++++++------- .../service/impl/UmsMemberServiceImpl.java | 4 - .../src/main/resources/dao/HomeDao.xml | 12 +- 18 files changed, 466 insertions(+), 210 deletions(-) diff --git a/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java b/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java index 4202d64..3c72a3e 100644 --- a/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java +++ b/mall-admin/src/main/java/com/buy507/mall/service/impl/PmsProductServiceImpl.java @@ -84,7 +84,7 @@ public class PmsProductServiceImpl implements PmsProductService { log.info("b"+String.valueOf(productParam.getProductAttributeCategoryId())); log.info("c"+String.valueOf(product.getProductCategoryId())); log.info("d"+String.valueOf(product.getProductAttributeCategoryId())); - productMapper.insertSelective(product); + productMapper.insertAll(product); //根据促销类型设置价格:、阶梯价格、满减价格 Long productId = product.getId(); //会员价格 diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java index 8b50eb5..a16402a 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/OmsOrderItemMapper.java @@ -27,4 +27,6 @@ public interface OmsOrderItemMapper { int updateByPrimaryKeySelective(OmsOrderItem record); int updateByPrimaryKey(OmsOrderItem record); + + OmsOrderItem selectByOrderId(Long orderId); } \ No newline at end of file diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java index d86dc19..a727d82 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsProductMapper.java @@ -7,6 +7,7 @@ import com.buy507.mall.model.PmsProductFullReduction; import java.util.HashMap; import java.util.List; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; public interface PmsProductMapper { long countByExample(PmsProductExample example); @@ -23,7 +24,9 @@ public interface PmsProductMapper { List selectByExample(PmsProductExample example); +// @Select("select * from pms_product where id = #{id}") PmsProduct selectByPrimaryKey(Long id); + int updateByExampleSelective(@Param("record") PmsProduct record, @Param("example") PmsProductExample example); int updateByExampleWithBLOBs(@Param("record") PmsProduct record, @Param("example") PmsProductExample example); @@ -40,7 +43,8 @@ public interface PmsProductMapper { PmsProduct getProductByOrderSn(String orderSn); + PmsProduct getPrimaryKey(Long id); - + int insertAll(PmsProduct product); } \ No newline at end of file diff --git a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsSkuStockMapper.java b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsSkuStockMapper.java index 143ec8c..80dd352 100644 --- a/mall-dao/src/main/java/com/buy507/mall/mapper/PmsSkuStockMapper.java +++ b/mall-dao/src/main/java/com/buy507/mall/mapper/PmsSkuStockMapper.java @@ -29,4 +29,5 @@ public interface PmsSkuStockMapper { int updateByPrimaryKey(PmsSkuStock record); List getPmsSkuStock(Long id); + } \ No newline at end of file diff --git a/mall-dao/src/main/java/com/buy507/mall/model/OmsOrderItem.java b/mall-dao/src/main/java/com/buy507/mall/model/OmsOrderItem.java index ee1bba5..c778607 100644 --- a/mall-dao/src/main/java/com/buy507/mall/model/OmsOrderItem.java +++ b/mall-dao/src/main/java/com/buy507/mall/model/OmsOrderItem.java @@ -69,6 +69,8 @@ public class OmsOrderItem implements Serializable { @ApiModelProperty(value = "商品销售属性:[{'key':'颜色','value':'颜色'},{'key':'容量','value':'4G'}]") private String productAttr; + + private static final long serialVersionUID = 1L; public Long getId() { diff --git a/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java b/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java index 96d86d5..bc0dc14 100644 --- a/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java +++ b/mall-dao/src/main/java/com/buy507/mall/model/PmsProduct.java @@ -664,7 +664,7 @@ public class PmsProduct implements Serializable { public void setVipCenter(Integer vipCenter) {this.vipCenter = vipCenter;} - public Integer getintergrationPrice() {return intergrationPrice;} + public Integer getIntergrationPrice() {return intergrationPrice;} public void setIntergrationPrice(Integer intergrationPrice) {this.intergrationPrice = intergrationPrice;} diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml index 2fd8a53..8aa35e4 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/OmsOrderItemMapper.xml @@ -89,7 +89,7 @@ id, order_id, order_sn, product_id, product_pic, product_name, product_brand, product_sn, product_price, product_quantity, product_sku_id, product_sku_code, product_category_id, sp1, sp2, sp3, promotion_name, promotion_amount, coupon_amount, integration_amount, - real_amount, gift_integration, gift_growth, product_attr + real_amount, gift_integration, gift_growth, product_attr,intergrationPrice,intergrationExchange + select * from mall.oms_order_item where order_id = #{orderId} + + \ No newline at end of file diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml index a8a9401..ffb5ec6 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsProductMapper.xml @@ -112,7 +112,7 @@ verify_status, sort, sale, price, promotion_price, gift_growth, gift_point, use_point_limit, sub_title, original_price, stock, low_stock, unit, weight, preview_status, service_ids, keywords, note, album_pics, detail_title, promotion_start_time, promotion_end_time, - promotion_per_limit, promotion_type, brand_name, product_category_name, distribution_flag + promotion_per_limit, promotion_type, brand_name, product_category_name, distribution_flag,vip_status,points_area_status,points_exchange_status,intergration_price description, detail_desc, detail_html, detail_mobile_html @@ -336,6 +336,9 @@ detail_mobile_html, + + intergration_price, + @@ -461,6 +464,9 @@ #{detailMobileHtml,jdbcType=LONGVARCHAR}, + + #{intergration_price}, + + + + + + + SELECT LAST_INSERT_ID() + + INSERT INTO pms_product + SET + brand_id = #{brandId}, + product_category_id = #{productCategoryId}, + feight_template_id = #{feightTemplateId}, + product_attribute_category_id = #{productAttributeCategoryId}, + name = #{name}, + pic = #{pic}, + product_sn = #{productSn}, + delete_status = #{deleteStatus}, + publish_status = #{publishStatus}, + new_status = #{newStatus}, + vip_status = #{vipStatus}, + points_area_status = #{pointsAreaStatus}, + points_exchange_status = #{pointsExchangeStatus}, + recommand_status = #{recommandStatus}, + verify_status = #{verifyStatus}, + sort = #{sort}, + sale = #{sale}, + price = #{price}, + promotion_price = #{promotionPrice}, + gift_growth = #{giftGrowth}, + gift_point = #{giftPoint}, + use_point_limit = #{usePointLimit}, + sub_title = #{subTitle}, + original_price = #{originalPrice}, + stock = #{stock}, + low_stock = #{lowStock}, + unit = #{unit}, + weight = #{weight}, + preview_status = #{previewStatus}, + service_ids = #{serviceIds}, + keywords = #{keywords}, + note = #{note}, + album_pics = #{albumPics}, + detail_title = #{detailTitle}, + promotion_start_time = #{promotionStartTime}, + promotion_end_time = #{promotionEndTime}, + promotion_per_limit = #{promotionPerLimit}, + promotion_type = #{promotionType}, + brand_name = #{brandName}, + product_category_name = #{productCategoryName}, + description = #{description}, + detail_desc = #{detailDesc}, + detail_html = #{detailHtml}, + detail_mobile_html = #{detailMobileHtml}, + intergration_price = #{intergrationPrice}; + + \ No newline at end of file diff --git a/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsSkuStockMapper.xml b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsSkuStockMapper.xml index aef4283..90ef7c2 100644 --- a/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsSkuStockMapper.xml +++ b/mall-dao/src/main/resources/com/buy507/mall/mapper/PmsSkuStockMapper.xml @@ -341,4 +341,5 @@ on ppa.id=ppav.product_attribute_id where pst.product_id=#{id,jdbcType=BIGINT} + \ No newline at end of file diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/controller/HomeController.java b/mall-portal/src/main/java/com/buy507/mall/portal/controller/HomeController.java index b682a33..08118ed 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/controller/HomeController.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/controller/HomeController.java @@ -95,24 +95,24 @@ public class HomeController { @RequestMapping(value = "/getVipProductList", method = RequestMethod.GET) @ResponseBody public CommonResult> getVipProductList(){ - List productList = homeService.getVipProductList(); - return CommonResult.success(productList); + List vipProductList = homeService.getVipProductList(); + return CommonResult.success(vipProductList); } @ApiOperation("获取积分专区商品") @RequestMapping(value = "/getPointProductList", method = RequestMethod.GET) @ResponseBody public CommonResult> getPointProductList(){ - List productList = homeService.getPointProductList(); - return CommonResult.success(productList); + List pointProductList = homeService.getPointProductList(); + return CommonResult.success(pointProductList); } @ApiOperation("获取积分兑换专区") @RequestMapping(value = "/getPointExchangeProductList", method = RequestMethod.GET) @ResponseBody public CommonResult> getPointExchangeProductList(){ - List productList = homeService.getPointExchangeProductList(); - return CommonResult.success(productList); + List pointExchangeProductList = homeService.getPointExchangeProductList(); + return CommonResult.success(pointExchangeProductList); } diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderItemResult.java b/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderItemResult.java index dc4969a..c09f28f 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderItemResult.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderItemResult.java @@ -38,7 +38,29 @@ public class OrderItemResult { @ApiModelProperty(value = "商品SKU属性3") private String sp3; - + + @ApiModelProperty("积分价格") + private Integer intergrationPrice; + + @ApiModelProperty("积分兑换专区") + private Integer intergrationExchange; + + public Integer getIntergrationPrice() { + return intergrationPrice; + } + + public void setIntergrationPrice(Integer intergrationPrice) { + this.intergrationPrice = intergrationPrice; + } + + public Integer getIntergrationExchange() { + return intergrationExchange; + } + + public void setIntergrationExchange(Integer intergrationExchange) { + this.intergrationExchange = intergrationExchange; + } + public Long getOrderId() { return orderId; } diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderResult.java b/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderResult.java index f5ebab4..94e1745 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderResult.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/domain/OrderResult.java @@ -113,6 +113,27 @@ public class OrderResult { @ApiModelProperty(value = "快速排队订单还剩邀请成功的人数") private Integer invitedCount; + @ApiModelProperty(value = "积分价格") + private Integer intergrationPrice; + + @ApiModelProperty(value = "积分兑换专区") + private Integer intergrationExchange; + + public Integer getIntergrationExchange() { + return intergrationExchange; + } + + public void setIntergrationExchange(Integer intergrationExchange) { + this.intergrationExchange = intergrationExchange; + } + + public Integer getIntergrationPrice() { + return intergrationPrice; + } + + public void setIntergrationPrice(Integer intergrationPrice) { + this.intergrationPrice = intergrationPrice; + } public Long getOrderId() { return orderId; diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductDetailResult.java b/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductDetailResult.java index 0f27e04..6da4f31 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductDetailResult.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductDetailResult.java @@ -13,6 +13,7 @@ import com.buy507.mall.model.SmsCoupon; import com.buy507.mall.model.SmsCouponProductRelation; import io.swagger.annotations.ApiModelProperty; +import org.springframework.data.annotation.Transient; public class ProductDetailResult { private Long id; @@ -152,7 +153,53 @@ public class ProductDetailResult { private int countComent; private int applauseRate; - + + @Transient + @ApiModelProperty(value = "积分专区状态") + private Integer pointsAreaStatus; + + @Transient + @ApiModelProperty(value = "积分兑换专区状态") + private Integer pointsExchangeStatus; + + @ApiModelProperty(value = "会员中心:1->店长; 2->代理; 3->市代理") + private Integer vipCenter; + + @ApiModelProperty(value = "商品积分价格") + private Integer intergrationPrice; + + public Integer getPointsAreaStatus() { + return pointsAreaStatus; + } + + public void setPointsAreaStatus(Integer pointsAreaStatus) { + this.pointsAreaStatus = pointsAreaStatus; + } + + public Integer getPointsExchangeStatus() { + return pointsExchangeStatus; + } + + public void setPointsExchangeStatus(Integer pointsExchangeStatus) { + this.pointsExchangeStatus = pointsExchangeStatus; + } + + public Integer getVipCenter() { + return vipCenter; + } + + public void setVipCenter(Integer vipCenter) { + this.vipCenter = vipCenter; + } + + public Integer getIntergrationPrice() { + return intergrationPrice; + } + + public void setIntergrationPrice(Integer intergrationPrice) { + this.intergrationPrice = intergrationPrice; + } + List specList; List specChildList; diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductSkuResult.java b/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductSkuResult.java index f0eea56..474c4ef 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductSkuResult.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/domain/ProductSkuResult.java @@ -14,6 +14,16 @@ public class ProductSkuResult { private String pic; + private Integer intergrationPrice; + + public Integer getIntergrationPrice() { + return intergrationPrice; + } + + public void setIntergrationPrice(Integer intergrationPrice) { + this.intergrationPrice = intergrationPrice; + } + public Long getId() { return id; } diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/HomeServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/HomeServiceImpl.java index 2548bad..fa9ea25 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/HomeServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/HomeServiceImpl.java @@ -1,66 +1,26 @@ package com.buy507.mall.portal.service.impl; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; - -import com.buy507.mall.mapper.CmsSubjectMapper; -import com.buy507.mall.mapper.PmsCommentMapper; -import com.buy507.mall.mapper.PmsCommentReplayMapper; -import com.buy507.mall.mapper.PmsProductAttributeMapper; -import com.buy507.mall.mapper.PmsProductAttributeValueMapper; -import com.buy507.mall.mapper.PmsProductCategoryMapper; -import com.buy507.mall.mapper.PmsProductFullReductionMapper; -import com.buy507.mall.mapper.PmsProductMapper; -import com.buy507.mall.mapper.PmsSkuStockMapper; -import com.buy507.mall.mapper.SmsFlashPromotionMapper; -import com.buy507.mall.mapper.SmsFlashPromotionSessionMapper; -import com.buy507.mall.mapper.SmsHomeAdvertiseMapper; -import com.buy507.mall.model.CmsSubject; -import com.buy507.mall.model.CmsSubjectExample; -import com.buy507.mall.model.PmsComment; -import com.buy507.mall.model.PmsCommentReplay; -import com.buy507.mall.model.PmsProduct; -import com.buy507.mall.model.PmsProductAttribute; -import com.buy507.mall.model.PmsProductAttributeExample; -import com.buy507.mall.model.PmsProductAttributeValue; -import com.buy507.mall.model.PmsProductAttributeValueExample; -import com.buy507.mall.model.PmsProductCategory; -import com.buy507.mall.model.PmsProductCategoryExample; -import com.buy507.mall.model.PmsProductExample; -import com.buy507.mall.model.PmsProductFullReduction; -import com.buy507.mall.model.PmsSkuStock; -import com.buy507.mall.model.PmsSkuStockExample; -import com.buy507.mall.model.SmsFlashPromotion; -import com.buy507.mall.model.SmsFlashPromotionExample; -import com.buy507.mall.model.SmsFlashPromotionSession; -import com.buy507.mall.model.SmsFlashPromotionSessionExample; -import com.buy507.mall.model.SmsHomeAdvertise; -import com.buy507.mall.model.SmsHomeAdvertiseExample; -import com.buy507.mall.model.UmsMember; +import com.buy507.mall.mapper.*; +import com.buy507.mall.model.*; import com.buy507.mall.portal.dao.HomeDao; -import com.buy507.mall.portal.domain.FlashPromotionProduct; -import com.buy507.mall.portal.domain.HomeContentResult; -import com.buy507.mall.portal.domain.HomeFlashPromotion; -import com.buy507.mall.portal.domain.MemberProductCollection; -import com.buy507.mall.portal.domain.ProductAttributeResult; -import com.buy507.mall.portal.domain.ProductCategoryOptions; -import com.buy507.mall.portal.domain.ProductDetailResult; -import com.buy507.mall.portal.domain.ProductSkuResult; +import com.buy507.mall.portal.domain.*; import com.buy507.mall.portal.repository.MemberProductCollectionRepository; import com.buy507.mall.portal.service.HomeService; import com.buy507.mall.portal.service.PortalCommonService; import com.buy507.mall.portal.service.UmsMemberService; import com.buy507.mall.portal.util.DateUtil; import com.github.pagehelper.PageHelper; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; /** * 首页内容管理Service实现类 @@ -134,9 +94,9 @@ public class HomeServiceImpl implements HomeService { for (PmsProduct product : PointAreaProductList) { product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); } - for (PmsProduct product : pointsExchangeProductList) { - product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); - } +// for (PmsProduct product : pointsExchangeProductList) { +// product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); +// } for (PmsProduct product : allProductList) { product.setPrice(product.getPrice().multiply(discount).setScale(2, BigDecimal.ROUND_HALF_UP)); } @@ -430,11 +390,16 @@ public class HomeServiceImpl implements HomeService { } List list = skuStockMapper.selectByExample(example); ProductSkuResult skuResult = new ProductSkuResult(); + + PmsProduct product = productMapper.selectByPrimaryKey(productId); + + if(product.getPointsExchangeStatus() == 1){ + skuResult.setIntergrationPrice(product.getIntergrationPrice()); + } for (PmsSkuStock stock : list) { BeanUtils.copyProperties(stock, skuResult); } - - //根据会员等级显示不同的商品价格 + //根据会员等级显示不同的商品价格 UmsMember member = memberService.getCurrentMember(); if (member != null) { BigDecimal discount = commonService.getDiscount(member.getId()); diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java index 7df0866..a9a4a47 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/OmsPortalOrderServiceImpl.java @@ -241,6 +241,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { orderResult.setPayAmount(order.getPayAmount()); orderResult.setOrderStatus(order.getStatus()); orderResult.setDeliveryType(order.getDeliveryType()); + + if (order.getStatus() == 0) { orderResult.setOrderStatusName("待付款"); if (order.getPayType() != null && order.getPayType() == 3) { @@ -294,10 +296,17 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { orderItemExample.createCriteria().andOrderIdEqualTo(order.getId()); orderItemList = orderItemMapper.selectByExample(orderItemExample); orderResult.setProductsNum(orderItemList.size()); - + PmsProduct product = productMapper.getProductByOrderSn(order.getOrderSn()); + OmsOrderItem orderItem1 = orderItemMapper.selectByOrderId(order.getId()); + orderResult.setProductsNum(orderItem1.getProductQuantity()); + orderResult.setIntergrationPrice(product.getIntergrationPrice()); + orderResult.setIntergrationExchange(product.getPointsExchangeStatus()); orderItemResultList = new ArrayList<>(); for (OmsOrderItem orderItem : orderItemList) { orderItemResult = new OrderItemResult(); + orderItemResult.setProductQuantity(orderItem.getProductQuantity()); + orderItemResult.setIntergrationPrice(product.getIntergrationPrice()); + orderItemResult.setIntergrationExchange(product.getPointsExchangeStatus()); orderItemResult.setOrderId(order.getId()); orderItemResult.setOrderSn(order.getOrderSn()); orderItemResult.setProductBrand(orderItem.getProductBrand()); @@ -371,14 +380,19 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { orderResult.setPaymentTime(order.getPaymentTime()); // 获取商品信息,判断是否是积分专区商品 - PmsProduct product = productMapper.getProductByOrderSn((order.getOrderSn())); + PmsProduct product = productMapper.getProductByOrderSn(order.getOrderSn()); + System.out.println("hello"); boolean isPointsExchangeStatus = product != null && product.getPointsExchangeStatus() == 1; //支付类型: 0->未支付;1->支付宝;2->微信; 3->线下支付; 4->积分支付 //判断是否为积分专区商品 if(isPointsExchangeStatus) { - orderResult.setPayType(4); // 设置为积分支付 - orderResult.setPayTypeName("积分支付"); + orderResult.setIntergrationPrice(product.getIntergrationPrice()); + orderResult.setIntergrationExchange(product.getPointsExchangeStatus()); + orderResult.setPayType(order.getPayType()); + if (order.getPayType() == 0) { + orderResult.setPayTypeName("未支付"); + } }else { // 如果不是积分兑换专区商品,则继续使用其他支付方式 if (order.getPayType() != null) { @@ -415,6 +429,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { orderResult.setDeliveryTime(order.getDeliveryTime()); orderResult.setReceiveTime(order.getReceiveTime()); orderResult.setCommentTime(order.getCommentTime()); + orderResult.setOrderStatus(0); //0->不开发票;1->电子发票;2->纸质发票 if(order.getBillType() != null) { @@ -457,6 +472,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { orderItemResult.setProductPic(orderItem.getProductPic()); orderItemResult.setProductPrice(orderItem.getProductPrice()); orderItemResult.setProductQuantity(orderItem.getProductQuantity()); + orderItemResult.setIntergrationPrice(product.getIntergrationPrice()); + orderItemResult.setIntergrationExchange(product.getPointsExchangeStatus()); orderItemResult.setSp1(orderItem.getSp1()); orderItemResult.setSp2(orderItem.getSp2()); orderItemResult.setSp3(orderItem.getSp3()); @@ -704,6 +721,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { for (OmsOrderItem orderItem : orderItemList) { orderItem.setOrderId(order.getId()); orderItem.setOrderSn(order.getOrderSn()); + orderItemMapper.insert(orderItem); } @@ -760,7 +778,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { return CommonResult.validateFailed("未查询到商品信息"); } - PmsProduct product = productMapper.selectByPrimaryKey(skuStock.getProductId()); + PmsProduct product = productMapper.getPrimaryKey(skuStock.getProductId()); // 判断商品是否属于积分兑换区 @@ -771,7 +789,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { if (isPointsExchangeStatus) { // 积分兑换专区商品,设置积分价格 //获取商品的积分价格 - BigDecimal pointsPrice = new BigDecimal(product.getintergrationPrice()); + BigDecimal pointsPrice = new BigDecimal(product.getIntergrationPrice()); // 积分兑换商品的总金额 totalPointsAmount = pointsPrice.multiply(new BigDecimal(orderParam.getQuantity())); } @@ -1329,6 +1347,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { public CommonResult pointPayment(Long orderId) { OmsOrder order = orderMapper.selectByPrimaryKey(orderId); + PmsProduct product1 = productMapper.getProductByOrderSn(order.getOrderSn()); + OmsOrderItem orderItem1 = orderItemMapper.selectByOrderId(orderId); if (order == null) { return CommonResult.validateFailed("未查询到订单信息"); } @@ -1340,14 +1360,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { // 判断是否使用积分支付 UmsMember member = memberMapper.selectByPrimaryKey(currentMember.getId()); - BigDecimal zero = new BigDecimal(0); - // 只要订单的支付金额为0,即表示使用积分支付 - int flag = order.getPayAmount().compareTo(zero); - if (flag == 0) { // 如果实际支付金额为0,表示使用积分支付 + if(product1.getPointsExchangeStatus() == 1) { // 获取积分兑换价格 // 使用订单中的积分字段 - BigDecimal totalPointsAmount = order.getIntegrationAmount(); + BigDecimal totalPointsAmount = BigDecimal.valueOf((long) product1.getIntergrationPrice() * orderItem1.getProductQuantity()); // 获取当前用户积分 BigDecimal memberPoints = BigDecimal.valueOf(member.getIntegration()); @@ -1355,133 +1372,159 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { if (memberPoints.compareTo(totalPointsAmount) < 0) { return CommonResult.validateFailed("积分不足,无法完成兑换"); } +// BigDecimal zero = new BigDecimal(0); +// // 只要订单的支付金额为0,即表示使用积分支付 +// int flag = order.getPayAmount().compareTo(zero); +// if (flag == 0) { // 如果实际支付金额为0,表示使用积分支付 +// +// +// } // 扣除用户积分,并记录积分变动 // 扣除积分 member.setIntegration(memberPoints.subtract(totalPointsAmount).intValue()); // 冻结积分 - member.setFreeze(member.getFreeze().add(totalPointsAmount)); + // member.setFreeze(member.getFreeze().add(totalPointsAmount)); memberMapper.updateByPrimaryKey(member); + + // 更新订单状态为已支付 + // 设置为余额支付 + order.setPayType(4); + // 设置订单状态为已支付 + order.setStatus(2); + order.setPaymentTime(new Date()); + orderMapper.updateByPrimaryKey(order); + + // 处理库存、分销等后续操作 + executorService.execute(() -> { + // 处理库存 + updateStock(orderId); + }); + + // 返还积分金额到前端 + return CommonResult.success(totalPointsAmount, "支付成功"); + // 支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->积分支付支付 // 支付方式为0才允许支付 - if (order.getPayType() != 0) { - return CommonResult.validateFailed("订单已支付"); - } +// if (order.getPayType() != 0) { +// return CommonResult.validateFailed("订单已支付"); +// } - if (flag == 0) { - //写入会员交易记录表 - DmsMemberTradeRecord tradeRecord = new DmsMemberTradeRecord(); - tradeRecord.setMemberId(member.getId()); - //积分购物 - tradeRecord.setItemType(ItemType.IntegralShopping); - tradeRecord.setNote("积分抵扣"); - tradeRecord.setTitle("积分抵扣"); - tradeRecord.setValue(totalPointsAmount); - //收支类型:0->收入;1->支出 - tradeRecord.setType(1); - tradeRecord.setCreateTime(new Date()); - memberTradeRecordMapper.insert(tradeRecord); +// if (product1.getPointsExchangeStatus() == 1) { +// //写入会员交易记录表 +// DmsMemberTradeRecord tradeRecord = new DmsMemberTradeRecord(); +// tradeRecord.setMemberId(member.getId()); +// //积分购物 +// tradeRecord.setItemType(ItemType.IntegralShopping); +// tradeRecord.setNote("积分抵扣"); +// tradeRecord.setTitle("积分抵扣"); +// tradeRecord.setValue(totalPointsAmount); +// //收支类型:0->收入;1->支出 +// tradeRecord.setType(1); +// tradeRecord.setCreateTime(new Date()); +// memberTradeRecordMapper.insert(tradeRecord); +// +// while (true) { +// long time = System.currentTimeMillis() + RedisLock.TIMEOUT; +// if (redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { +// member = memberMapper.selectByPrimaryKey(member.getId()); +// //修改冻结金额,增加冻结资金 +// member.setFreeze(member.getFreeze().add(order.getIntegrationAmount())); +// memberMapper.updateByPrimaryKey(member); +// redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); +// break; +// } +// } +// +// } else { +// return CommonResult.validateFailed("无效订单"); +// } +// +// //插入流水表 +// UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction(); +// accountTransaction.setMemberId(member.getId()); +// accountTransaction.setOrderId(orderId); +// accountTransaction.setTransferPaymentTime(order.getPaymentTime()); +// accountTransaction.setRevenuePoints(totalPointsAmount.intValue()); +// PmsProduct pmsProduct = orderMapper.selectAll(order.getOrderSn()); +// accountTransaction.setRemarks( "商品名称" + pmsProduct.getName()); +// umsMemberAccountTransactionMapper.insert(accountTransaction); +// +// Date date = new Date(); +// +// //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 +// order.setPayType(4); +// +// //提货方式:0->自提;1->物流 +// if (order.getDeliveryType() == 0) { +// //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 +// order.setStatus(2); +// } else { +// //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 +// order.setStatus(1); +// } +// +// order.setModifyTime(date); +// order.setPaymentTime(date); +// orderMapper.updateByPrimaryKey(order); - while (true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if (redisLock.lock(String.valueOf(member.getId()), String.valueOf(time))) { - member = memberMapper.selectByPrimaryKey(member.getId()); - //修改冻结金额,增加冻结资金 - member.setFreeze(member.getFreeze().add(order.getIntegrationAmount())); - memberMapper.updateByPrimaryKey(member); - redisLock.unlock(String.valueOf(member.getId()), String.valueOf(time)); - break; - } - } +// //修改商品库存信息需要加锁,影响前台响应,所以用线程来处理 +// executorService.execute(new Runnable() { +// +// @Override +// public void run() { +// //库存变动 +// //查询订单商品项 +// OmsOrderItemExample example = new OmsOrderItemExample(); +// example.createCriteria().andOrderIdEqualTo(order.getId()); +// List orderItemList = orderItemMapper.selectByExample(example); +// PmsSkuStock skuStock = null; +// PmsProduct product = null; +// for (OmsOrderItem orderItem : orderItemList) { +// while (true) { +// long time = System.currentTimeMillis() + RedisLock.TIMEOUT; +// if (redisLock.lock(orderItem.getProductId().toString(), String.valueOf(time))) { +// skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); +// if (skuStock != null) { +// skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); +// skuStock.setStock(skuStock.getStock() - orderItem.getProductQuantity()); +// skuStock.setSale((skuStock.getSale() == null ? 0 : skuStock.getSale()) + orderItem.getProductQuantity()); +// skuStockMapper.updateByPrimaryKey(skuStock); +// } +// +// product = productMapper.selectByPrimaryKey(orderItem.getProductId()); +// if (product != null) { +// product.setStock(product.getStock() - orderItem.getProductQuantity()); +// product.setSale((product.getSale() == null ? 0 : product.getSale()) + orderItem.getProductQuantity()); +// productMapper.updateByPrimaryKey(product); +// } +// redisLock.unlock(orderItem.getProductId().toString(), String.valueOf(time)); +// break; +// } +// } +// } +// } +// }); - } else { - return CommonResult.validateFailed("无效订单"); - } - - //插入流水表 - UmsMemberAccountTransaction accountTransaction = new UmsMemberAccountTransaction(); - accountTransaction.setMemberId(member.getId()); - accountTransaction.setOrderId(orderId); - accountTransaction.setTransferPaymentTime(order.getPaymentTime()); - accountTransaction.setRevenuePoints(totalPointsAmount.intValue()); - PmsProduct pmsProduct = orderMapper.selectAll(order.getOrderSn()); - accountTransaction.setRemarks( "商品名称" + pmsProduct.getName()); - umsMemberAccountTransactionMapper.insert(accountTransaction); - - Date date = new Date(); - - //支付方式:0->未支付;1->支付宝;2->微信;3->线下支付;4->余额支付 - order.setPayType(4); - - //提货方式:0->自提;1->物流 - if (order.getDeliveryType() == 0) { - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(2); - } else { - //订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 - order.setStatus(1); - } - - order.setModifyTime(date); - order.setPaymentTime(date); - orderMapper.updateByPrimaryKey(order); - - //修改商品库存信息需要加锁,影响前台响应,所以用线程来处理 - executorService.execute(new Runnable() { - - @Override - public void run() { - //库存变动 - //查询订单商品项 - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(order.getId()); - List orderItemList = orderItemMapper.selectByExample(example); - PmsSkuStock skuStock = null; - PmsProduct product = null; - for (OmsOrderItem orderItem : orderItemList) { - while (true) { - long time = System.currentTimeMillis() + RedisLock.TIMEOUT; - if (redisLock.lock(orderItem.getProductId().toString(), String.valueOf(time))) { - skuStock = skuStockMapper.selectByPrimaryKey(orderItem.getProductSkuId()); - if (skuStock != null) { - skuStock.setLockStock(skuStock.getLockStock() - orderItem.getProductQuantity()); - skuStock.setStock(skuStock.getStock() - orderItem.getProductQuantity()); - skuStock.setSale((skuStock.getSale() == null ? 0 : skuStock.getSale()) + orderItem.getProductQuantity()); - skuStockMapper.updateByPrimaryKey(skuStock); - } - - product = productMapper.selectByPrimaryKey(orderItem.getProductId()); - if (product != null) { - product.setStock(product.getStock() - orderItem.getProductQuantity()); - product.setSale((product.getSale() == null ? 0 : product.getSale()) + orderItem.getProductQuantity()); - productMapper.updateByPrimaryKey(product); - } - redisLock.unlock(orderItem.getProductId().toString(), String.valueOf(time)); - break; - } - } - } - } - }); - - boolean distributionFlag = true; - OmsOrderItemExample example = new OmsOrderItemExample(); - example.createCriteria().andOrderIdEqualTo(order.getId()); - List orderItemList = orderItemMapper.selectByExample(example); - PmsProduct product = null; - for (OmsOrderItem orderItem : orderItemList) { - product = productMapper.selectByPrimaryKey(orderItem.getProductId()); - if (product.getDistributionFlag().equals(0)) { //分销标志(0->不参与;1->参与) - distributionFlag = false; - } - } - - //分销处理 - if (distributionFlag) { - distributeSender.sendMessage(order.getId()); - } +// boolean distributionFlag = true; +// OmsOrderItemExample example = new OmsOrderItemExample(); +// example.createCriteria().andOrderIdEqualTo(order.getId()); +// List orderItemList = orderItemMapper.selectByExample(example); +// PmsProduct product = null; +// for (OmsOrderItem orderItem : orderItemList) { +// product = productMapper.selectByPrimaryKey(orderItem.getProductId()); +// if (product.getDistributionFlag().equals(0)) { //分销标志(0->不参与;1->参与) +// distributionFlag = false; +// } +// } +// +// //分销处理 +// if (distributionFlag) { +// distributeSender.sendMessage(order.getId()); +// } +// } } return CommonResult.success(null, "支付成功"); } @@ -1531,6 +1574,29 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { accountTransaction.setRemarks( "商品名称" + pmsProduct.getName()); umsMemberAccountTransactionMapper.insert(accountTransaction); + //如果是积分专区的商品则进行积分专区相对应的逻辑 + if (pmsProduct.getPointsAreaStatus() == 1) { + //奖励积分是购买的价格的100% + int rewardPoints = payAmount.intValue(); + // 增加用户积分 + if (member != null) { + + if (member.getIntegration() == null) { + member.setIntegration(rewardPoints); + } else { + member.setIntegration(member.getIntegration() + rewardPoints); + } + + // 更新用户积分 + memberMapper.updateByPrimaryKey(member); + //增加基金积分 + int fundPoints = (int)(rewardPoints * 0.05); + umsDevelopmentFundMapper.updatePoints(fundPoints); + +// //积分分润逻辑 +// memberPointsSplitProfitService.pointsSplit(order); + } + } // 更新订单状态为已支付 OmsOrder order = orderMapper.selectByPrimaryKey(orderId); // 设置为余额支付 diff --git a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java index e90dd0a..089721f 100644 --- a/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java +++ b/mall-portal/src/main/java/com/buy507/mall/portal/service/impl/UmsMemberServiceImpl.java @@ -622,10 +622,6 @@ public class UmsMemberServiceImpl implements UmsMemberService { result.setInviter(memberMapper.selectByPrimaryKey(teamLevel.getParentId()).getNickname()); } - /*查询发展基金*/ - BigDecimal totalCash = umsDevelopmentFundMapper.getTotalCash(); - Integer totalPoints = umsDevelopmentFundMapper.getTotalPoints(); - return result; } diff --git a/mall-portal/src/main/resources/dao/HomeDao.xml b/mall-portal/src/main/resources/dao/HomeDao.xml index ad91a71..942346d 100644 --- a/mall-portal/src/main/resources/dao/HomeDao.xml +++ b/mall-portal/src/main/resources/dao/HomeDao.xml @@ -80,7 +80,7 @@ - SELECT p.* + SELECT * FROM pms_product WHERE @@ -108,7 +108,7 @@