package com.cyl.h5.controller;
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.cyl.h5.config.SecurityUtil;
|
|
import com.cyl.h5.pojo.request.H5MemberCouponGetRequest;
|
|
import com.cyl.h5.pojo.request.H5MemberCouponRequest;
|
|
import com.cyl.h5.pojo.response.WechatMemberCouponResponse;
|
|
import com.cyl.h5.service.H5CouponService;
|
|
import com.cyl.h5.service.H5MemberCouponService;
|
|
import com.cyl.manager.marketing.domain.WechatMemberCoupon;
|
|
import com.cyl.manager.marketing.domain.WechatStock;
|
|
import com.cyl.manager.marketing.mapper.WechatMemberCouponMapper;
|
|
import com.cyl.manager.marketing.pojo.SendCouponRequest;
|
|
import com.cyl.manager.ums.domain.Member;
|
|
import com.cyl.manager.ums.service.MemberService;
|
|
import com.github.pagehelper.PageHelper;
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.data.domain.Pageable;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* 商家券
|
|
*
|
|
* @author daixiande
|
|
* @date 2024-05-06
|
|
*/
|
|
//@Api("商家券")
|
|
@RestController
|
|
@RequestMapping("/h5/coupon")
|
|
@Slf4j
|
|
public class H5CouponController extends BaseController
|
|
{
|
|
@Autowired
|
|
private H5CouponService h5CouponService;
|
|
|
|
@Autowired
|
|
private H5MemberCouponService h5MemberCouponService;
|
|
|
|
@Autowired
|
|
private MemberService memberService;
|
|
|
|
@Autowired
|
|
private WechatMemberCouponMapper wechatMemberCouponMapper;
|
|
|
|
/**
|
|
* 查询商家券列表
|
|
*/
|
|
// @ApiOperation("查询商家券列表")
|
|
@GetMapping("/list")
|
|
public AjaxResult list()
|
|
{
|
|
startPage();
|
|
WechatStock ws = new WechatStock();
|
|
|
|
Member member = null;
|
|
try {
|
|
member = SecurityUtil.getLocalMember();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
log.error("【优惠券领取】当前用户未登录");
|
|
}
|
|
|
|
List<WechatStock> list = h5CouponService.selectWechatStocktForGet(member);
|
|
|
|
for (WechatStock stock : list) {
|
|
stock.setAlreadyReceived(wechatMemberCouponMapper.selectCount(
|
|
Wrappers.<WechatMemberCoupon>lambdaQuery()
|
|
.eq(WechatMemberCoupon::getMemberId, member.getId())
|
|
.eq(WechatMemberCoupon::getStockId, stock.getStockId())
|
|
));
|
|
}
|
|
|
|
|
|
//过滤掉没有领取机会的卷
|
|
list = list.stream().filter(n -> n.getMaxCouponsPerUser() > n.getAlreadyReceived()).collect(Collectors.toList());
|
|
|
|
return AjaxResult.success(list);
|
|
}
|
|
|
|
/**
|
|
* 查询会员券列表
|
|
*/
|
|
// @ApiOperation("查询会员券列表")
|
|
@PostMapping("/listMemberCoupon")
|
|
public TableDataInfo listMemberCoupon(@RequestBody H5MemberCouponRequest h5MemberCouponRequest, Pageable page)
|
|
{
|
|
Member member = SecurityUtil.getLocalMember();
|
|
h5MemberCouponRequest.setMemberId(member.getId());
|
|
PageHelper.startPage(1, 100,"create_time desc");
|
|
|
|
List<WechatMemberCoupon> list = h5MemberCouponService.selectMemberCouponList(h5MemberCouponRequest);
|
|
|
|
return getDataTable(list);
|
|
}
|
|
|
|
/**
|
|
* 查询会员券列表
|
|
*/
|
|
// @ApiOperation("查询会员券列表")
|
|
@GetMapping("/listMemberCouponForOrder")
|
|
public TableDataInfo listMemberCoupon2()
|
|
{
|
|
Member member = SecurityUtil.getLocalMember();
|
|
|
|
List<WechatMemberCouponResponse> list = h5MemberCouponService.selectMemberCouponListForOrder(member.getId());
|
|
|
|
return getDataTable(list);
|
|
}
|
|
|
|
// @ApiOperation("领取优惠券")
|
|
@PostMapping("/get")
|
|
public AjaxResult get(@RequestBody H5MemberCouponGetRequest h5MemberCouponRequest)
|
|
{
|
|
Member member = SecurityUtil.getLocalMember();
|
|
|
|
String phone = memberService.getPhoneDecrypted(member.getPhoneEncrypted());
|
|
|
|
SendCouponRequest sendCouponRequest = new SendCouponRequest();
|
|
sendCouponRequest.setPhone(phone);
|
|
sendCouponRequest.setStockId(h5MemberCouponRequest.getStockId());
|
|
|
|
int result = h5CouponService.sendCoupon(sendCouponRequest);
|
|
|
|
if (result == 1) {
|
|
return AjaxResult.success();
|
|
}
|
|
|
|
return AjaxResult.error();
|
|
}
|
|
|
|
}
|