40 changed files with 1122 additions and 175 deletions
@ -0,0 +1,35 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbag; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
import java.util.UUID; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:06 |
|||
*/ |
|||
@ApiModel(value = "礼包信息", description = "礼包信息") |
|||
@TableName("applet_giftbag") |
|||
@Data |
|||
public class RecommendNewUserBag { |
|||
private String id; |
|||
private String sid = UUID.randomUUID().toString(); |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date createTime; |
|||
private String remarks; |
|||
private String isEnable; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date dateStart; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date dateEnd; |
|||
private String name; |
|||
private String price; |
|||
private String iconUrl; |
|||
private String isGrounding; |
|||
private String isRecommend; |
|||
private String preferentialPrice; |
|||
} |
@ -0,0 +1,27 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbag; |
|||
|
|||
import com.yxt.yythmall.api.appletgiftbag.GiftBagGoods; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2024/1/6 15:39 |
|||
*/ |
|||
@Data |
|||
public class RecommendNewUserBagDetailVo { |
|||
private String sid; |
|||
private String name; |
|||
private String dateStart; |
|||
private String dateEnd; |
|||
private String price; |
|||
private String iconUrl; |
|||
private String isEnable; |
|||
private String isGrounding; |
|||
private String isRecommend; |
|||
private String remark; |
|||
private String count; |
|||
private List<GiftBagGoods> goods = new ArrayList<>(); |
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbag; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import com.yxt.yythmall.api.appletgiftbag.GiftBagGoods; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:13 |
|||
*/ |
|||
@ApiModel(value = "礼包信息 数据传输对象", description = "礼包信息 数据传输对象") |
|||
@Data |
|||
public class RecommendNewUserBagDto implements Dto { |
|||
|
|||
private String sid; |
|||
private String remarks; |
|||
private String dateStart; |
|||
private String dateEnd; |
|||
private String name; |
|||
private String price; |
|||
private String iconUrl; |
|||
private String isGrounding; |
|||
private String isRecommend; |
|||
private String preferentialPrice; |
|||
//商品sid
|
|||
private List<GiftBagGoods> goods = new ArrayList<>(); |
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbag; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import com.yxt.yythmall.api.appletgiftbag.GiftBagGoods; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/11/22 11:15 |
|||
*/ |
|||
@Data |
|||
public class RecommendNewUserBagInitVo implements Vo { |
|||
private String sid; |
|||
private String remarks; |
|||
private String dateStart; |
|||
private String dateEnd; |
|||
private String name; |
|||
private String price; |
|||
private String iconUrl; |
|||
private String isRecommend; |
|||
private String preferentialPrice; |
|||
//商品sid
|
|||
private List<GiftBagGoods> goods = new ArrayList<>(); |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbag; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:31 |
|||
*/ |
|||
@ApiModel(value = "礼包信息 查询条件", description = "礼包信息 查询条件") |
|||
@Data |
|||
public class RecommendNewUserBagQuery implements Query { |
|||
private String name; |
|||
} |
@ -0,0 +1,45 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbag; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import com.yxt.yythmall.api.appletgiftbag.GiftBagGoods; |
|||
import com.yxt.yythmall.api.appletgiftbag.RecommendRecord; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
import java.text.DecimalFormat; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:12 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "礼包信息 视图数据对象", description = "礼包信息 视图数据对象") |
|||
@NoArgsConstructor |
|||
public class RecommendNewUserBagVo implements Vo { |
|||
private String sid; |
|||
private String name;//
|
|||
private String dateStart; |
|||
private String dateEnd; |
|||
private String price;//礼包总价格
|
|||
private String prefPrice;//优惠价格
|
|||
private String iconUrl;//图片
|
|||
private String isEnable; |
|||
private String isGrounding; |
|||
private String isRecommend;//是否推荐 1 推荐 0 默认
|
|||
private String remarks; |
|||
private String count;//
|
|||
private String goodsSid; |
|||
private String weight="0";//重量
|
|||
private List<GiftBagGoods> giftBagGoods; |
|||
private List<RecommendRecord> recordList; |
|||
|
|||
public String getPrice() { |
|||
DecimalFormat decimalFormat = new DecimalFormat("#0.00"); |
|||
if(null==price){ |
|||
price="0"; |
|||
} |
|||
return price=decimalFormat.format(Double.valueOf(price)); |
|||
} |
|||
} |
@ -0,0 +1,29 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbagdetails; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
import java.util.UUID; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:06 |
|||
*/ |
|||
@ApiModel(value = "礼包包含商品信息", description = "礼包包含商品信息") |
|||
@TableName("applet_giftbag_goods") |
|||
@Data |
|||
public class RecommendNewUserBagDetails { |
|||
private String id; |
|||
private String sid = UUID.randomUUID().toString(); |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date createTime; |
|||
private String remarks; |
|||
private String giftbagSid; |
|||
private String goodsSid; |
|||
private String goodsNumber; |
|||
// private String isGrounding;
|
|||
private double price; |
|||
} |
@ -0,0 +1,14 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbagdetails; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:13 |
|||
*/ |
|||
@ApiModel(value = "礼包包含商品信息 数据传输对象", description = "礼包包含商品信息 数据传输对象") |
|||
@Data |
|||
public class RecommendNewUserBagDetailsDto implements Dto { |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbagdetails; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:31 |
|||
*/ |
|||
@ApiModel(value = "礼包包含商品信息 查询条件", description = "礼包包含商品信息 查询条件") |
|||
@Data |
|||
public class RecommendNewUserBagDetailsQuery implements Query { |
|||
|
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.yythmall.api.recommendnewuserbagdetails; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
import lombok.NoArgsConstructor; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:12 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "礼包包含商品信息 视图数据对象", description = "礼包包含商品信息 视图数据对象") |
|||
@NoArgsConstructor |
|||
public class RecommendNewUserBagDetailsVo implements Vo { |
|||
private String goodsName; |
|||
private double goodsNumber; |
|||
private String picUrl; |
|||
private String goodsSid; |
|||
private String price; |
|||
private String unitName; |
|||
private String remarks; |
|||
} |
@ -0,0 +1,29 @@ |
|||
package com.yxt.yythmall.biz.recommendnewuserbag; |
|||
|
|||
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.yythmall.api.appletgiftbag.GiftBagGoodss; |
|||
import com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBag; |
|||
import com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBagVo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:03 |
|||
*/ |
|||
@Mapper |
|||
public interface RecommendNewUserBagMapper extends BaseMapper<RecommendNewUserBag> { |
|||
|
|||
|
|||
IPage<RecommendNewUserBagVo> giftBagListPage(IPage<RecommendNewUserBag> page, @Param(Constants.WRAPPER) QueryWrapper<RecommendNewUserBag> qw); |
|||
List<RecommendNewUserBagVo> giftBagList(); |
|||
|
|||
List<RecommendNewUserBagVo> giftBagGoodsList(); |
|||
List<GiftBagGoodss> getGoodsByBagSid(@Param("bagSid") String bagSid); |
|||
int saveBags(@Param("bags") List<RecommendNewUserBag> bags); |
|||
} |
@ -0,0 +1,62 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.yythmall.biz.recommendnewuserbag.RecommendNewUserBagMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
|
|||
<insert id="saveBags" parameterType="java.util.List"> |
|||
insert into lpk_giftbag(sid,createTime,`name`,dateStart,dateEnd) |
|||
values |
|||
<foreach collection="bags" item="item" index="index" separator=","> |
|||
(#{item.sid},#{item.createTime},#{item.name},#{item.dateStart},#{item.dateEnd}) |
|||
</foreach> |
|||
</insert> |
|||
|
|||
<select id="giftBagListPage" resultType="com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBagVo"> |
|||
select |
|||
sid, |
|||
`name`, |
|||
date_format(dateStart, '%Y-%m-%d') as dateStart, |
|||
date_format(dateEnd, '%Y-%m-%d') as dateEnd, |
|||
price, |
|||
iconUrl, |
|||
isEnable, |
|||
isGrounding, |
|||
isRecommend |
|||
from recommend_newuser_bag |
|||
<where> |
|||
${ew.sqlSegment} |
|||
</where> |
|||
</select> |
|||
<select id="giftBagList" resultType="com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBagVo"> |
|||
select |
|||
* |
|||
from recommend_newuser_bag |
|||
where isGrounding=1 |
|||
order by isRecommend desc,createTime desc |
|||
</select> |
|||
<select id="giftBagGoodsList" resultType="com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBagVo"> |
|||
select |
|||
a.sid, |
|||
a.name , |
|||
a.iconUrl, |
|||
a.price , |
|||
a.preferentialPrice as prefPrice |
|||
from recommend_newuser_bag a |
|||
</select> |
|||
<select id="getGoodsByBagSid" resultType="com.yxt.yythmall.api.appletgiftbag.GiftBagGoodss"> |
|||
select |
|||
a.preferentialPrice as prefPrice, |
|||
c.name as name, |
|||
c.sid as goodsSid, |
|||
c.specificationUnit as specificationUnit, |
|||
c.unitName as unitName, |
|||
b.goodsNumber as goodsNumber, |
|||
c.weight as weight |
|||
from recommend_newuser_bag a |
|||
left join recommend_newuser_bag_details b on b.giftbagSid=a.sid |
|||
left join lpk_goods c on c.sid =b.goodsSid |
|||
where a.sid=#{bagSid} |
|||
</select> |
|||
|
|||
</mapper> |
@ -0,0 +1,79 @@ |
|||
package com.yxt.yythmall.biz.recommendnewuserbag; |
|||
|
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBagDto; |
|||
import com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBagQuery; |
|||
import com.yxt.yythmall.api.recommendnewuserbag.RecommendNewUserBagVo; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:03 |
|||
*/ |
|||
|
|||
@Api(tags = "小程序礼包信息") |
|||
@RestController |
|||
@RequestMapping("RecommendNewUserBag") |
|||
public class RecommendNewUserBagRest { |
|||
|
|||
@Autowired |
|||
RecommendNewUserBagService recommendNewUserBagService; |
|||
|
|||
|
|||
@ApiOperation("礼包信息列表") |
|||
@PostMapping("/giftBagListPage") |
|||
public ResultBean<PagerVo<RecommendNewUserBagVo>> giftBagListPage(@RequestBody PagerQuery<RecommendNewUserBagQuery> pq) { |
|||
return recommendNewUserBagService.giftBagListPage(pq); |
|||
} |
|||
|
|||
@ApiOperation("保存修改") |
|||
@PostMapping("/saveGiftBag") |
|||
public ResultBean<String> saveGiftBag(@RequestBody RecommendNewUserBagDto dto) { |
|||
return recommendNewUserBagService.saveGiftBag(dto); |
|||
} |
|||
|
|||
@ApiOperation("礼包初始化") |
|||
@GetMapping("/giftBagInit/{sid}") |
|||
public ResultBean giftBagInit(@PathVariable String sid) { |
|||
return recommendNewUserBagService.giftBagInit(sid); |
|||
} |
|||
|
|||
@ApiOperation("删除礼包") |
|||
@DeleteMapping("/deleteBag/{sid}") |
|||
public ResultBean deleteBag(@PathVariable("sid") String sid) { |
|||
return recommendNewUserBagService.deleteBag(sid); |
|||
} |
|||
@ApiOperation("礼包信息列表") |
|||
@GetMapping("/giftBagList") |
|||
public ResultBean giftBagList() { |
|||
return recommendNewUserBagService.giftBagList(); |
|||
} |
|||
@GetMapping("/isGrounding/{sid}/{state}") |
|||
@ApiOperation(value = "设置是否上下架") |
|||
public ResultBean isGrounding(@PathVariable("sid")String sid,@PathVariable("state") String state) { |
|||
return recommendNewUserBagService.isGrounding(sid, state); |
|||
} |
|||
@ApiOperation("小程序礼包信息列表") |
|||
@GetMapping("/recommendNewUserBagList") |
|||
public ResultBean<List<RecommendNewUserBagVo>> recommendNewUserBagList() { |
|||
return recommendNewUserBagService.recommendNewUserBagList(); |
|||
} |
|||
@ApiOperation("礼包初始化") |
|||
@GetMapping("/getGiftBagBySid/{sid}") |
|||
public ResultBean getGiftBagBySid(@PathVariable String sid) { |
|||
return recommendNewUserBagService.getGiftBagBySid(sid); |
|||
} |
|||
|
|||
@ApiOperation("新人专属购买礼包") |
|||
@PostMapping("/newUserQuota") |
|||
public ResultBean newUserQuota() { |
|||
return recommendNewUserBagService.newUserQuota(); |
|||
} |
|||
} |
@ -0,0 +1,302 @@ |
|||
package com.yxt.yythmall.biz.recommendnewuserbag; |
|||
|
|||
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.yythmall.api.appletgiftbag.GiftBagGoods; |
|||
import com.yxt.yythmall.api.appletgiftbag.GiftBagGoodss; |
|||
import com.yxt.yythmall.api.appletgiftbag.RecommendRecord; |
|||
import com.yxt.yythmall.api.lpkgoods.LpkGoods; |
|||
import com.yxt.yythmall.api.recommendnewuserbag.*; |
|||
import com.yxt.yythmall.api.recommendnewuserbagdetails.RecommendNewUserBagDetails; |
|||
import com.yxt.yythmall.biz.lpkgoods.LpkGoodsService; |
|||
import com.yxt.yythmall.biz.recommendnewuserbagdetails.RecommendNewUserBagDetailsService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.text.DecimalFormat; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:03 |
|||
*/ |
|||
@Service |
|||
public class RecommendNewUserBagService extends MybatisBaseService<RecommendNewUserBagMapper, RecommendNewUserBag> { |
|||
|
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
@Autowired |
|||
private RecommendNewUserBagDetailsService recommendNewUserBagDetailsService; |
|||
@Autowired |
|||
private LpkGoodsService lpkGoodsService; |
|||
|
|||
public ResultBean<PagerVo<RecommendNewUserBagVo>> giftBagListPage(PagerQuery<RecommendNewUserBagQuery> pq) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
RecommendNewUserBagQuery query = pq.getParams(); |
|||
QueryWrapper<RecommendNewUserBag> qw = new QueryWrapper<>(); |
|||
qw.eq("1", "1"); |
|||
if (StringUtils.isNotBlank(query.getName())) { |
|||
qw.like("name", query.getName()); |
|||
} |
|||
qw.orderByDesc("isRecommend"); |
|||
qw.orderByDesc("createTime"); |
|||
IPage<RecommendNewUserBag> page = PagerUtil.queryToPage(pq); |
|||
IPage<RecommendNewUserBagVo> pagging = baseMapper.giftBagListPage(page, qw); |
|||
PagerVo<RecommendNewUserBagVo> p = PagerUtil.pageToVo(pagging, null); |
|||
List<RecommendNewUserBagVo> records = pagging.getRecords(); |
|||
records.removeAll(Collections.singleton(null)); |
|||
if (!records.isEmpty()) { |
|||
for (RecommendNewUserBagVo record : records) { |
|||
if (StringUtils.isNotBlank(record.getIconUrl())) { |
|||
record.setIconUrl(fileUploadComponent.getUrlPrefix() + record.getIconUrl()); |
|||
} |
|||
} |
|||
} |
|||
return rb.success().setData(p); |
|||
} |
|||
|
|||
@Transactional(rollbackFor = Exception.class) |
|||
public ResultBean<String> saveGiftBag(RecommendNewUserBagDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
String sid = ""; |
|||
if (StringUtils.isNotBlank(dto.getSid())) { |
|||
sid = dto.getSid(); |
|||
recommendNewUserBagDetailsService.deleteGoodsByBagSid(dto.getSid()); |
|||
RecommendNewUserBag RecommendNewUserBag = fetchBySid(dto.getSid()); |
|||
BeanUtil.copyProperties(dto, RecommendNewUserBag, "id", "sid"); |
|||
RecommendNewUserBag.setCreateTime(new DateTime()); |
|||
if (StringUtils.isNotBlank(dto.getIconUrl())) { |
|||
String urlPrefix = fileUploadComponent.getUrlPrefix(); |
|||
String path = dto.getIconUrl().substring(urlPrefix.length()); |
|||
RecommendNewUserBag.setIconUrl(path); |
|||
} |
|||
baseMapper.updateById(RecommendNewUserBag); |
|||
if (!dto.getGoods().isEmpty()) { |
|||
List<GiftBagGoods> goodsList = dto.getGoods(); |
|||
for (GiftBagGoods goods : goodsList) { |
|||
RecommendNewUserBagDetails RecommendNewUserBagGoods = new RecommendNewUserBagDetails(); |
|||
RecommendNewUserBagGoods.setCreateTime(new DateTime()); |
|||
RecommendNewUserBagGoods.setGoodsSid(goods.getGoodsSid()); |
|||
RecommendNewUserBagGoods.setGiftbagSid(RecommendNewUserBag.getSid()); |
|||
RecommendNewUserBagGoods.setGoodsNumber(goods.getGoodsNumber()); |
|||
RecommendNewUserBagGoods.setPrice(Double.valueOf(goods.getPrice())); |
|||
recommendNewUserBagDetailsService.insert(RecommendNewUserBagGoods); |
|||
} |
|||
} |
|||
} else { |
|||
RecommendNewUserBag RecommendNewUserBag = new RecommendNewUserBag(); |
|||
sid = RecommendNewUserBag.getSid(); |
|||
BeanUtil.copyProperties(dto, RecommendNewUserBag, "id", "sid"); |
|||
RecommendNewUserBag.setCreateTime(new DateTime()); |
|||
if (StringUtils.isNotBlank(dto.getIconUrl())) { |
|||
String urlPrefix = fileUploadComponent.getUrlPrefix(); |
|||
String path = dto.getIconUrl().substring(urlPrefix.length()); |
|||
RecommendNewUserBag.setIconUrl(path); |
|||
} |
|||
baseMapper.insert(RecommendNewUserBag); |
|||
if (!dto.getGoods().isEmpty()) { |
|||
List<GiftBagGoods> goodsList = dto.getGoods(); |
|||
for (GiftBagGoods goods : goodsList) { |
|||
RecommendNewUserBagDetails RecommendNewUserBagGoods = new RecommendNewUserBagDetails(); |
|||
RecommendNewUserBagGoods.setCreateTime(new DateTime()); |
|||
RecommendNewUserBagGoods.setGoodsSid(goods.getGoodsSid()); |
|||
RecommendNewUserBagGoods.setGiftbagSid(RecommendNewUserBag.getSid()); |
|||
RecommendNewUserBagGoods.setGoodsNumber(goods.getGoodsNumber()); |
|||
RecommendNewUserBagGoods.setPrice(Double.valueOf(goods.getPrice())); |
|||
recommendNewUserBagDetailsService.insert(RecommendNewUserBagGoods); |
|||
} |
|||
} |
|||
} |
|||
return rb.success().setData(sid); |
|||
} |
|||
|
|||
public ResultBean giftBagInit(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
RecommendNewUserBagInitVo vo = new RecommendNewUserBagInitVo(); |
|||
RecommendNewUserBag 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<GiftBagGoods> goods = new ArrayList<>(); |
|||
List<RecommendNewUserBagDetails> records = recommendNewUserBagDetailsService.getRecordsByBagSid(sid); |
|||
if (!records.isEmpty()) { |
|||
for (RecommendNewUserBagDetails 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.getPicUrl())) { |
|||
bagGoods.setIconUrl(lpkGoods.getPicUrl()); |
|||
} |
|||
if (StringUtils.isNotBlank(lpkGoods.getUnitName())) { |
|||
bagGoods.setUnitName(lpkGoods.getUnitName()); |
|||
} |
|||
if (StringUtils.isNotBlank(lpkGoods.getPrice())) { |
|||
bagGoods.setPrice(lpkGoods.getPrice()); |
|||
} |
|||
bagGoods.setWeight(lpkGoods.getWeight()); |
|||
bagGoods.setSpecificationUnit(lpkGoods.getSpecificationUnit()); |
|||
} |
|||
} |
|||
goods.add(bagGoods); |
|||
} |
|||
} |
|||
vo.setGoods(goods); |
|||
} |
|||
return rb.success().setData(vo); |
|||
} |
|||
|
|||
public ResultBean deleteBag(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
RecommendNewUserBag RecommendNewUserBag = fetchBySid(sid); |
|||
if (null != RecommendNewUserBag) { |
|||
baseMapper.deleteById(RecommendNewUserBag.getId()); |
|||
recommendNewUserBagDetailsService.deleteGoodsByBagSid(sid); |
|||
} |
|||
return rb.success(); |
|||
} |
|||
|
|||
public ResultBean giftBagList() { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
List<RecommendNewUserBagVo> pagging = baseMapper.giftBagList(); |
|||
return rb.success().setData(pagging); |
|||
} |
|||
public ResultBean isGrounding(String sid,String state) { |
|||
ResultBean rb = new ResultBean().fail(); |
|||
RecommendNewUserBag bag=baseMapper.selectOne(new QueryWrapper<RecommendNewUserBag>().eq("sid",sid)); |
|||
bag.setIsGrounding(state); |
|||
baseMapper.updateById(bag); |
|||
return rb.success().setMsg("修改成功"); |
|||
} |
|||
|
|||
public int saveBags(List<RecommendNewUserBag> bags) { |
|||
return baseMapper.saveBags(bags); |
|||
} |
|||
public ResultBean<List<RecommendNewUserBagVo>> recommendNewUserBagList() { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
List<RecommendNewUserBagVo> list=baseMapper.giftBagList(); |
|||
list.forEach(s->{ |
|||
// s.setPrice(Double.valueOf(aa(s.getPrice())));
|
|||
List<com.yxt.yythmall.api.appletgiftbag.GiftBagGoods> list1=recommendNewUserBagDetailsService.getGoodsByBagSidB(s.getSid()); |
|||
list1.forEach(l->{ |
|||
l.setCount("共"+Integer.valueOf(l.getGoodsNumber())+l.getUnitName()); |
|||
l.setSpec(l.getWeight()+l.getSpecificationUnit()+"/"+l.getUnitName()); |
|||
|
|||
}); |
|||
// List<RecommendNewUserBagGoods> RecommendNewUserBagGoods=RecommendNewUserBagGoodsService.list(new QueryWrapper<RecommendNewUserBagGoods>().eq("giftbagSid",s.getSid()));
|
|||
s.setCount(list1.size()+"种蔬菜"); |
|||
s.setIconUrl(fileUploadComponent.getUrlPrefix() +s.getIconUrl()); |
|||
s.setGiftBagGoods(list1); |
|||
}); |
|||
|
|||
return rb.success().setData(list); |
|||
} |
|||
public ResultBean<RecommendNewUserBagDetailVo> getGiftBagBySid(String sid ) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
List<com.yxt.yythmall.api.appletgiftbag.GiftBagGoods> goodsList=recommendNewUserBagDetailsService.getGoodsByBagSidA(sid); |
|||
RecommendNewUserBagDetailVo RecommendNewUserBagVo=new RecommendNewUserBagDetailVo(); |
|||
RecommendNewUserBag s= baseMapper.selectOne(new QueryWrapper<RecommendNewUserBag>().eq("sid",sid)); |
|||
double i=0; |
|||
DecimalFormat decimalFormat = new DecimalFormat("#0.00"); |
|||
for(com.yxt.yythmall.api.appletgiftbag.GiftBagGoods goods:goodsList){ |
|||
// i=i+Double.valueOf(goods.getJPrice())*Double.valueOf(goods.getGoodsNumber());
|
|||
i=i+Double.valueOf(goods.getJPrice())*Double.valueOf(goods.getWeight())*Double.valueOf(goods.getGoodsNumber()); |
|||
goods.setIconUrl(fileUploadComponent.getUrlPrefix() +goods.getIconUrl()); |
|||
goods.setTotalValue(String.valueOf(decimalFormat.format(Double.valueOf(goods.getGoodsNumber())*Double.valueOf(goods.getJPrice())*Double.valueOf(goods.getWeight())))); |
|||
// goods.setJPrice(String.valueOf(decimalFormat.format(Double.valueOf(goods.getPrice())*Double.valueOf(goods.getWeight()))));
|
|||
goods.setPrice(String.valueOf(decimalFormat.format(Double.valueOf(goods.getJPrice())*Double.valueOf(goods.getWeight())))); |
|||
} |
|||
RecommendNewUserBagVo.setPrice(decimalFormat.format(i)); |
|||
RecommendNewUserBagVo.setGoods(goodsList); |
|||
RecommendNewUserBagVo.setName(s.getName()); |
|||
return rb.success().setData(RecommendNewUserBagVo); |
|||
} |
|||
public static String aa(double a){ |
|||
BigDecimal d=new BigDecimal(a); |
|||
String c= d.setScale(2,BigDecimal.ROUND_HALF_UP).toString(); |
|||
return String.valueOf(c); |
|||
} |
|||
public ResultBean recommendRecord(String sid ) { |
|||
ResultBean rb=new ResultBean().fail(); |
|||
RecommendNewUserBagVo vo=new RecommendNewUserBagVo(); |
|||
RecommendNewUserBag bag=baseMapper.selectOne(new QueryWrapper<RecommendNewUserBag>().eq("sid","e49555f2-5370-45b0-9637-aa4d54c22e31")); |
|||
vo.setRemarks(bag.getRemarks()); |
|||
vo.setIconUrl(fileUploadComponent.getUrlPrefix() +bag.getIconUrl()); |
|||
RecommendRecord recommendRecord=new RecommendRecord(); |
|||
recommendRecord.setContent("梧桐居助力您获得7斤白菜"); |
|||
RecommendRecord recommendRecord1=new RecommendRecord(); |
|||
recommendRecord1.setContent("龙助力您获得7斤白菜"); |
|||
RecommendRecord recommendRecord2=new RecommendRecord(); |
|||
recommendRecord2.setContent("美人助力您获得15斤土豆"); |
|||
List<RecommendRecord> list=new ArrayList<>(); |
|||
list.add(recommendRecord); |
|||
list.add(recommendRecord1); |
|||
list.add(recommendRecord2); |
|||
vo.setRecordList(list); |
|||
return rb.success().setData(vo); |
|||
} |
|||
public ResultBean newUserQuota() { |
|||
ResultBean rb=new ResultBean().fail(); |
|||
List<RecommendNewUserBagVo> s=baseMapper.giftBagGoodsList(); |
|||
for (RecommendNewUserBagVo RecommendNewUserBagVo : s) { |
|||
List<RecommendNewUserBagDetails> giftBagGoods=recommendNewUserBagDetailsService.list(new QueryWrapper<RecommendNewUserBagDetails>().eq("giftbagSid",RecommendNewUserBagVo.getSid())); |
|||
for(RecommendNewUserBagDetails goods:giftBagGoods){ |
|||
LpkGoods lpkGoods=lpkGoodsService.getOne(new QueryWrapper<LpkGoods>().eq("sid",goods.getGoodsSid())); |
|||
RecommendNewUserBagVo.setWeight(removeZeros(String.valueOf(Double.valueOf(lpkGoods.getWeight())*Double.valueOf(goods.getGoodsNumber())+Double.valueOf(RecommendNewUserBagVo.getWeight())))); |
|||
} |
|||
RecommendNewUserBagVo.setIconUrl(fileUploadComponent.getUrlPrefix() +RecommendNewUserBagVo.getIconUrl()); |
|||
} |
|||
return rb.success().setData(s); |
|||
} |
|||
public ResultBean<List<GiftBagGoodss>> getGoodsByBagSid(String bagSid) { |
|||
ResultBean rb=new ResultBean().fail(); |
|||
List<GiftBagGoodss> s=baseMapper.getGoodsByBagSid(bagSid); |
|||
return rb.success().setData(s); |
|||
} |
|||
/** |
|||
* 去除多余.0 |
|||
* @param num |
|||
* @return |
|||
*/ |
|||
public static String removeZeros(String num) { |
|||
if (num.indexOf(".") > 0) { |
|||
// 去掉多余的0
|
|||
num = num.replaceAll("0+?$", ""); |
|||
// 如果最后一位是. 则去掉
|
|||
num = num.replaceAll("[.]$", ""); |
|||
} |
|||
return num; |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,36 @@ |
|||
package com.yxt.yythmall.biz.recommendnewuserbagdetails; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.yythmall.api.appletgiftbag.GiftBagGoods; |
|||
import com.yxt.yythmall.api.recommendnewuserbagdetails.RecommendNewUserBagDetails; |
|||
import com.yxt.yythmall.api.recommendnewuserbagdetails.RecommendNewUserBagDetailsVo; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.apache.ibatis.annotations.Select; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:03 |
|||
*/ |
|||
@Mapper |
|||
public interface RecommendNewUserBagDetailsMapper extends BaseMapper<RecommendNewUserBagDetails> { |
|||
|
|||
|
|||
int deleteGoodsByBagSid(@Param("sid") String sid); |
|||
|
|||
@Select("select goods.name as goodsName,bads.goodsNumber ,bads.goodsSid,goods.picUrl,goods.price,goods.unitName,goods.remarks " + |
|||
" from applet_giftbag_goods bads left join lpk_goods goods on goods.sid =bads.goodsSid where bads.giftbagSid=#{sid}") |
|||
List<RecommendNewUserBagDetailsVo> getGoodsByBagSid(String sid); |
|||
|
|||
@Select("select goods.name as name,bads.goodsNumber ,bads.goodsSid,goods.picUrl as iconUrl,goods.price as jPrice,goods.unitName,goods.content as remark " + |
|||
" ,goods.weight, goods.specificationUnit from applet_giftbag_goods bads left join lpk_goods goods on goods.sid =bads.goodsSid where bads.giftbagSid=#{sid}") |
|||
List<GiftBagGoods> getGoodsByBagSidA(String sid); |
|||
@Select("select goods.name as name,bads.goodsNumber ,bads.goodsSid,goods.picUrl as iconUrl,goods.price as jPrice,goods.unitName,goods.content as remark " + |
|||
" ,goods.weight, goods.specificationUnit from applet_giftbag_goods bads left join lpk_goods goods on goods.sid =bads.goodsSid where bads.giftbagSid=#{sid}") |
|||
List<GiftBagGoods> getGoodsByBagSidB(String sid); |
|||
List<RecommendNewUserBagDetails> getRecordsByBagSid(@Param("sid") String sid); |
|||
|
|||
int saveBagGoods(@Param("bagGoods") List<RecommendNewUserBagDetails> bagGoods); |
|||
} |
@ -0,0 +1,24 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.yxt.yythmall.biz.recommendnewuserbagdetails.RecommendNewUserBagDetailsMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
|
|||
<delete id="deleteGoodsByBagSid"> |
|||
DELETE |
|||
FROM applet_giftbag_goods |
|||
WHERE giftbagSid = #{sid} |
|||
</delete> |
|||
<select id="getRecordsByBagSid" resultType="com.yxt.yythmall.api.recommendnewuserbagdetails.RecommendNewUserBagDetails"> |
|||
select * |
|||
from applet_giftbag_goods |
|||
WHERE giftbagSid = #{sid} |
|||
</select> |
|||
<insert id="saveBagGoods" parameterType="java.util.List"> |
|||
insert into applet_giftbag_goods(sid,createTime,giftbagSid,goodsSid,goodsNumber) |
|||
values |
|||
<foreach collection="bagGoods" item="item" index="index" separator=","> |
|||
(#{item.sid},#{item.createTime},#{item.giftbagSid},#{item.goodsSid},#{item.goodsNumber}) |
|||
</foreach> |
|||
</insert> |
|||
</mapper> |
@ -0,0 +1,24 @@ |
|||
package com.yxt.yythmall.biz.recommendnewuserbagdetails; |
|||
|
|||
import io.swagger.annotations.Api; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:03 |
|||
*/ |
|||
|
|||
@Api(tags = "礼包包含商品信息") |
|||
@RestController |
|||
@RequestMapping("recobagdetails") |
|||
public class RecommendNewUserBagDetailsRest { |
|||
|
|||
@Autowired |
|||
RecommendNewUserBagDetailsService recommendNewUserBagDetailsService; |
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,40 @@ |
|||
package com.yxt.yythmall.biz.recommendnewuserbagdetails; |
|||
|
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.yythmall.api.appletgiftbag.GiftBagGoods; |
|||
import com.yxt.yythmall.api.recommendnewuserbagdetails.RecommendNewUserBagDetails; |
|||
import com.yxt.yythmall.api.recommendnewuserbagdetails.RecommendNewUserBagDetailsVo; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/11/21 15:03 |
|||
*/ |
|||
@Service |
|||
public class RecommendNewUserBagDetailsService extends MybatisBaseService<RecommendNewUserBagDetailsMapper, RecommendNewUserBagDetails> { |
|||
|
|||
public int deleteGoodsByBagSid(String sid) { |
|||
return baseMapper.deleteGoodsByBagSid(sid); |
|||
} |
|||
|
|||
public List<RecommendNewUserBagDetails> getRecordsByBagSid(String sid) { |
|||
return baseMapper.getRecordsByBagSid(sid); |
|||
} |
|||
|
|||
public List<RecommendNewUserBagDetailsVo> getGoodsByBagSid(String sid) { |
|||
return baseMapper.getGoodsByBagSid(sid); |
|||
} |
|||
public List<GiftBagGoods> getGoodsByBagSidA(String sid) { |
|||
return baseMapper.getGoodsByBagSidA(sid); |
|||
} |
|||
public List<GiftBagGoods> getGoodsByBagSidB(String sid) { |
|||
return baseMapper.getGoodsByBagSidB(sid); |
|||
} |
|||
|
|||
public int saveBagGoods(List<RecommendNewUserBagDetails> bagGoods) { |
|||
return baseMapper.saveBagGoods(bagGoods); |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue