buyer-api/src/main/java/cn/lili/controller/promotion/CouponBuyerController.java
@@ -43,6 +43,7 @@ @RequestMapping("/buyer/promotion/coupon") public class CouponBuyerController { /** * 优惠券 */ @@ -85,15 +86,23 @@ @GetMapping @ApiOperation(value = "获取可领取优惠券列表") public ResultMessage<IPage<CouponVO>> getCouponList(CouponSearchParams queryParam, PageVO page) { System.out.println("------------------------------------"); System.out.println(queryParam); queryParam.setPromotionStatus(PromotionsStatusEnum.START.name()); queryParam.setGetType(CouponGetEnum.FREE.name()); IPage<CouponVO> canUseCoupons = couponService.pageVOFindAll(queryParam, page); List<CouponVO> list = canUseCoupons.getRecords(); couponService.getUserCouponsStatus(list); //更具用户id return ResultUtil.data(canUseCoupons); } @ApiOperation(value = "获取当前会员的优惠券列表") @GetMapping("/getCoupons") public ResultMessage<IPage<MemberCoupon>> getCoupons(MemberCouponSearchParams param, PageVO pageVo) { System.out.println("------------------------------------"); System.out.println(param); AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser()); param.setMemberId(currentUser.getId()); return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo)); framework/src/main/java/cn/lili/modules/lmk/domain/query/WxHealthVideoQuery.java
@@ -18,6 +18,9 @@ @ApiModelProperty("来源默认system,system/user") private String source; private String videoId; /** * @see VideoTypeEnum */ framework/src/main/java/cn/lili/modules/lmk/domain/query/WxKitchenVideoQuery.java
@@ -19,6 +19,8 @@ @ApiModelProperty("来源默认system,system/user") private String source; private String videoId; /** * @see VideoTypeEnum */ framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
@@ -146,9 +146,9 @@ //删除活动同时删除活动的相关信息 public void delActivityAndInformation(Activity activity){ if (StringUtils.isNotEmpty(activity.getCover())){ lmkFileService.deleteObject(activity.getCover()); } // if (StringUtils.isNotEmpty(activity.getCover())){ // lmkFileService.deleteObject(activity.getCover()); // } baseMapper.deleteById(activity.getId()); //删除审核记录 activityAuditRecordService.delActivityAuditById(activity.getId()); framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java
@@ -558,15 +558,16 @@ case "recommend":// 加载推荐视频 baseMapper.recommendVideo(page, query); //推荐视频重新排序 WxVideoVO wxVideoVO = null; if (StringUtils.isNotBlank(query.getVideoId())) { wxVideoVO = baseMapper.recommendVideoByVideoId(query); } List<WxVideoVO> records = page.getRecords(); Collections.shuffle(records); if (wxVideoVO!=null) { records.set(0, wxVideoVO); } buildRecommendVideoList(page, query.getVideoId()); // WxVideoVO wxVideoVO = null; // if (StringUtils.isNotBlank(query.getVideoId())) { // wxVideoVO = baseMapper.recommendVideoByVideoId(query); // } // List<WxVideoVO> records = page.getRecords(); // Collections.shuffle(records); // if (wxVideoVO!=null) { // records.set(0, wxVideoVO); // } break; case "author": // 加载视频主页我发布的视频 AuthorVideoQuery query1 = new AuthorVideoQuery(); @@ -699,7 +700,10 @@ public Result healthRecommendVideo(WxHealthVideoQuery query) { IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); //获取大健康视频列表 baseMapper.recommendHealthVideo(page,query); buildRecommendVideoList(page, query.getVideoId()); if (page.getTotal() > 0) { page.getRecords().forEach(v -> { v.setAuthorAvatar(cosUtil.getPreviewUrl(v.getAuthorAvatar())); @@ -723,8 +727,11 @@ @Override public Result kitchenRecommendVideo(WxKitchenVideoQuery query) { IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); baseMapper.wxKitchenVideoQuery(page, query); page.getRecords().forEach(v -> { baseMapper.wxKitchenVideoQuery(page, query); buildRecommendVideoList(page, query.getVideoId()); page.getRecords().forEach(v -> { v.setAuthorAvatar(cosUtil.getPreviewUrl(v.getAuthorAvatar())); if (VideoContentTypeEnum.VIDEO.getValue().equals(v.getVideoContentType())) { v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey())); @@ -734,6 +741,51 @@ return Result.ok().data(page.getRecords()).total(page.getTotal()); } /** * * @param page * @param videoId videoId推荐的视频id */ private void buildRecommendVideoList(IPage<WxVideoVO> page, String videoId) { //查询到有视频列表 if(org.apache.commons.collections.CollectionUtils.isNotEmpty(page.getRecords())){ //现将视频顺序打乱 Collections.shuffle(page.getRecords()); WxVideoVO wxVideoVO = null; if (StringUtils.isNotBlank(videoId)){ VideoQuery videoQuery = new VideoQuery(); videoQuery.setVideoId(videoId); wxVideoVO = baseMapper.recommendVideoByVideoId(videoQuery); boolean found = false; int foundIndex = -1; List<WxVideoVO> records = page.getRecords(); //判断二维码过来的videoId是否存在与page.getRecords重复 记录下标 for (int i = 0; i < records.size(); i++) { if (wxVideoVO.getId().equals(records.get(i).getId())) { found = true; foundIndex = i; break; } } if (found){ WxVideoVO matchedRecord = records.remove(foundIndex); records.add(0, matchedRecord); }else { // 如果没找到,替换首位 records.set(0, wxVideoVO); } } } } @Override @Transactional(rollbackFor = Exception.class) public void updateCollectNumBatch(List<CollectTypeNumVO> numList) { framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
@@ -534,11 +534,12 @@ @Override public Result updateMemberNickName(MemberNickNameForm form) { Member member = baseMapper.selectById(form.getMemberId()); if ("微信用户".equals(member.getNickName()) || StringUtils.isEmpty(member.getNickName())) { if ("微信用户".equals(member.getNickName()) || StringUtils.isBlank(member.getNickName())) { member.setNickName(form.getNickName()); baseMapper.updateById(member); return Result.ok().data(member.getNickName()); } return Result.ok("修改成功"); return Result.ok().data(member.getNickName()); } @Override framework/src/main/java/cn/lili/modules/promotion/entity/vos/CouponVO.java
@@ -28,6 +28,10 @@ private static final long serialVersionUID = 8372420376262437018L; /** * 是否拥有优惠卷 */ private Boolean owned; /** * 促销关联的商品 */ @ApiModelProperty(value = "优惠券关联商品集合") framework/src/main/java/cn/lili/modules/promotion/service/CouponService.java
@@ -6,6 +6,8 @@ import cn.lili.modules.promotion.entity.vos.CouponVO; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; /** * 优惠券业务层 * @@ -14,6 +16,7 @@ */ public interface CouponService extends AbstractPromotionsService<Coupon> { void getUserCouponsStatus(List<CouponVO> list); /** * 领取优惠券 * framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java
@@ -8,12 +8,16 @@ import cn.lili.common.event.TransactionCommitSendMQEvent; import cn.lili.common.exception.ServiceException; import cn.lili.common.properties.RocketmqCustomProperties; import cn.lili.common.security.AuthUser; import cn.lili.common.security.context.UserContext; import cn.lili.common.utils.DateUtil; import cn.lili.common.utils.StringUtils; import cn.lili.common.vo.PageVO; import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.promotion.entity.dos.Coupon; import cn.lili.modules.promotion.entity.dos.FullDiscount; import cn.lili.modules.promotion.entity.dos.MemberCoupon; import cn.lili.modules.promotion.entity.dos.PromotionGoods; import cn.lili.modules.promotion.entity.dto.search.CouponSearchParams; import cn.lili.modules.promotion.entity.dto.search.FullDiscountSearchParams; @@ -24,6 +28,7 @@ import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum; import cn.lili.modules.promotion.entity.vos.CouponVO; import cn.lili.modules.promotion.mapper.CouponMapper; import cn.lili.modules.promotion.mapper.MemberCouponMapper; import cn.lili.modules.promotion.service.*; import cn.lili.modules.promotion.tools.PromotionTools; import cn.lili.mybatis.util.PageUtil; @@ -31,6 +36,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; @@ -39,6 +45,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; /** @@ -82,6 +89,36 @@ @Autowired private ApplicationEventPublisher applicationEventPublisher; @Autowired private MemberCouponMapper memberCouponMapper; @Override public void getUserCouponsStatus(List<CouponVO> list) { AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser()); if (StringUtils.isNotBlank(currentUser.getId())){ List<String> ids = list.stream().map(CouponVO::getId).collect(Collectors.toList()); //获得分页优惠劵后的结果后,判断对象是否被用户获得过。 List<MemberCoupon> userCouponVOS = new LambdaQueryChainWrapper<>(memberCouponMapper) .in(MemberCoupon::getCouponId,ids) .eq(MemberCoupon::getMemberId,currentUser.getId()) .list(); //用户获得过的优惠卷id集合 List<String> userHaveCouponIds = userCouponVOS.stream().map(MemberCoupon::getCouponId).collect(Collectors.toList()); //修改状态 for(CouponVO couponVO : list){ boolean owned = false; for (String id : userHaveCouponIds){ if(id.equals(couponVO.getId())){ owned = true; break; } } couponVO.setOwned(owned); } } } /** * 领取优惠券 *