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

Commit b681e73a authored by GaoHu's avatar GaoHu

exit

parent 08e756c9
package com.liquidnet.client.admin.zhengzai.smile.dto;
import com.liquidnet.service.goblin.dto.vo.SellDataOneVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -43,30 +41,10 @@ public class UserData {
@ApiModelProperty(value = "用户代理票信息", example = "")
List<UserDataAgentVo> dataAgentVos;
/**
* 打款状态
*/
@ApiModelProperty(value = "打款状态", example = "")
private Integer priceStatus;
@ApiModelProperty(value = "活动名字")
private String activeName;
@ApiModelProperty(value = "id(用户+活动id)")
private String sellDataId;
@ApiModelProperty(value = "销售具体情况")
List<SellDataOneVO> sellDataOneVO;
@ApiModelProperty(value = "销售总金额")
private BigDecimal sellAmount;
@ApiModelProperty(value = "销售总数量")
private BigDecimal sellNumber;
@ApiModelProperty(value = "销售总佣金")
private BigDecimal totalCommission;
}
......@@ -43,10 +43,4 @@ public class UserDataAgentVo {
*/
@ApiModelProperty(value = "提成", example = "")
private BigDecimal commission;
/**
* 打款状态
*/
@ApiModelProperty(value = "打款状态", example = "")
private String status;
}
......@@ -11,7 +11,6 @@ import com.liquidnet.client.admin.common.utils.StringUtils;
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.TicketAndStatusDao;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import com.liquidnet.service.kylin.entity.KylinPerformanceStatus;
......@@ -289,7 +288,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
//设置演出状态
saleDataVo.setPriceStatus(smileRedisUtils.getShowPriceId(performancesId));
List<SmileAgent> smileAgents = getSmileAgentsByProId(performancesId);
if (smileAgents.size() == 0) {
if (smileAgents == null) {
return AjaxResult.error("该演出未开启代理");
}
//演出名称
......@@ -311,16 +310,12 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
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));
//根据演出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);
UserData userData = getUserData(performancesId, smileUser, map, ticketAndStatusDaoList);
userDataList.add(userData);
}
saleDataVo.setUserDataList(userDataList);
......@@ -350,11 +345,44 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
return AjaxResult.success();
}
private UserData getUserData(String performancesId, SmileUser smileUser, Map<String, ShowAgentVo> showAgentVoMap) {
private UserData getUserData(String performancesId, SmileUser smileUser,Map<String, SmileAgent> map, List<TicketAndStatusDao> smileAgentList) {
UserData userData = new UserData();
//个人用户的演出数据详情
//获取 该人 该演出 的所有订单
List<Map> userSellOneDate = orderTicketsMapper.getUserSellOneDate(smileUser.getUid(), performancesId);
//便利票种id 查询用户的销售数据信息
List<UserDataAgentVo> userDataAgentVos = new ArrayList<UserDataAgentVo>();
for (TicketAndStatusDao smileAgent : smileAgentList) {
UserDataAgentVo userDataAgentVo = new UserDataAgentVo();
Map userMap = smileAgentMapper.getUserDataByPerIdAndTicketsId(performancesId, smileUser.getUid(), smileAgent.getTicketsId());
if (userMap!=null){
userDataAgentVo.setTicketsId((String) userMap.get("tid"));
userDataAgentVo.setTicketName((String) userMap.get("title"));
userDataAgentVo.setNumber((BigDecimal) userMap.get("num"));
userDataAgentVo.setPrice((BigDecimal) userMap.get("price"));
userDataAgentVo.setAgent((BigDecimal) userMap.get("use"));
userDataAgentVo.setCommission((BigDecimal) userMap.get("totalPrice"));
}else {
userDataAgentVo.setTicketsId(smileAgent.getTicketsId());
userDataAgentVo.setTicketName(smileAgent.getTitle());
userDataAgentVo.setNumber(new BigDecimal(0));
userDataAgentVo.setPrice(new BigDecimal(0));
userDataAgentVo.setAgent(smileUser.getType()==1?map.get(smileAgent.getTicketsId()).getTotalCarry():map.get(smileAgent.getTicketsId()).getOrdCarry());
userDataAgentVo.setCommission(new BigDecimal(0));
log.info("saleData:演出id:{},用户id:{},票提id:{}",performancesId,smileUser.getUid(),smileAgent.getTicketsId());
}
//判断该用户是否是总代理
if (smileUser.getType()==1){
//是总代 //在原有的数据上新增加该用户下所有普代的提成
Map orgMap = smileAgentMapper.getUserOrgByPerIdAndUidAndAgentMaster(performancesId, smileUser.getUid(), smileAgent.getTicketsId());
if (orgMap!=null){
userDataAgentVo.setCommission(userDataAgentVo.getCommission().add((BigDecimal) orgMap.get("totalPrice")));
}else {
log.info("saleData:演出id:{},用户id:{},票提id:{}",performancesId,smileUser.getUid(),smileAgent.getTicketsId());
}
}
if (userDataAgentVo.getCommission().compareTo(new BigDecimal(0))!=0) {
userDataAgentVos.add(userDataAgentVo);
}
}
/*//票务类型
......@@ -367,14 +395,16 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
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());*/
userData.setTicketId(a1.get("ticketId") == null ? "" : a1.get("ticketId").toString());
SmileSellDataVO smileSellDataVO = smileRedisUtils.getSellDataVO(smileUser.getUid(), performancesId);
BeanUtils.copyProperties(smileSellDataVO, userData);
BeanUtils.copyProperties(smileSellDataVO, userData);*/
userData.setUid(smileUser.getUid());
userData.setUsername(smileUser.getName());
userData.setCityName(smileUser.getCity());
userData.setType(smileUser.getType());
userData.setDataAgentVos(userDataAgentVos);
//设置打款状态
userData.setPriceStatus(smileRedisUtils.getShowPriceUid(performancesId, smileUser.getUid()));
return userData;
......
......@@ -6,6 +6,7 @@ import com.liquidnet.service.smile.entity.SmileAgent;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Map;
/**
* <p>
......@@ -20,4 +21,8 @@ public interface SmileAgentMapper extends BaseMapper<SmileAgent> {
void updateAgentById(@Param("id")Long id,@Param("totalCarry") BigDecimal totalCarry,@Param("ordCarry") BigDecimal ordCarry);
void insertAgent(@Param("performancesId") String performancesId, @Param("ticketId") String ticketId);
Map getUserDataByPerIdAndTicketsId(@Param("performancesId")String performancesId,@Param("uid") String uid,@Param("ticketId") String ticketId);
Map getUserOrgByPerIdAndUidAndAgentMaster(@Param("performancesId") String performancesId,@Param("uid") String uid,@Param("ticketId") String ticketId);
}
......@@ -23,4 +23,120 @@
<insert id="insertAgent">
INSERT INTO `smile_agent` VALUES (NULL, #{performancesId}, #{ticketId}, 0, 0, 0);
</insert>
<select id="getUserDataByPerIdAndTicketsId" resultType="java.util.Map">
SELECT
kk.ticket_id tid,
kk.performance_id perId,
kk.agent_id agentId,
ss.title,
ss.ord_carry,
ss.total_carry,
kk.price,
kk.type,
kk.org_id orgId,
SUM( kk.number - kk.refund_number ) num,
IF
( kk.type = 1, ss.total_carry, ss.ord_carry ) `use`,
SUM(
kk.price *
IF
( kk.type = 1, ss.total_carry, ss.ord_carry ) * ( kk.number - kk.refund_number )) totalPrice
FROM
(
SELECT
kote.ticket_id,
kote.performance_id,
kotr.agent_id,
kotr.agent_distributions,
kotr.agent_id_master,
kotr.agent_distributions_master,
kotr.agent_status,
kot.price,
kot.number,
kot.refund_number,
su.type,
su.org_id
FROM
kylin_order_ticket_entities kote
LEFT JOIN kylin_order_tickets kot ON kote.order_id = kot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations kotr ON kotr.order_id = kote.order_id
LEFT JOIN smile_user su ON su.uid = kotr.agent_id
WHERE
kote.performance_id = #{performancesId}
AND kotr.agent_status = 1
AND kotr.agent_id = #{uid}
AND kote.ticket_id = #{ticketId}
) kk
LEFT JOIN (
SELECT
sa.performance_id,
sa.ticket_id,
sa.ord_carry,
sa.total_carry,
kt.title
FROM
smile_agent sa
LEFT JOIN kylin_tickets kt ON sa.ticket_id = kt.tickets_id
WHERE
sa.performance_id = #{performancesId}
AND sa.ticket_id = #{ticketId}
) ss ON kk.ticket_id = ss.ticket_id
</select>
<select id="getUserOrgByPerIdAndUidAndAgentMaster" resultType="java.util.Map">
SELECT
kk.ticket_id tid,
kk.performance_id perId,
kk.agent_id agentId,
ss.title,
ss.ord_carry,
ss.total_carry,
kk.price,
kk.type,
kk.org_id orgId,
kk.agent_distributions_master,
SUM(kk.price * kk.agent_distributions_master) totalPrice
FROM
(
SELECT
kote.ticket_id,
kote.performance_id,
kotr.agent_id,
kotr.agent_distributions,
kotr.agent_id_master,
kotr.agent_distributions_master,
kotr.agent_status,
kot.price,
kot.number,
kot.refund_number,
su.type,
su.org_id
FROM
kylin_order_ticket_entities kote
LEFT JOIN kylin_order_tickets kot ON kote.order_id = kot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations kotr ON kotr.order_id = kote.order_id
LEFT JOIN smile_user su ON su.uid = kotr.agent_id
WHERE
kote.performance_id = #{performancesId}
AND kotr.agent_status = 1
AND kotr.agent_id_master = #{uid}
AND kote.ticket_id = #{ticketId}
) kk
LEFT JOIN (
SELECT
sa.performance_id,
sa.ticket_id,
sa.ord_carry,
sa.total_carry,
kt.title
FROM
smile_agent sa
LEFT JOIN kylin_tickets kt ON sa.ticket_id = kt.tickets_id
WHERE
sa.performance_id = #{performancesId}
AND sa.ticket_id = #{ticketId}
) ss ON kk.ticket_id = ss.ticket_id
</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