瀏覽代碼

合并代码

zouxuan 9 月之前
父節點
當前提交
0c90b5eee0

+ 30 - 0
mec-application/src/main/java/com/ym/mec/web/controller/TempDirectorTrainingCampController.java

@@ -1,11 +1,18 @@
 package com.ym.mec.web.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.microsvc.toolkit.common.response.paging.PageInfo;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampWrapper;
 import com.ym.mec.biz.service.TempDirectorTrainingCampService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,10 +29,17 @@ public class TempDirectorTrainingCampController extends BaseController {
     @Resource
     private TempDirectorTrainingCampService tempDirectorTrainingCampService;
 
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation("创建训练营")
     @PostMapping(value = "/add")
     public HttpResponseResult<Object> add(@Valid @RequestBody TempDirectorTrainingCampWrapper.AddCamp dto) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        dto.setUpdateBy(sysUser.getId());
         tempDirectorTrainingCampService.add(dto);
         return succeed();
     }
@@ -33,8 +47,24 @@ public class TempDirectorTrainingCampController extends BaseController {
     @ApiOperation("修改训练营")
     @PostMapping(value = "/modify")
     public HttpResponseResult<Object> modify(@Valid @RequestBody TempDirectorTrainingCampWrapper.AddCamp dto) {
+        if (dto.getId() == null) {
+            return failed("训练营id不能为空");
+        }
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
         tempDirectorTrainingCampService.modify(dto);
         return succeed();
     }
+
+
+    @ApiOperation(value = "分页获取")
+    @PostMapping("/queryPage")
+    public HttpResponseResult<PageInfo<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp>> queryPage(@RequestBody TempDirectorTrainingCampWrapper.TempDirectorTrainingCampQueryInfo queryInfo){
+        IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> tempDirectorTrainingCampIPage = tempDirectorTrainingCampService.queryPage(QueryInfo.getPage(queryInfo), queryInfo);
+
+        return succeed(QueryInfo.pageInfo(tempDirectorTrainingCampIPage));
+    }
 }
 

+ 31 - 1
mec-application/src/main/java/com/ym/mec/web/controller/TempDirectorTrainingCampDetailController.java

@@ -1,8 +1,16 @@
 package com.ym.mec.web.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.microsvc.toolkit.common.response.paging.PageInfo;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampDetailWrapper;
 import com.ym.mec.biz.service.TempDirectorTrainingCampDetailService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.RestController;
 
@@ -16,8 +24,30 @@ public class TempDirectorTrainingCampDetailController extends BaseController {
      * 服务对象
      */
     @Resource
-    private TempDirectorTrainingCampDetailService tempDirectorTrainingCampService;
+    private TempDirectorTrainingCampDetailService tempDirectorTrainingCampDetailService;
 
 
+
+
+    @ApiOperation(value = "分页获取")
+    @PostMapping("/queryPage")
+    public HttpResponseResult<PageInfo<TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetail>> queryPage(@RequestBody TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo){
+        if (queryInfo.getTempDirectorTrainingCampId()==null) {
+            return failed("训练营编号不能为空");
+        }
+        IPage<TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetail> tempDirectorTrainingCampIPage = tempDirectorTrainingCampDetailService.queryPage(QueryInfo.getPage(queryInfo), queryInfo);
+
+        return succeed(QueryInfo.pageInfo(tempDirectorTrainingCampIPage));
+    }
+
+
+    @ApiOperation(value = "统计")
+    @PostMapping("/queryPageStat")
+    public HttpResponseResult<TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailStat> queryPageStat(@RequestBody TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo){
+        if (queryInfo.getTempDirectorTrainingCampId()==null) {
+            return failed("训练营编号不能为空");
+        }
+        return succeed(tempDirectorTrainingCampDetailService.queryPageStat(queryInfo));
+    }
 }
 

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempDirectorTrainingCampDao.java

