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

Commit b810f188 authored by GaoHu's avatar GaoHu

Merge branch 'dev-smile' into dev_kid

# Conflicts:
#	liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/smile/service/impl/SmileShowServiceImpl.java
parents 5d72c6f8 c59a44df
......@@ -41,7 +41,7 @@ public class ShowTicketVo {
/**
* 代理销售数量 总代销售数量+普代销售数量
*/
private Integer agentSaleNum;
private BigDecimal agentSaleNum;
/**
* 总销售金额 总代销售金额+普代销售金额
......
......@@ -37,6 +37,14 @@ public class UserData {
@ApiModelProperty(value = "身份 1。总代 2.普代", example = "")
private Integer type;
/**
* 用户代理票信息
*/
@ApiModelProperty(value = "用户代理票信息", example = "")
List<UserDataAgentVo> dataAgentVos;
/**
* 打款状态
*/
......
package com.liquidnet.client.admin.zhengzai.smile.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class UserDataAgentVo {
/**
* 票提id
*/
@ApiModelProperty(value = "票提id", example = "")
private String ticketsId;
/**
* 票名称
*/
@ApiModelProperty(value = "票名称", example = "")
private String ticketName;
/**
* 数量
*/
@ApiModelProperty(value = "售出张数", example = "")
private BigDecimal number;
/**
* 单价
*/
@ApiModelProperty(value = "单价", example = "")
private BigDecimal price;
/**
* 票提
*/
@ApiModelProperty(value = "票提", example = "")
private BigDecimal agent;
/**
* 提成
*/
@ApiModelProperty(value = "提成", example = "")
private BigDecimal commission;
/**
* 打款状态
*/
@ApiModelProperty(value = "打款状态", example = "")
private String status;
}
......@@ -12,7 +12,6 @@ import com.liquidnet.client.admin.zhengzai.smile.dto.*;
import com.liquidnet.client.admin.zhengzai.smile.service.ISmileShowService;
import com.liquidnet.client.admin.zhengzai.smile.utils.SmileRedisUtils;
import com.liquidnet.service.goblin.dto.vo.SmileSellDataVO;
import com.liquidnet.service.kylin.dao.KylinOrderTicketAndAgentVo;
import com.liquidnet.service.kylin.dao.TicketAndStatusDao;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinPerformanceStatus;
......@@ -203,7 +202,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
LambdaQueryWrapper<KylinPerformances> queryWrapper = Wrappers.lambdaQuery(KylinPerformances.class);
queryWrapper.eq(KylinPerformances::getPerformancesId, smilePriceParam.getPerformancesId());
LocalDateTime timeEnd = kylinPerformancesMapper.selectOne(queryWrapper).getTimeEnd();
if (timeEnd.isAfter(LocalDateTime.now())) {
if (timeEnd.isBefore(LocalDateTime.now())) {
return AjaxResult.warn("演出尚未结束不能进行打款");
}
return null;
......@@ -215,12 +214,9 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
ShowVoById showVoById = new ShowVoById();
//根据演出ID查询演出数据演出数据
KylinPerformanceVo kylinPerformanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performancesId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
try {
assert kylinPerformanceVo != null;
} catch (Exception e) {
return null;
if (kylinPerformanceVo == null) {
return AjaxResult.warn("演出未找到");
}
//票提集合 根据演出id查询票提id
List<ShowAgentVo> showAgentVoList = new ArrayList<>();
List<ShowTicketVo> showTicketVoList = new ArrayList<>();
......@@ -233,55 +229,57 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
if (ticketsIdList.size() > 0) {
//根据票提IDs查询票信息
List<TicketAndStatusDao> ticketAndStatusDaoList = kylinTicketsMapper.selectTicketsByIds(ticketsIdList);
for (TicketAndStatusDao ticketAndStatusDao : ticketAndStatusDaoList) {
SmileAgent smileAgent = map.get(ticketAndStatusDao.getTicketsId());
ShowAgentVo showAgentVo = getShowAgentVo(performancesId, ticketAndStatusDao, smileAgent);
ShowTicketVo showTicketVo = new ShowTicketVo();
showTicketVo.setTitle(ticketAndStatusDao.getTitle());
//单价
showTicketVo.setPrice(ticketAndStatusDao.getPrice());
showTicketVo.setType(ticketAndStatusDao.getType());
showTicketVo.setUseEnd(ticketAndStatusDao.getUseEnd());
showTicketVo.setUseStart(ticketAndStatusDao.getUseStart());
showTicketVo.setTotalGeneral(ticketAndStatusDao.getTotalGeneral());
//根据演出id查询处所有订单
List<KylinOrderTicketAndAgentVo> kylinOrderTicketsList = kylinOrderTicketsMapper.selectListByPerformanceId(performancesId, ticketAndStatusDao.getTicketsId());
//代理销售数量
int agentSaleNum = 0;
//总销售金额
BigDecimal totalPrice = BigDecimal.valueOf(0);
//总代票提
for (KylinOrderTicketAndAgentVo kylinOrderTicketAndAgentVo : kylinOrderTicketsList) {
int num = kylinOrderTicketAndAgentVo.getNumber() - kylinOrderTicketAndAgentVo.getRefundNumber();
if (num > 0) {
agentSaleNum += num;
//单价*(总代票提+抽成票提)*数量
totalPrice = totalPrice.add(
(ticketAndStatusDao.getPrice().multiply(kylinOrderTicketAndAgentVo.getAgentDistributions().add(kylinOrderTicketAndAgentVo.getAgentDistributionsMaster())))
.multiply(BigDecimal.valueOf(num)));
if (ticketAndStatusDaoList != null && ticketAndStatusDaoList.size() > 0) {
for (TicketAndStatusDao ticketAndStatusDao : ticketAndStatusDaoList) {
SmileAgent smileAgent = map.get(ticketAndStatusDao.getTicketsId());
ShowAgentVo showAgentVo = getShowAgentVo(performancesId, ticketAndStatusDao, smileAgent);
ShowTicketVo showTicketVo = new ShowTicketVo();
showTicketVo.setTitle(ticketAndStatusDao.getTitle());
//单价
showTicketVo.setPrice(ticketAndStatusDao.getPrice());
showTicketVo.setType(ticketAndStatusDao.getType());
showTicketVo.setUseEnd(ticketAndStatusDao.getUseEnd());
showTicketVo.setUseStart(ticketAndStatusDao.getUseStart());
showTicketVo.setTotalGeneral(ticketAndStatusDao.getTotalGeneral());
//根据演出id和票提id查询出一共卖出票的数量
Map numAndPrice = kylinOrderTicketsMapper.selectNumAndPrice(performancesId, ticketAndStatusDao.getTicketsId());
//销售总数
showTicketVo.setAgentSaleNum(numAndPrice != null ? (BigDecimal) numAndPrice.get("agentSaleNum") : BigDecimal.valueOf(0));
//销售金额
showTicketVo.setTotalPrice(numAndPrice != null ? (BigDecimal) numAndPrice.get("totalPrice") : BigDecimal.valueOf(0));
/*//根据演出id查询处所有订单
List<KylinOrderTicketAndAgentVo> kylinOrderTicketsList = kylinOrderTicketsMapper.selectListByPerformanceId(performancesId, ticketAndStatusDao.getTicketsId());
//代理销售数量
int agentSaleNum = 0;
//总销售金额
BigDecimal totalPrice = BigDecimal.valueOf(0);
//总代票提
for (KylinOrderTicketAndAgentVo kylinOrderTicketAndAgentVo : kylinOrderTicketsList) {
int num = kylinOrderTicketAndAgentVo.getNumber() - kylinOrderTicketAndAgentVo.getRefundNumber();
if (num > 0) {
agentSaleNum += num;
//单价*(总代票提+抽成票提)*数量
totalPrice = totalPrice.add(
(ticketAndStatusDao.getPrice().multiply(kylinOrderTicketAndAgentVo.getAgentDistributions().add(kylinOrderTicketAndAgentVo.getAgentDistributionsMaster())))
.multiply(BigDecimal.valueOf(num)));
}
}
}
showTicketVo.setAgentSaleNum(agentSaleNum);
showTicketVo.setTotalPrice(totalPrice);
showTicketVo.setAgentSaleNum(agentSaleNum);
showTicketVo.setTotalPrice(totalPrice);*/
showAgentVoList.add(showAgentVo);
showTicketVoList.add(showTicketVo);
showAgentVoList.add(showAgentVo);
showTicketVoList.add(showTicketVo);
}
} else {
return AjaxResult.warn("查询票提信息失败");
}
}
/*ShowTicketVo showTicketVo = new ShowTicketVo();
//代理销售总张数
showTicketVo.setTitle("总计");
//总
showTicketVo.setAgentSaleNum((int) smileRedisUtils.get(SmileRedisConst.SELL_SHOW_POEN.concat(performancesId)));
showTicketVo.setTotalPrice((BigDecimal) smileRedisUtils.get(SmileRedisConst.SELL_SHOW_TOTAL_SALE_PRICE.concat(performancesId)));
showTicketVoList.add(showTicketVo);*/
getShowVo(showVoById, kylinPerformanceVo, showAgentVoList, showTicketVoList);
......@@ -306,45 +304,49 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
@Override
public AjaxResult saleData(String performancesId) {
SaleDataVo saleDataVo = new SaleDataVo();
//演出id
saleDataVo.setPerformancesId(performancesId);
//设置演出状态
saleDataVo.setPriceStatus(smileRedisUtils.getShowPriceId(performancesId));
List<SmileAgent> smileAgents = getSmileAgentsByProId(performancesId);
if (smileAgents.size() == 0) {
return AjaxResult.error("该演出未开启代理");
}
//演出名称
KylinPerformanceVo kylinPerformanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performancesId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
if (kylinPerformanceVo == null) {
return AjaxResult.warn("演出未找到");
}
saleDataVo.setTitle(kylinPerformanceVo.getTitle());
//map 票提id,票提信息
Map<String, SmileAgent> map = getSmileAgentMap(smileAgents);
List<String> ticketsIdList = smileAgents.stream().map(SmileAgent::getTicketId).collect(Collectors.toList());
List<ShowAgentVo> showAgentVoList = new ArrayList<>();
//根据票提IDs查询票信息
List<TicketAndStatusDao> ticketAndStatusDaoList = kylinTicketsMapper.selectTicketsByIds(ticketsIdList);
for (TicketAndStatusDao ticketAndStatusDao : ticketAndStatusDaoList) {
SmileAgent smileAgent = map.get(ticketAndStatusDao.getTicketsId());
ShowAgentVo showAgentVo = getShowAgentVo(performancesId, ticketAndStatusDao, smileAgent);
showAgentVoList.add(showAgentVo);
}
//带有票提名称的map 票提id,票提信息
Map<String, ShowAgentVo> showAgentVoMap = new HashMap<>(showAgentVoList.size());
showAgentVoList.forEach(showAgentVo -> showAgentVoMap.put(showAgentVo.getTicketId(), showAgentVo));
if (!StringUtils.isEmpty(performancesId)) {
SaleDataVo saleDataVo = new SaleDataVo();
//演出id
saleDataVo.setPerformancesId(performancesId);
//设置演出状态
saleDataVo.setPriceStatus(smileRedisUtils.getShowPriceId(performancesId));
List<SmileAgent> smileAgents = getSmileAgentsByProId(performancesId);
if (smileAgents.size() == 0) {
return AjaxResult.error("该演出未开启代理");
}
//演出名称
KylinPerformanceVo kylinPerformanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performancesId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
assert kylinPerformanceVo != null;
saleDataVo.setTitle(kylinPerformanceVo.getTitle());
Map<String, SmileAgent> map = getSmileAgentMap(smileAgents);
List<String> ticketsIdList = smileAgents.stream().map(SmileAgent::getTicketId).collect(Collectors.toList());
List<ShowAgentVo> showAgentVoList = new ArrayList<>();
//根据票提IDs查询票信息
List<TicketAndStatusDao> ticketAndStatusDaoList = kylinTicketsMapper.selectTicketsByIds(ticketsIdList);
for (TicketAndStatusDao ticketAndStatusDao : ticketAndStatusDaoList) {
SmileAgent smileAgent = map.get(ticketAndStatusDao.getTicketsId());
ShowAgentVo showAgentVo = getShowAgentVo(performancesId, ticketAndStatusDao, smileAgent);
showAgentVoList.add(showAgentVo);
}
//根据演出id查询出所有代理人的uid
List<SmileUser> smileUsers = smileUserMapper.getAllUidByPerId(performancesId);
List<UserData> userDataList = new ArrayList<>(smileUsers.size());
for (SmileUser smileUser : smileUsers) {
UserData userData = getUserData(performancesId, smileUser);
userDataList.add(userData);
}
saleDataVo.setUserDataList(userDataList);
saleDataVo.setShowAgentVoList(showAgentVoList);
return AjaxResult.success(saleDataVo);
//根据演出id查询出所有代理人的uid
List<SmileUser> smileUsers = smileUserMapper.getAllUidByPerId(performancesId);
List<UserData> userDataList = new ArrayList<>(smileUsers.size());
for (SmileUser smileUser : smileUsers) {
UserData userData = getUserData(performancesId, smileUser, showAgentVoMap);
userDataList.add(userData);
}
return AjaxResult.warn("请重试");
saleDataVo.setUserDataList(userDataList);
saleDataVo.setShowAgentVoList(showAgentVoList);
return AjaxResult.success(saleDataVo);
}
@Override
......@@ -369,10 +371,25 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
return AjaxResult.success();
}
private UserData getUserData(String performancesId, SmileUser smileUser) {
private UserData getUserData(String performancesId, SmileUser smileUser, Map<String, ShowAgentVo> showAgentVoMap) {
UserData userData = new UserData();
//个人用户的演出数据详情
//获取 该人 该演出 的所有订单
List<Map> userSellOneDate = orderTicketsMapper.getUserSellOneDate(smileUser.getUid(), performancesId);
/*//票务类型
userData.setTicketName(a1.get("title") == null ? "" : a1.get("title").toString());
//数量
userData.setTicketNumber(a1.get("number") == null ? 0 : Integer.parseInt(a1.get("number").toString()));
//总金额
userData.setSellPrice(new BigDecimal(a1.get("price") == null ? "0" : a1.get("price").toString()));
//票提
userData.setPiaoTi(new BigDecimal(a1.get("paioTi") == null ? "" : a1.get("paioTi").toString()));
//佣金
userData.setCommission(new BigDecimal(a1.get("commiss") == null ? "0" : a1.get("commiss").toString()));
userData.setTicketId(a1.get("ticketId") == null ? "" : a1.get("ticketId").toString());*/
SmileSellDataVO smileSellDataVO = smileRedisUtils.getSellDataVO(smileUser.getUid(), performancesId);
BeanUtils.copyProperties(smileSellDataVO, userData);
userData.setUid(smileUser.getUid());
......
......@@ -58,7 +58,7 @@ public class KylinOrderTicketAndAgentVo {
/**
* 总代id
*/
private BigDecimal agentIdMaster;
private String agentIdMaster;
/**
* 总代抽成票提
......
......@@ -59,4 +59,6 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> {
Map selectByPerformanceId(@Param("performancesId") String performancesId);
List<String> getAgentIdListByPerId(@Param("performancesId") String performancesId);
Map selectNumAndPrice(@Param("performancesId") String performancesId,@Param("ticketsId") String ticketsId);
}
......@@ -564,4 +564,30 @@
GROUP BY
agent_id;
</select>
<select id="selectNumAndPrice" resultType="java.util.Map">
SELECT
SUM(kot.number-kot.refund_number) agentSaleNum,
SUM((kot.number-kot.refund_number) * kt.price) totalPrice
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
LEFT JOIN kylin_tickets AS kt ON kt.tickets_id = kk.ticket_id
WHERE
kk.agent_id != 0
AND kk.performance_id = #{performancesId}
AND kk.ticket_id = #{ticketsId}
</select>
</mapper>
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