diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java index 623a318b..0c091571 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java @@ -5,6 +5,7 @@ import cn.ysk.cashier.cons.domain.TbProskuCon; import cn.ysk.cashier.cons.service.TbProskuConService; import cn.ysk.cashier.cons.service.dto.ProskuInfo; import cn.ysk.cashier.cons.service.dto.TbProskuConQueryCriteria; +import cn.ysk.cashier.exception.BadRequestException; import org.springframework.data.domain.Pageable; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; @@ -13,6 +14,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; import java.io.IOException; +import java.util.List; import javax.servlet.http.HttpServletResponse; /** @@ -44,8 +46,14 @@ public class TbProskuConController { @PostMapping @Log("新增商品规格耗材信息") @ApiOperation("新增商品规格耗材信息") - public ResponseEntity createTbProskuCon(@Validated @RequestBody ProskuInfo resources) throws Exception { - return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED); + public ResponseEntity createTbProskuCon(@Validated @RequestBody List resources) throws Exception { + try { + return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED); + } catch (BadRequestException be) { + throw new Exception(be.getMessage()); + }catch (Exception e){ + throw new Exception("系统异常"); + } } @PutMapping diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java index c59dc515..f95aaec0 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java @@ -43,7 +43,7 @@ public interface TbProskuConService { * @param resources / * @return TbProskuConDto */ - TbProskuConDto create(ProskuInfo resources) throws Exception; + TbProskuConDto create(List resources) throws Exception; /** * 编辑 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java index 91d58937..8d8815af 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java @@ -6,20 +6,19 @@ import cn.ysk.cashier.cons.domain.TbConsSuppFlow; import cn.ysk.cashier.cons.domain.TbProskuCon; import cn.ysk.cashier.cons.repository.TbConsInfoRepository; import cn.ysk.cashier.cons.service.dto.ProskuInfo; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.pojo.product.TbProduct; import cn.ysk.cashier.pojo.product.TbProductSku; import cn.ysk.cashier.repository.product.TbProductRepository; import cn.ysk.cashier.repository.product.TbProductSkuRepository; -import cn.ysk.cashier.utils.FileUtil; -import cn.ysk.cashier.utils.PageUtil; -import cn.ysk.cashier.utils.QueryHelp; -import cn.ysk.cashier.utils.ValidationUtil; +import cn.ysk.cashier.utils.*; import lombok.RequiredArgsConstructor; import cn.ysk.cashier.cons.repository.TbProskuConRepository; import cn.ysk.cashier.cons.service.TbProskuConService; import cn.ysk.cashier.cons.service.dto.TbProskuConDto; import cn.ysk.cashier.cons.service.dto.TbProskuConQueryCriteria; import cn.ysk.cashier.cons.service.mapstruct.TbProskuConMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; @@ -38,6 +37,7 @@ import javax.servlet.http.HttpServletResponse; **/ @Service @RequiredArgsConstructor +@Slf4j public class TbProskuConServiceImpl implements TbProskuConService { private final TbProskuConRepository tbProskuConRepository; @@ -70,65 +70,85 @@ public class TbProskuConServiceImpl implements TbProskuConService { @Override @Transactional(rollbackFor = Exception.class) - public TbProskuConDto create(ProskuInfo resources) throws Exception { + public TbProskuConDto create(List resources) throws BadRequestException,Exception { + for (ProskuInfo resource : resources) { + TbProduct product= tbProductRepository.getById(resource.getProductId()); + if(Objects.isNull(product)){ + throw new BadRequestException("对应的商品信息不存在"); + } + List list=new ArrayList<>(); + if(product.getIsDistribute().intValue()==1){ - TbProduct product= tbProductRepository.getById(resources.getProductId()); - if(Objects.isNull(product)){ - throw new Exception("对应的商品信息不存在"); - } + TbConsInfo tbConsInfo= tbConsInfoRepository.findById(resource.getConsInfoId()).orElseGet(TbConsInfo::new); - TbConsInfo tbConsInfo= tbConsInfoRepository.getById(resources.getConsInfoId()); - if(Objects.isNull(tbConsInfo)){ - throw new Exception("对应的耗材信息不存在"); - } + log.info("product.getIsDistribute().intValue():{}", JSONUtil.toJSONString(tbConsInfo)); + if(ObjectUtil.isNull(tbConsInfo)||ObjectUtil.isNull(tbConsInfo.getId())){ + throw new BadRequestException("对应的耗材信息不存在"); + } - List list=new ArrayList<>(); - if(product.getIsDistribute().intValue()==1){ - //查询商品对应的所有规格 - List skuList= tbProductSkuRepository.searchSku(product.getId().toString()); - if(Objects.nonNull(skuList)&&skuList.size()>0){ - for (TbProductSku tbProductSku : skuList) { - int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId())); + //查询商品对应的所有规格 + List skuList= tbProductSkuRepository.searchSku(product.getId().toString()); + if(Objects.nonNull(skuList)&&skuList.size()>0){ + for (TbProductSku tbProductSku : skuList) { + int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId())); + if(count<=0){ + TbProskuCon tbProskuCon=new TbProskuCon(); + + tbProskuCon.setShopId(Integer.valueOf(tbProductSku.getShopId())); + tbProskuCon.setConInfoId(tbConsInfo.getId()); + tbProskuCon.setProductId(Integer.valueOf(tbProductSku.getProductId())); + tbProskuCon.setProductSkuId(tbProductSku.getId()); + tbProskuCon.setSurplusStock(resource.getSurplusStock()); + tbProskuCon.setStatus("1"); + tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); + list.add(tbProskuCon); + }else { + throw new BadRequestException(product.getName().concat("对应的耗材信息已存在")); + } + } + } + + }else { + for (ProskuInfo.SkuInfo skuInfo : resource.getSkuInfos()) { + + + TbConsInfo tbConsInfo= tbConsInfoRepository.findById(skuInfo.getConInfoId()).orElseGet(TbConsInfo::new); + + log.info("skuInfo:{}", JSONUtil.toJSONString(tbConsInfo)); + + if(ObjectUtil.isNull(tbConsInfo)||ObjectUtil.isNull(tbConsInfo.getId())){ + throw new BadRequestException("对应的耗材信息不存在"); + } + + TbProductSku tbProductSku= tbProductSkuRepository.findById(skuInfo.getSkuId()).orElseGet(TbProductSku::new); + if(ObjectUtil.isNull(tbProductSku)||ObjectUtil.isNull(tbProductSku.getId())){ + throw new BadRequestException("规格信息不存在"); + } + + int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resource.getProductId()); if(count<=0){ TbProskuCon tbProskuCon=new TbProskuCon(); - - tbProskuCon.setShopId(Integer.valueOf(tbProductSku.getShopId())); - tbProskuCon.setConInfoId(resources.getConsInfoId()); - tbProskuCon.setProductId(Integer.valueOf(tbProductSku.getProductId())); - tbProskuCon.setProductSkuId(tbProductSku.getId()); - tbProskuCon.setSurplusStock(resources.getSurplusStock()); + tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId())); + tbProskuCon.setConInfoId(tbConsInfo.getId()); + tbProskuCon.setProductId(resource.getProductId()); + tbProskuCon.setProductSkuId(skuInfo.getSkuId()); + tbProskuCon.setSurplusStock(skuInfo.getSurplusStock()); tbProskuCon.setStatus("1"); tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); list.add(tbProskuCon); }else { - throw new Exception(product.getName().concat("对应的耗材信息已存在")); + TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId()); + throw new BadRequestException(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在")); } } - } - }else { - for (ProskuInfo.SkuInfo skuInfo : resources.getSkuInfos()) { - int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resources.getProductId()); - if(count<=0){ - TbProskuCon tbProskuCon=new TbProskuCon(); - tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId())); - tbProskuCon.setConInfoId(skuInfo.getConInfoId()); - tbProskuCon.setProductId(resources.getProductId()); - tbProskuCon.setProductSkuId(skuInfo.getSkuId()); - tbProskuCon.setSurplusStock(skuInfo.getSurplusStock()); - tbProskuCon.setStatus("1"); - tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); - list.add(tbProskuCon); - }else { - TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId()); - throw new Exception(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在")); - } } + if(Objects.nonNull(list)&&list.size()>0){ + tbProskuConRepository.saveAll(list); + } + } + - } - if(Objects.nonNull(list)&&list.size()>0){ - tbProskuConRepository.saveAll(list); - } return new TbProskuConDto(); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopSongOrderController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbShopSongOrderController.java similarity index 77% rename from eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopSongOrderController.java rename to eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbShopSongOrderController.java index 3f60dc5d..f01c4eaf 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopSongOrderController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/order/TbShopSongOrderController.java @@ -1,4 +1,4 @@ -package cn.ysk.cashier.controller.shop; +package cn.ysk.cashier.controller.order; import cn.ysk.cashier.annotation.rest.AnonymousGetMapping; import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; @@ -51,27 +51,9 @@ public class TbShopSongOrderController{ @ApiOperation("获取歌曲列表 分页") @AnonymousGetMapping public ResponseEntity selectAll(TbShopSongOrderQueryCriteria tbShopSongOrder) { - String code = ""; - if(redisUtils.hasKey(CacheKey.SONG_URL + tbShopSongOrder.getShopId())){ - code = (String) redisUtils.get(CacheKey.SONG_URL + tbShopSongOrder.getShopId()); - } - Map stringObjectMap = tbShopSongOrderService.queryAll(tbShopSongOrder); - stringObjectMap.put("songUrl",code); - return new ResponseEntity<>(stringObjectMap, HttpStatus.OK); + return new ResponseEntity<>(tbShopSongOrderService.queryAll(tbShopSongOrder), HttpStatus.OK); } - @PostMapping("createUrl") - @ApiOperation("更新歌手页地址") - @AnonymousPostMapping - public ResponseEntity createUrl(String shopId) { - String key = RandomStringUtils.randomAlphanumeric(8); - redisUtils.set(CacheKey.SONG_URL + shopId, key); - redisUtils.set(CacheKey.SONG_URL + key, shopId); - return new ResponseEntity<>(key,HttpStatus.OK); - } - - - /** * 通过主键查询单条数据 * diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductController.java index 7be97e0c..5e78001a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/TbProductController.java @@ -1,6 +1,5 @@ package cn.ysk.cashier.controller.product; -import cn.ysk.cashier.annotation.AnonymousAccess; import cn.ysk.cashier.annotation.Log; import cn.ysk.cashier.dto.product.TbProductSortCriteria; import cn.ysk.cashier.vo.TbProductVo; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryByDayController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryByDayController.java index b1110f52..1ec74bb4 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryByDayController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/SummaryByDayController.java @@ -1,7 +1,5 @@ package cn.ysk.cashier.controller.shop; -import cn.ysk.cashier.annotation.AnonymousAccess; -import cn.ysk.cashier.annotation.Log; import cn.ysk.cashier.dto.ShopSummaryDto; import cn.ysk.cashier.service.SummaryService; import cn.ysk.cashier.vo.TbOrderPayCountVo; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopSongController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopSongController.java index 1babf030..d5fe5cb0 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopSongController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopSongController.java @@ -1,13 +1,17 @@ package cn.ysk.cashier.controller.shop; import cn.ysk.cashier.annotation.Log; +import cn.ysk.cashier.annotation.rest.AnonymousPostMapping; import cn.ysk.cashier.dto.shop.TbShopSongQueryCriteria; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.entity.TbShopSong; import cn.ysk.cashier.mybatis.service.TbShopSongService; +import cn.ysk.cashier.utils.CacheKey; +import cn.ysk.cashier.utils.RedisUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -16,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Date; import java.util.List; +import java.util.Map; @RestController @@ -23,12 +28,33 @@ import java.util.List; @Api(tags = "歌曲管理") @RequestMapping("/api/tbShopSong") public class TbShopSongController { + private final RedisUtils redisUtils; private final TbShopSongService tbShopSongService; @GetMapping @ApiOperation("查询歌曲列表") public ResponseEntity queryTbShopPurveyor(TbShopSongQueryCriteria criteria){ - return new ResponseEntity<>(tbShopSongService.queryAll(criteria), HttpStatus.OK); + String code = ""; + if(redisUtils.hasKey(CacheKey.SONG_URL + criteria.getShopId())){ + code = (String) redisUtils.get(CacheKey.SONG_URL + criteria.getShopId()); + }else { + code = RandomStringUtils.randomAlphanumeric(12); + redisUtils.set(CacheKey.SONG_URL + criteria.getShopId(), code); + redisUtils.set(CacheKey.SONG_URL + code, criteria.getShopId()); + } + Map stringObjectMap = tbShopSongService.queryAll(criteria); + stringObjectMap.put("songUrl",code); + return new ResponseEntity<>(stringObjectMap, HttpStatus.OK); + } + + @PostMapping("createUrl") + @ApiOperation("更新歌手页地址") + @AnonymousPostMapping + public ResponseEntity createUrl(String shopId) { + String key = RandomStringUtils.randomAlphanumeric(12); + redisUtils.set(CacheKey.SONG_URL + shopId, key); + redisUtils.set(CacheKey.SONG_URL + key, shopId); + return new ResponseEntity<>(key,HttpStatus.OK); } @PostMapping diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index ee7d8fd9..0dbe5f8b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -50,6 +50,7 @@ public class TbShopUserController { @GetMapping("queryAllShopUser") @ApiOperation("查询商家用户") + @AnonymousGetMapping public ResponseEntity queryAllShopUser(TbShopUserQueryCriteria criteria) { return new ResponseEntity<>(tbShopUserService.queryShopUser(criteria), HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductSkuDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductSkuDto.java index b2f0c612..44683d80 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductSkuDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/product/TbProductSkuDto.java @@ -56,6 +56,8 @@ public class TbProductSkuDto implements Serializable { /** 进货参考价 */ private BigDecimal guidePrice; + private Integer suit; + private BigDecimal strategyPrice; /** 库存数量 */ diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java index e6f39314..a2fc89cb 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/ShopUserMapper.java @@ -19,19 +19,18 @@ public interface ShopUserMapper extends BaseMapper { "FROM tb_shop_user su " + "LEFT JOIN tb_user_info u ON su.user_id = u.id " + " " + - "su.user_id is not null and su.user_id != ''" + "" + "AND su.shop_id = #{param.shopId} " + "" + "" + "AND (u.nick_name like concat('%', #{param.name}, '%') or u.telephone like concat('%', #{param.name}, '%'))" + "" + - "" + - "AND su.is_vip=#{param.isVip}" + + "" + + "AND su.is_vip=#{isVip}" + "" + "" + "") - IPage queryUser(TbShopUserQueryCriteria param, Page pageInfo); + IPage queryUser(TbShopUserQueryCriteria param, Integer isVip, Page pageInfo); @Select("") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java index 868584a3..1b7c89a4 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbMShopUserMapper.java @@ -16,19 +16,23 @@ import java.util.Map; */ public interface TbMShopUserMapper extends BaseMapper { @Select("") Map selectUserSummary(@Param("shopId") String shopId, @Param("isVip") Integer isVip); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java index 2aceffa4..51a9334c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java @@ -19,23 +19,26 @@ public interface TbShopUserFlowMapper extends BaseMapper { * @param shopId 店铺ID * @param startTime 开始时间 * @param endTime 结束时间 - * @param types 流水类型 * @return 用户流水总金额 */ @Select("") BigDecimal sumUserFlowAmountByConditions(@Param("shopId") Long shopId, @Param("startTime") String startTime, - @Param("endTime") String endTime, - @Param("types") List types); + @Param("endTime") String endTime); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java index c55bbddc..ae55eb02 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java @@ -12,5 +12,5 @@ import java.util.List; */ public interface TbShopUserFlowService extends IService { - BigDecimal sumUserFlowAmountByConditions(Long shopId, String startTime, String endTime, List types); + BigDecimal sumUserFlowAmountByConditions(Long shopId, String startTime, String endTime); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java index 7a051c64..eec93bd5 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java @@ -15,7 +15,7 @@ import java.util.List; @Service public class TbShopUserFlowServiceImpl extends ServiceImpl implements TbShopUserFlowService { @Override - public BigDecimal sumUserFlowAmountByConditions(Long shopId, String startTime, String endTime, List types) { - return baseMapper.sumUserFlowAmountByConditions(shopId, startTime, endTime, types); + public BigDecimal sumUserFlowAmountByConditions(Long shopId, String startTime, String endTime) { + return baseMapper.sumUserFlowAmountByConditions(shopId, startTime, endTime); } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductSku.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductSku.java index 4c83db0a..34330430 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductSku.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/product/TbProductSku.java @@ -1,33 +1,17 @@ -/* -* Copyright 2019-2020 Zheng Jie -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ package cn.ysk.cashier.pojo.product; -import cn.hutool.json.JSON; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import cn.hutool.core.bean.BeanUtil; import io.swagger.annotations.ApiModelProperty; -import cn.hutool.core.bean.copier.CopyOptions; +import lombok.Data; + import javax.persistence.*; -import javax.validation.constraints.*; -import java.math.BigDecimal; +import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.math.BigDecimal; /** * @website https://eladmin.vip @@ -85,6 +69,9 @@ public class TbProductSku implements Serializable { @ApiModelProperty(value = "进货参考价") private BigDecimal guidePrice; + @ApiModelProperty(value = "起售数量 默认为1") + private Integer suit = 1; + @Column(name = "`strategy_price`") @ApiModelProperty(value = "strategyPrice") private BigDecimal strategyPrice; @@ -132,13 +119,17 @@ public class TbProductSku implements Serializable { @Column(name = "`updated_at`") @ApiModelProperty(value = "updatedAt") private Long updatedAt; - public void copy(TbProductSku source){ - BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); - } + + @Column(name = "`is_del`") + private Integer isDel; @Column(name = "`is_pause_sale`") @ApiModelProperty(value = "是否暂停销售") private Integer isPauseSale = 0; + public void copy(TbProductSku source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java index 6b11ddce..63fc21fe 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java @@ -23,10 +23,10 @@ import java.util.List; **/ public interface TbProductSkuRepository extends JpaRepository, JpaSpecificationExecutor { - @Query("SELECT sku FROM TbProductSku sku WHERE sku.productId IN :productId") + @Query("SELECT sku FROM TbProductSku sku WHERE sku.productId IN :productId and sku.isDel=0") List searchSku(@Param("productId")List productId); - @Query("SELECT sku FROM TbProductSku sku WHERE sku.productId = :productId") + @Query("SELECT sku FROM TbProductSku sku WHERE sku.productId = :productId and sku.isDel=0") List searchSku(@Param("productId")String productId); @Transactional @@ -34,7 +34,12 @@ public interface TbProductSkuRepository extends JpaRepository skuList = new ArrayList<>(); - for (TbProductSku sku : resources.getSkuList()) { - TbProductSku tbProductSku = tbProductSkuRepository.searchBarCode(sku.getBarCode()); - if (tbProductSku != null) { - tbProductSkuRepository.updateByBarCode(sku.getBarCode(), sku.getCostPrice(), sku.getCoverImg(), sku.getFirstShared(), sku.getMemberPrice(), - sku.getOriginPrice(), sku.getSalePrice(), sku.getSpecSnap(), tbProductSku.getId()); - } else { - if ("sku".equals(save.getTypeEnum())) { - tbProductSkuRepository.deleteByProductId(String.valueOf(save.getId())); +// List skuList = new ArrayList<>(); +// for (TbProductSku sku : resources.getSkuList()) { +// TbProductSku tbProductSku = tbProductSkuRepository.searchBarCode(sku.getBarCode()); +// if (tbProductSku != null) { +// tbProductSkuRepository.updateByBarCode(sku.getBarCode(), sku.getCostPrice(), sku.getCoverImg(), sku.getFirstShared(), sku.getMemberPrice(), +// sku.getOriginPrice(), sku.getSalePrice(), sku.getSpecSnap(), tbProductSku.getId()); +// } else { +// if ("sku".equals(save.getTypeEnum())) { +// tbProductSkuRepository.deleteByProductId(String.valueOf(save.getId())); +// } +// sku.setProductId(String.valueOf(save.getId())); +// sku.setShopId(save.getShopId()); +// sku.setCreatedAt(Instant.now().toEpochMilli()); +// sku.setUpdatedAt(Instant.now().toEpochMilli()); +// skuList.add(sku); +// } +// } + if ("sku".equals(save.getTypeEnum())) { + List collect = resources.getSkuList().stream().map(TbProductSku::getId).collect(Collectors.toList()); + List tbProductSkus = tbProductSkuRepository.searchSku(resources.getId().toString()); + for (TbProductSku productSkus : tbProductSkus) { + if (!collect.contains(productSkus.getId())) { + tbProductSkuRepository.deleteBySkuId(productSkus.getId().toString()); } - sku.setProductId(String.valueOf(save.getId())); - sku.setShopId(save.getShopId()); - sku.setCreatedAt(Instant.now().toEpochMilli()); - sku.setUpdatedAt(Instant.now().toEpochMilli()); - skuList.add(sku); } } - tbProductSkuRepository.saveAll(skuList); + tbProductSkuRepository.saveAll(resources.getSkuList()); } //保存到sku_result if ("sku".equals(resources.getTypeEnum())) { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index e1b011c7..86393543 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -1,6 +1,7 @@ package cn.ysk.cashier.service.impl.shopimpl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; import cn.ysk.cashier.dto.shop.TbShopRechargeRespDto; import cn.ysk.cashier.dto.shop.TbShopUserDto; @@ -49,8 +50,21 @@ public class TbShopUserServiceImpl implements TbShopUserService { @Override public Map queryShopUser(TbShopUserQueryCriteria criteria) { - IPage iPage = shopUserMapper.queryUser(criteria, + IPage iPage = shopUserMapper.queryUser(criteria, criteria.getIsVip(), new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(criteria.getPage(), criteria.getSize())); + + for (ShopUserInfoVo shopUserInfoVo : iPage.getRecords()) { + if (StrUtil.isBlank(shopUserInfoVo.getNickName())) { + tbShopUserRepository.findById(shopUserInfoVo.getId()).ifPresent(tbShopUser -> { + shopUserInfoVo.setNickName(tbShopUser.getName()); + shopUserInfoVo.setBirthDay(tbShopUser.getBirthDay()); + shopUserInfoVo.setHeadImg(tbShopUser.getHeadImg()); + shopUserInfoVo.setTelephone(tbShopUser.getTelephone()); + shopUserInfoVo.setTotalScore(0); + }); + } + } + return PageUtil.toPlusPage(iPage.getRecords(), Integer.valueOf(iPage.getTotal() + "")); }