记得上下班打卡 | git大法好,push需谨慎

Commit 9cf6ffb9 authored by GaoHu's avatar GaoHu

BUG:代理管理演出列表异常

parent 160c156b
package com.liquidnet.client.admin.zhengzai.smile.dto; package com.liquidnet.client.admin.zhengzai.smile.dto;
import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -10,54 +12,56 @@ import java.time.LocalDateTime; ...@@ -10,54 +12,56 @@ import java.time.LocalDateTime;
* @author TT * @author TT
*/ */
@Data @Data
public class ShowVo { public class ShowVo implements Serializable {
private static final long serialVersionUID = 1L;
/** /**
* 演出id * 演出id
*/ */
@ApiModelProperty(value ="演出id") @ApiModelProperty(value = "演出id")
private String performancesId; private String performancesId;
/** /**
* 演出名 * 演出名
*/ */
@ApiModelProperty(value ="演出名") @ApiModelProperty(value = "演出名")
private String title; private String title;
/** /**
* 城市 * 城市
*/ */
@ApiModelProperty(value ="城市") @ApiModelProperty(value = "城市")
private String cityName; private String cityName;
/** /**
* 总销售数量 -张 saleGeneral * 总销售数量 -张 saleGeneral
*/ */
@ApiModelProperty(value ="总销售数量") @ApiModelProperty(value = "总销售数量")
private BigDecimal open; private BigDecimal open;
/** /**
* 总销售金额 totalSalePrice * 总销售金额 totalSalePrice
*/ */
@ApiModelProperty(value ="总销售金额") @ApiModelProperty(value = "总销售金额")
private BigDecimal totalSalePrice; private BigDecimal totalSalePrice;
/** /**
* 总销售代理 * 总销售代理
*/ */
@ApiModelProperty(value ="总销售代理人数") @ApiModelProperty(value = "总销售代理人数")
private Long totalOutAgent; private Long totalOutAgent;
/** /**
* 演出结束时间 * 演出结束时间
*/ */
@ApiModelProperty(value ="演出结束时间") @ApiModelProperty(value = "演出结束时间")
private LocalDateTime timeEnd; private LocalDateTime timeEnd;
/** /**
* 演出结束时间 * 演出结束时间
*/ */
@ApiModelProperty(value ="演出开始时间") @ApiModelProperty(value = "演出开始时间")
private LocalDateTime timeStart; private LocalDateTime timeStart;
@ApiModelProperty(value = "演出状态") @ApiModelProperty(value = "演出状态")
...@@ -69,45 +73,71 @@ public class ShowVo { ...@@ -69,45 +73,71 @@ public class ShowVo {
/** /**
* 打款状态 * 打款状态
*/ */
@ApiModelProperty(value ="演出打款状态") @ApiModelProperty(value = "演出打款状态")
private String status; private String status;
/** /**
* 顺序 * 顺序
*/ */
@ApiModelProperty(value ="演出排列顺序") @ApiModelProperty(value = "演出排列顺序")
private String comment; private String comment;
public void setShowStatus(Integer status){ public void setShowStatus(Integer status) {
this.showStatus=status; this.showStatus = status;
switch (status){ switch (status) {
case 1: case 1:
this.statusName="审核中"; this.statusName = "审核中";
break; break;
case 3: case 3:
this.statusName="审核通过"; this.statusName = "审核通过";
break; break;
case 4: case 4:
this.statusName="审核拒绝"; this.statusName = "审核拒绝";
break; break;
case 6: case 6:
this.statusName="售卖中"; this.statusName = "售卖中";
break; break;
case 7: case 7:
this.statusName="已下架"; this.statusName = "已下架";
break; break;
case 8: case 8:
this.statusName="售罄"; this.statusName = "售罄";
break; break;
case 9: case 9:
this.statusName="未开始"; this.statusName = "未开始";
break; break;
case 10: case 10:
this.statusName="已结束"; this.statusName = "已结束";
break; break;
default: default:
this.statusName="其他"; this.statusName = "其他";
break; break;
} }
} }
private static final ShowVo obj = new ShowVo();
public static ShowVo getNew() {
try {
return (ShowVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new ShowVo();
}
}
public ShowVo copy(KylinPerformancesDto kylinPerformancesDto) {
if (null == kylinPerformancesDto) return null;
this.setTimeStart(kylinPerformancesDto.getTimeStart());
this.setComment(kylinPerformancesDto.getComment());
this.setTitle(kylinPerformancesDto.getTitle());
this.setShowStatus(kylinPerformancesDto.getStatus());
this.setCityName(kylinPerformancesDto.getCityName());
this.setTotalSalePrice(kylinPerformancesDto.getTotalSalePrice());
this.setOpen(kylinPerformancesDto.getOpen() == null ? BigDecimal.valueOf(0) : kylinPerformancesDto.getOpen());
this.setPerformancesId(kylinPerformancesDto.getPerformancesId());
this.setTimeEnd(kylinPerformancesDto.getTimeEnd());
this.setTotalOutAgent(kylinPerformancesDto.getTotalOutAgent());
return this;
}
} }
...@@ -4,6 +4,8 @@ package com.liquidnet.client.admin.zhengzai.smile.service.impl; ...@@ -4,6 +4,8 @@ package com.liquidnet.client.admin.zhengzai.smile.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.core.domain.AjaxResult; import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo; import com.liquidnet.client.admin.common.core.page.TableDataInfo;
...@@ -13,6 +15,7 @@ import com.liquidnet.client.admin.zhengzai.smile.service.ISmileShowService; ...@@ -13,6 +15,7 @@ import com.liquidnet.client.admin.zhengzai.smile.service.ISmileShowService;
import com.liquidnet.client.admin.zhengzai.smile.utils.SmileRedisUtils; import com.liquidnet.client.admin.zhengzai.smile.utils.SmileRedisUtils;
import com.liquidnet.service.goblin.constant.SmileRedisConst; import com.liquidnet.service.goblin.constant.SmileRedisConst;
import com.liquidnet.service.kylin.dao.TicketAndStatusDao; import com.liquidnet.service.kylin.dao.TicketAndStatusDao;
import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinPerformanceStatus; import com.liquidnet.service.kylin.entity.KylinPerformanceStatus;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
...@@ -87,45 +90,19 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -87,45 +90,19 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
@Override @Override
public TableDataInfo listShow(SmileShowParam smileShowParam) { public TableDataInfo listShow(SmileShowParam smileShowParam) {
PageHelper.startPage(smileShowParam.getPageNum(),smileShowParam.getPageSize());
TableDataInfo rspData = new TableDataInfo(); TableDataInfo rspData = new TableDataInfo();
//查询所有代理的演出id //查询所有代理的演出id
List<KylinPerformances> kylinPerformancesList = kylinPerformancesMapper.selectPerIdByAgent((smileShowParam.getPageNum()-1)* smileShowParam.getPageSize(),smileShowParam.getPageSize()); List<KylinPerformancesDto> kylinPerformancesList = kylinPerformancesMapper.selectPerIdByAgent();
List<ShowVo> showVoList = kylinPerformancesList.stream().map(kylinPerformances -> { List<ShowVo> showVoList = kylinPerformancesList.stream().map(kylinPerformancesDto -> {
ShowVo vo = new ShowVo(); ShowVo vo = ShowVo.getNew().copy(kylinPerformancesDto);
//演出id
vo.setPerformancesId(kylinPerformances.getPerformancesId());
//演出名称
vo.setTitle(kylinPerformances.getTitle());
//城市
vo.setCityName(kylinPerformances.getCityName());
//根据演出id 查询所有订单
Map map = kylinOrderTicketsMapper.selectByPerformanceId(kylinPerformances.getPerformancesId());
vo.setOpen(map != null ? (BigDecimal) (map.get("open")) : null);
vo.setTotalSalePrice(map != null ? (BigDecimal) (map.get("price")) : null);
//根据演出id查询销售代理
List<Long> ordNum = kylinOrderTicketRelationsMapper.concatByAgentDed(kylinPerformances.getPerformancesId());
vo.setTotalOutAgent(ordNum.stream().reduce(Long::sum).orElse(0L));
//演出结束时间
vo.setTimeEnd(kylinPerformances.getTimeEnd());
//演出开始时间
vo.setTimeStart(kylinPerformances.getTimeStart());
//演出状态
LambdaQueryWrapper<KylinPerformanceStatus> queryWrapper = Wrappers.lambdaQuery(KylinPerformanceStatus.class);
queryWrapper.eq(KylinPerformanceStatus::getPerformanceId, kylinPerformances.getPerformancesId());
vo.setShowStatus(kylinPerformanceStatusMapper.selectOne(queryWrapper).getStatus());
//打款状态 //打款状态
vo.setStatus(smileRedisUtils.getShowStatus(kylinPerformances.getPerformancesId())); vo.setStatus(smileRedisUtils.getShowStatus(kylinPerformancesDto.getPerformancesId()));
//演出顺序
vo.setComment(kylinPerformances.getComment());
return vo; return vo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
rspData.setCode(0); rspData.setCode(0);
rspData.setRows(showVoList); rspData.setRows(showVoList);
rspData.setTotal(smileAgentMapper.selectCountPerId()); rspData.setTotal(new PageInfo(kylinPerformancesList).getTotal());
return rspData; return rspData;
} }
...@@ -137,14 +114,14 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -137,14 +114,14 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
kylinPerformancesMapper.updateCommentByPer(showSort.getSort(), showSort.getPerformancesId()); kylinPerformancesMapper.updateCommentByPer(showSort.getSort(), showSort.getPerformancesId());
log.info("redis show key:{}", showSort.getPerformancesId()); log.info("redis show key:{}", showSort.getPerformancesId());
//判断该演出是否修改过票提 //判断该演出是否修改过票提
if (smileRedisUtils.getShowIds().stream().anyMatch(showId -> showSort.getPerformancesId().equals(showId))){ if (smileRedisUtils.getShowIds().stream().anyMatch(showId -> showSort.getPerformancesId().equals(showId))) {
List<String> showIds = smileRedisUtils.getShowIds(); List<String> showIds = smileRedisUtils.getShowIds();
showIds.remove(showSort.getPerformancesId()); showIds.remove(showSort.getPerformancesId());
showIds.add(0,showSort.getPerformancesId()); showIds.add(0, showSort.getPerformancesId());
smileRedisUtils.setShowIds(showIds); smileRedisUtils.setShowIds(showIds);
return AjaxResult.success(); return AjaxResult.success();
}else { } else {
return AjaxResult.warn("清先为演出设置票提!"); return AjaxResult.warn("清先为演出设置票提!");
} }
...@@ -232,7 +209,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -232,7 +209,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
showTicketVo.setTitle(ticketAndStatusDao.getTitle()); showTicketVo.setTitle(ticketAndStatusDao.getTitle());
//单价 //单价
showTicketVo.setPrice(ticketAndStatusDao.getPrice()); showTicketVo.setPrice(ticketAndStatusDao.getPrice());
showTicketVo.setType(ticketAndStatusDao.getType()==1?"单日票":"通票"); showTicketVo.setType(ticketAndStatusDao.getType() == 1 ? "单日票" : "通票");
showTicketVo.setUseEnd(ticketAndStatusDao.getUseEnd()); showTicketVo.setUseEnd(ticketAndStatusDao.getUseEnd());
showTicketVo.setUseStart(ticketAndStatusDao.getUseStart()); showTicketVo.setUseStart(ticketAndStatusDao.getUseStart());
showTicketVo.setTotalGeneral(ticketAndStatusDao.getTotalGeneral()); showTicketVo.setTotalGeneral(ticketAndStatusDao.getTotalGeneral());
...@@ -347,7 +324,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -347,7 +324,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
public AjaxResult updateRedis() { public AjaxResult updateRedis() {
try { try {
String perIds = (String) smileRedisUtils.get(SmileRedisConst.SMILE_SHOW); String perIds = (String) smileRedisUtils.get(SmileRedisConst.SMILE_SHOW);
if(StringUtils.isNotBlank(perIds)){ if (StringUtils.isNotBlank(perIds)) {
List<String> list = new ArrayList<>(Arrays.asList(perIds.split(","))); List<String> list = new ArrayList<>(Arrays.asList(perIds.split(",")));
smileRedisUtils.setShowIds(list); smileRedisUtils.setShowIds(list);
} }
......
package com.liquidnet.service.kylin.dao.report;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* 演出
* </p>
*
* @author liquidnet
* @since 2021-05-05
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinPerformancesDto implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
/**
* 演出id
*/
private String performancesId;
/**
* 演出名
*/
private String title;
/**
* 城市
*/
private String cityName;
/**
* 总销售数量 -张 saleGeneral
*/
private BigDecimal open;
/**
* 总销售金额 totalSalePrice
*/
private BigDecimal totalSalePrice;
/**
* 总销售代理
*/
private Long totalOutAgent;
/**
* 演出结束时间
*/
private LocalDateTime timeEnd;
/**
* 演出结束时间
*/
private LocalDateTime timeStart;
/**
* 顺序
*/
private String comment;
/**
* 演出状态
*/
private int status;
}
...@@ -56,8 +56,6 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> { ...@@ -56,8 +56,6 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> {
List<KylinOrderTicketAndAgentVo> selectListByPerformanceId(@Param("performancesId") String performancesId,@Param("ticketId")String ticketId); List<KylinOrderTicketAndAgentVo> selectListByPerformanceId(@Param("performancesId") String performancesId,@Param("ticketId")String ticketId);
Map selectByPerformanceId(@Param("performancesId") String performancesId);
List<String> getAgentIdListByPerId(@Param("performancesId") String performancesId); List<String> getAgentIdListByPerId(@Param("performancesId") String performancesId);
Map selectNumAndPrice(@Param("performancesId") String performancesId,@Param("ticketsId") String ticketsId); Map selectNumAndPrice(@Param("performancesId") String performancesId,@Param("ticketsId") String ticketsId);
......
...@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.mapper; ...@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.dao.*; import com.liquidnet.service.kylin.dao.*;
import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto;
import com.liquidnet.service.kylin.entity.KylinPerformances; import com.liquidnet.service.kylin.entity.KylinPerformances;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -67,7 +68,7 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> { ...@@ -67,7 +68,7 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<KylinPerformances> selectByComment(); List<KylinPerformances> selectByComment();
List<KylinPerformances> selectPerIdByAgent(@Param("pageNumber") Integer pageNumber, @Param("pageSize")Integer pageSize); List<KylinPerformancesDto> selectPerIdByAgent();
List<KylinPerformancesDao> selectTicketIdByPerId(@Param("performancesId") String performancesId); List<KylinPerformancesDao> selectTicketIdByPerId(@Param("performancesId") String performancesId);
......
...@@ -530,31 +530,6 @@ ...@@ -530,31 +530,6 @@
</select> </select>
<select id="selectByPerformanceId" resultType="java.util.Map">
SELECT
kk.performance_id,
sum( kot.number - kot.refund_number ) AS `open`,
sum( kot.price_actual - kot.price_refund ) AS price
FROM
kylin_order_tickets AS kot
LEFT JOIN (
SELECT
kotr.order_id,
kotr.agent_id,
kotr.performance_id,
kotr.agent_distributions,
kotr.agent_id_master,
kotr.agent_distributions_master,
kotr.ticket_id
FROM
kylin_order_ticket_relations AS kotr
LEFT JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id
) AS kk ON kot.order_tickets_id = kk.order_id
WHERE
kk.agent_id != 0
AND kk.performance_id = #{performancesId}
</select>
<select id="getAgentIdListByPerId" resultType="String"> <select id="getAgentIdListByPerId" resultType="String">
SELECT agent_id SELECT agent_id
FROM kylin_order_ticket_relations FROM kylin_order_ticket_relations
......
...@@ -710,17 +710,56 @@ GROUP BY user_mobile; ...@@ -710,17 +710,56 @@ GROUP BY user_mobile;
select performances_id,comment from kylin_performances where `comment` != "" ORDER BY `comment`; select performances_id,comment from kylin_performances where `comment` != "" ORDER BY `comment`;
</select> </select>
<select id="selectPerIdByAgent" resultType="com.liquidnet.service.kylin.entity.KylinPerformances"> <select id="selectPerIdByAgent" resultType="com.liquidnet.service.kylin.dao.report.KylinPerformancesDto">
select kp.performances_id,kp.title,kp.city_name,kp.time_end,kp.time_start,kp.comment SELECT
from kylin_performances as kp kp.performances_id AS performancesId,
left join kylin_ticket_time_relation as kttr on kttr.performance_id = kp.performances_id kp.title,
left join kylin_ticket_relations as ktr on ktr.times_id = kttr.times_id kp.city_name AS cityName,
inner join kylin_ticket_status as kts on kts.ticket_id = ktr.ticket_id kp.time_end AS timeEnd,
where kts.is_agent = 1 kp.time_start AS timeStart,
AND kp.performances_id IN ( SELECT sa.performance_id FROM smile_agent sa WHERE sa.del_tag = 0 GROUP BY sa.performance_id ) kp.`comment`,
group by kp.performances_id map.`open`,
order by kp.comment desc, kp.time_start asc map.price,
limit #{pageNumber},#{pageSize} kps.`status`
FROM
kylin_performances AS kp
LEFT JOIN kylin_performance_status AS kps ON kps.performance_id = kp.performances_id
LEFT JOIN kylin_ticket_time_relation AS kttr ON kttr.performance_id = kp.performances_id
LEFT JOIN kylin_ticket_relations AS ktr ON ktr.times_id = kttr.times_id
INNER JOIN kylin_ticket_status AS kts ON kts.ticket_id = ktr.ticket_id
LEFT JOIN (
SELECT
kk.performance_id,
sum( kot.number - kot.refund_number ) AS `open`,
sum( kot.price_actual - kot.price_refund ) AS price
FROM
kylin_order_tickets AS kot
LEFT JOIN (
SELECT
kotr.order_id,
kotr.agent_id,
kotr.performance_id,
kotr.agent_distributions,
kotr.agent_id_master,
kotr.agent_distributions_master,
kotr.ticket_id
FROM
kylin_order_ticket_relations AS kotr
LEFT JOIN kylin_order_ticket_status AS kots ON kotr.order_id = kots.order_id
WHERE kots.pay_status = 1
) AS kk ON kot.order_tickets_id = kk.order_id
WHERE
kk.agent_id != 0
GROUP BY kk.performance_id
) AS map ON map.performance_id = kp.performances_id
WHERE
kts.is_agent = 1
AND kp.performances_id IN (SELECT sa.performance_id FROM smile_agent sa WHERE sa.del_tag = 0 GROUP BY sa.performance_id)
GROUP BY
kp.performances_id
ORDER BY
kp.COMMENT DESC,
kp.time_start ASC
</select> </select>
<select id="selectTicketIdByPerId" resultType="com.liquidnet.service.kylin.dao.KylinPerformancesDao"> <select id="selectTicketIdByPerId" resultType="com.liquidnet.service.kylin.dao.KylinPerformancesDao">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment