dev
袁野 6 months ago
parent 26928992e9
commit 082b31ce41
  1. 258
      cweb/src/main/java/com/cweb/controller/goods/ShoppingCartController.java
  2. 69
      service/src/main/java/com/hfkj/service/goods/GoodsShoppingCartService.java
  3. 82
      service/src/main/java/com/hfkj/service/goods/impl/GoodsShoppingCartServiceImpl.java

@ -0,0 +1,258 @@
package com.cweb.controller.goods;
import com.alibaba.fastjson.JSONObject;
import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode;
import com.hfkj.common.security.UserCenter;
import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.entity.GoodsMsg;
import com.hfkj.entity.GoodsShoppingCart;
import com.hfkj.entity.GoodsSpecs;
import com.hfkj.model.ResponseData;
import com.hfkj.model.UserSessionObject;
import com.hfkj.service.goods.GoodsMsgService;
import com.hfkj.service.goods.GoodsShoppingCartService;
import com.hfkj.service.goods.GoodsSpecsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@Controller
@RequestMapping(value = "/shoppingCart")
@Api(value = "购物车")
public class ShoppingCartController {
Logger log = LoggerFactory.getLogger(GoodsController.class);
@Resource
private UserCenter userCenter;
@Resource
private GoodsMsgService goodsMsgService;
@Resource
private GoodsSpecsService goodsSpecsService;
@Resource
private GoodsShoppingCartService shoppingCartService;
@RequestMapping(value = "/getShoppingCartList", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询购物车列表")
public ResponseData getShoppingCartList() {
try {
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
Map<String, Object> map = new HashMap<>();
map.put("userId", userSession.getUser().getId());
List<GoodsShoppingCart> list = shoppingCartService.getList(map);
Map<String, List<GoodsShoppingCart>> collect = list.stream().collect(Collectors.groupingBy(GoodsShoppingCart::getMerName));
List<JSONObject> countRecords = collect.keySet().stream().map(key -> {
JSONObject goodObject = new JSONObject(true);
goodObject.put("name",key.toUpperCase());
goodObject.put("list",collect.get(key));
System.out.println(goodObject);
return goodObject;
}).collect(Collectors.toList());
return ResponseMsgUtil.success(countRecords);
} catch (Exception e) {
log.error("GoodsDetailController --> getListUser() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/insertShoppingCart", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "新增购物车")
public ResponseData insertShoppingCart(@RequestBody GoodsShoppingCart shoppingCart) {
try {
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
if (shoppingCart == null ||
shoppingCart.getGoodsId() == null ||
shoppingCart.getSpecsId() == null ||
shoppingCart.getNum() == null
) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
GoodsMsg goodsMsg = goodsMsgService.queryDetail(shoppingCart.getGoodsId());
GoodsSpecs specs = goodsSpecsService.queryDetail(shoppingCart.getSpecsId());
if (goodsMsg == null || specs == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "添加商品不存在");
}
if (specs.getStock() < shoppingCart.getNum()) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "超过最大库存!");
}
Map<String, Object> map = new HashMap<>();
map.put("userId", userSession.getUser().getId());
map.put("goodsId", shoppingCart.getGoodsId());
map.put("specsId", shoppingCart.getSpecsId());
GoodsShoppingCart goodsShoppingCart = shoppingCartService.queryDetailByMap(map);
if (goodsShoppingCart == null) {
shoppingCart.setUserId(userSession.getUser().getId());
shoppingCart.setTitle(goodsMsg.getTitle());
shoppingCart.setImg(specs.getShowImg());
shoppingCart.setSpecsId(specs.getId());
shoppingCart.setSpecsName(specs.getName());
shoppingCart.setLoseEfficacy(false);
shoppingCart.setMerId(goodsMsg.getMerId());
shoppingCart.setMerName(goodsMsg.getMerName());
shoppingCart.setWhetherCheck(true);
shoppingCart.setPrice(specs.getSalePrice());
shoppingCart.setCreateTime(new Date());
shoppingCart.setUpdateTime(new Date());
shoppingCartService.create(shoppingCart);
} else {
int num = shoppingCart.getNum() + goodsShoppingCart.getNum();
goodsShoppingCart.setNum(num);
shoppingCartService.update(goodsShoppingCart);
}
return ResponseMsgUtil.success("成功");
} catch (Exception e) {
log.error("GoodsDetailController --> insertPrice() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/deleteShoppingCart", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "删除购物车信息")
public ResponseData deleteShoppingCart(@RequestParam(value = "ids", required = true) String ids) {
try {
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
String[] idArray = ids.split(",");
for (String id : idArray) {
GoodsShoppingCart shoppingCart = shoppingCartService.queryDetail(Long.valueOf(id));
if (shoppingCart == null) {
log.error("GoodsDetailController -> findGoodsDetailById() error!");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未找到相关信息");
}
if (!Objects.equals(userSession.getUser().getId(), shoppingCart.getUserId())) {
log.error("GoodsDetailController -> findGoodsDetailById() error!");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "用户信息错误");
}
shoppingCartService.delete(Long.valueOf(id), false);
}
return ResponseMsgUtil.success("删除成功");
} catch (Exception e) {
log.error("GoodsDetailController --> findGoodsDetailById() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/goodsEditNum", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "商品编辑数量")
public ResponseData goodsEditNum(
@RequestParam(value = "id", required = true) Long id,
@RequestParam(value = "num", required = true) Integer num
) {
try {
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
GoodsShoppingCart shoppingCart = shoppingCartService.queryDetail(id);
GoodsSpecs specs = goodsSpecsService.queryDetail(shoppingCart.getSpecsId());
if (!Objects.equals(userSession.getUser().getId(), shoppingCart.getUserId())) {
log.error("GoodsDetailController -> findGoodsDetailById() error!");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "用户信息错误");
}
if (specs.getStock() < num) {
log.error("GoodsDetailController -> insertProduct() error!");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "超过最大库存!");
}
shoppingCart.setNum(num);
shoppingCart.setUpdateTime(new Date());
shoppingCartService.update(shoppingCart);
return ResponseMsgUtil.success("增加成功");
} catch (Exception e) {
log.error("GoodsDetailController --> findGoodsDetailById() error!", e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value = "/whetherCheck", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "是否选中")
public ResponseData whetherCheck(
@RequestParam(value = "ids", required = true) String ids,
@RequestParam(value = "whetherCheck", required = true) Integer whetherCheck
) {
try {
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
String[] idArray = ids.split(",");
for (String id : idArray) {
GoodsShoppingCart shoppingCart = shoppingCartService.queryDetail(Long.valueOf(id));
if (!Objects.equals(userSession.getUser().getId(), shoppingCart.getUserId())) {
log.error("GoodsDetailController -> findGoodsDetailById() error!");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "用户信息错误");
}
shoppingCart.setWhetherCheck(whetherCheck == 1);
shoppingCart.setUpdateTime(new Date());
shoppingCartService.update(shoppingCart);
}
return ResponseMsgUtil.success("成功");
} catch (Exception e) {
log.error("GoodsDetailController --> findGoodsDetailById() error!", e);
return ResponseMsgUtil.exception(e);
}
}
}

@ -0,0 +1,69 @@
package com.hfkj.service.goods;
import com.hfkj.entity.GoodsMsg;
import com.hfkj.entity.GoodsShoppingCart;
import java.util.List;
import java.util.Map;
public interface GoodsShoppingCartService {
/**
* @Author Sum1Dream
* @Name create
* @Description // 创建
* @Date 15:11 2024/4/19
* @Param GoodsMsg
* @return void
*/
void create(GoodsShoppingCart shoppingCart);
/**
* @Author Sum1Dream
* @Name update
* @Description // 修改
* @Date 15:12 2024/4/19
* @Param GoodsMsg
* @return void
*/
void update(GoodsShoppingCart shoppingCart);
/**
* @Author Sum1Dream
* @Name delete
* @Description // 修改
* @Date 15:12 2024/4/19
* @Param id
* @return void
*/
void delete(Long id , Boolean fullDelete);
/**
* @Author Sum1Dream
* @Name queryDetail
* @Description // 根据ID查询产品类型详情
* @Date 15:12 2024/4/19
* @Param id
* @return com.hfkj.entity.GoodsMsg
*/
GoodsShoppingCart queryDetail(Long id);
/**
* @Author Sum1Dream
* @Name queryDetailByMap
* @Description // 根据多条件查询产品类型
* @Date 15:12 2024/4/19
* @Param map
* @return com.hfkj.entity.GoodsMsg
*/
GoodsShoppingCart queryDetailByMap(Map<String , Object> map);
/**
* @Author Sum1Dream
* @Name getList
* @Description // 根据多条件查询列表
* @Date 15:13 2024/4/19
* @Param map
* @return java.util.List<com.hfkj.entity.GoodsMsg>
*/
List<GoodsShoppingCart> getList(Map<String , Object> map);
}

@ -0,0 +1,82 @@
package com.hfkj.service.goods.impl;
import com.hfkj.dao.GoodsShoppingCartMapper;
import com.hfkj.entity.GoodsMsg;
import com.hfkj.entity.GoodsShoppingCart;
import com.hfkj.entity.GoodsShoppingCartExample;
import com.hfkj.service.goods.GoodsShoppingCartService;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service("goodsShoppingCartService")
public class GoodsShoppingCartServiceImpl implements GoodsShoppingCartService {
@Resource
private GoodsShoppingCartMapper goodsShoppingCartMapper;
@Override
public void create(GoodsShoppingCart shoppingCart) {
goodsShoppingCartMapper.insert(shoppingCart);
}
@Override
public void update(GoodsShoppingCart shoppingCart) {
goodsShoppingCartMapper.updateByPrimaryKeySelective(shoppingCart);
}
@Override
public void delete(Long id, Boolean fullDelete) {
if (fullDelete) {
goodsShoppingCartMapper.deleteByPrimaryKey(id);
} else {
GoodsShoppingCart shoppingCart = queryDetail(id);
shoppingCart.setStatus(0);
shoppingCart.setUpdateTime(new Date());
update(shoppingCart);
}
}
@Override
public GoodsShoppingCart queryDetail(Long id) {
return goodsShoppingCartMapper.selectByPrimaryKey(id);
}
@Override
public GoodsShoppingCart queryDetailByMap(Map<String, Object> map) {
GoodsShoppingCartExample example = new GoodsShoppingCartExample();
GoodsShoppingCartExample.Criteria criteria = example.createCriteria();
if (MapUtils.getLong(map, "userId") != null) {
criteria.andUserIdEqualTo(MapUtils.getLong(map, "userId"));
}
if (MapUtils.getLong(map, "specsId") != null) {
criteria.andSpecsIdEqualTo(MapUtils.getLong(map, "specsId"));
}
if (MapUtils.getLong(map, "goodsId") != null) {
criteria.andGoodsIdEqualTo(MapUtils.getLong(map, "goodsId"));
}
List<GoodsShoppingCart> list = goodsShoppingCartMapper.selectByExample(example);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
@Override
public List<GoodsShoppingCart> getList(Map<String, Object> map) {
GoodsShoppingCartExample example = new GoodsShoppingCartExample();
GoodsShoppingCartExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(MapUtils.getLong(map, "userId")).andStatusNotEqualTo(0);
return goodsShoppingCartMapper.selectByExample(example);
}
}
Loading…
Cancel
Save