@@ -1,9 +1,14 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ym.mec.biz.dal.entity.TempDirectorTrainingCamp;
+import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampWrapper;
+import org.apache.ibatis.annotations.Param;
 
 public interface TempDirectorTrainingCampDao extends BaseMapper<TempDirectorTrainingCamp> {
 
+    IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> queryPage(@Param("page") IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> page,
+                                                                              @Param("param") TempDirectorTrainingCampWrapper.TempDirectorTrainingCampQueryInfo queryInfo);
 }
 

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempDirectorTrainingCampDetailDao.java

@@ -1,9 +1,21 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ym.mec.biz.dal.entity.TempDirectorTrainingCampDetail;
+import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampDetailWrapper;
+import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface TempDirectorTrainingCampDetailDao extends BaseMapper<TempDirectorTrainingCampDetail> {
 
+    List<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> getStat(@Param("ids") List<Integer> tempDirectorTrainingCampIds);
+
+    IPage<TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetail> queryPage(@Param("page") IPage<Object> page,
+                                                                                          @Param("param") TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo);
+
+    TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailStat queryPageStat(@Param("param") TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo);
 }
 

+ 129 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/TempDirectorTrainingCampDetailWrapper.java

@@ -1,5 +1,9 @@
 package com.ym.mec.biz.dal.wrapper;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.ym.mec.biz.dal.dto.PayParamBasicDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -7,6 +11,8 @@ import lombok.Data;
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Pattern;
+import java.math.BigDecimal;
+import java.util.Date;
 
 @ApiModel(value = "TempDirectorTrainingCampDetailWrapper对象")
 public class TempDirectorTrainingCampDetailWrapper {
@@ -115,4 +121,127 @@ public class TempDirectorTrainingCampDetailWrapper {
         private String authCode;
     }
 
+    @Data
+    public static class TempDirectorTrainingCampDetailQuery implements QueryInfo {
+        /**
+         * 默认当前页码
+         */
+        private Integer page = 1;
+        /**
+         * 默认页码大小
+         */
+        private Integer rows = 20;
+
+        @ApiModelProperty(value = "用户姓名/手机号")
+        private String search;
+
+        @ApiModelProperty(value = "训练营编号")
+        private Integer tempDirectorTrainingCampId;
+
+        @ApiModelProperty(value = "省份")
+        private String provinceCode;
+
+        @ApiModelProperty(value = "城市")
+        private String cityCode;
+
+
+        @ApiModelProperty(value = "区县")
+        private String regionCode;
+
+
+        @ApiModelProperty(value = "已缴费 PAID,未缴费 NO,已退费 REFUND")
+        private String paymentStatus;
+    }
+
+    @Data
+    public static class TempDirectorTrainingCampDetail {
+
+
+        @ApiModelProperty(value = "主键")
+        private Integer id;
+
+        @ApiModelProperty(value = "训练营编号")
+        private Integer tempDirectorTrainingCampId;
+
+        @ApiModelProperty(value = "姓名")
+        private String username;
+
+        @ApiModelProperty(value = "手机号")
+        private String mobile;
+
+        @ApiModelProperty(value = "身份证号")
+        private String cardNo;
+
+        @ApiModelProperty(value = "省份")
+        private String province;
+
+        @ApiModelProperty(value = "省份")
+        private String provinceCode;
+
+        @ApiModelProperty(value = "城市")
+        private String cityCode;
+
+        @ApiModelProperty(value = "城市")
+        private String city;
+
+        @ApiModelProperty(value = "区县")
+        private String regionCode;
+
+        @ApiModelProperty(value = "区县")
+        private String region;
+
+        @ApiModelProperty(value = "已缴费 PAID,未缴费 NO,已退费 REFUND")
+        private String paymentStatus = "NO";
+
+        @ApiModelProperty(value = "缴费金额")
+        private String paymentAmount;
+
+        @ApiModelProperty(value = "是否早鸟报名")
+        private Boolean birdFlag = false;
+
+        @ApiModelProperty(value = "缴费时间")
+        private String paymentDate;
+
+        @ApiModelProperty(value = "职业")
+        private String job;
+
+        @ApiModelProperty(value = "声部")
+        private String subjectName;
+
+        @ApiModelProperty(value = "之前乐队指导学习基础")
+        private String study;
+
+        @ApiModelProperty(value = "目标效果")
+        private String studyTarget;
+
+        @ApiModelProperty(value = "需求或建议")
+        private String suggestion;
+
+        @ApiModelProperty(value = "创建时间")
+        private Date createTime;
+
+        @ApiModelProperty(value = "修改时间")
+        private Date updateTime;
+    }
+
+
+    @Data
+    public static class TempDirectorTrainingCampDetailStat {
+
+
+
+        @ApiModelProperty("报名人数")
+        private Integer applyCount;
+
+        @ApiModelProperty("缴费人数")
+        private Integer payCount;
+
+        @ApiModelProperty("早鸟人数")
+        private Integer birdCount;
+
+
+        @ApiModelProperty("收款金额")
+        private BigDecimal payAmount;
+
+    }
 }

