修改商品数量
parent
aa1b9f7979
commit
d57a082384
|
@ -30,5 +30,5 @@ public class CartInfoEditNumReq {
|
||||||
/**
|
/**
|
||||||
* 数量
|
* 数量
|
||||||
*/
|
*/
|
||||||
private String num;
|
private Long num;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.muyu.shop.cart.domain.req;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author DongZl
|
||||||
|
* @description: 删除
|
||||||
|
* @Date 2024/4/9 上午11:52
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class RemoveCartProjectReq {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购物车ID
|
||||||
|
*/
|
||||||
|
private Long cartInfoId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品ID
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品SKU
|
||||||
|
*/
|
||||||
|
private String projectSku;
|
||||||
|
}
|
|
@ -7,14 +7,7 @@ import com.muyu.shop.cart.domain.req.*;
|
||||||
import com.muyu.shop.cart.domain.resp.CartDetailResp;
|
import com.muyu.shop.cart.domain.resp.CartDetailResp;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PutMapping;
|
|
||||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
import com.muyu.common.core.utils.poi.ExcelUtil;
|
import com.muyu.common.core.utils.poi.ExcelUtil;
|
||||||
import com.muyu.common.core.web.controller.BaseController;
|
import com.muyu.common.core.web.controller.BaseController;
|
||||||
|
@ -119,7 +112,7 @@ public class CartInfoController extends BaseController {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/num")
|
@PostMapping("/num")
|
||||||
public Result<String> CartInfoEditNum(@RequestBody CartInfoEditNumReq cartInfoEditNumReq){
|
public Result<String> cartInfoEditNum(@RequestBody CartInfoEditNumReq cartInfoEditNumReq){
|
||||||
cartInfoService.CartInfoEditNum(cartInfoEditNumReq);
|
cartInfoService.CartInfoEditNum(cartInfoEditNumReq);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
@ -132,7 +125,18 @@ public class CartInfoController extends BaseController {
|
||||||
@DeleteMapping("/{ids}")
|
@DeleteMapping("/{ids}")
|
||||||
@ApiOperation("删除购物车")
|
@ApiOperation("删除购物车")
|
||||||
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
|
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
|
||||||
public Result<String> remove(@PathVariable List<Long> ids) {
|
public Result<String> removeByIds(@PathVariable List<Long> ids) {
|
||||||
return toAjax(cartInfoService.removeBatchByIds(ids));
|
return toAjax(cartInfoService.removeBatchByIds(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除购物车
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("shopCart:Info:remove")
|
||||||
|
@DeleteMapping("/remove")
|
||||||
|
@ApiOperation("删除购物车")
|
||||||
|
public Result<String> remove(@RequestBody List<RemoveCartProjectReq> removeCartProjectReqList) {
|
||||||
|
cartInfoService.removeByRemoveCartProjectList(removeCartProjectReqList);
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.muyu.shop.cart.domain.CartInfo;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.muyu.shop.cart.domain.req.CartInfoEditNumReq;
|
import com.muyu.shop.cart.domain.req.CartInfoEditNumReq;
|
||||||
import com.muyu.shop.cart.domain.req.CartInfoIsSelectedUpdReq;
|
import com.muyu.shop.cart.domain.req.CartInfoIsSelectedUpdReq;
|
||||||
|
import com.muyu.shop.cart.domain.req.RemoveCartProjectReq;
|
||||||
import com.muyu.shop.cart.domain.resp.CartDetailResp;
|
import com.muyu.shop.cart.domain.resp.CartDetailResp;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -43,4 +44,10 @@ public interface CartInfoService extends IService<CartInfo> {
|
||||||
|
|
||||||
void CartInfoEditNum (CartInfoEditNumReq cartInfoEditNumReq);
|
void CartInfoEditNum (CartInfoEditNumReq cartInfoEditNumReq);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
* @param removeCartProjectReqList
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void removeByRemoveCartProjectList (List<RemoveCartProjectReq> removeCartProjectReqList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.muyu.shop.cart.domain.model.SkuRuleModel;
|
||||||
import com.muyu.shop.cart.domain.model.StatisticsCartModel;
|
import com.muyu.shop.cart.domain.model.StatisticsCartModel;
|
||||||
import com.muyu.shop.cart.domain.req.CartInfoEditNumReq;
|
import com.muyu.shop.cart.domain.req.CartInfoEditNumReq;
|
||||||
import com.muyu.shop.cart.domain.req.CartInfoIsSelectedUpdReq;
|
import com.muyu.shop.cart.domain.req.CartInfoIsSelectedUpdReq;
|
||||||
|
import com.muyu.shop.cart.domain.req.RemoveCartProjectReq;
|
||||||
import com.muyu.shop.cart.domain.resp.CartDetailResp;
|
import com.muyu.shop.cart.domain.resp.CartDetailResp;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -256,7 +257,43 @@ public class CartInfoServiceImpl extends ServiceImpl<CartInfoMapper, CartInfo>
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void CartInfoEditNum (CartInfoEditNumReq cartInfoEditNumReq) {
|
public void CartInfoEditNum (CartInfoEditNumReq cartInfoEditNumReq) {
|
||||||
|
LambdaUpdateWrapper<CartInfo> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.set(CartInfo::getIsSelected, cartInfoEditNumReq.getNum());
|
||||||
|
updateWrapper.eq(CartInfo::getProjectId, cartInfoEditNumReq.getProjectId());
|
||||||
|
updateWrapper.eq(CartInfo::getProjectSku, cartInfoEditNumReq.getProjectSku());
|
||||||
|
this.update(updateWrapper);
|
||||||
|
Long userId = SecurityUtils.getUserId();
|
||||||
|
CartHashKey cartHashKey = CartHashKey.builder()
|
||||||
|
.projectId(cartInfoEditNumReq.getProjectId())
|
||||||
|
.projectSku(cartInfoEditNumReq.getProjectSku())
|
||||||
|
.build();
|
||||||
|
CartInfo cartInfo = this.cartCache.get(userId, cartHashKey);
|
||||||
|
cartInfo.setNum(cartInfoEditNumReq.getNum());
|
||||||
|
this.cartCache.put(userId, cartHashKey, cartInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*
|
||||||
|
* @param removeCartProjectReqList
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void removeByRemoveCartProjectList (List<RemoveCartProjectReq> removeCartProjectReqList) {
|
||||||
|
this.removeByIds(
|
||||||
|
removeCartProjectReqList.stream()
|
||||||
|
.map(RemoveCartProjectReq::getCartInfoId)
|
||||||
|
.toList()
|
||||||
|
);
|
||||||
|
Long userId = SecurityUtils.getUserId();
|
||||||
|
removeCartProjectReqList.stream()
|
||||||
|
.map(removeCartProjectReq -> CartHashKey.builder()
|
||||||
|
.projectId(removeCartProjectReq.getProjectId())
|
||||||
|
.projectSku(removeCartProjectReq.getProjectSku())
|
||||||
|
.build()
|
||||||
|
).forEach(hk -> this.cartCache.remove(userId, hk));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue