ShopApiController.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.cdf.controller.api;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.cdf.common.ResultData;
  4. import com.cdf.entity.Dept;
  5. import com.cdf.entity.Shop;
  6. import com.cdf.entity.ShopCategory;
  7. import com.cdf.entity.Video;
  8. import com.cdf.service.IDeptService;
  9. import com.cdf.service.IShopCategoryService;
  10. import com.cdf.service.IShopService;
  11. import com.cdf.service.IVideoService;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.GetMapping;
  15. import org.springframework.web.bind.annotation.RequestMapping;
  16. import org.springframework.web.bind.annotation.RequestParam;
  17. import org.springframework.web.bind.annotation.RestController;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. import java.util.Set;
  21. import java.util.stream.Collectors;
  22. @RestController
  23. @RequestMapping("/api")
  24. public class ShopApiController {
  25. @Autowired
  26. private IShopCategoryService shopCategoryService;
  27. @Autowired
  28. private IShopService shopService;
  29. @Autowired
  30. private IDeptService deptService;
  31. @GetMapping("/getShopCategory")
  32. public ResultData getShopCategory(@RequestParam(required = false) String sceneNum){
  33. List<ShopCategory> list = shopCategoryService.list();
  34. List<ShopCategory> listVo = new ArrayList<>();
  35. for (ShopCategory category : list) {
  36. List<Shop> byCategory = shopService.getByCategoryAndSceneNum(category.getId(),sceneNum);
  37. if(byCategory != null && byCategory.size() >0){
  38. listVo.add(category);
  39. }
  40. }
  41. return ResultData.ok(listVo);
  42. }
  43. @GetMapping("/getShopByCategory")
  44. public ResultData getShopByCategory(@RequestParam(required = false) Integer categoryId,
  45. @RequestParam(required = false) String shopName,
  46. @RequestParam(required = false) String sceneNum,
  47. @RequestParam(required = false,defaultValue = "22") Integer deptId){
  48. LambdaQueryWrapper<Shop> wrapper = new LambdaQueryWrapper<>();
  49. if(categoryId != null){
  50. wrapper.eq(Shop::getCategoryId,categoryId);
  51. }
  52. if(deptId!=null){
  53. List<Dept> depts = deptService.getDeptSonList(deptId);
  54. Set<Integer> deptIds = depts.stream().map(Dept::getId).collect(Collectors.toSet());
  55. wrapper.in(Shop::getDeptId,deptIds);
  56. }
  57. if(StringUtils.isNotBlank(shopName)){
  58. wrapper.like(Shop::getShopName,shopName);
  59. }
  60. if(StringUtils.isNotBlank(sceneNum)){
  61. wrapper.eq(Shop::getSceneUrl,sceneNum);
  62. }
  63. wrapper.orderByAsc(Shop::getSort);
  64. wrapper.orderByDesc(Shop::getCreateTime);
  65. return ResultData.ok(shopService.list(wrapper));
  66. }
  67. }