+ 88 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/TempDirectorTrainingCampWrapper.java

@@ -1,6 +1,6 @@
 package com.ym.mec.biz.dal.wrapper;
 
-import com.baomidou.mybatisplus.annotation.TableField;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -17,6 +17,9 @@ public class TempDirectorTrainingCampWrapper {
     @ApiModel(" AddCamp-新增/修改")
     public static class AddCamp {
 
+        @ApiModelProperty(value = "主键")
+        private Integer id;
+
         @ApiModelProperty(value = "特训营名称")
         @NotNull(message = "特训营名称不能为空")
         private String name;
@@ -29,6 +32,10 @@ public class TempDirectorTrainingCampWrapper {
         @NotNull(message = "报名截止时间不能为空")
         private Date applyEndDate;
 
+        @ApiModelProperty(value = "是否配置早鸟价")
+        @NotNull(message = "是否配置早鸟价不能为空")
+        private Boolean hasBirdPrice;
+
         @ApiModelProperty(value = "早鸟价截止日期")
         private Date birdPriceEndDate;
 
@@ -46,4 +53,84 @@ public class TempDirectorTrainingCampWrapper {
         @ApiModelProperty(value = "修改人")
         private Integer updateBy;
     }
+
+
+    @Data
+    public static class TempDirectorTrainingCampQueryInfo implements QueryInfo {
+
+
+        /**
+         * 默认当前页码
+         */
+        private Integer page = 1;
+        /**
+         * 默认页码大小
+         */
+        private Integer rows = 20;
+
+        @ApiModelProperty(value = "特训营名称")
+        private String search;
+
+
+        @ApiModelProperty(value = "未开始 NOT_START,报名中 APPLY,已结束 END ")
+        private String status;
+
+    }
+
+    @Data
+    public static class TempDirectorTrainingCamp{
+
+        @ApiModelProperty(value = "主键")
+        private Integer id;
+
+        @ApiModelProperty(value = "活动名称")
+        private String name;
+
+        @ApiModelProperty(value = "报名开始日期")
+        private Date applyStartDate;
+
+        @ApiModelProperty(value = "报名结束日期")
+        private Date applyEndDate;
+
+
+        @ApiModelProperty(value = "是否配置早鸟价")
+        private Boolean hasBirdPrice;
+
+        @ApiModelProperty(value = "早鸟价截止日期")
+        private Date birdPriceEndDate;
+
+        @ApiModelProperty(value = "早鸟价")
+        private BigDecimal birdPrice;
+
+        @ApiModelProperty(value = "优惠价")
+        private BigDecimal currentPrice;
+
+        @ApiModelProperty(value = "原价")
+        private BigDecimal originalPrice;
+
+        @ApiModelProperty(value = "未开始 NOT_START,报名中 APPLY,已结束 END ")
+        private String status;
+
+        @ApiModelProperty("报名人数")
+        private Integer applyCount;
+
+        @ApiModelProperty("缴费人数")
+        private Integer payCount;
+
+        @ApiModelProperty("收款金额")
+        private BigDecimal payAmount;
+
+        @ApiModelProperty(value = "修改人")
+        private Integer updateBy;
+
+        @ApiModelProperty(value = "修改人名称")
+        private String updateByName;
+
+        @ApiModelProperty(value = "创建时间")
+        private Date createTime;
+
+        @ApiModelProperty(value = "修改时间")
+        private Date updateTime;
+
+    }
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempDirectorTrainingCampDetailService.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDetailDao;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.TempDirectorTrainingCampDetail;
@@ -16,6 +18,10 @@ public interface TempDirectorTrainingCampDetailService extends IService<TempDire
     HttpResponseResult pay(TempDirectorTrainingCampDetailWrapper.PayDto payDto) throws Exception;
 
     Boolean orderCallback(StudentPaymentOrder order);
+
+    IPage<TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetail> queryPage(IPage<Object> page, TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo);
+
+    TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailStat queryPageStat(TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo);
 }
 
 

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TempDirectorTrainingCampService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDao;
 import com.ym.mec.biz.dal.entity.TempDirectorTrainingCamp;
@@ -10,6 +11,10 @@ public interface TempDirectorTrainingCampService extends IService<TempDirectorTr
     TempDirectorTrainingCampDao getDao();
 
     void add(TempDirectorTrainingCampWrapper.AddCamp dto);
+
+    void modify(TempDirectorTrainingCampWrapper.AddCamp dto);
+
+    IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> queryPage(IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> page, TempDirectorTrainingCampWrapper.TempDirectorTrainingCampQueryInfo queryInfo);
 }
 
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempDirectorTrainingCampDetailServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -300,6 +301,16 @@ public class TempDirectorTrainingCampDetailServiceImpl extends ServiceImpl<TempD
         return true;
     }
 
