记得上下班打卡 | 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 { ...@@ -41,7 +41,7 @@ public class ShowTicketVo {
/** /**
* 代理销售数量 总代销售数量+普代销售数量 * 代理销售数量 总代销售数量+普代销售数量
*/ */
private Integer agentSaleNum; private BigDecimal agentSaleNum;
/** /**
* 总销售金额 总代销售金额+普代销售金额 * 总销售金额 总代销售金额+普代销售金额
......
...@@ -37,6 +37,14 @@ public class UserData { ...@@ -37,6 +37,14 @@ public class UserData {
@ApiModelProperty(value = "身份 1。总代 2.普代", example = "") @ApiModelProperty(value = "身份 1。总代 2.普代", example = "")
private Integer type; 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.*; ...@@ -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.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.dto.vo.SmileSellDataVO; 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.dao.TicketAndStatusDao;
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;
...@@ -203,7 +202,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -203,7 +202,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
LambdaQueryWrapper<KylinPerformances> queryWrapper = Wrappers.lambdaQuery(KylinPerformances.class); LambdaQueryWrapper<KylinPerformances> queryWrapper = Wrappers.lambdaQuery(KylinPerformances.class);
queryWrapper.eq(KylinPerformances::getPerformancesId, smilePriceParam.getPerformancesId()); queryWrapper.eq(KylinPerformances::getPerformancesId, smilePriceParam.getPerformancesId());
LocalDateTime timeEnd = kylinPerformancesMapper.selectOne(queryWrapper).getTimeEnd(); LocalDateTime timeEnd = kylinPerformancesMapper.selectOne(queryWrapper).getTimeEnd();
if (timeEnd.isAfter(LocalDateTime.now())) { if (timeEnd.isBefore(LocalDateTime.now())) {
return AjaxResult.warn("演出尚未结束不能进行打款"); return AjaxResult.warn("演出尚未结束不能进行打款");
} }
return null; return null;
...@@ -215,12 +214,9 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -215,12 +214,9 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
ShowVoById showVoById = new ShowVoById(); ShowVoById showVoById = new ShowVoById();
//根据演出ID查询演出数据演出数据 //根据演出ID查询演出数据演出数据
KylinPerformanceVo kylinPerformanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performancesId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName()); KylinPerformanceVo kylinPerformanceVo = mongoTemplate.findOne(Query.query(Criteria.where("performancesId").is(performancesId)), KylinPerformanceVo.class, KylinPerformanceVo.class.getSimpleName());
try { if (kylinPerformanceVo == null) {
assert kylinPerformanceVo != null; return AjaxResult.warn("演出未找到");
} catch (Exception e) {
return null;
} }
//票提集合 根据演出id查询票提id //票提集合 根据演出id查询票提id
List<ShowAgentVo> showAgentVoList = new ArrayList<>(); List<ShowAgentVo> showAgentVoList = new ArrayList<>();
List<ShowTicketVo> showTicketVoList = new ArrayList<>(); List<ShowTicketVo> showTicketVoList = new ArrayList<>();
...@@ -233,55 +229,57 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -233,55 +229,57 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
if (ticketsIdList.size() > 0) { if (ticketsIdList.size() > 0) {
//根据票提IDs查询票信息 //根据票提IDs查询票信息
List<TicketAndStatusDao> ticketAndStatusDaoList = kylinTicketsMapper.selectTicketsByIds(ticketsIdList); List<TicketAndStatusDao> ticketAndStatusDaoList = kylinTicketsMapper.selectTicketsByIds(ticketsIdList);
if (ticketAndStatusDaoList != null && ticketAndStatusDaoList.size() > 0) {
for (TicketAndStatusDao ticketAndStatusDao : ticketAndStatusDaoList) { for (TicketAndStatusDao ticketAndStatusDao : ticketAndStatusDaoList) {
SmileAgent smileAgent = map.get(ticketAndStatusDao.getTicketsId()); SmileAgent smileAgent = map.get(ticketAndStatusDao.getTicketsId());
ShowAgentVo showAgentVo = getShowAgentVo(performancesId, ticketAndStatusDao, smileAgent); ShowAgentVo showAgentVo = getShowAgentVo(performancesId, ticketAndStatusDao, smileAgent);
ShowTicketVo showTicketVo = new ShowTicketVo(); ShowTicketVo showTicketVo = new ShowTicketVo();
showTicketVo.setTitle(ticketAndStatusDao.getTitle()); showTicketVo.setTitle(ticketAndStatusDao.getTitle());
//单价 //单价
showTicketVo.setPrice(ticketAndStatusDao.getPrice()); showTicketVo.setPrice(ticketAndStatusDao.getPrice());
showTicketVo.setType(ticketAndStatusDao.getType()); showTicketVo.setType(ticketAndStatusDao.getType());
showTicketVo.setUseEnd(ticketAndStatusDao.getUseEnd()); showTicketVo.setUseEnd(ticketAndStatusDao.getUseEnd());
showTicketVo.setUseStart(ticketAndStatusDao.getUseStart()); showTicketVo.setUseStart(ticketAndStatusDao.getUseStart());
showTicketVo.setTotalGeneral(ticketAndStatusDao.getTotalGeneral()); showTicketVo.setTotalGeneral(ticketAndStatusDao.getTotalGeneral());
//根据演出id查询处所有订单 //根据演出id和票提id查询出一共卖出票的数量
List<KylinOrderTicketAndAgentVo> kylinOrderTicketsList = kylinOrderTicketsMapper.selectListByPerformanceId(performancesId, ticketAndStatusDao.getTicketsId()); Map numAndPrice = kylinOrderTicketsMapper.selectNumAndPrice(performancesId, ticketAndStatusDao.getTicketsId());
//代理销售数量 //销售总数
int agentSaleNum = 0; showTicketVo.setAgentSaleNum(numAndPrice != null ? (BigDecimal) numAndPrice.get("agentSaleNum") : BigDecimal.valueOf(0));
//总销售金额 //销售金额
BigDecimal totalPrice = BigDecimal.valueOf(0); showTicketVo.setTotalPrice(numAndPrice != null ? (BigDecimal) numAndPrice.get("totalPrice") : BigDecimal.valueOf(0));
//总代票提
for (KylinOrderTicketAndAgentVo kylinOrderTicketAndAgentVo : kylinOrderTicketsList) { /*//根据演出id查询处所有订单
int num = kylinOrderTicketAndAgentVo.getNumber() - kylinOrderTicketAndAgentVo.getRefundNumber(); List<KylinOrderTicketAndAgentVo> kylinOrderTicketsList = kylinOrderTicketsMapper.selectListByPerformanceId(performancesId, ticketAndStatusDao.getTicketsId());
if (num > 0) { //代理销售数量
agentSaleNum += num; int agentSaleNum = 0;
//单价*(总代票提+抽成票提)*数量 //总销售金额
totalPrice = totalPrice.add( BigDecimal totalPrice = BigDecimal.valueOf(0);
(ticketAndStatusDao.getPrice().multiply(kylinOrderTicketAndAgentVo.getAgentDistributions().add(kylinOrderTicketAndAgentVo.getAgentDistributionsMaster()))) //总代票提
.multiply(BigDecimal.valueOf(num))); 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.setAgentSaleNum(agentSaleNum);
showTicketVo.setTotalPrice(totalPrice); showTicketVo.setTotalPrice(totalPrice);*/
showAgentVoList.add(showAgentVo); showAgentVoList.add(showAgentVo);
showTicketVoList.add(showTicketVo); 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); getShowVo(showVoById, kylinPerformanceVo, showAgentVoList, showTicketVoList);
...@@ -306,45 +304,49 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -306,45 +304,49 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
@Override @Override
public AjaxResult saleData(String performancesId) { 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查询票信息 //根据演出id查询出所有代理人的uid
List<TicketAndStatusDao> ticketAndStatusDaoList = kylinTicketsMapper.selectTicketsByIds(ticketsIdList); List<SmileUser> smileUsers = smileUserMapper.getAllUidByPerId(performancesId);
for (TicketAndStatusDao ticketAndStatusDao : ticketAndStatusDaoList) { List<UserData> userDataList = new ArrayList<>(smileUsers.size());
SmileAgent smileAgent = map.get(ticketAndStatusDao.getTicketsId()); for (SmileUser smileUser : smileUsers) {
ShowAgentVo showAgentVo = getShowAgentVo(performancesId, ticketAndStatusDao, smileAgent); UserData userData = getUserData(performancesId, smileUser, showAgentVoMap);
showAgentVoList.add(showAgentVo); userDataList.add(userData);
}
//根据演出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);
} }
return AjaxResult.warn("请重试"); saleDataVo.setUserDataList(userDataList);
saleDataVo.setShowAgentVoList(showAgentVoList);
return AjaxResult.success(saleDataVo);
} }
@Override @Override
...@@ -369,10 +371,25 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc ...@@ -369,10 +371,25 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
return AjaxResult.success(); 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(); 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); SmileSellDataVO smileSellDataVO = smileRedisUtils.getSellDataVO(smileUser.getUid(), performancesId);
BeanUtils.copyProperties(smileSellDataVO, userData); BeanUtils.copyProperties(smileSellDataVO, userData);
userData.setUid(smileUser.getUid()); userData.setUid(smileUser.getUid());
......
...@@ -58,7 +58,7 @@ public class KylinOrderTicketAndAgentVo { ...@@ -58,7 +58,7 @@ public class KylinOrderTicketAndAgentVo {
/** /**
* 总代id * 总代id
*/ */
private BigDecimal agentIdMaster; private String agentIdMaster;
/** /**
* 总代抽成票提 * 总代抽成票提
......
...@@ -59,4 +59,6 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> { ...@@ -59,4 +59,6 @@ public interface KylinOrderTicketsMapper extends BaseMapper<KylinOrderTickets> {
Map selectByPerformanceId(@Param("performancesId") String performancesId); 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);
} }
...@@ -564,4 +564,30 @@ ...@@ -564,4 +564,30 @@
GROUP BY GROUP BY
agent_id; agent_id;
</select> </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> </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