44323
2023-10-11 51290a32d713bab5595e4b255f63ccfc53aaa984
后台代码
18个文件已修改
322 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCourseMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCourseController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBookingQuery.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCourse.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/operatorIncome.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCoupon.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingQuery.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -1,10 +1,8 @@
package com.dsh.account.controller;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.dsh.account.dto.SelectDto;
import com.dsh.account.dto.UserInfoQueryDTO;
import com.dsh.account.entity.Coach;
import com.dsh.account.entity.TAppUser;
import com.dsh.account.entity.TCourseInfoRecord;
@@ -14,25 +12,19 @@
import com.dsh.account.service.IVipPaymentService;
import com.dsh.account.service.TAppUserService;
import com.dsh.account.service.TCourseInfoRecordService;
import com.dsh.account.util.*;
import com.dsh.account.vo.GroupCityInfoVO;
import com.dsh.account.vo.UserInfoQueryVO;
import com.dsh.account.vo.entity.DayData;
import com.dsh.account.vo.entity.MonthData;
import com.dsh.account.vo.entity.WeekData;
import com.dsh.account.vo.entity.YearData;
import com.dsh.account.util.PayMoneyUtil;
import com.dsh.account.util.ResultUtil;
import com.dsh.account.util.TokenUtil;
import com.dsh.account.util.ToolUtil;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*;
import java.util.List;
@@ -58,9 +50,6 @@
    @Autowired
    private TCourseInfoRecordService courseInfoRecordService;
    @Autowired
    private RedisUtil redisUtil;
    /**
     * 获取所有用户
@@ -219,27 +208,6 @@
    public ResultUtil<String> loginWeChat(LoginWeChatVo loginWeChatVo){
        try {
            return appUserService.loginWechat(loginWeChatVo);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/base/appUser/bind")
    @ApiOperation(value = "微信登录--绑定手机号", tags = {"APP-登录注册"})
    @ApiImplicitParams({
    })
    public ResultUtil<String> bind(String phone,String openId,String code){
        try {
            String value = redisUtil.getValue(phone);
            if(!code.equals(value)){
                return ResultUtil.error("验证码无效", "");
            }
            List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getOpenid, openId));
            TAppUser tAppUser = list.get(0);
            tAppUser.setPhone(phone);
            appUserService.updateById(tAppUser);
            return ResultUtil.success();
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -486,6 +454,7 @@
        }
    }
    /**
     * 根据名称模糊搜索用户
     * @param name
@@ -510,145 +479,5 @@
        List<SelectDto> selectDtos =    appUserService.getSelects(studentIds);
        System.out.println("=======selectDtos======>"+selectDtos);
        return selectDtos;
    }
    @PostMapping("/appUser/userInfo")
    public UserInfoQueryVO userInfo(@RequestBody UserInfoQueryDTO dto){
        UserInfoQueryVO userInfoQueryVO = new UserInfoQueryVO();
        LambdaQueryWrapper<TAppUser> wrapper = new LambdaQueryWrapper<>();
        if(StringUtils.hasLength(dto.getCityCode())){
            wrapper.eq(TAppUser::getCityCode,dto.getCityCode());
        }
        if(Objects.nonNull(dto.getOperatorId())){
            wrapper.eq(TAppUser::getInsertType,2);
            wrapper.eq(TAppUser::getAddUserId,dto.getOperatorId());
        }
        if(Objects.nonNull(dto.getStoreId())){
            wrapper.eq(TAppUser::getInsertType,3);
            wrapper.eq(TAppUser::getAddUserId,dto.getStoreId());
        }
        // 查询会员总数,年度会员总数
        int userCount = appUserService.count(wrapper);
        int userVipCount = appUserService.count(wrapper.eq(TAppUser::getIsVip,1));
        userInfoQueryVO.setUserCount(userCount);
        userInfoQueryVO.setUserVipCount(userVipCount);
        if(Objects.nonNull(dto.getIsVip())){
            wrapper.eq(TAppUser::getIsVip,dto.getIsVip());
        }
        // 年度数据
        List<YearData> yearData = appUserService.getYearUserCount(dto);
        userInfoQueryVO.setYearData(yearData);
        // 月度数据
        List<MonthData> monthData = appUserService.getMonthUserCount(dto);
        userInfoQueryVO.setMonthData(monthData);
        // 获取最近四周
        LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
        // 周度数据
        dto.setStartTime(minNow.minusDays(6).toString());
        dto.setEndTime(maxNow.toString());
        WeekData week4 = appUserService.getWeekUserCount4(dto);
        dto.setStartTime(minNow.minusDays(13).toString());
        dto.setEndTime(maxNow.minusDays(6).toString());
        WeekData week3 = appUserService.getWeekUserCount3(dto);
        dto.setStartTime(minNow.minusDays(20).toString());
        dto.setEndTime(maxNow.minusDays(13).toString());
        WeekData week2 = appUserService.getWeekUserCount2(dto);
        dto.setStartTime(minNow.minusDays(27).toString());
        dto.setEndTime(maxNow.minusDays(20).toString());
        WeekData week1 = appUserService.getWeekUserCount1(dto);
        List<WeekData> weekDataList = new ArrayList<>();
        weekDataList.add(week1);
        weekDataList.add(week2);
        weekDataList.add(week3);
        weekDataList.add(week4);
        userInfoQueryVO.setWeekData(weekDataList);
        // 日度数据
        dto.setStartTime(minNow.minusDays(6).toString());
        dto.setEndTime(maxNow.toString());
        List<DayData> dayData = appUserService.getDayUserCount(dto);
        userInfoQueryVO.setDayData(dayData);
        return userInfoQueryVO;
    }
    @PostMapping("/appUser/ageInfo")
    public Map<String,Long> ageInfo(@RequestBody UserInfoQueryDTO dto){
        Map<String,Long> map = new HashMap<>();
        LambdaQueryWrapper<TAppUser> wrapper = new LambdaQueryWrapper<>();
        if(StringUtils.hasLength(dto.getCityCode())){
            wrapper.eq(TAppUser::getCityCode,dto.getCityCode());
        }
        if(Objects.nonNull(dto.getOperatorId())){
            wrapper.eq(TAppUser::getInsertType,2);
            wrapper.eq(TAppUser::getAddUserId,dto.getOperatorId());
        }
        if(Objects.nonNull(dto.getStoreId())){
            wrapper.eq(TAppUser::getInsertType,3);
            wrapper.eq(TAppUser::getAddUserId,dto.getStoreId());
        }
        List<TAppUser> list = appUserService.list(wrapper);
        // 查询会员
        list.forEach(tAppUser->tAppUser.setAge(DateUtil.ageOfNow(tAppUser.getBirthday())));
        map.put("age1", list.stream().filter(e -> e.getAge() > 0 && e.getAge() <= 12).count());
        map.put("age2",list.stream().filter(e -> e.getAge() >= 13 && e.getAge() <= 18).count());
        map.put("age3",list.stream().filter(e -> e.getAge() >= 19 && e.getAge() <= 25).count());
        map.put("age4",list.stream().filter(e -> e.getAge() >= 26 && e.getAge() <= 35).count());
        map.put("age5",list.stream().filter(e -> e.getAge() >= 36 && e.getAge() <= 50).count());
        map.put("age6",list.stream().filter(e -> e.getAge() >= 51).count());
        return map;
    }
    @PostMapping("/appUser/sexInfo")
    public Map<String,Integer> sexInfo(@RequestBody UserInfoQueryDTO dto){
        Map<String,Integer> map = new HashMap<>(2);
        LambdaQueryWrapper<TAppUser> wrapper = new LambdaQueryWrapper<>();
        if(StringUtils.hasLength(dto.getCityCode())){
            wrapper.eq(TAppUser::getCityCode,dto.getCityCode());
        }
        if(Objects.nonNull(dto.getOperatorId())){
            wrapper.eq(TAppUser::getInsertType,2);
            wrapper.eq(TAppUser::getAddUserId,dto.getOperatorId());
        }
        if(Objects.nonNull(dto.getStoreId())){
            wrapper.eq(TAppUser::getInsertType,3);
            wrapper.eq(TAppUser::getAddUserId,dto.getStoreId());
        }
        // 查询会员
        int boyCount = appUserService.count(wrapper.eq(TAppUser::getGender,1));
        int girlCount = appUserService.count(wrapper.eq(TAppUser::getGender,2));
        map.put("boyCount",boyCount);
        map.put("girlCount",girlCount);
        return map;
    }
    @PostMapping("/appUser/groupCityInfo")
    public List<GroupCityInfoVO> groupCityInfo(@RequestBody UserInfoQueryDTO dto){
        // 查询地区会员
        return appUserService.groupCityInfo(dto);
    }
}
cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -195,7 +195,7 @@
        royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos);
        model.setRoyaltyInfo(royaltyInfo);
System.out.println("=================="+royaltyInfo);
        System.err.println("=================="+royaltyInfo);
        //
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -79,10 +79,19 @@
    @RequestMapping("/base/competition/listAllPayment")
    public List<PaymentCompetition> listAllPayment(@RequestBody CompetitionQuery query){
        List<PaymentCompetition> paymentCompetitions = paymentCompetitionService.listAll(query);
        List<PaymentCompetition> result = new ArrayList<>();
        if (query.getOperatorId()!=null){
            for (PaymentCompetition paymentCompetition : paymentCompetitions) {
                Integer competitionId = paymentCompetition.getCompetitionId();
                Competition byId = cttService.getById(competitionId);
                if (byId!=null){
                    Integer operatorId = byId.getOperatorId();
                    if (operatorId!=null){
                        if (operatorId == query.getOperatorId()){
                            result.add(paymentCompetition);
                        }
                    }
                }
            }
        }
        return paymentCompetitions;
cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java
@@ -229,7 +229,11 @@
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date insertTime;
    /**
     * 运营商ID
     */
    @TableField("operatorId")
    private Integer operatorId;
    @Override
    protected Serializable pkVal() {
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -27,10 +27,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Api
@@ -374,6 +371,8 @@
    @ResponseBody
    @PostMapping("/course/addCourse")
    public void addCourse(@RequestBody TCourse course){
        course.setState(1);
        course.setInsertTime(new Date());
        courseService.save(course);
    }
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -371,6 +371,14 @@
        }
        List<RegisterOrderVO> res = packagePaymentService.listAllRegister(query);
        // 该运营商下没有门店
        if (query.getStoresIds()!=null){
            if (query.getStoresIds().size()==0){
                List<RegisterOrderVO> registerOrderVOS = new ArrayList<>();
                return registerOrderVOS;
            }
        }
        List<RegisterOrderVO> result = new ArrayList<>();
        Iterator<RegisterOrderVO> iterator = res.iterator();
        while (iterator.hasNext()) {
cloud-server-course/src/main/resources/mapper/TCourseMapper.xml
@@ -27,7 +27,6 @@
            </where>
    </update>
    <select id="queryCourseList" resultType="map">
        select id, type, name, introduce, coverDrawing, state from t_course where state != 3
        <if test="null != item.name and '' != item.name">
cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java
@@ -238,7 +238,11 @@
    private String eTime;
    @TableField(exist = false)
    private String rEndTime;
    /**
     * 运营商ID
     */
    @TableField("operatorId")
    private Integer operatorId;
    @Override
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
@@ -10,6 +10,7 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
@@ -45,12 +46,11 @@
    @PostMapping("/course/queryCourseLists")
    Page<Map<String, Object>> queryCourseLists(QueryCourseList queryCourseList);
    /**
     * 添加课程
     * @param course
     */
    @PostMapping("/course/queryCourseList")
    @PostMapping("/course/addCourse")
    void addCourse(TCourse course);
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -115,28 +115,29 @@
    public Object getIncomeData(Integer operatorId,Integer storeId) {
        // 报名课程查询query
        RegisterOrderQuery query = new RegisterOrderQuery();
// 充值记录查询query
        RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
        // 赛事活动查询query
        CompetitionQuery competitionQuery = new CompetitionQuery();
        // 会员支付查询query
        IncomeQuery incomeQuery = new IncomeQuery();
        // 场地预约记录查询query
        SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
        // 根据运营商ID 查询运营商下的所有门店
        if (operatorId!=null){
            List<TStore> stores = storeService.list(new QueryWrapper<TStore>().eq("operatorId", operatorId));
            // 拿到该运营商下的门店id集合
            List<Integer> storeIds = stores.stream().map(TStore::getId).collect(Collectors.toList());
            query.setStoresIds(storeIds);
            siteBookingQuery.setStoreIds(storeIds);
        }
        // 充值记录查询query
        RechargeRecordsQuery rechargeRecordsQuery = new RechargeRecordsQuery();
        // 赛事活动查询query
        CompetitionQuery competitionQuery = new CompetitionQuery();
        // 会员支付查询query
        IncomeQuery incomeQuery = new IncomeQuery();
        // 场地预约记录查询query
        SiteBookingQuery siteBookingQuery = new SiteBookingQuery();
        Integer roleType = UserExt.getUser().getObjectType();
        rechargeRecordsQuery.setInsertType(roleType);
                       query.setInsertType(roleType);
            competitionQuery.setInsertType(roleType);
                 incomeQuery.setInsertType(roleType);
                 incomeQuery.setInsertType(roleType);
        List<IncomeVO> incomeVOS = new ArrayList<>();
        // 会员支付记录
@@ -193,22 +194,28 @@
            if (competition.getAmount() != null) {
                temp.setAmount(new BigDecimal(competition.getAmount().toString()));
            }
            incomeVOS.add(temp);
        }
        // 预约场地
        List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
        for (SiteBooking siteBooking : siteBookings) {
            IncomeVO temp = new IncomeVO();
            if(siteBooking.getStatus()!=3){
                continue;
        if (operatorId!=null){
            if (siteBookingQuery.getStoreIds().size()==0){
            }else{
                List<SiteBooking> siteBookings = siteClient.listAll(siteBookingQuery);
                for (SiteBooking siteBooking : siteBookings) {
                    IncomeVO temp = new IncomeVO();
                    if(siteBooking.getStatus()!=3){
                        continue;
                    }
                    temp.setInsertTime(siteBooking.getPayTime());
                    if (siteBooking.getPayMoney() != null) {
                        temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
                    }
                    incomeVOS.add(temp);
                }
            }
            temp.setInsertTime(siteBooking.getPayTime());
            if (siteBooking.getPayMoney() != null) {
                temp.setAmount(new BigDecimal(siteBooking.getPayMoney().toString()));
            }
            incomeVOS.add(temp);
        }
        // 积分商品
        List<PointMerchandiseIncomeVo> amount = pointMercharsClient.getAmount();
        for (PointMerchandiseIncomeVo pointMerchandiseIncomeVo : amount) {
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCourseController.java
@@ -80,8 +80,6 @@
    /**
     * 获取列表数据
     * @param name
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteBookingQuery.java
@@ -1,5 +1,6 @@
package com.dsh.guns.modular.system.model;
import io.swagger.models.auth.In;
import lombok.Data;
import java.math.BigDecimal;
@@ -16,5 +17,6 @@
    private BigDecimal amount;
    // 用户ids
    private List<Integer> userIds;
    // 门店ids
    private List<Integer> storeIds;
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCourse.java
@@ -1,8 +1,15 @@
package com.dsh.guns.modular.system.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
@@ -15,42 +22,57 @@
 * @since 2023-06-14
 */
@Data
public class TCourse {
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_course")
public class TCourse extends Model<TCourse> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 课程名称
     */
    @TableField("name")
    private String name;
    /**
     * 类型(1=课后练习,2=运动教学视频,3=器材教学视频)
     */
    @TableField("type")
    private Integer type;
    /**
     * 介绍
     */
    @TableField("introduce")
    private String introduce;
    /**
     * 封面图
     */
    @TableField("coverDrawing")
    private String coverDrawing;
    /**
     * 介绍图
     */
    @TableField("introductionDrawing")
    private String introductionDrawing;
    /**
     * 课程视频
     */
    @TableField("courseVideo")
    private String courseVideo;
    /**
     * 状态(1=正常,2=冻结,3=删除)
     */
    @TableField("state")
    private Integer state;
    /**
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/operatorIncome.html
@@ -409,7 +409,7 @@
        });
        ajax.set("type",1);
        ajax.set("",id);
        ajax.set("operatorId",id);
        ajax.start();
        // 营收
        var income  = echarts.init(document.getElementById('income'));
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
@@ -107,16 +107,16 @@
                            <label class="col-sm-3 control-label">*发放方式: </label>
                            <input class="col-sm-1 control-label"  name="distributionMethod" type="radio"
                                   value="1" checked style="margin-top: 10px"/>
                            <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">积分购买</label>
                            <label class="col-sm-1" style="margin-left: -15px;width: 11%;margin-top: 7px">积分购买</label>
                            <input class="col-sm-1 control-label" name="distributionMethod"  type="radio"
                                   value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/>
                            <label class="col-sm-1" style="width: 16%;margin-top: 7px">注册赠送</label>
                            <label class="col-sm-1" style="width: 11%;margin-top: 7px">注册赠送</label>
                            <input class="col-sm-1 control-label" name="distributionMethod"  type="radio"
                                   value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
                            <label class="col-sm-1" style="width: 16%;margin-top: 7px">自动发券</label>
                            <label class="col-sm-1" style="width: 11%;margin-top: 7px">自动发券</label>
                            <input class="col-sm-1 control-label" name="distributionMethod"  type="radio"
                                   value="4" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
                            <label class="col-sm-1" style="width: 16%;margin-top: 7px">课包赠送</label>
                            <label class="col-sm-1" style="width: 11%;margin-top: 7px">课包赠送</label>
                        </div>
                    </div>
                    
cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCoupon.js
@@ -27,7 +27,7 @@
            }},
        {title: '发放方式', field: 'distributionMethod', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row, index) {
                return {1: "积分购买", 2: "注册赠送", 3: "自动发券"}[value]
                return {1: "积分购买", 2: "注册赠送", 3: "自动发券",4:"课包赠送"}[value]
            }},
        {title: '有效期', field: 'timeValue', visible: true, align: 'center', valign: 'middle'},
        {title: '用户人群', field: 'userPopulation', visible: true, align: 'center', valign: 'middle',
cloud-server-other/src/main/java/com/dsh/other/model/SiteBookingQuery.java
@@ -16,5 +16,6 @@
    private BigDecimal amount;
    // 用户ids
    private List<Integer> userIds;
    // 门店ids
    private List<Integer> storeIds;
}
cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml
@@ -29,6 +29,12 @@
                #{id}
            </foreach>
        </if>
            <if test="query.storeIds != null and query.storeIds.size()>0">
                AND t1.storeId IN
                <foreach collection="query.storeIds" separator="," item="id" open="(" close=")">
                    #{id}
                </foreach>
            </if>
        <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
            and t1.insertTime between #{sTime} and #{eTime}
        </if>