package com.ruoyi.goods.service.impl.lottery;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.goods.api.domain.UserLotteryEvent;
|
import com.ruoyi.goods.domain.vo.ShopWinningRecordVo;
|
import com.ruoyi.goods.mapper.lottery.UserLotteryEventMapper;
|
import com.ruoyi.goods.service.lottery.IUserLotteryEventService;
|
import com.ruoyi.system.api.domain.poji.member.Member;
|
import com.ruoyi.system.api.service.RemoteMemberService;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.StringJoiner;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/5/12 10:41
|
*/
|
@Service
|
public class UserLotteryEventServiceImpl extends ServiceImpl<UserLotteryEventMapper, UserLotteryEvent> implements IUserLotteryEventService {
|
|
@Resource
|
private RemoteMemberService remoteMemberService;
|
|
|
/**
|
* 获取店铺中中奖记录
|
*
|
* @return
|
*/
|
@Override
|
public List<ShopWinningRecordVo> getShopWinningRecord(Page<ShopWinningRecordVo> page, String id) {
|
List<Map<String, Object>> shopWinningRecord = this.baseMapper.getShopWinningRecord(page, id);
|
List<ShopWinningRecordVo> collect = shopWinningRecord.stream().map(item -> {
|
Long user_id = Long.valueOf(item.get("user_id").toString());
|
Member member = remoteMemberService.getMember(user_id).getData();
|
|
String create_time = item.get("create_time").toString();
|
String content = item.get("content").toString();
|
String[] prizes = content.split(",");
|
StringJoiner awardName = new StringJoiner("、");
|
for (String prize : prizes) {
|
String[] split = prize.split("_");
|
String name = "";
|
switch (split[0]) {
|
case "1":
|
name = "优惠券";
|
break;
|
case "2":
|
name = split[2] + "x" + split[3];
|
break;
|
case "3":
|
name = split[2] + "x" + split[3];
|
break;
|
case "4":
|
name = "积分";
|
break;
|
}
|
awardName.add(name);
|
}
|
ShopWinningRecordVo shopWinningRecordVo = new ShopWinningRecordVo();
|
shopWinningRecordVo.setUserName(member.getRealName());
|
shopWinningRecordVo.setUserPhone(member.getMobile());
|
shopWinningRecordVo.setLotteryTime(create_time);
|
shopWinningRecordVo.setAwardName(awardName.toString());
|
return shopWinningRecordVo;
|
}).collect(Collectors.toList());
|
return collect;
|
}
|
}
|