From 3f6faedb48241a65d5bd8b0ab0c81576e9e311a0 Mon Sep 17 00:00:00 2001 From: tangzh Date: Fri, 4 Apr 2025 17:24:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A5=BC=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zbkj/admin/controller/HomeController.java | 40 ++++++++------ .../admin/controller/HomeItemController.java | 48 +++++++++++------ .../controller/SystemHelpController.java | 2 +- .../com/zbkj/common/model/cat/StoreCart.java | 3 ++ .../com/zbkj/common/model/home/HomeItem.java | 4 ++ .../model/product/StoreProductProblem.java | 7 ++- .../zbkj/common/request/BatchCartRequest.java | 2 +- .../com/zbkj/common/request/HomeRequest.java | 3 ++ .../common/request/OptForCartRequest.java | 24 +++++++++ .../common/request/PreOrderDetailRequest.java | 10 ++-- .../request/StoreProductSearchRequest.java | 4 +- .../common/request/SystemHelpRequest.java | 2 +- .../common/response/CartInfoResponse.java | 3 ++ .../java/com/zbkj/common/vo/HomeItemVo.java | 20 ++++++- .../main/java/com/zbkj/common/vo/HomeVo.java | 16 +++++- .../java/com/zbkj/front/config/WebConfig.java | 14 ++++- .../zbkj/front/controller/CartController.java | 14 +++++ .../front/controller/WeChatController.java | 20 +++---- .../zbkj/service/service/EbHomeService.java | 2 - .../service/service/StoreCartService.java | 8 +++ .../service/service/StoreProductService.java | 9 ++++ .../service/impl/EbHomeItemServiceImpl.java | 43 +++++++++++++-- .../service/impl/EbHomeServiceImpl.java | 52 ++++++++++++------- .../service/impl/StoreCartServiceImpl.java | 42 +++++++++++---- .../impl/StoreProductProblemServiceImpl.java | 2 +- .../impl/StoreProductReplyServiceImpl.java | 3 +- .../service/impl/StoreProductServiceImpl.java | 14 ++++- .../main/resources/mapper/home/HomeMapper.xml | 2 +- .../store/StoreProductProblemMapper.xml | 2 +- 29 files changed, 316 insertions(+), 99 deletions(-) create mode 100644 food-common/src/main/java/com/zbkj/common/request/OptForCartRequest.java diff --git a/food-admin/src/main/java/com/zbkj/admin/controller/HomeController.java b/food-admin/src/main/java/com/zbkj/admin/controller/HomeController.java index cb37dbd..bc2b572 100644 --- a/food-admin/src/main/java/com/zbkj/admin/controller/HomeController.java +++ b/food-admin/src/main/java/com/zbkj/admin/controller/HomeController.java @@ -7,6 +7,7 @@ import com.zbkj.common.request.PageParamRequest; import com.zbkj.common.response.CommonResult; import com.zbkj.common.vo.HomeVo; import com.zbkj.service.service.EbHomeService; +import com.zbkj.service.service.SystemAttachmentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -16,6 +17,10 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + @Slf4j @RestController @RequestMapping("api/admin/floor/") @@ -24,43 +29,48 @@ public class HomeController { @Autowired private EbHomeService homeService; + @Autowired + private SystemAttachmentService systemAttachmentService; -// @PreAuthorize("hasAuthority('admin:home:list')") + @PreAuthorize("hasAuthority('admin:home:list')") @ApiOperation(value = "分页列表") @RequestMapping(value = "/list", method = RequestMethod.GET) public CommonResult> getList(@Validated HomeRequest request, @Validated PageParamRequest pageParamRequest) { return CommonResult.success(CommonPage.restPage(homeService.getAdminList(request, pageParamRequest))); } -// @PreAuthorize("hasAuthority('admin:home:save')") + @PreAuthorize("hasAuthority('admin:home:save')") @ApiOperation(value = "新增") @RequestMapping(value = "/save", method = RequestMethod.POST) public CommonResult save(@RequestBody @Validated HomeRequest request) { - if (homeService.create(request)) { + Home home = new Home(); + BeanUtils.copyProperties(request, home); + home.setImgUrl(systemAttachmentService.clearPrefix(home.getImgUrl())); + if (homeService.save(home)) { return CommonResult.success(); } else { return CommonResult.failed(); } } -// @PreAuthorize("hasAuthority('admin:home:delete')") + @PreAuthorize("hasAuthority('admin:home:delete')") @ApiOperation(value = "删除") - @RequestMapping(value = "/delete", method = RequestMethod.GET) - public CommonResult delete(@RequestParam(value = "id") Integer id) { - if (homeService.deleteById(id)) { - return CommonResult.success(); - } else { - return CommonResult.failed(); + @RequestMapping(value = "/delete", method = RequestMethod.POST) + public CommonResult delete(@RequestParam(value = "ids") String ids) { + List idList = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList()); + for (Integer id : idList) { + homeService.deleteById(id); } + return CommonResult.success(); } -// @PreAuthorize("hasAuthority('admin:home:update')") + @PreAuthorize("hasAuthority('admin:home:update')") @ApiOperation(value = "修改") @RequestMapping(value = "/update", method = RequestMethod.POST) - public CommonResult update(@RequestParam Integer id, @RequestBody @Validated HomeRequest request) { + public CommonResult update(@RequestBody HomeRequest request) { Home upd = new Home(); BeanUtils.copyProperties(request, upd); - upd.setId(id); + upd.setImgUrl(systemAttachmentService.clearPrefix(upd.getImgUrl())); if (homeService.updateById(upd)) { return CommonResult.success(); } else { @@ -70,8 +80,8 @@ public class HomeController { @PreAuthorize("hasAuthority('admin:home:info')") @ApiOperation(value = "详情") - @RequestMapping(value = "/info", method = RequestMethod.GET) - public CommonResult info(@RequestParam(value = "id") Integer id) { + @RequestMapping(value = "/info/{id}", method = RequestMethod.GET) + public CommonResult info(@PathVariable Integer id) { Home home = homeService.getById(id); HomeVo homeVo = new HomeVo(); BeanUtils.copyProperties(home, homeVo); diff --git a/food-admin/src/main/java/com/zbkj/admin/controller/HomeItemController.java b/food-admin/src/main/java/com/zbkj/admin/controller/HomeItemController.java index a82c5a4..4f70ddf 100644 --- a/food-admin/src/main/java/com/zbkj/admin/controller/HomeItemController.java +++ b/food-admin/src/main/java/com/zbkj/admin/controller/HomeItemController.java @@ -7,6 +7,8 @@ import com.zbkj.common.request.PageParamRequest; import com.zbkj.common.response.CommonResult; import com.zbkj.common.vo.HomeItemVo; import com.zbkj.service.service.EbHomeItemService; +import com.zbkj.service.service.StoreProductService; +import com.zbkj.service.service.SystemAttachmentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Slf4j @@ -28,30 +31,36 @@ public class HomeItemController { @Autowired private EbHomeItemService homeItemService; + @Autowired + private SystemAttachmentService systemAttachmentService; + @Autowired + private StoreProductService storeProductService; -// @PreAuthorize("hasAuthority('admin:home:list')") + @PreAuthorize("hasAuthority('admin:homeItem:list')") @ApiOperation(value = "分页列表") @RequestMapping(value = "/list", method = RequestMethod.GET) public CommonResult> getList(@Validated HomeItemRequest request, @Validated PageParamRequest pageParamRequest) { return CommonResult.success(CommonPage.restPage(homeItemService.getAdminList(request, pageParamRequest))); } -// @PreAuthorize("hasAuthority('admin:home:save')") + @PreAuthorize("hasAuthority('admin:homeItem:save')") @ApiOperation(value = "新增") @RequestMapping(value = "/save", method = RequestMethod.POST) - public CommonResult save(@RequestBody @Validated HomeItemRequest request) { - HomeItem add = new HomeItem(); - BeanUtils.copyProperties(request, add); - if (homeItemService.save(add)) { - return CommonResult.success(); - } else { - return CommonResult.failed(); + public CommonResult save(@RequestBody @Validated List itemList) { + for (HomeItemRequest req : itemList) { + HomeItem add = new HomeItem(); + BeanUtils.copyProperties(req, add); + add.setId(null); + add.setType(add.getJumpType() == 1 || add.getJumpType() == 3 ? 0 : 1); + add.setImgUrl(systemAttachmentService.clearPrefix(add.getImgUrl())); + homeItemService.save(add); } + return CommonResult.success(); } -// @PreAuthorize("hasAuthority('admin:home:delete')") + @PreAuthorize("hasAuthority('admin:homeItem:delete')") @ApiOperation(value = "删除") - @RequestMapping(value = "/delete", method = RequestMethod.GET) + @RequestMapping(value = "/delete", method = RequestMethod.POST) public CommonResult delete(@RequestParam(value = "ids") String ids) { List idList = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList()); if (homeItemService.removeByIds(idList)) { @@ -61,13 +70,13 @@ public class HomeItemController { } } -// @PreAuthorize("hasAuthority('admin:home:update')") + @PreAuthorize("hasAuthority('admin:homeItem:update')") @ApiOperation(value = "修改") @RequestMapping(value = "/update", method = RequestMethod.POST) - public CommonResult update(@RequestParam Integer id, @RequestBody @Validated HomeItemRequest request) { + public CommonResult update(@RequestBody HomeItemRequest request) { HomeItem upd = new HomeItem(); BeanUtils.copyProperties(request, upd); - upd.setId(id); + upd.setImgUrl(systemAttachmentService.clearPrefix(upd.getImgUrl())); if (homeItemService.updateById(upd)) { return CommonResult.success(); } else { @@ -75,13 +84,18 @@ public class HomeItemController { } } - @PreAuthorize("hasAuthority('admin:home:info')") + @PreAuthorize("hasAuthority('admin:homeItem:info')") @ApiOperation(value = "详情") - @RequestMapping(value = "/info", method = RequestMethod.GET) - public CommonResult info(@RequestParam(value = "id") Integer id) { + @RequestMapping(value = "/info/{id}", method = RequestMethod.GET) + public CommonResult info(@PathVariable Integer id) { HomeItem homeItem = homeItemService.getById(id); HomeItemVo homeItemVo = new HomeItemVo(); BeanUtils.copyProperties(homeItem, homeItemVo); + if (homeItemVo.getJumpType() == 1 || homeItemVo.getJumpType() == 3) { + String[] split = homeItemVo.getJumpIds().split(","); + List pIds = Arrays.asList(split).stream().map(i -> Integer.parseInt(i)).collect(Collectors.toList()); + homeItemVo.setJumpIdsText(storeProductService.getName(pIds).values().stream().collect(Collectors.joining(","))); + } return CommonResult.success(homeItemVo); } } diff --git a/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java b/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java index 7ab7717..fe268f0 100644 --- a/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java +++ b/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java @@ -60,7 +60,7 @@ public class SystemHelpController { public CommonResult update(@RequestBody SystemHelpRequest request) { SystemHelpProblem entity = new SystemHelpProblem(); BeanUtils.copyProperties(request, entity); - if (helpService.save(entity)) { + if (helpService.updateById(entity)) { return CommonResult.success(); } else { return CommonResult.failed(); diff --git a/food-common/src/main/java/com/zbkj/common/model/cat/StoreCart.java b/food-common/src/main/java/com/zbkj/common/model/cat/StoreCart.java index b8b41a3..2fa357a 100644 --- a/food-common/src/main/java/com/zbkj/common/model/cat/StoreCart.java +++ b/food-common/src/main/java/com/zbkj/common/model/cat/StoreCart.java @@ -66,6 +66,9 @@ public class StoreCart implements Serializable { @ApiModelProperty(value = "已添加的商品是否有效状态") private Boolean status; + @ApiModelProperty(value = "是否选择 0未选,1已选") + private Integer isSelect; + @ApiModelProperty(value = "团长拼团id") @TableField(exist = false) private Integer pinkId; diff --git a/food-common/src/main/java/com/zbkj/common/model/home/HomeItem.java b/food-common/src/main/java/com/zbkj/common/model/home/HomeItem.java index e0c836e..eaee691 100644 --- a/food-common/src/main/java/com/zbkj/common/model/home/HomeItem.java +++ b/food-common/src/main/java/com/zbkj/common/model/home/HomeItem.java @@ -42,6 +42,10 @@ public class HomeItem implements Serializable { * 跳转类型 0默认值,1商品详情,2分类列表,3商品列表,4活动栏目 */ private Integer jumpType; + /** + * 类型 0商品,1轮播图 + */ + private Integer type; /** * 排序 */ diff --git a/food-common/src/main/java/com/zbkj/common/model/product/StoreProductProblem.java b/food-common/src/main/java/com/zbkj/common/model/product/StoreProductProblem.java index 48ddd93..aa4ca51 100644 --- a/food-common/src/main/java/com/zbkj/common/model/product/StoreProductProblem.java +++ b/food-common/src/main/java/com/zbkj/common/model/product/StoreProductProblem.java @@ -25,13 +25,18 @@ public class StoreProductProblem implements Serializable { /** * 业务外键id */ - private Integer businessId; + private String businessId; /** * 用户id */ private Integer uid; + /** + * 问题 + */ + private String title; + /** * 内容 */ diff --git a/food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java b/food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java index 0cbd733..f80d543 100644 --- a/food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/BatchCartRequest.java @@ -23,7 +23,7 @@ public class BatchCartRequest { @ApiModelProperty(value = "购物车商品信息(cartType=default,必传)") private List cartList; - @ApiModelProperty(value = "业务编号") + @ApiModelProperty(value = "业务编号(cartType=setmeal,传 楼层id)") private String business; @ApiModelProperty(value = "业务类型(default 默认; setmeal 套餐)", required = true) diff --git a/food-common/src/main/java/com/zbkj/common/request/HomeRequest.java b/food-common/src/main/java/com/zbkj/common/request/HomeRequest.java index 9a5d505..b331aee 100644 --- a/food-common/src/main/java/com/zbkj/common/request/HomeRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/HomeRequest.java @@ -24,6 +24,9 @@ public class HomeRequest implements Serializable { private static final long serialVersionUID=1L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "名称") private String name; diff --git a/food-common/src/main/java/com/zbkj/common/request/OptForCartRequest.java b/food-common/src/main/java/com/zbkj/common/request/OptForCartRequest.java new file mode 100644 index 0000000..fc4aa1a --- /dev/null +++ b/food-common/src/main/java/com/zbkj/common/request/OptForCartRequest.java @@ -0,0 +1,24 @@ +package com.zbkj.common.request; + +import com.zbkj.common.annotation.StringContains; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="OptForCartRequest对象", description="OptForCartRequest对象") +public class OptForCartRequest { + private static final long serialVersionUID=1L; + + @ApiModelProperty(value = "购物车id(多个用,拼接,若不传则为购物车所有商品)") + private String cartIds; + + @ApiModelProperty(value = "业务类型(yes 勾选;no 移除)", required = true) + @StringContains(limitValues = {"yes", "no"}, message = "未知的类型") + private String cartType; + +} diff --git a/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java b/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java index 519eab8..7e304e4 100644 --- a/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java @@ -31,19 +31,19 @@ public class PreOrderDetailRequest { @ApiModelProperty(value = "订单编号(再次购买必填)") private String orderNo; - @ApiModelProperty(value = "砍价商品id") + @ApiModelProperty(value = "暂时作废:砍价商品id") private Integer bargainId = 0; - @ApiModelProperty(value = "用户砍价活动id") + @ApiModelProperty(value = "暂时作废:用户砍价活动id") private Integer bargainUserId = 0; - @ApiModelProperty(value = "拼团商品id") + @ApiModelProperty(value = "暂时作废:拼团商品id") private Integer combinationId = 0; - @ApiModelProperty(value = "拼团团长id") + @ApiModelProperty(value = "暂时作废:拼团团长id") private Integer pinkId = 0; - @ApiModelProperty(value = "秒杀商品id") + @ApiModelProperty(value = "暂时作废:秒杀商品id") private Integer seckillId = 0; } diff --git a/food-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java b/food-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java index 45ef5ad..82b838f 100644 --- a/food-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/StoreProductSearchRequest.java @@ -24,9 +24,9 @@ public class StoreProductSearchRequest implements Serializable { private static final long serialVersionUID=1L; - @ApiModelProperty(value = "类型(1:出售中(已上架),2:仓库中(未上架),3:已售罄,4:警戒库存,5:回收站)") + @ApiModelProperty(value = "类型(0全部,1:出售中(已上架),2:仓库中(未上架),3:已售罄,4:警戒库存,5:回收站)") @NotNull(message = "商品类型不能为空") - @Range(min = 1, max = 5, message = "未知的商品类型") + @Range(min = 0, max = 5, message = "未知的商品类型") private int type; @ApiModelProperty(value = "分类ID, 多个逗号分隔") diff --git a/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java b/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java index 1e24919..7ce26d4 100644 --- a/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/SystemHelpRequest.java @@ -29,6 +29,6 @@ public class SystemHelpRequest implements Serializable { private String title; @ApiModelProperty(value = "状态 0无效,1有效") - private Integer status; + private Boolean status; } diff --git a/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java b/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java index 8760273..c786f95 100644 --- a/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java +++ b/food-common/src/main/java/com/zbkj/common/response/CartInfoResponse.java @@ -43,6 +43,9 @@ public class CartInfoResponse implements Serializable { @ApiModelProperty(value = "商品规格id") private Integer attrId; + @ApiModelProperty(value = "是否选择 0未选,1已选") + private Integer isSelect = 1; + @ApiModelProperty(value = "商品属性索引值 (attr_value|attr_value[|....])") private String suk; diff --git a/food-common/src/main/java/com/zbkj/common/vo/HomeItemVo.java b/food-common/src/main/java/com/zbkj/common/vo/HomeItemVo.java index 0cca361..1bd05e3 100644 --- a/food-common/src/main/java/com/zbkj/common/vo/HomeItemVo.java +++ b/food-common/src/main/java/com/zbkj/common/vo/HomeItemVo.java @@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; +import java.util.Map; @Data @EqualsAndHashCode(callSuper = false) @@ -17,6 +18,9 @@ public class HomeItemVo implements Serializable { private static final long serialVersionUID=1L; + @ApiModelProperty(value = "id") + private Integer id; + @ApiModelProperty(value = "名称") private String name; /** @@ -24,6 +28,9 @@ public class HomeItemVo implements Serializable { */ @ApiModelProperty(value = "标题") private String title; + + @ApiModelProperty(value = "楼层id") + private Integer homeId; /** * 图片 */ @@ -32,13 +39,16 @@ public class HomeItemVo implements Serializable { /** * 跳转路径 */ - @ApiModelProperty(value = "跳转路径") - private String jumpUrl; +// @ApiModelProperty(value = "跳转路径") +// private String jumpUrl; /** * 跳转参数(pId,cIds,pIds,hId) */ @ApiModelProperty(value = "跳转参数(pId,cIds,pIds,hId)") private String jumpIds; + private String jumpIdsText; + + private Map jumpIdsMap; /** * 跳转类型 0默认值,1商品详情,2分类列表,3商品列表,4活动栏目 */ @@ -48,6 +58,12 @@ public class HomeItemVo implements Serializable { @ApiModelProperty(value = "类型 0商品,1轮播图") private Integer type; + @ApiModelProperty(value = "是否有效 1:有效,0:无效") + private Integer delFlag; + + @ApiModelProperty(value = "排序") + private Integer orderNo; + @ApiModelProperty(value = "商品信息") private ProductInfoVo productInfo; diff --git a/food-common/src/main/java/com/zbkj/common/vo/HomeVo.java b/food-common/src/main/java/com/zbkj/common/vo/HomeVo.java index bced250..6f5c903 100644 --- a/food-common/src/main/java/com/zbkj/common/vo/HomeVo.java +++ b/food-common/src/main/java/com/zbkj/common/vo/HomeVo.java @@ -9,6 +9,7 @@ import lombok.experimental.Accessors; import org.springframework.data.annotation.Transient; import java.io.Serializable; import java.util.List; +import java.util.Map; @Data @EqualsAndHashCode(callSuper = false) @@ -32,8 +33,8 @@ public class HomeVo implements Serializable { /** * 跳转路径 */ - @ApiModelProperty(value = "跳转路径") - private String jumpUrl; +// @ApiModelProperty(value = "跳转路径") +// private String jumpUrl; /** * 图片 */ @@ -44,15 +45,26 @@ public class HomeVo implements Serializable { */ @ApiModelProperty(value = "跳转参数(pId,cIds,pIds,hId)") private String jumpIds; + + private Map jumpIdsMap; /** * 跳转类型 0默认值,1商品详情,2分类列表,3商品列表,4活动栏目 */ @ApiModelProperty(value = "跳转类型 0默认值,1商品详情,2分类列表,3商品列表,4活动栏目") private Integer jumpType; + @ApiModelProperty(value = "是否有效 1:有效,0:无效") + private Integer delFlag; + @ApiModelProperty(value = "展示渠道:【1首页楼层,2随心配套餐层,3首页精品推荐】") private String channel; + @ApiModelProperty(value = "业务:channel=2分类id") + private Integer business; + + @ApiModelProperty(value = "排序") + private Integer orderNo; + @Transient @TableField(exist = false) private List items; diff --git a/food-front/src/main/java/com/zbkj/front/config/WebConfig.java b/food-front/src/main/java/com/zbkj/front/config/WebConfig.java index c1a6513..e8ee9de 100644 --- a/food-front/src/main/java/com/zbkj/front/config/WebConfig.java +++ b/food-front/src/main/java/com/zbkj/front/config/WebConfig.java @@ -1,8 +1,11 @@ package com.zbkj.front.config; +import com.zbkj.common.config.CrmebConfig; +import com.zbkj.common.constants.Constants; import com.zbkj.common.interceptor.SwaggerInterceptor; import com.zbkj.front.filter.ResponseFilter; import com.zbkj.front.interceptor.FrontTokenInterceptor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.web.servlet.FilterRegistrationBean; @@ -38,6 +41,8 @@ public class WebConfig implements WebMvcConfigurer { private String password; @Value("${swagger.basic.check}") private Boolean check; + @Autowired + CrmebConfig crmebConfig; @Override @@ -97,6 +102,10 @@ public class WebConfig implements WebMvcConfigurer { .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); + + /** 本地文件上传路径 */ + registry.addResourceHandler(Constants.UPLOAD_TYPE_IMAGE + "/**").addResourceLocations("file:" + crmebConfig.getImagePath() + "/" + Constants.UPLOAD_TYPE_IMAGE + "/"); + registry.addResourceHandler(Constants.UPLOAD_TYPE_FILE + "/**").addResourceLocations("file:" + crmebConfig.getImagePath() + "/" + Constants.UPLOAD_TYPE_FILE + "/"); } @Bean @@ -104,7 +113,10 @@ public class WebConfig implements WebMvcConfigurer { { //注册过滤器 FilterRegistrationBean registration = new FilterRegistrationBean(responseFilter()); - registration.addUrlPatterns("/*"); + // registration.addUrlPatterns("/*"); + // 仅仅api前缀的请求才会拦截 + registration.addUrlPatterns("/api/admin/*"); + registration.addUrlPatterns("/api/front/*"); return registration; } diff --git a/food-front/src/main/java/com/zbkj/front/controller/CartController.java b/food-front/src/main/java/com/zbkj/front/controller/CartController.java index ea80158..c380f1f 100644 --- a/food-front/src/main/java/com/zbkj/front/controller/CartController.java +++ b/food-front/src/main/java/com/zbkj/front/controller/CartController.java @@ -48,6 +48,20 @@ public class CartController { return CommonResult.success(restPage); } + /** + * 勾选/移选商品 + * @param optForCartRequest 新增参数 + */ + @ApiOperation(value = "勾选/移选商品") + @RequestMapping(value = "/optForCart", method = RequestMethod.POST) + public CommonResult optForCart(@RequestBody @Validated OptForCartRequest optForCartRequest) { + if (storeCartService.optForCart(optForCartRequest)) { + return CommonResult.success(); + } else { + return CommonResult.failed(); + } + } + /** * 一键加入 * @param storeCartRequest 新增参数 diff --git a/food-front/src/main/java/com/zbkj/front/controller/WeChatController.java b/food-front/src/main/java/com/zbkj/front/controller/WeChatController.java index 40afc1e..b1994b5 100644 --- a/food-front/src/main/java/com/zbkj/front/controller/WeChatController.java +++ b/food-front/src/main/java/com/zbkj/front/controller/WeChatController.java @@ -85,16 +85,16 @@ public class WeChatController { // return CommonResult.success(wechatNewService.getJsSdkConfig(url)); // } - /** - * 小程序获取授权logo - */ - @ApiOperation(value = "小程序获取授权logo") - @RequestMapping(value = "/getLogo", method = RequestMethod.GET) - public CommonResult> getLogo(){ - Map map = new HashMap<>(); - map.put("logoUrl", userCenterService.getLogo()); - return CommonResult.success(map); - } +// /** +// * 小程序获取授权logo +// */ +// @ApiOperation(value = "小程序获取授权logo") +// @RequestMapping(value = "/getLogo", method = RequestMethod.GET) +// public CommonResult> getLogo(){ +// Map map = new HashMap<>(); +// map.put("logoUrl", userCenterService.getLogo()); +// return CommonResult.success(map); +// } // /** // * 订阅消息模板列表 diff --git a/food-service/src/main/java/com/zbkj/service/service/EbHomeService.java b/food-service/src/main/java/com/zbkj/service/service/EbHomeService.java index c628177..22a181d 100644 --- a/food-service/src/main/java/com/zbkj/service/service/EbHomeService.java +++ b/food-service/src/main/java/com/zbkj/service/service/EbHomeService.java @@ -24,8 +24,6 @@ public interface EbHomeService extends IService { List getAdminList(HomeRequest request, PageParamRequest pageParamRequest); - boolean create(HomeRequest request); - boolean deleteById(Integer id); } diff --git a/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java b/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java index 5a19fc3..aa9a866 100644 --- a/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java +++ b/food-service/src/main/java/com/zbkj/service/service/StoreCartService.java @@ -99,4 +99,12 @@ public interface StoreCartService extends IService { * @param number 数量 */ Boolean updateCartNum(Integer id, Integer number); + + /** + * 勾选/移选商品 + * @param optForCartRequest + * @return + */ + Boolean optForCart(OptForCartRequest optForCartRequest); + } diff --git a/food-service/src/main/java/com/zbkj/service/service/StoreProductService.java b/food-service/src/main/java/com/zbkj/service/service/StoreProductService.java index 3d286b1..7154728 100644 --- a/food-service/src/main/java/com/zbkj/service/service/StoreProductService.java +++ b/food-service/src/main/java/com/zbkj/service/service/StoreProductService.java @@ -226,4 +226,13 @@ public interface StoreProductService extends IService { * @return List */ List getLeaderboard(); + + /** + * 读取商品名称 + * + * @param prodIds + * @return + */ + Map getName(List prodIds); + } diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeItemServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeItemServiceImpl.java index 44a1143..ff1fd2e 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeItemServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeItemServiceImpl.java @@ -9,18 +9,25 @@ import com.zbkj.common.model.home.HomeItem; import com.zbkj.common.request.HomeItemRequest; import com.zbkj.common.request.PageParamRequest; import com.zbkj.common.vo.HomeItemVo; +import com.zbkj.common.vo.HomeVo; import com.zbkj.service.dao.HomeItemDao; +import com.zbkj.service.service.CategoryService; import com.zbkj.service.service.EbHomeItemService; +import com.zbkj.service.service.StoreProductService; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; @Service public class EbHomeItemServiceImpl extends ServiceImpl implements EbHomeItemService { @Autowired private HomeItemDao dao; + @Autowired private CategoryService categoryService; + @Autowired private StoreProductService productService; @Override public List getAdminList(HomeItemRequest request, PageParamRequest pageParamRequest) { @@ -31,12 +38,38 @@ public class EbHomeItemServiceImpl extends ServiceImpl im .or().like(HomeItem::getName, request.getName()) .or().like(HomeItem::getTitle, request.getName())); } - if (null != request.getJumpType()) { - lambdaQueryWrapper.eq(HomeItem::getJumpType, request.getJumpType()); + if (null != request.getHomeId()) { + lambdaQueryWrapper.eq(HomeItem::getHomeId, request.getHomeId()); } lambdaQueryWrapper.orderByDesc(HomeItem::getOrderNo).orderByDesc(HomeItem::getId); List itemList = dao.selectList(lambdaQueryWrapper); - List itemVoArrayList = JSON.parseArray(JSON.toJSONString(itemList), HomeItemVo.class); - return itemVoArrayList; + if (itemList.isEmpty()) { + return new ArrayList<>(); + } + Map cateMap = new HashMap<>(); + Map prodMap = new HashMap<>(); + List cateIds = itemList.stream().filter(i -> i.getJumpType() == 2).map(i -> Integer.parseInt(i.getJumpIds())).collect(Collectors.toList()); + List prodIds = itemList.stream().filter(i -> i.getJumpType() == 1 || i.getJumpType() == 3).map(HomeItem::getJumpIds).flatMap(scores -> Arrays.stream(scores.split(","))).map(Integer::parseInt).collect(Collectors.toList()); + if (!cateIds.isEmpty()) { cateMap = categoryService.getListInId(cateIds); } + if (!prodIds.isEmpty()) { prodMap = productService.getName(prodIds); } + Map finalCateMap = cateMap; + Map finalProdMap = prodMap; + return itemList.stream().map(i-> { + HomeItemVo vo = new HomeItemVo(); + BeanUtils.copyProperties(i, vo); + Map jumpIdsMap = new HashMap<>(); + if (i.getJumpType() == 1 || i.getJumpType() == 3) { + String[] pSplit = i.getJumpIds().split(","); + for (String pId : pSplit) { + Integer productId = Integer.parseInt(pId); + jumpIdsMap.put(productId, finalProdMap.get(productId)); + } + } else if (i.getJumpType() == 2) { + Integer cateId = Integer.parseInt(i.getJumpIds()); + jumpIdsMap.put(cateId, finalCateMap.get(cateId)); + } + vo.setJumpIdsMap(jumpIdsMap); + return vo; + }).collect(Collectors.toList()); } } diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java index 200ef40..dc48b27 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/EbHomeServiceImpl.java @@ -16,6 +16,7 @@ import com.zbkj.common.vo.HomeVo; import com.zbkj.common.vo.product.ProductInfoVo; import com.zbkj.service.dao.HomeDao; import com.zbkj.service.dao.HomeItemDao; +import com.zbkj.service.service.CategoryService; import com.zbkj.service.service.EbHomeItemService; import com.zbkj.service.service.EbHomeService; import com.zbkj.service.service.StoreProductService; @@ -25,10 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @@ -40,6 +38,7 @@ public class EbHomeServiceImpl extends ServiceImpl implements EbH @Autowired private HomeItemDao homeItemDao; @Autowired private EbHomeItemService homeItemService; @Autowired private StoreProductService productService; + @Autowired private CategoryService categoryService; @Override public List getIndexHomeList(Integer storeId) { @@ -69,7 +68,7 @@ public class EbHomeServiceImpl extends ServiceImpl implements EbH List list = dao.selectPageFloor(entity); PageHelper.clearPage(); for (HomeVo home : list) { - // 默认展示6个 + // 默认展示5个 PageParamRequest fpPage = new PageParamRequest(); fpPage.setPage(1); fpPage.setLimit(5); @@ -124,21 +123,34 @@ public class EbHomeServiceImpl extends ServiceImpl implements EbH } lambdaQueryWrapper.orderByDesc(Home::getOrderNo).orderByDesc(Home::getId); List homeList = dao.selectList(lambdaQueryWrapper); - List homeVoArrayList = JSON.parseArray(JSON.toJSONString(homeList), HomeVo.class); - return homeVoArrayList; - } - - @Override - public boolean create(HomeRequest request) { - Home home = new Home(); - BeanUtils.copyProperties(request, home); - dao.insert(home); - - List items = request.getItems(); - List homeItems = JSON.parseArray(JSON.toJSONString(items), HomeItem.class); - homeItems.forEach(i-> i.setHomeId(home.getId())); - homeItemService.saveBatch(homeItems); - return true; + if (homeList.isEmpty()) { + return new ArrayList<>(); + } + Map cateMap = new HashMap<>(); + Map prodMap = new HashMap<>(); + List cateIds = homeList.stream().filter(i -> i.getJumpType() == 2).map(i -> Integer.parseInt(i.getJumpIds())).collect(Collectors.toList()); + List prodIds = homeList.stream().filter(i -> i.getJumpType() == 1 || i.getJumpType() == 3).map(Home::getJumpIds).flatMap(scores -> Arrays.stream(scores.split(","))).map(Integer::parseInt).collect(Collectors.toList()); + if (!cateIds.isEmpty()) { cateMap = categoryService.getListInId(cateIds); } + if (!prodIds.isEmpty()) { prodMap = productService.getName(prodIds); } + Map finalCateMap = cateMap; + Map finalProdMap = prodMap; + return homeList.stream().map(i-> { + HomeVo vo = new HomeVo(); + BeanUtils.copyProperties(i, vo); + Map jumpIdsMap = new HashMap<>(); + if (i.getJumpType() == 1 || i.getJumpType() == 3) { + String[] pSplit = i.getJumpIds().split(","); + for (String pId : pSplit) { + Integer productId = Integer.parseInt(pId); + jumpIdsMap.put(productId, finalProdMap.get(productId)); + } + } else if (i.getJumpType() == 2) { + Integer cateId = Integer.parseInt(i.getJumpIds()); + jumpIdsMap.put(cateId, finalCateMap.get(cateId)); + } + vo.setJumpIdsMap(jumpIdsMap); + return vo; + }).collect(Collectors.toList()); } @Override diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java index 2daea75..a93c9cb 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreCartServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zbkj.common.model.bargain.StoreBargainUser; import com.zbkj.common.page.CommonPage; import com.zbkj.common.request.*; import com.zbkj.common.constants.Constants; @@ -66,6 +67,29 @@ public class StoreCartServiceImpl extends ServiceImpl i @Autowired private RedisUtil redisUtil; + /** + * 勾选/移选商品 + * @param optForCartRequest + * @return + */ + @Override + public Boolean optForCart(OptForCartRequest optForCartRequest) { + Integer userId = userService.getUserIdException(); + String cartType = optForCartRequest.getCartType(); + String cartIds = optForCartRequest.getCartIds(); + + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(StoreCart::getIsSelect, (cartType.equals("yes") ? 1 : 0)); + updateWrapper.eq(StoreCart::getUid, userId); + updateWrapper.eq(StoreCart::getStatus, Constants.STATUS_NORMAL); + if (StringUtils.isNotEmpty(cartIds)) { + List ids = Arrays.asList(cartIds.split(",")).stream().map(i -> Integer.parseInt(i)).collect(Collectors.toList()); + updateWrapper.in(StoreCart::getId, ids); + } + update(updateWrapper); + return true; + } + /** * 列表 * @param pageParamRequest 分页类参数 @@ -87,11 +111,11 @@ public class StoreCartServiceImpl extends ServiceImpl i return CommonPage.copyPageInfo(page, new ArrayList<>()); } - User user = userService.getInfo(); - SystemUserLevel userLevel = null; - if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) { - userLevel = systemUserLevelService.getByLevelId(user.getLevel()); - } +// User user = userService.getInfo(); +// SystemUserLevel userLevel = null; +// if (ObjectUtil.isNotNull(user) && user.getLevel() > 0) { +// userLevel = systemUserLevelService.getByLevelId(user.getLevel()); +// } List response = new ArrayList<>(); for (StoreCart storeCart : storeCarts) { @@ -127,10 +151,10 @@ public class StoreCartServiceImpl extends ServiceImpl i cartInfoResponse.setAttrId(attrValue.getId()); cartInfoResponse.setAttrStatus(attrValue.getStock() > 0); cartInfoResponse.setStock(attrValue.getStock()); - if (ObjectUtil.isNotNull(userLevel)) { - BigDecimal vipPrice = attrValue.getPrice().multiply(new BigDecimal(userLevel.getDiscount())).divide(new BigDecimal(100), 2 ,BigDecimal.ROUND_HALF_UP); - cartInfoResponse.setVipPrice(vipPrice); - } +// if (ObjectUtil.isNotNull(userLevel)) { +// BigDecimal vipPrice = attrValue.getPrice().multiply(new BigDecimal(userLevel.getDiscount())).divide(new BigDecimal(100), 2 ,BigDecimal.ROUND_HALF_UP); +// cartInfoResponse.setVipPrice(vipPrice); +// } response.add(cartInfoResponse); } return CommonPage.copyPageInfo(page, response); diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductProblemServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductProblemServiceImpl.java index 1d81a18..1512394 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductProblemServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductProblemServiceImpl.java @@ -86,7 +86,7 @@ public class StoreProductProblemServiceImpl extends ServiceImpl lqwSpp = new LambdaQueryWrapper<>(); - lqwSpp.eq(StoreProductProblem::getBusinessId, proId); + // lqwSpp.eq(StoreProductProblem::getBusinessId, proId); + lqwSpp.apply( "FIND_IN_SET ('" + proId + "', business_id)"); int problemNum = storeProductProblemService.count(lqwSpp); ProductProblemResponse sppRes = null; if (problemNum > 0) { diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductServiceImpl.java index bf451d6..377833e 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreProductServiceImpl.java @@ -39,7 +39,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.support.TransactionTemplate; @@ -1311,6 +1310,19 @@ public class StoreProductServiceImpl extends ServiceImpl getName(List productIds) { + Map nameMap = new HashMap<>(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.select(StoreProduct::getId, StoreProduct::getStoreName); + lqw.in(StoreProduct::getId, productIds); + List list = dao.selectList(lqw); + for (StoreProduct sp : list) { + nameMap.put(sp.getId(), sp.getStoreName()); + } + return nameMap; + } + @Override public Map getH5Detail(List productIds) { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/food-service/src/main/resources/mapper/home/HomeMapper.xml b/food-service/src/main/resources/mapper/home/HomeMapper.xml index bde49df..3d78b14 100644 --- a/food-service/src/main/resources/mapper/home/HomeMapper.xml +++ b/food-service/src/main/resources/mapper/home/HomeMapper.xml @@ -16,7 +16,7 @@ select h.id, h.name, h.title, h.img_url imgUrl, h.jump_type jumpType, h.jump_url jumpUrl, h.jump_ids jumpIds from eb_home h where FIND_IN_SET(${entity.channel}, h.channel) - and h.business = #{entity.cid} + and h.business = #{entity.cid} order by order_no diff --git a/food-service/src/main/resources/mapper/store/StoreProductProblemMapper.xml b/food-service/src/main/resources/mapper/store/StoreProductProblemMapper.xml index e126877..ff649db 100644 --- a/food-service/src/main/resources/mapper/store/StoreProductProblemMapper.xml +++ b/food-service/src/main/resources/mapper/store/StoreProductProblemMapper.xml @@ -15,7 +15,7 @@ (select count(1) from eb_store_product_problem c1 where c1.top_id = c.id and c1.top_id ]]> 0 and c1.is_del = 0) sonNum from eb_store_product_problem c LEFT JOIN eb_user u on c.uid = u.uid - where business_id = #{id} and parent_id = 0 and c.is_del = 0 ORDER BY c.create_time DESC + where FIND_IN_SET(#{id}, business_id) and parent_id = 0 and c.is_del = 0 ORDER BY c.create_time DESC