Browse Source

倍力优需求 制单添加赠品

ct 1 month ago
parent
commit
ca69dab7fa

+ 4 - 2
fs-company-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -181,6 +181,7 @@ public class StoreOrderController extends AppBaseController
     @ApiOperation("制单")
     @GetMapping("/createSalesOrder")
     public R createSalesOrder(@RequestParam("cateIds")String cateIds,
+                              @RequestParam(value = "giftCateIds",required = false)String giftCateIds,
                               @RequestParam(value = "orderType",required = false)Integer orderType,
                               @RequestParam(value = "orderMedium",required = false)Integer orderMedium,
                               HttpServletRequest request){
@@ -191,7 +192,7 @@ public class StoreOrderController extends AppBaseController
         if(!companyUser.getStatus().equals("0")){
             return R.error("用户已禁用");
         }
-        return fsStoreOrderService.createSalesOrder(companyUser,cateIds,orderType,orderMedium);
+        return fsStoreOrderService.createSalesOrder(companyUser,cateIds,giftCateIds,orderType,orderMedium);
     }
 
     @ApiOperation("改价")
@@ -207,7 +208,8 @@ public class StoreOrderController extends AppBaseController
     @ApiOperation("获取订单")
     @GetMapping("/getSalesOrder")
     public R getSalesOrder(@RequestParam("createOrderKey")String createOrderKey, HttpServletRequest request){
-        return fsStoreOrderService.getSalesOrder(createOrderKey);
+        String userId = getUserId();
+        return fsStoreOrderService.getSalesOrder(createOrderKey,Long.parseLong(userId));
     }
 
     @ApiOperation("关联客户")

+ 4 - 0
fs-service-system/src/main/java/com/fs/store/domain/FsStoreCart.java

@@ -60,5 +60,9 @@ public class FsStoreCart extends BaseEntity
     @Excel(name = "改价(商品单价)")
     private BigDecimal changePrice;
 
+    /** 是否是赠品 */
+    @Excel(name = "是否是赠品 0:否 1:是")
+    private Integer isGift;
+
 
 }

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/dto/FsStoreCartDTO.java

@@ -31,4 +31,6 @@ import java.math.BigDecimal;
 
     private BigDecimal brokerageThree;
 
+    private Integer isGift;
+
 }

+ 2 - 1
fs-service-system/src/main/java/com/fs/store/mapper/FsDoctorArticleMapper.java

@@ -77,7 +77,8 @@ public interface FsDoctorArticleMapper
             "            <if test=\"views != null \"> and ar.views = #{views}</if>\n" +
             "            <if test=\"status != null \"> and ar.status = #{status}</if>\n" +
             "        </where> "+
-            " ORDER BY ar.article_id desc"+
+//            " ORDER BY ar.article_id desc"+
+            " ORDER BY ar.create_time asc"+
             "</script>"})
 
     List<FsDoctorArticleListVO> selectFsDoctorArticleListVO(FsDoctorArticle fsDoctorArticle);

+ 13 - 11
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreCartMapper.java

@@ -66,7 +66,7 @@ public interface FsStoreCartMapper
      */
     public int deleteFsStoreCartByIds(Long[] ids);
 
