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

Commit 9cf6ffb9 authored by GaoHu's avatar GaoHu

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

parent 160c156b
package com.liquidnet.client.admin.zhengzai.smile.dto;
import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -10,54 +12,56 @@ import java.time.LocalDateTime;
* @author TT
*/
@Data
public class ShowVo {
public class ShowVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 演出id
*/
@ApiModelProperty(value ="演出id")
@ApiModelProperty(value = "演出id")
private String performancesId;
/**
* 演出名
*/
@ApiModelProperty(value ="演出名")
@ApiModelProperty(value = "演出名")
private String title;
/**
* 城市
*/
@ApiModelProperty(value ="城市")
@ApiModelProperty(value = "城市")
private String cityName;
/**
* 总销售数量 -张 saleGeneral
*/
@ApiModelProperty(value ="总销售数量")
@ApiModelProperty(value = "总销售数量")
private BigDecimal open;
/**
* 总销售金额 totalSalePrice
*/
@ApiModelProperty(value ="总销售金额")
@ApiModelProperty(value = "总销售金额")
private BigDecimal totalSalePrice;
/**
* 总销售代理
*/
@ApiModelProperty(value ="总销售代理人数")
@ApiModelProperty(value = "总销售代理人数")
private Long totalOutAgent;
/**
* 演出结束时间
*/
@ApiModelProperty(value ="演出结束时间")
@ApiModelProperty(value = "演出结束时间")
private LocalDateTime timeEnd;
/**
* 演出结束时间
*/
@ApiModelProperty(value ="演出开始时间")
@ApiModelProperty(value = "演出开始时间")
private LocalDateTime timeStart;
@ApiModelProperty(value = "演出状态")
......@@ -69,45 +73,71 @@ public class ShowVo {
/**
* 打款状态
*/
@ApiModelProperty(value ="演出打款状态")
@ApiModelProperty(value = "演出打款状态")
private String status;
/**
* 顺序
*/
@ApiModelProperty(value ="演出排列顺序")
@ApiModelProperty(value = "演出排列顺序")
private String comment;
public void setShowStatus(Integer status){
this.showStatus=status;
switch (status){
public void setShowStatus(Integer status) {
this.showStatus = status;
switch (status) {
case 1:
this.statusName="审核中";
this.statusName = "审核中";
break;
case 3:
this.statusName="审核通过";
this.statusName = "审核通过";
break;
case 4:
this.statusName="审核拒绝";
this.statusName = "审核拒绝";
break;
case 6:
this.statusName="售卖中";
this.statusName = "售卖中";
break;
case 7:
this.statusName="已下架";
this.statusName = "已下架";
break;
case 8:
this.statusName="售罄";
this.statusName = "售罄";
break;
case 9:
this.statusName="未开始";
this.statusName = "未开始";
break;
case 10:
this.statusName="已结束";
this.statusName = "已结束";
break;
default:
this.statusName="其他";
this.statusName = "其他";
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;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
......@@ -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.service.goblin.constant.SmileRedisConst;
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.entity.KylinPerformanceStatus;
import com.liquidnet.service.kylin.entity.KylinPerformances;
......@@ -87,45 +90,19 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
@Override
public TableDataInfo listShow(SmileShowParam smileShowParam) {
PageHelper.startPage(smileShowParam.getPageNum(),smileShowParam.getPageSize());
TableDataInfo rspData = new TableDataInfo();
//查询所有代理的演出id
List<KylinPerformances> kylinPerformancesList = kylinPerformancesMapper.selectPerIdByAgent((smileShowParam.getPageNum()-1)* smileShowParam.getPageSize(),smileShowParam.getPageSize());
List<ShowVo> showVoList = kylinPerformancesList.stream().map(kylinPerformances -> {
ShowVo vo = new ShowVo();
//演出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());
List<KylinPerformancesDto> kylinPerformancesList = kylinPerformancesMapper.selectPerIdByAgent();
List<ShowVo> showVoList = kylinPerformancesList.stream().map(kylinPerformancesDto -> {
ShowVo vo = ShowVo.getNew().copy(kylinPerformancesDto);
//打款状态
vo.setStatus(smileRedisUtils.getShowStatus(kylinPerformances.getPerformancesId()));
//演出顺序
vo.setComment(kylinPerformances.getComment());
vo.setStatus(smileRedisUtils.getShowStatus(kylinPerformancesDto.getPerformancesId()));
return vo;
}).collect(Collectors.toList());
rspData.setCode(0);
rspData.setRows(showVoList);
rspData.setTotal(smileAgentMapper.selectCountPerId());
rspData.setTotal(new PageInfo(kylinPerformancesList).getTotal());
return rspData;
}
......@@ -137,14 +114,14 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
kylinPerformancesMapper.updateCommentByPer(showSort.getSort(), 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();
showIds.remove(showSort.getPerformancesId());
showIds.add(0,showSort.getPerformancesId());
showIds.add(0, showSort.getPerformancesId());
smileRedisUtils.setShowIds(showIds);
return AjaxResult.success();
}else {
} else {
return AjaxResult.warn("清先为演出设置票提!");
}
......@@ -232,7 +209,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
showTicketVo.setTitle(ticketAndStatusDao.getTitle());
//单价
showTicketVo.setPrice(ticketAndStatusDao.getPrice());
showTicketVo.setType(ticketAndStatusDao.getType()==1?"单日票":"通票");
showTicketVo.setType(ticketAndStatusDao.getType() == 1 ? "单日票" : "通票");
showTicketVo.setUseEnd(ticketAndStatusDao.getUseEnd());
showTicketVo.setUseStart(ticketAndStatusDao.getUseStart());
showTicketVo.setTotalGeneral(ticketAndStatusDao.getTotalGeneral());
......@@ -347,7 +324,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
public AjaxResult updateRedis() {
try {
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(",")));
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> {
List<KylinOrderTicketAndAgentVo> selectListByPerformanceId(@Param("performancesId") String performancesId,@Param("ticketId")String ticketId);
Map selectByPerformanceId(@Param("performancesId") String performancesId);
List<String> getAgentIdListByPerId(@Param("performancesId") String performancesId);
Map selectNumAndPrice(@Param("performancesId") String performancesId,@Param("ticketsId") String ticketsId);
......
......@@ -2,6 +2,7 @@ package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.dao.*;
import com.liquidnet.service.kylin.dao.report.KylinPerformancesDto;
import com.liquidnet.service.kylin.entity.KylinPerformances;
import org.apache.ibatis.annotations.Param;
......@@ -67,7 +68,7 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<KylinPerformances> selectByComment();
List<KylinPerformances> selectPerIdByAgent(@Param("pageNumber") Integer pageNumber, @Param("pageSize")Integer pageSize);
List<KylinPerformancesDto> selectPerIdByAgent();
List<KylinPerformancesDao> selectTicketIdByPerId(@Param("performancesId") String performancesId);
......
......@@ -530,31 +530,6 @@
</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 agent_id
FROM kylin_order_ticket_relations
......
......@@ -710,17 +710,56 @@ GROUP BY user_mobile;
select performances_id,comment from kylin_performances where `comment` != "" ORDER BY `comment`;
</select>
<select id="selectPerIdByAgent" resultType="com.liquidnet.service.kylin.entity.KylinPerformances">
select kp.performances_id,kp.title,kp.city_name,kp.time_end,kp.time_start,kp.comment
from kylin_performances as kp
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
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
limit #{pageNumber},#{pageSize}
<select id="selectPerIdByAgent" resultType="com.liquidnet.service.kylin.dao.report.KylinPerformancesDto">
SELECT
kp.performances_id AS performancesId,
kp.title,
kp.city_name AS cityName,
kp.time_end AS timeEnd,
kp.time_start AS timeStart,
kp.`comment`,
map.`open`,
map.price,
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 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