diff --git a/src/main/java/com/yxt/yyth/api/lpkgiftbag/GiftBagGoods.java b/src/main/java/com/yxt/yyth/api/lpkgiftbag/GiftBagGoods.java new file mode 100644 index 0000000..5bf063f --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/lpkgiftbag/GiftBagGoods.java @@ -0,0 +1,17 @@ +package com.yxt.yyth.api.lpkgiftbag; + +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/11/22 11:08 + */ +@Data +public class GiftBagGoods { + private String goodsSid; + private String goodsNumber; + private String name; //商品名 + private String unitName; //单位 + private String price; //商品单价 +} diff --git a/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagDto.java b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagDto.java index 61b889b..1cdd66f 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagDto.java +++ b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagDto.java @@ -1,9 +1,15 @@ package com.yxt.yyth.api.lpkgiftbag; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.dto.Dto; import io.swagger.annotations.ApiModel; import lombok.Data; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.UUID; + /** * @author wangpengfei * @date 2023/11/21 15:13 @@ -11,4 +17,15 @@ import lombok.Data; @ApiModel(value = "礼包信息 数据传输对象", description = "礼包信息 数据传输对象") @Data public class LpkGiftBagDto implements Dto { + + private String sid; + private String remarks; + private String dateStart; + private String dateEnd; + private String name; + private String boundary; + private String boundaryPrice; + private String iconUrl; + //商品sid + private List goods = new ArrayList<>(); } diff --git a/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagInitVo.java b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagInitVo.java new file mode 100644 index 0000000..e4ae754 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagInitVo.java @@ -0,0 +1,26 @@ +package com.yxt.yyth.api.lpkgiftbag; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/11/22 11:15 + */ +@Data +public class LpkGiftBagInitVo implements Vo { + private String sid; + private String remarks; + private String dateStart; + private String dateEnd; + private String name; + private String boundary; + private String boundaryPrice; + private String iconUrl; + //商品sid + private List goods = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagQuery.java b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagQuery.java index 4f17900..37a1fdb 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagQuery.java +++ b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagQuery.java @@ -11,5 +11,5 @@ import lombok.Data; @ApiModel(value = "礼包信息 查询条件", description = "礼包信息 查询条件") @Data public class LpkGiftBagQuery implements Query { - + private String name; } diff --git a/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagVo.java b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagVo.java index a96f226..3bd0016 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagVo.java +++ b/src/main/java/com/yxt/yyth/api/lpkgiftbag/LpkGiftBagVo.java @@ -13,5 +13,11 @@ import lombok.NoArgsConstructor; @ApiModel(value = "礼包信息 视图数据对象", description = "礼包信息 视图数据对象") @NoArgsConstructor public class LpkGiftBagVo implements Vo { - + private String sid; + private String name; + private String dateStart; + private String dateEnd; + private String boundary; + private String boundaryPrice; + private String iconUrl; } diff --git a/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsDetailsVo.java b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsDetailsVo.java new file mode 100644 index 0000000..b753c32 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsDetailsVo.java @@ -0,0 +1,28 @@ +package com.yxt.yyth.api.lpkgoods; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.Date; +import java.util.UUID; + +/** + * @author Administrator + * @description + * @date 2023/11/22 9:48 + */ +@Data +public class LpkGoodsDetailsVo implements Vo { + + private String sid; + private String createTime; + private String remarks; + private String code; + private String barcode; + private String name; + private String unitName; + private String typeCode; + private String price; + private String picUrl; +} diff --git a/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsDto.java b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsDto.java index c4947f6..ca236d4 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsDto.java +++ b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsDto.java @@ -11,4 +11,13 @@ import lombok.Data; @ApiModel(value = "商品信息 数据传输对象", description = "商品信息 数据传输对象") @Data public class LpkGoodsDto implements Dto { + private String sid; + private String remarks; + private String code; + private String barcode; + private String name; + private String unitName; + private String typeCode; + private String price; + private String picUrl; } diff --git a/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsQuery.java b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsQuery.java index c2d73e2..3eba224 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsQuery.java +++ b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsQuery.java @@ -11,5 +11,5 @@ import lombok.Data; @ApiModel(value = "商品信息 查询条件", description = "商品信息 查询条件") @Data public class LpkGoodsQuery implements Query { - + private String name; } diff --git a/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsVo.java b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsVo.java index 4819a38..06b9f80 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsVo.java +++ b/src/main/java/com/yxt/yyth/api/lpkgoods/LpkGoodsVo.java @@ -1,10 +1,14 @@ package com.yxt.yyth.api.lpkgoods; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; +import java.util.UUID; + /** * @author wangpengfei * @date 2023/11/21 15:12 @@ -14,4 +18,15 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class LpkGoodsVo implements Vo { + private String sid; + private String createTime; + private String remarks; + private String code; + private String barcode; + private String name; + private String unitName; + private String typeCode; + private String price; + private String picUrl; + } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.java index d9a1b55..38e9a5e 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.yyth.api.lpkcustomer.LpkCustomer; import com.yxt.yyth.api.lpkcustomer.LpkCustomerVo; import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; +import com.yxt.yyth.api.lpkgiftbag.LpkGiftBagVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,4 +19,5 @@ import org.apache.ibatis.annotations.Param; public interface LpkGiftBagMapper extends BaseMapper { + IPage giftBagListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.xml b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.xml index 7dce33f..7dbdeb1 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.xml +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagMapper.xml @@ -4,4 +4,18 @@ + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagRest.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagRest.java index 56b3742..1e3e2f0 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagRest.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagRest.java @@ -6,6 +6,11 @@ import com.yxt.common.core.vo.PagerVo; import com.yxt.yyth.api.lpkcustomer.LpkCustomerQuery; import com.yxt.yyth.api.lpkcustomer.LpkCustomerVo; import com.yxt.yyth.api.lpkcustomer.WxBindMobileDto; +import com.yxt.yyth.api.lpkgiftbag.LpkGiftBagDto; +import com.yxt.yyth.api.lpkgiftbag.LpkGiftBagQuery; +import com.yxt.yyth.api.lpkgiftbag.LpkGiftBagVo; +import com.yxt.yyth.api.lpkgoods.LpkGoodsQuery; +import com.yxt.yyth.api.lpkgoods.LpkGoodsVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -25,6 +30,28 @@ public class LpkGiftBagRest { LpkGiftBagService lpkGiftBagService; - + @ApiOperation("礼包信息列表") + @PostMapping("/giftBagListPage") + public ResultBean> giftBagListPage(@RequestBody PagerQuery pq) { + return lpkGiftBagService.giftBagListPage(pq); + } + + @ApiOperation("保存修改") + @PostMapping("/saveGiftBag") + public ResultBean saveGiftBag(@RequestBody LpkGiftBagDto dto) { + return lpkGiftBagService.saveGiftBag(dto); + } + + @ApiOperation("礼包初始化") + @PostMapping("/giftBagInit/{sid}") + public ResultBean giftBagInit(@PathVariable String sid) { + return lpkGiftBagService.giftBagInit(sid); + } + + @ApiOperation("删除礼包") + @DeleteMapping("/deleteBag/{sid}") + public ResultBean deleteBag(@PathVariable("sid") String sid) { + return lpkGiftBagService.deleteBag(sid); + } } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java index 87beecc..987c245 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java @@ -1,9 +1,32 @@ package com.yxt.yyth.biz.lpkgiftbag; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; import com.yxt.yyth.api.lpkcustomer.LpkCustomer; -import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; +import com.yxt.yyth.api.lpkgiftbag.*; +import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoods; +import com.yxt.yyth.api.lpkgoods.LpkGoods; +import com.yxt.yyth.api.lpkgoods.LpkGoodsQuery; +import com.yxt.yyth.api.lpkgoods.LpkGoodsVo; +import com.yxt.yyth.biz.lpkgiftbaggoods.LpkGiftBagGoodsService; +import com.yxt.yyth.biz.lpkgoods.LpkGoodsService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** * @author wangpengfei @@ -12,4 +35,139 @@ import org.springframework.stereotype.Service; @Service public class LpkGiftBagService extends MybatisBaseService { + @Autowired + private FileUploadComponent fileUploadComponent; + @Autowired + private LpkGiftBagGoodsService lpkGiftBagGoodsService; + @Autowired + private LpkGoodsService lpkGoodsService; + + public ResultBean> giftBagListPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + LpkGiftBagQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getName())) { + qw.like("name", query.getName()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.giftBagListPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + List records = pagging.getRecords(); + records.removeAll(Collections.singleton(null)); + if (!records.isEmpty()) { + for (LpkGiftBagVo record : records) { + if (StringUtils.isNotBlank(record.getIconUrl())) { + record.setIconUrl(fileUploadComponent.getUrlPrefix() + record.getIconUrl()); + } + } + } + return rb.success().setData(p); + } + + @Transactional(rollbackFor = Exception.class) + public ResultBean saveGiftBag(LpkGiftBagDto dto) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isNotBlank(dto.getSid())) { + lpkGiftBagGoodsService.deleteGoodsByBagSid(dto.getSid()); + LpkGiftBag lpkGiftBag = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, lpkGiftBag, "id", "sid"); + lpkGiftBag.setCreateTime(new DateTime()); + if (StringUtils.isNotBlank(dto.getIconUrl())) { + String urlPrefix = fileUploadComponent.getUrlPrefix(); + String path = dto.getIconUrl().substring(urlPrefix.length()); + lpkGiftBag.setIconUrl(path); + } + baseMapper.updateById(lpkGiftBag); + if (!dto.getGoods().isEmpty()) { + List goodsList = dto.getGoods(); + for (GiftBagGoods goods : goodsList) { + LpkGiftBagGoods lpkGiftBagGoods = new LpkGiftBagGoods(); + lpkGiftBagGoods.setCreateTime(new DateTime()); + lpkGiftBagGoods.setGoodsSid(goods.getGoodsSid()); + lpkGiftBagGoods.setGiftbagSid(lpkGiftBag.getSid()); + lpkGiftBagGoods.setGoodsNumber(goods.getGoodsNumber()); + lpkGiftBagGoodsService.insert(lpkGiftBagGoods); + } + } + } else { + LpkGiftBag lpkGiftBag = new LpkGiftBag(); + BeanUtil.copyProperties(dto, lpkGiftBag, "id", "sid"); + lpkGiftBag.setCreateTime(new DateTime()); + if (StringUtils.isNotBlank(dto.getIconUrl())) { + String urlPrefix = fileUploadComponent.getUrlPrefix(); + String path = dto.getIconUrl().substring(urlPrefix.length()); + lpkGiftBag.setIconUrl(path); + } + baseMapper.insert(lpkGiftBag); + if (!dto.getGoods().isEmpty()) { + List goodsList = dto.getGoods(); + for (GiftBagGoods goods : goodsList) { + LpkGiftBagGoods lpkGiftBagGoods = new LpkGiftBagGoods(); + lpkGiftBagGoods.setCreateTime(new DateTime()); + lpkGiftBagGoods.setGoodsSid(goods.getGoodsSid()); + lpkGiftBagGoods.setGiftbagSid(lpkGiftBag.getSid()); + lpkGiftBagGoods.setGoodsNumber(goods.getGoodsNumber()); + lpkGiftBagGoodsService.insert(lpkGiftBagGoods); + } + } + } + return rb.success(); + } + + public ResultBean giftBagInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + LpkGiftBagInitVo vo = new LpkGiftBagInitVo(); + LpkGiftBag entity = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (null != entity) { + BeanUtil.copyProperties(entity, vo); + if (null != entity.getDateStart()) { + vo.setDateStart(sdf.format(entity.getDateStart())); + } + if (null != entity.getDateEnd()) { + vo.setDateEnd(sdf.format(entity.getDateEnd())); + } + if (StringUtils.isNotBlank(entity.getIconUrl())) { + vo.setIconUrl(fileUploadComponent.getUrlPrefix() + entity.getIconUrl()); + } + List goods = new ArrayList<>(); + List records = lpkGiftBagGoodsService.getRecordsByBagSid(sid); + if (!records.isEmpty()) { + for (LpkGiftBagGoods record : records) { + GiftBagGoods bagGoods = new GiftBagGoods(); + if (StringUtils.isNotBlank(record.getGoodsNumber())) { + bagGoods.setGoodsNumber(record.getGoodsNumber()); + } + if (StringUtils.isNotBlank(record.getGoodsSid())) { + bagGoods.setGoodsSid(record.getGoodsSid()); + LpkGoods lpkGoods = lpkGoodsService.fetchBySid(record.getGoodsSid()); + if (null != lpkGoods) { + if (StringUtils.isNotBlank(lpkGoods.getName())) { + bagGoods.setName(lpkGoods.getName()); + } + if (StringUtils.isNotBlank(lpkGoods.getUnitName())) { + bagGoods.setUnitName(lpkGoods.getUnitName()); + } + if (StringUtils.isNotBlank(lpkGoods.getPrice())) { + bagGoods.setPrice(lpkGoods.getPrice()); + } + } + } + goods.add(bagGoods); + } + } + vo.setGoods(goods); + } + return rb.success().setData(vo); + } + + public ResultBean deleteBag(String sid) { + ResultBean rb = ResultBean.fireFail(); + LpkGiftBag lpkGiftBag = fetchBySid(sid); + if (null != lpkGiftBag) { + baseMapper.deleteById(lpkGiftBag.getId()); + lpkGiftBagGoodsService.deleteGoodsByBagSid(sid); + } + return rb.success(); + } } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java index 105ae45..1b9be6a 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java @@ -5,6 +5,8 @@ import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoods; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @author wangpengfei * @date 2023/11/21 15:03 @@ -13,4 +15,7 @@ import org.apache.ibatis.annotations.Mapper; public interface LpkGiftBagGoodsMapper extends BaseMapper { + int deleteGoodsByBagSid(String sid); + + List getRecordsByBagSid(String sid); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml index abdc71b..85ea883 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml @@ -4,4 +4,14 @@ + + DELETE + FROM lpk_giftbag_goods + WHERE giftbagSid = # {sid} + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java index 84bb84a..8e4b042 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java @@ -5,6 +5,8 @@ import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoods; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author wangpengfei * @date 2023/11/21 15:03 @@ -12,4 +14,12 @@ import org.springframework.stereotype.Service; @Service public class LpkGiftBagGoodsService extends MybatisBaseService { + public int deleteGoodsByBagSid(String sid) { + return baseMapper.deleteGoodsByBagSid(sid); + } + + public List getRecordsByBagSid(String sid) { + return baseMapper.getRecordsByBagSid(sid); + } + } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.java b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.java index 5a1a134..2d39c98 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.java @@ -1,9 +1,16 @@ package com.yxt.yyth.biz.lpkgoods; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; import com.yxt.yyth.api.lpkgoods.LpkGoods; +import com.yxt.yyth.api.lpkgoods.LpkGoodsVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author wangpengfei @@ -13,4 +20,7 @@ import org.apache.ibatis.annotations.Mapper; public interface LpkGoodsMapper extends BaseMapper { + IPage goodsListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + List getGoods(); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.xml b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.xml index 84a692c..29c2889 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.xml +++ b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsMapper.xml @@ -4,4 +4,32 @@ + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java index eece607..898b02e 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsRest.java @@ -1,9 +1,17 @@ package com.yxt.yyth.biz.lpkgoods; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.yyth.api.lpkcustomer.LpkCustomerQuery; +import com.yxt.yyth.api.lpkcustomer.LpkCustomerVo; +import com.yxt.yyth.api.lpkgoods.*; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * @author wangpengfei @@ -19,6 +27,33 @@ public class LpkGoodsRest { LpkGoodsService lpkGoodsService; - - + @ApiOperation("商品信息列表") + @PostMapping("/goodsListPage") + public ResultBean> goodsListPage(@RequestBody PagerQuery pq) { + return lpkGoodsService.goodsListPage(pq); + } + + @ApiOperation("保存修改") + @PostMapping("/saveGoods") + public ResultBean saveGoods(@RequestBody LpkGoodsDto dto) { + return lpkGoodsService.saveGoods(dto); + } + + @ApiOperation("初始化商品") + @GetMapping("/goodsInit/{sid}") + public ResultBean goodsInit(@PathVariable("sid") String sid) { + return lpkGoodsService.goodsInit(sid); + } + + @ApiOperation("批量删除商品") + @DeleteMapping("/deleteGoods/{sid}") + public ResultBean deleteGoods(@PathVariable("sid") String sid) { + return lpkGoodsService.deleteGoods(sid); + } + + @ApiOperation("礼包选择获取商品信息列表") + @PostMapping("/getGoods") + public ResultBean> getGoods() { + return lpkGoodsService.getGoods(); + } } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java index cdc4d16..ac7f36d 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgoods/LpkGoodsService.java @@ -1,10 +1,24 @@ package com.yxt.yyth.biz.lpkgoods; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; -import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; -import com.yxt.yyth.api.lpkgoods.LpkGoods; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.yyth.api.lpkgoods.*; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; +import java.util.Collections; +import java.util.List; + /** * @author wangpengfei * @date 2023/11/21 15:03 @@ -12,4 +26,84 @@ import org.springframework.stereotype.Service; @Service public class LpkGoodsService extends MybatisBaseService { + @Autowired + private FileUploadComponent fileUploadComponent; + + + public ResultBean> goodsListPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + LpkGoodsQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getName())) { + qw.like("name", query.getName()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.goodsListPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + List records = pagging.getRecords(); + records.removeAll(Collections.singleton(null)); + if (!records.isEmpty()) { + for (LpkGoodsVo record : records) { + if (StringUtils.isNotBlank(record.getPicUrl())) { + record.setPicUrl(fileUploadComponent.getUrlPrefix() + record.getPicUrl()); + } + } + } + return rb.success().setData(p); + } + + public ResultBean saveGoods(LpkGoodsDto dto) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isNotBlank(dto.getSid())) { + LpkGoods lpkGoods = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, lpkGoods, "id", "sid"); + if (StringUtils.isNotBlank(dto.getPicUrl())) { + String urlPrefix = fileUploadComponent.getUrlPrefix(); + String path = dto.getPicUrl().substring(urlPrefix.length()); + lpkGoods.setPicUrl(path); + } + baseMapper.updateById(lpkGoods); + } else { + LpkGoods lpkGoods = new LpkGoods(); + BeanUtil.copyProperties(dto, lpkGoods, "id", "sid"); + lpkGoods.setCreateTime(new DateTime()); + if (StringUtils.isNotBlank(dto.getPicUrl())) { + String urlPrefix = fileUploadComponent.getUrlPrefix(); + String path = dto.getPicUrl().substring(urlPrefix.length()); + lpkGoods.setPicUrl(path); + } + baseMapper.insert(lpkGoods); + } + return rb.success(); + } + + public ResultBean goodsInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + LpkGoodsDetailsVo vo = new LpkGoodsDetailsVo(); + LpkGoods lpkGoods = fetchBySid(sid); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + if (null != lpkGoods) { + BeanUtil.copyProperties(lpkGoods, vo); + if (StringUtils.isNotBlank(lpkGoods.getPicUrl())) { + vo.setPicUrl(fileUploadComponent.getUrlPrefix() + lpkGoods.getPicUrl()); + } + vo.setCreateTime(sdf.format(lpkGoods.getCreateTime())); + } + return rb.success().setData(vo); + } + + public ResultBean deleteGoods(String sid) { + ResultBean rb = ResultBean.fireFail(); + LpkGoods lpkGoods = fetchBySid(sid); + if (null != lpkGoods) { + baseMapper.deleteById(lpkGoods.getId()); + } + return rb.success(); + } + + public ResultBean> getGoods() { + ResultBean rb = ResultBean.fireFail(); + List list = baseMapper.getGoods(); + return rb.success().setData(list); + } } diff --git a/src/main/resources/application-devv.yml b/src/main/resources/application-devv.yml index 834052c..1871774 100644 --- a/src/main/resources/application-devv.yml +++ b/src/main/resources/application-devv.yml @@ -24,10 +24,8 @@ spring: timeout: 0 # 连接超时时间(毫秒) image: + xlsxtmpl: E:/code/yxt-yyth/target/classes/static/upload/ upload: - path: D:\supervise\upload\ + path: E:/code/yxt-yyth/target/classes/static/upload/ url: - prefix: http://127.0.0.1:8112/upload/ -import: - filePath: d:/yxt-supervise-gf/upload/ - + prefix: http://192.168.0.104:7201/upload/