-    @Select("select c.*,p.product_type,p.product_name,p.image as product_image,v.price,v.sku as product_attr_name,v.image as product_attr_image,v.stock from fs_store_cart c inner join fs_store_product p on p.product_id=c.product_id inner join fs_store_product_attr_value v on v.id=c.product_attr_value_id where c.is_pay=0 and c.is_del=0 and c.is_buy=0 and p.is_show=1 and p.is_del=0 and c.user_id= #{uid}")
+    @Select("select c.*,p.product_type,p.product_name,p.image as product_image,v.price,v.sku as product_attr_name,v.image as product_attr_image,v.stock from fs_store_cart c inner join fs_store_product p on p.product_id=c.product_id inner join fs_store_product_attr_value v on v.id=c.product_attr_value_id where c.is_pay=0 and c.is_del=0 and c.is_buy=0 and p.is_show=1 and p.is_del=0 and c.is_gift = 0 and c.user_id= #{uid}")
     List<FsStoreCartVO> selectFsStoreCartListByUid(long uid);
     @Delete({"<script>"+
             "delete from fs_store_cart where id in"+
@@ -75,21 +75,23 @@ public interface FsStoreCartMapper
     int delCart(Long[] ids);
     @Select("select c.*,p.cate_id,p.product_name,p.image as product_image,p.temp_id,p.product_type,v.price,v.sku as product_attr_name,v.image as product_attr_image,v.stock,v.cost,v.integral,v.weight,v.volume,v.bar_code,v.group_bar_code,v.brokerage,v.brokerage_two,v.brokerage_three from fs_store_cart c left join fs_store_product p on p.product_id=c.product_id left join fs_store_product_attr_value v on v.id=c.product_attr_value_id where find_in_set(c.id,#{ids})")
     List<FsStoreCartQueryVO> selectFsStoreCartListByIds(String ids);
+    @Select("select c.*,p.cate_id,p.product_name,p.image as product_image,p.temp_id,p.product_type,v.price,v.sku as product_attr_name,v.image as product_attr_image,v.stock,v.cost,v.integral,v.weight,v.volume,v.bar_code,v.group_bar_code,v.brokerage,v.brokerage_two,v.brokerage_three from fs_store_cart c left join fs_store_product p on p.product_id=c.product_id left join fs_store_product_attr_value v on v.id=c.product_attr_value_id where c.is_gift = 1 AND user_id = #{userId}")
+    List<FsStoreCartQueryVO> selectFsStoreGiftCartList(@Param("userId") Long userId);
     @Update("update  fs_store_cart set is_pay=1 where find_in_set(id,#{cartIds})")
     void updateIsPay(String cartIds);
 
 
     @Select("select ifnull(sum(c.cart_num),0) from fs_store_cart c inner join fs_store_product p on p.product_id=c.product_id inner join fs_store_product_attr_value v on v.id=c.product_attr_value_id where c.is_pay=0 and c.is_del=0 and c.is_buy=0 and p.is_show=1 and p.is_del=0 and c.user_id= #{userId}")
     Integer selectFsStoreCartCountByUserId(long userId);
-    @Select({"<script> " +
-            "select ifnull(sum(c.cart_num),0) from fs_store_cart c  " +
-            "where c.is_pay=0 and c.is_del=0 and c.is_buy=0 " +
-            "<if test = 'maps.userId != null     '> " +
-            "and c.user_id =#{maps.userId} " +
-            "</if>" +
-            "<if test = 'maps.productId != null    '> " +
-            "and c.product_id =#{maps.productId} " +
-            "</if>" +
-            "</script>"})
+//    @Select({"<script> " +
+//            "select ifnull(sum(c.cart_num),0) from fs_store_cart c  " +
+//            "where c.is_pay=0 and c.is_del=0 and c.is_buy=0 and c.is_gift = 0" +
+//            "<if test = 'maps.userId != null     '> " +
+//            "and c.user_id =#{maps.userId} " +
+//            "</if>" +
+//            "<if test = 'maps.productId != null    '> " +
+//            "and c.product_id =#{maps.productId} " +
+//            "</if>" +
+//            "</script>"})
     Integer selectFsStoreCartCount(@Param("maps") FsStoreCartCountParam param);
 }

+ 3 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreCartParam.java

@@ -28,5 +28,8 @@ public class FsStoreCartParam {
     @ApiModelProperty(value = "是否购买")
     private Integer isBuy=0;
 
+    @ApiModelProperty(value = "是否是赠品")
+    private Integer isGift;
+
 
 }

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreConfirmOrderParam.java

@@ -11,6 +11,8 @@ public class FsStoreConfirmOrderParam {
     @NotBlank(message = "请提交购买的商品")
     @ApiModelProperty(value = "购物车ID 多个,分隔")
     private String cartIds;
+    @ApiModelProperty(value = "赠品购物车ID 多个,分隔")
+    private String giftCartIds;
     @NotBlank(message = "购买类型不能为空")
     @ApiModelProperty(value = "buy cart")
     private String type;

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreOrderMoneyByProductParam.java

@@ -19,4 +19,6 @@ public class FsStoreOrderMoneyByProductParam {
 
     //购物车明细
     private List<FsStoreCartQueryVO> carts;
+
+    private List<FsStoreCartQueryVO> giftCarts;
 }

+ 2 - 2
fs-service-system/src/main/java/com/fs/store/service/IFsStoreOrderService.java

@@ -162,9 +162,9 @@ public interface IFsStoreOrderService
 
     R addTuiMoney(FsStoreOrderAddTuiMoneyParam param);
 
-    R createSalesOrder(CompanyUser companyUser, String cateIds,Integer orderType,Integer orderMedium);
+    R createSalesOrder(CompanyUser companyUser, String cateIds,String giftCateIds,Integer orderType,Integer orderMedium);
 
-    R getSalesOrder(String createOrderKey);
+    R getSalesOrder(String createOrderKey,Long userId);
 
     R addUserCart(long userId, String createOrderKey);
 

+ 7 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreCartServiceImpl.java

@@ -171,9 +171,14 @@ public class FsStoreCartServiceImpl implements IFsStoreCartService
             cartMap.setIsBuy(0);
             cartMap.setProductId(cartParam.getProductId());
             cartMap.setProductAttrValueId(cartParam.getAttrValueId());
+            if(cartParam.getIsGift()!= null && cartParam.getIsGift()==1){
+                cartMap.setIsGift(1);
+            } else {
+                cartMap.setIsGift(0);
+            }
             List<FsStoreCart> cart = fsStoreCartMapper.selectFsStoreCartList(cartMap);
             FsStoreCart storeCart;
-            if(cart==null||cart.size()==0){
+            if(cart==null || cart.isEmpty()){
                 storeCart = FsStoreCart.builder()
                         .cartNum(cartParam.getCartNum())
                         .productAttrValueId(cartMap.getProductAttrValueId())
@@ -183,6 +188,7 @@ public class FsStoreCartServiceImpl implements IFsStoreCartService
                         .isPay(0)
                         .isDel(0)
                         .isBuy(0)
+                        .isGift(cartParam.getIsGift())
                         .build();
                 storeCart.setCreateTime(new Date());
                 checkProductStock(cartParam.getProductId(),storeCart.getProductAttrValueId());

+ 104 - 8
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -379,7 +379,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         FsUserAddress address= userAddressMapper.selectFsUserAddressByDefaultAddress(uid);
         List<FsStoreCartQueryVO> carts=cartMapper.selectFsStoreCartListByIds(cartParam.getCartIds());
         for (FsStoreCartQueryVO cart : carts) {
-            if (cart.getChangePrice() != null && BigDecimal.ZERO.compareTo(cart.getChangePrice())<0){
+            if (cart.getChangePrice() != null && BigDecimal.ZERO.compareTo(cart.getChangePrice())<=0){
                 cart.setPrice(cart.getChangePrice());
                 //删除改价
                 FsStoreCart fsStoreCart = new FsStoreCart();
@@ -391,7 +391,25 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         String uuid = IdUtil.randomUUID();
         redisCache.setCacheObject("orderKey:"+uuid, cartParam.getCartIds(), 300, TimeUnit.SECONDS);
         redisCache.setCacheObject("orderCarts:"+uuid, carts, 300, TimeUnit.SECONDS);
-        return R.ok().put("orderKey",uuid).put("address",address).put("carts",carts);
+        List<FsStoreCartQueryVO> giftCarts = new ArrayList<>();
+        if (StringUtils.isNotBlank(cartParam.getGiftCartIds())){
+            giftCarts=cartMapper.selectFsStoreCartListByIds(cartParam.getGiftCartIds());
+            if (giftCarts != null){
+                for (FsStoreCartQueryVO cart : giftCarts) {
+                    if (cart.getChangePrice() != null && BigDecimal.ZERO.compareTo(cart.getChangePrice())<=0){
+                        cart.setPrice(cart.getChangePrice());
+                        //删除改价
+                        FsStoreCart fsStoreCart = new FsStoreCart();
+                        fsStoreCart.setId(cart.getId());
+                        fsStoreCart.setChangePrice(BigDecimal.ZERO);
+                        cartMapper.updateFsStoreCart(fsStoreCart);
+                    }
+                }
+                redisCache.setCacheObject("orderGiftCarts:"+uuid, giftCarts, 300, TimeUnit.SECONDS);
+                redisCache.setCacheObject("orderGiftKey:"+uuid, cartParam.getGiftCartIds(), 300, TimeUnit.SECONDS);
+            }
+        }
+        return R.ok().put("orderKey",uuid).put("address",address).put("carts",carts).put("giftCarts",giftCarts);
 
     }
 
@@ -402,6 +420,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             throw new CustomException("订单已过期",501);
         }
         List<FsStoreCartQueryVO> carts = redisCache.getCacheObject("orderCarts:" + param.getOrderKey());
+        List<FsStoreCartQueryVO> giftCarts = redisCache.getCacheObject("orderGiftCarts:" + param.getOrderKey());
+        if (giftCarts != null) {
+            carts.addAll(giftCarts);
+        }
         BigDecimal payPrice=getOrderSumPrice(carts,"truePrice");
         if(StringUtils.isNotEmpty(param.getCreateOrderKey()))
         {
@@ -502,6 +524,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         if(cartIds!=null){
             //获取购物车列表
             List<FsStoreCartQueryVO> carts = redisCache.getCacheObject("orderCarts:" + param.getOrderKey());
+            List<FsStoreCartQueryVO> giftCarts = redisCache.getCacheObject("orderGiftCarts:" + param.getOrderKey());
+            if (giftCarts != null){
+                carts.addAll(giftCarts);
+            }
             //获取地址
             FsUserAddress address=userAddressMapper.selectFsUserAddressById(param.getAddressId());
             //生成分布式唯一值
@@ -687,6 +713,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
                 else{
                     fsStoreCartDTO.setImage(vo.getProductAttrImage());
                 }
+                fsStoreCartDTO.setIsGift(vo.getIsGift());
 
                 FsStoreOrderItem item=new FsStoreOrderItem();
                 item.setOrderId(storeOrder.getId());
@@ -713,7 +740,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
             //删除缓存
             redisCache.deleteObject("orderKey:" + param.getOrderKey());
+            redisCache.deleteObject("orderGiftKey:" + param.getOrderKey());
             redisCache.deleteObject("orderCarts:" + param.getOrderKey());
+            redisCache.deleteObject("orderGiftCarts:" + param.getOrderKey());
 
             //添加记录
             orderStatusService.create(storeOrder.getId(), OrderLogEnum.CREATE_ORDER.getValue(),
@@ -743,6 +772,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             if(StringUtils.isNotEmpty(createOrderKey)){
                 redisCache.deleteObject("createOrderKey:"+ createOrderKey);
                 redisCache.deleteObject("orderCarts:" + createOrderKey);
+                redisCache.deleteObject("orderGiftCarts:" + createOrderKey);
                 redisCache.deleteObject("createOrderMoney:" + createOrderKey);
                 //货到付款自定义金额 key改为id存储
                 BigDecimal amount=redisCache.getCacheObject("createOrderAmount:"+createOrderKey);
@@ -1290,6 +1320,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             }
             //删除缓存
             redisCache.deleteObject("orderKey:" + param.getOrderKey());
+            redisCache.deleteObject("orderGiftKey:" + param.getOrderKey());
             //添加记录
             orderStatusService.create(storeOrder.getId(), OrderLogEnum.CREATE_ORDER.getValue(),
                     OrderLogEnum.CREATE_ORDER.getDesc());
@@ -2019,11 +2050,19 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     }
 
     @Override
-    public R createSalesOrder(CompanyUser companyUser, String cateIds,Integer orderType,Integer orderMedium) {
+    public R createSalesOrder(CompanyUser companyUser, String cateIds,String giftCateIds,Integer orderType,Integer orderMedium) {
         List<FsStoreCartQueryVO>  carts=cartMapper.selectFsStoreCartListByIds(cateIds);
+
+
         String uuid = IdUtil.randomUUID();
         redisCache.setCacheObject("createOrderKey:"+uuid, companyUser.getCompanyId()+"-"+companyUser.getUserId(), 24, TimeUnit.HOURS);
         redisCache.setCacheObject("orderCarts:"+uuid, carts, 24, TimeUnit.HOURS);
+        List<FsStoreCartQueryVO>  giftCarts = new ArrayList<>();
+        //赠品
+        if (giftCateIds != null){
+            giftCarts=cartMapper.selectFsStoreCartListByIds(giftCateIds);
+            redisCache.setCacheObject("orderGiftCarts:"+uuid, giftCarts, 24, TimeUnit.HOURS);
+        }
 
         //2025.7.23 倍力优需求 制单添加订单类型,媒体来源(非必填)
         if (orderType != null || orderMedium != null) {
@@ -2038,19 +2077,38 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         for(FsStoreCartQueryVO vo:carts){
             totalMoney=totalMoney.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
         }
+        if (giftCateIds != null){
+            for(FsStoreCartQueryVO vo:giftCarts){
+                totalMoney=totalMoney.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
+            }
+        }
+
         redisCache.setCacheObject("createOrderMoney:"+uuid, totalMoney, 24, TimeUnit.HOURS);
-        return R.ok().put("orderKey",uuid).put("carts",carts);
+        return R.ok().put("orderKey",uuid).put("carts",carts).put("giftCarts",giftCarts);
     }
 
     @Override
-    public R getSalesOrder(String createOrderKey) {
+    public R getSalesOrder(String createOrderKey,Long userId) {
         String key=redisCache.getCacheObject("createOrderKey:"+createOrderKey);
         List<FsStoreCartQueryVO> carts = redisCache.getCacheObject("orderCarts:" + createOrderKey);
+        List<FsStoreCartQueryVO> giftCarts = redisCache.getCacheObject("orderGiftCarts:" + createOrderKey);
         BigDecimal money=redisCache.getCacheObject("createOrderMoney:"+createOrderKey);
         if (StringUtils.isEmpty(key)) {
             throw new CustomException("订单已过期",501);
         }
-        return R.ok().put("carts",carts).put("totalMoney",money);
+        if(giftCarts == null){
+            giftCarts=cartMapper.selectFsStoreGiftCartList(userId);
+            if (giftCarts != null && !giftCarts.isEmpty()){
+                //计算总价
+                for(FsStoreCartQueryVO vo:giftCarts){
+                    money=money.add(vo.getPrice().multiply(new BigDecimal(vo.getCartNum().toString())));
+                }
+//                redisCache.setCacheObject("orderGiftCarts:"+createOrderKey, giftCarts, 24, TimeUnit.HOURS);
+//                redisCache.setCacheObject("createOrderMoney:"+createOrderKey, money, 24, TimeUnit.HOURS);
+            }
+        }
+
+        return R.ok().put("carts",carts).put("totalMoney",money).put("giftCarts",giftCarts);
     }
 
     @Override
@@ -2077,11 +2135,32 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             cartMapper.insertFsStoreCart(storeCart);
             ids.add(storeCart.getId());
         }
+        List<FsStoreCartQueryVO> giftCarts = redisCache.getCacheObject("orderGiftCarts:" + createOrderKey);
+        List<Long> giftIds=new ArrayList<>();
+        if(giftCarts != null){
+            for(FsStoreCartQueryVO vo : giftCarts){
+                FsStoreCart storeCart = FsStoreCart.builder()
+                        .cartNum(vo.getCartNum())
+                        .productAttrValueId(vo.getProductAttrValueId())
+                        .productId(vo.getProductId())
+                        .userId(userId)
+                        .isPay(0)
+                        .isDel(0)
+                        .isBuy(1)
+                        .changePrice(vo.getPrice())
+                        .isGift(1)
+                        .build();
+                storeCart.setCreateTime(new Date());
+                cartMapper.insertFsStoreCart(storeCart);
+                giftIds.add(storeCart.getId());
+            }
+        }
+
         //删除REDIS
 //        redisCache.deleteObject("createOrderKey:"+createOrderKey);
 //        redisCache.deleteObject("orderCarts:" + createOrderKey);
         String[] idArr=key.split("-");
-        return R.ok().put("cartIds",ids).put("companyId",idArr[0]).put("companyUserId",idArr[1]);
+        return R.ok().put("cartIds",ids).put("companyId",idArr[0]).put("companyUserId",idArr[1]).put("giftCartIds",giftIds);
 
     }
 
@@ -2784,7 +2863,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         BigDecimal totalMoney= BigDecimal.ZERO;
         //新购物车明细
         for(FsStoreCartQueryVO vo:carts){
-            //单个价格不能为0
             BigDecimal price = vo.getPrice();
             if (price==null || price.compareTo(BigDecimal.ZERO)<0){
                 return R.error("商品单价不能小于0");
@@ -2797,10 +2875,28 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             //计算总价
             totalMoney=totalMoney.add(price.multiply(new BigDecimal(vo.getCartNum().toString())));
         }
+        List<FsStoreCartQueryVO> giftCarts = param.getGiftCarts();
+        if (giftCarts != null && !giftCarts.isEmpty()) {
+            for(FsStoreCartQueryVO vo:giftCarts){
+                BigDecimal price = vo.getPrice();
+                if (price==null || price.compareTo(BigDecimal.ZERO)<0){
+                    return R.error("商品单价不能小于0");
+                }
+                //更新购物车表
+                FsStoreCart storeCart = new FsStoreCart();
+                storeCart.setId(vo.getId());
+                storeCart.setChangePrice(price);
+                cartMapper.updateFsStoreCart(storeCart);
+                //计算总价
+                totalMoney=totalMoney.add(price.multiply(new BigDecimal(vo.getCartNum().toString())));
+            }
+        }
+
 
         redisCache.setCacheObject("createOrderMoney:"+createOrderKey, totalMoney, 24, TimeUnit.HOURS);
         //更新redis的购物车明细
         redisCache.setCacheObject("orderCarts:" + createOrderKey,carts,24, TimeUnit.HOURS);
+        redisCache.setCacheObject("orderGiftCarts:" + createOrderKey,giftCarts,24, TimeUnit.HOURS);
 
         return R.ok();
     }

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/vo/FsStoreCartQueryVO.java

@@ -65,5 +65,6 @@ import java.math.BigDecimal;
 
     private BigDecimal changePrice;
 
+    private Integer isGift;
 
 }

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/vo/FsStoreCartVO.java

@@ -38,4 +38,6 @@ import java.math.BigDecimal;
     private Integer stock;
 
     private Integer productType;
+
+    private Integer isGift;
 }

+ 19 - 1
fs-service-system/src/main/resources/mapper/store/FsStoreCartMapper.xml

@@ -17,11 +17,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="isDel"    column="is_del"    />
         <result property="isBuy"    column="is_buy"    />
         <result property="changePrice"    column="change_price"    />
+        <result property="isGift"    column="is_gift"    />
     </resultMap>
 
     <sql id="selectFsStoreCartVo">
         select id, user_id, type, product_id, product_attr_value_id, cart_num, create_time, update_time, is_pay, is_del,
-               is_buy,change_price from fs_store_cart
+               is_buy,change_price,is_gift from fs_store_cart
     </sql>
 
     <select id="selectFsStoreCartList" parameterType="FsStoreCart" resultMap="FsStoreCartResult">
@@ -36,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isDel != null "> and is_del = #{isDel}</if>
             <if test="isBuy != null "> and is_buy = #{isBuy}</if>
             <if test="changePrice != null "> and change_price = #{changePrice}</if>
+            <if test="isGift != null "> and is_gift = #{isGift}</if>
         </where>
     </select>
 
@@ -43,6 +45,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectFsStoreCartVo"/>
         where id = #{id}
     </select>
+    <select id="selectFsStoreCartCount" resultType="java.lang.Integer">
+        select ifnull(sum(c.cart_num),0)
+        from fs_store_cart c
+            inner join fs_store_product p on p.product_id=c.product_id
+            inner join fs_store_product_attr_value v on v.id=c.product_attr_value_id
+        where c.is_pay=0 and c.is_del=0 and c.is_buy=0 and c.is_gift = 0 and p.is_show=1 and p.is_del=0
+        <if test = 'maps.userId != null     '>
+         and c.user_id =#{maps.userId}
+        </if>
+        <if test = 'maps.productId != null    '>
+        and c.product_id =#{maps.productId}
+        </if>
+    </select>
 
     <insert id="insertFsStoreCart" parameterType="FsStoreCart" useGeneratedKeys="true" keyProperty="id">
         insert into fs_store_cart
@@ -58,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isDel != null">is_del,</if>
             <if test="isBuy != null">is_buy,</if>
             <if test="changePrice != null">change_price,</if>
+            <if test="isGift != null">is_gift,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="userId != null">#{userId},</if>
@@ -71,6 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isDel != null">#{isDel},</if>
             <if test="isBuy != null">#{isBuy},</if>
             <if test="changePrice != null">#{changePrice},</if>
+            <if test="isGift != null">#{isGift},</if>
          </trim>
     </insert>
 
@@ -88,6 +105,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isDel != null">is_del = #{isDel},</if>
             <if test="isBuy != null">is_buy = #{isBuy},</if>
             <if test="changePrice != null">change_price = #{changePrice},</if>
+            <if test="isGift != null">is_gift = #{isGift},</if>
         </trim>
         where id = #{id}
     </update>

+ 4 - 2
fs-user-app/src/main/java/com/fs/app/controller/CompanyOrderController.java

@@ -64,6 +64,7 @@ public class CompanyOrderController extends  AppBaseController {
     @GetMapping("/createSalesOrder")
     public R createSalesOrder(@RequestParam("token")String token,
                               @RequestParam("cateIds")String cateIds,
+                              @RequestParam(value = "giftCateIds",required = false)String giftCateIds,
                               @RequestParam(value = "orderType",required = false)Integer orderType,
                               @RequestParam(value = "orderMedium",required = false)Integer orderMedium,
                               HttpServletRequest request){
@@ -78,7 +79,7 @@ public class CompanyOrderController extends  AppBaseController {
         if(!companyUser.getStatus().equals("0")){
             return R.error("用户已禁用");
         }
-        return orderService.createSalesOrder(companyUser,cateIds,orderType,orderMedium);
+        return orderService.createSalesOrder(companyUser,cateIds,giftCateIds,orderType,orderMedium);
     }
 
     @ApiOperation("改价")
@@ -113,7 +114,8 @@ public class CompanyOrderController extends  AppBaseController {
     @ApiOperation("获取订单")
     @GetMapping("/getSalesOrder")
     public R getSalesOrder(@RequestParam("createOrderKey")String createOrderKey, HttpServletRequest request){
-        return orderService.getSalesOrder(createOrderKey);
+        String userId = getUserId();
+        return orderService.getSalesOrder(createOrderKey,Long.valueOf(userId));
     }
     @Login
     @ApiOperation("添加用户购物车")