WinningActivitiesService.java 3.94 KB
package com.huaheng.pc.winningActivities.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.saleService.domain.SaleService;
import com.huaheng.pc.saleService.mapper.SaleServiceMapper;
import com.huaheng.pc.system.dict.service.IDictDataService;
import com.huaheng.pc.winningActivities.domain.WinningActivities;
import com.huaheng.pc.winningActivities.mapper.WinningActivitiesMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @author:zhouhong
 * 2022021
 */
@Service
public class WinningActivitiesService extends ServiceImpl<WinningActivitiesMapper, WinningActivities> {

    @Resource
    private IDictDataService dictDataService;

    public Boolean checkPhone(String phone){
        LambdaQueryWrapper<WinningActivities> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(WinningActivities::getPhone,phone);
        List<WinningActivities> list=this.list(wrapper);
        if(list!=null&&list.size()>0){
            return true;
        }
        return false;
    }

    public AjaxResult updateType(String ids, String winningType){
        WinningActivities winningActivities = new WinningActivities();
        winningActivities.setWinningType(winningType);

        List<String> lis = Arrays.asList(ids.split(","));
        UpdateWrapper<WinningActivities> userUpdateWrapper = new UpdateWrapper<>();
        userUpdateWrapper.in("id", lis);
        if(!this.update(winningActivities, userUpdateWrapper)){
            return AjaxResult.error("提交失败");
        }
        return AjaxResult.success("提交成功");
    }

    @Transactional
    public AjaxResult draw(WinningActivities domain){
        String winningTypeNow=dictDataService.selectDictLabel("winningTypeNow","1");
        String configValue=dictDataService.selectDictLabel("winningNum",winningTypeNow);
        if(StringUtils.isEmpty(configValue)){
            return  AjaxResult.error(winningTypeNow+"字典表无配置奖项人数");
        }
        Integer num=Integer.valueOf(configValue);

        List<WinningActivities> list=null;
        if(winningTypeNow.equals("1")){
            LambdaQueryWrapper<WinningActivities> wrapper = Wrappers.lambdaQuery();
            wrapper.eq(WinningActivities::getWinningType,1);
            list=this.list(wrapper);
        }else{
            LambdaQueryWrapper<WinningActivities> wrapper = Wrappers.lambdaQuery();
            wrapper.eq(WinningActivities::getWinningType,-2);
            wrapper.last(" order by rand() limit "+num);
            list=this.list(wrapper);
            for(WinningActivities winningActivities:list){
                winningActivities.setWinningType(winningTypeNow);
                winningActivities.setUpdated(new Date());
                this.updateById(winningActivities);
            }
        }
        if(list==null||list.size()<=0){
            return  AjaxResult.error("名额已用完,请联系后台管理人员!");
        }
        return  AjaxResult.success().setData(list);
    }


    public AjaxResult getDraw(WinningActivities winningActivities){
        LambdaQueryWrapper<WinningActivities> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(StringUtils.isNotEmpty(winningActivities.getWinningType()),WinningActivities::getWinningType,winningActivities.getWinningType());
        wrapper.ne(WinningActivities::getWinningType,"-2");
        wrapper.orderByAsc(WinningActivities::getWinningType);
        List<WinningActivities> list=this.list(wrapper);
        return  AjaxResult.success().setData(list);
    }

}