+    @Override
+    public IPage<TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetail> queryPage(IPage<Object> page, TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo) {
+        return baseMapper.queryPage(page,queryInfo);
+    }
+
+    @Override
+    public TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailStat queryPageStat(TempDirectorTrainingCampDetailWrapper.TempDirectorTrainingCampDetailQuery queryInfo) {
+        return baseMapper.queryPageStat(queryInfo);
+    }
+
 
 }
 

+ 98 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TempDirectorTrainingCampServiceImpl.java

@@ -1,17 +1,39 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDao;
+import com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDetailDao;
 import com.ym.mec.biz.dal.entity.TempDirectorTrainingCamp;
 import com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampWrapper;
+import com.ym.mec.biz.service.EmployeeService;
+import com.ym.mec.biz.service.SysUserService;
+import com.ym.mec.biz.service.TempDirectorTrainingCampDetailService;
 import com.ym.mec.biz.service.TempDirectorTrainingCampService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import java.math.RoundingMode;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service("tempDirectorTrainingCampService")
 public class TempDirectorTrainingCampServiceImpl extends ServiceImpl<TempDirectorTrainingCampDao, TempDirectorTrainingCamp> implements TempDirectorTrainingCampService {
 
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private TempDirectorTrainingCampDetailDao tempDirectorTrainingCampDetailDao;
+
     private final static Logger log = LoggerFactory.getLogger(TempDirectorTrainingCampServiceImpl.class);
 
     @Override
@@ -20,8 +42,84 @@ public class TempDirectorTrainingCampServiceImpl extends ServiceImpl<TempDirecto
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void add(TempDirectorTrainingCampWrapper.AddCamp dto) {
+        log.info("新增训练营:{}", dto);
+        if (!dto.getHasBirdPrice()) {
+            dto.setBirdPrice(null);
+            dto.setBirdPriceEndDate(null);
+        }
+        TempDirectorTrainingCamp tempDirectorTrainingCamp = JSON.parseObject(JSON.toJSONString(dto), TempDirectorTrainingCamp.class);
+
+        this.save(tempDirectorTrainingCamp);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void modify(TempDirectorTrainingCampWrapper.AddCamp dto) {
+        log.info("修改训练营:{}", dto);
+        TempDirectorTrainingCamp tempDirectorTrainingCamp = JSON.parseObject(JSON.toJSONString(dto), TempDirectorTrainingCamp.class);
+
+        this.updateById(tempDirectorTrainingCamp);
+
+        lambdaUpdate()
+            .set(TempDirectorTrainingCamp::getBirdPrice, dto.getHasBirdPrice()?dto.getBirdPrice():null)
+            .set(TempDirectorTrainingCamp::getBirdPriceEndDate, dto.getHasBirdPrice()?dto.getBirdPriceEndDate():null)
+            .eq(TempDirectorTrainingCamp::getId, dto.getId())
+            .update();
+    }
+
+    @Override
+    public IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> queryPage(IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> page, TempDirectorTrainingCampWrapper.TempDirectorTrainingCampQueryInfo queryInfo) {
+        IPage<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> tempDirectorTrainingCampIPage = baseMapper.queryPage(page, queryInfo);
+        List<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> records = tempDirectorTrainingCampIPage.getRecords();
+        if (CollectionUtils.isEmpty(records) ) {
+            return tempDirectorTrainingCampIPage;
+        }
+
+        // id 集合
+        List<Integer> ids = records.stream().map(o->o.getId()).collect(Collectors.toList());;
+
+        // 是否设置早鸟价
+
+        // 状态
+
+        // 更新人
+        List<Integer> updateIds = records.stream().map(o -> o.getUpdateBy()).filter(o -> o != null).distinct().collect(Collectors.toList());
+        Map<Long, SysUser> userMap = sysUserService.getMapByIds(updateIds);
+        records.forEach(o -> {
+            if (o.getUpdateBy() != null) {
+                SysUser sysUser = userMap.get(o.getUpdateBy().longValue());
+                if (sysUser != null) {
+                    o.setUpdateByName(sysUser.getRealName());
+                }
+            }
+            if (o.getBirdPrice() !=null && o.getBirdPriceEndDate() != null) {
+                o.setHasBirdPrice(true);
+            }
+            Date date = new Date();
+            if (o.getApplyStartDate().after(date)) {
+                o.setStatus("NOT_START");
+            } else if (o.getApplyEndDate().before(date)) {
+                o.setStatus("END");
+            } else {
+                o.setStatus("APPLY");
+            }
+        });
+
+        // 报名人数,缴费人数 搜款金额
+        List<TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> stat = tempDirectorTrainingCampDetailDao.getStat(ids);
+        Map<Integer, TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp> statMap = stat.stream().collect(Collectors.toMap(TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp::getId, o -> o));
 
+        records.forEach(o -> {
+            TempDirectorTrainingCampWrapper.TempDirectorTrainingCamp tempDirectorTrainingCamp = statMap.get(o.getId());
+            if (tempDirectorTrainingCamp != null) {
+                o.setApplyCount(tempDirectorTrainingCamp.getApplyCount());
+                o.setPayCount(tempDirectorTrainingCamp.getPayCount());
+                o.setPayAmount(tempDirectorTrainingCamp.getPayAmount().setScale(2, RoundingMode.HALF_UP));
+            }
+        });
+        return tempDirectorTrainingCampIPage;
     }
 
 

+ 59 - 0
mec-biz/src/main/resources/config/mybatis/TempDirectorTrainingCampDetailMapper.xml

@@ -2,4 +2,63 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDetailDao">
 
+    <select id="getStat"
+            resultType="com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampWrapper$TempDirectorTrainingCamp">
+
+        select
+        t.temp_director_training_camp_id_ as id,
+        count(t.id_) as applyCount,
+        sum(if(t.payment_status_ = 'PAID',1,0)) as payCount,
+        sum(if(t.payment_status_ = 'PAID',t.payment_amount_,0)) as payCount
+        from temp_director_training_camp_detail t
+        where t.temp_director_training_camp_id_ in
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+        group by t.temp_director_training_camp_id_
+    </select>
+
+    <sql id="SelectSql">
+        <if test="param.tempDirectorTrainingCampId != null">
+            and t.temp_director_training_camp_id_ = #{param.tempDirectorTrainingCampId}
+        </if>
+        <if test="param.search != null and param.search != ''">
+                and (t.username_ like concat('%', #{param.search}, '%') or t.mobile_ like concat('%', #{param.search}, '%'))
+            </if>
+            <if test="param.provinceCode != null and param.provinceCode != ''">
+                and t.province_code_ = #{param.provinceCode}
+            </if>
+            <if test="param.cityCode != null and param.cityCode != ''">
+                and t.city_code_ = #{param.cityCode}
+            </if>
+            <if test="param.regionCode != null and param.regionCode != ''">
+                and t.region_code_ = #{param.regionCode}
+            </if>
+            <if test="param.paymentStatus != null and param.paymentStatus != ''">
+                and t.payment_status_ = #{param.paymentStatus}
+            </if>
+    </sql>
+    <select id="queryPage"
+            resultType="com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampDetailWrapper$TempDirectorTrainingCampDetail">
+
+        select *
+        from temp_director_training_camp_detail t
+        <where>
+            <include refid="SelectSql"/>
+        </where>
+        order by t.id_ desc
+    </select>
+
+    <select id="queryPageStat"
+            resultType="com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampDetailWrapper$TempDirectorTrainingCampDetailStat">
+        select
+        count(t.id_) as applyCount,
+        sum(if(t.payment_status_ = 'PAID',1,0)) as payCount,
+        sum(if(t.bird_flag_ =1 and t.payment_status_ = 'PAID',1,0)) as birdCount,
+        sum(if(t.payment_status_ = 'PAID',t.payment_amount_,0)) as payAmount
+        from temp_director_training_camp_detail t
+        <where>
+            <include refid="SelectSql"/>
+        </where>
+    </select>
 </mapper>

+ 34 - 0
mec-biz/src/main/resources/config/mybatis/TempDirectorTrainingCampMapper.xml

@@ -2,4 +2,38 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ym.mec.biz.dal.dao.TempDirectorTrainingCampDao">
 
+    <select id="queryPage"
+            resultType="com.ym.mec.biz.dal.wrapper.TempDirectorTrainingCampWrapper$TempDirectorTrainingCamp">
+        select id_,
+               name_,
+               apply_start_date_,
+               apply_end_date_,
+               bird_price_end_date_,
+               bird_price_,
+               current_price_,
+               original_price_,
+               update_by_,
+               create_time_,
+               update_time_
+        from temp_director_training_camp t
+        <where>
+            <if test="param.search != null and param.search != ''">
+                and (t.name_ like concat('%', #{param.search}, '%') )
+            </if>
+            <if test="param.status != null and param.status != ''">
+                <choose>
+                    <when test="param.status == 'NOT_START'">
+                        and now() &lt; t.apply_start_date_
+                    </when>
+                    <when test="param.status == 'APPLY'">
+                        and now() &gt;= t.apply_start_date_ and now() &lt;= t.apply_end_date_
+                    </when>
+                    <when test="param.status == 'END'">
+                        and now() &gt; t.apply_end_date_
+                    </when>
+                </choose>
+            </if>
+        </where>
+        order by t.id_ desc
+    </select>
 </mapper>