提成优化,需要加上更换订单提成详情

This commit is contained in:
xiezhijun
2021-05-28 00:46:21 +08:00
parent e333cb007e
commit 0122c35553
3 changed files with 37 additions and 31 deletions
stdiet-custom/src/main
java
com
stdiet
resources
mapper
stdiet-ui/src/components/OrdercommissDetail

@ -437,8 +437,8 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
*/ */
public Map<Long, List<SysOrderCommisionDayDetail>> getOrderByList(SysCommision sysCommision, Boolean cutOrderFlag){ public Map<Long, List<SysOrderCommisionDayDetail>> getOrderByList(SysCommision sysCommision, Boolean cutOrderFlag){
//查询2021年1月份之后所有订单 //查询2021年1月份之后所有订单
System.out.println(sysCommision.getReplaceOrderFlag() == null);
List<SysOrder> orderList = sysOrderMapper.selectSimpleOrderMessage(sysCommision); List<SysOrder> orderList = sysOrderMapper.selectSimpleOrderMessage(sysCommision);
//查询所有订单营养师、售后转移记录
Map<Long, List<SysOrderNutritionistReplaceRecord>> replaceRecordMap = dealNutritionistReplaceRecord(sysOrderNutritionistReplaceRecordService.getSysOrderReplaceRecordByOrderId(null)); Map<Long, List<SysOrderNutritionistReplaceRecord>> replaceRecordMap = dealNutritionistReplaceRecord(sysOrderNutritionistReplaceRecordService.getSysOrderReplaceRecordByOrderId(null));
/*if(cutOrderFlag){ /*if(cutOrderFlag){
//查询所有订单营养师、售后转移记录 //查询所有订单营养师、售后转移记录
@ -459,32 +459,28 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
//System.out.println("客户:"+ sysOrder.getCustomer() +",营养师:"+sysOrder.getNutritionist() + ",售后" + sysOrder.getAfterSale()); //System.out.println("客户:"+ sysOrder.getCustomer() +",营养师:"+sysOrder.getNutritionist() + ",售后" + sysOrder.getAfterSale());
continue; continue;
} }
List<SysOrderCommisionDayDetail> orderCommisionDayDetailList = null; List<SysOrderCommisionDayDetail> orderCommisionDayDetailList = new ArrayList<>();
//将服务结束时间设置为空,因为提成的结束时间需要重新计算 //将服务结束时间设置为空,因为提成的结束时间需要重新计算
sysOrder.setServerEndTime(null); sysOrder.setServerEndTime(null);
//判断是否存在营养师、售后更换记录 //判断是否存在营养师、售后更换记录
if(cutOrderFlag && replaceRecordMap.containsKey(sysOrder.getOrderId()) && replaceRecordMap.get(sysOrder.getOrderId()).size() > 0){ if(replaceRecordMap.containsKey(sysOrder.getOrderId()) && replaceRecordMap.get(sysOrder.getOrderId()).size() > 0){
//将订单根据更换记录切割成多个订单 //将订单根据更换记录切割成多个订单
SysOrderCommisionDayDetail sysOrderCommisionDayDetail = statisticsOrderMessage(sysOrder, sysCommision.getServerScopeStartTime(), sysCommision.getServerScopeEndTime()); SysOrderCommisionDayDetail sysOrderCommisionDayDetail = statisticsOrderMessage(sysOrder, sysCommision.getServerScopeStartTime(), sysCommision.getServerScopeEndTime());
orderCommisionDayDetailList = cutOrderByReplaceRecord(sysOrder, sysCommision, sysOrderCommisionDayDetail, replaceRecordMap.get(sysOrder.getOrderId())); List<SysOrderCommisionDayDetail> muchCommisionDayDetailList = cutOrderByReplaceRecord(sysOrder, sysCommision, sysOrderCommisionDayDetail, replaceRecordMap.get(sysOrder.getOrderId()));
}else{ if(sysCommision.getUserId() != null){
SysOrderCommisionDayDetail commisionDetail = statisticsOrderMessage(sysOrder, sysCommision.getServerScopeStartTime(), sysCommision.getServerScopeEndTime()); for (SysOrderCommisionDayDetail detail : muchCommisionDayDetailList) {
if(sysCommision.getReplaceOrderFlag() != null && sysCommision.getReplaceOrderFlag() && sysCommision.getUserId() != null &&
replaceRecordMap.containsKey(sysOrder.getOrderId())){
//判断该订单是否属于营养师、售后替换订单
List<SysOrderCommisionDayDetail> userorderCommisionList = cutOrderByReplaceRecord(sysOrder, sysCommision, commisionDetail, replaceRecordMap.get(sysOrder.getOrderId()));
for (SysOrderCommisionDayDetail detail : userorderCommisionList) {
if((detail.getAfterSaleId() != null && detail.getAfterSaleId().longValue() == sysCommision.getUserId()) || (detail.getNutritionistId() != null && detail.getNutritionistId().longValue() == sysCommision.getUserId())){ if((detail.getAfterSaleId() != null && detail.getAfterSaleId().longValue() == sysCommision.getUserId()) || (detail.getNutritionistId() != null && detail.getNutritionistId().longValue() == sysCommision.getUserId())){
commisionDetail = detail; orderCommisionDayDetailList.add(detail);
break; break;
} }
} }
}else{
orderCommisionDayDetailList.addAll(muchCommisionDayDetailList);
} }
orderCommisionDayDetailList = orderCommisionDayDetailList == null ? new ArrayList<>() : orderCommisionDayDetailList; }else{
if(commisionDetail != null){ SysOrderCommisionDayDetail commisionDetail = statisticsOrderMessage(sysOrder, sysCommision.getServerScopeStartTime(), sysCommision.getServerScopeEndTime());
orderCommisionDayDetailList.add(commisionDetail); orderCommisionDayDetailList.add(commisionDetail);
} }
}
if(orderCommisionDayDetailList != null){ if(orderCommisionDayDetailList != null){
for (SysOrderCommisionDayDetail detail : orderCommisionDayDetailList) { for (SysOrderCommisionDayDetail detail : orderCommisionDayDetailList) {
if(detail.getAfterSaleId() != null && detail.getAfterSaleId() > 0L){ if(detail.getAfterSaleId() != null && detail.getAfterSaleId() > 0L){
@ -493,10 +489,12 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
if(detail.getNutritionistId() != null && detail.getNutritionistId() > 0L){ if(detail.getNutritionistId() != null && detail.getNutritionistId() > 0L){
addUserOrderResultMap(detail.getNutritionistId(), detail, userOrderResultMap); addUserOrderResultMap(detail.getNutritionistId(), detail, userOrderResultMap);
} }
if(detail.getAfterSaleId() != null && detail.getAfterSaleId().longValue() == 257L){
System.out.println(detail.getOrderId() + "-" + detail.getOrderAmount());
}
} }
} }
} }
System.out.println(userOrderResultMap.get(131L).size() +" 订单数量");
return userOrderResultMap; return userOrderResultMap;
} }
@ -516,10 +514,12 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
//售后和营养师分类 //售后和营养师分类
for (SysOrderNutritionistReplaceRecord sysOrderRecord : replaceRecordList) { for (SysOrderNutritionistReplaceRecord sysOrderRecord : replaceRecordList) {
if (sysOrderRecord.getNutritionistId() != null && sysOrderRecord.getNutritionistId().longValue() > 0) { if (sysOrderRecord.getNutritionistId() != null && sysOrderRecord.getNutritionistId().longValue() > 0 &&
sysOrder.getNutritionistId() != null && sysOrder.getNutritionistId().longValue() != sysOrderRecord.getNutritionistId()) {
nutritionistRecord.add(sysOrderRecord); nutritionistRecord.add(sysOrderRecord);
} }
if (sysOrderRecord.getAfterSaleId() != null && sysOrderRecord.getAfterSaleId().longValue() > 0) { if (sysOrderRecord.getAfterSaleId() != null && sysOrderRecord.getAfterSaleId().longValue() > 0
&& sysOrder.getAfterSaleId().longValue() != sysOrderRecord.getAfterSaleId()) {
afterSaleRecord.add(sysOrderRecord); afterSaleRecord.add(sysOrderRecord);
} }
} }

@ -441,9 +441,9 @@
and ( and (
su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId} su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId}
<!-- 是否查询根据用户ID查询对应替换订单 --> <!-- 是否查询根据用户ID查询对应替换订单 -->
<if test="replaceOrderFlag != null"> <!--<if test="replaceOrderFlag != null">-->
or o.order_id in (select r.order_id from sys_order_nutritionist_replace_record r where r.del_flag = 0 and (r.after_sale_id = #{userId} or r.nutritionist_id = #{userId}) ) or o.order_id in (select r.order_id from sys_order_nutritionist_replace_record r where r.del_flag = 0 and (r.after_sale_id = #{userId} or r.nutritionist_id = #{userId}) )
</if> <!--</if>-->
) )
</if> </if>
<if test="endTime != null and endTime != ''"> <if test="endTime != null and endTime != ''">
@ -469,7 +469,13 @@
and review_status = #{reviewStatus} and review_status = #{reviewStatus}
</if> </if>
<if test="userId != null"><!-- 限于营养师、售后不可能同一个的情况下 --> <if test="userId != null"><!-- 限于营养师、售后不可能同一个的情况下 -->
and (su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId}) and (
su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId}
<!-- 是否查询根据用户ID查询对应替换订单 -->
<!--<if test="replaceOrderFlag != null">-->
or o.order_id in (select r.order_id from sys_order_nutritionist_replace_record r where r.del_flag = 0 and (r.after_sale_id = #{userId} or r.nutritionist_id = #{userId}) )
<!--</if>-->
)
</if> </if>
<if test="endTime != null and endTime != ''"> <if test="endTime != null and endTime != ''">
AND DATE_FORMAT(o.order_time,'%Y-%m-%d') &lt;= #{endTime} AND DATE_FORMAT(o.order_time,'%Y-%m-%d') &lt;= #{endTime}

@ -210,7 +210,7 @@
:page.sync="queryParam.pageNum" :page.sync="queryParam.pageNum"
:limit.sync="queryParam.pageSize" :limit.sync="queryParam.pageSize"
@pagination="fetchOrderList" @pagination="fetchOrderList"
:pageSizes="[10, 15, 30, 50, 100]" :pageSizes="[10, 20, 50, 100, 500, 1000]"
> >
</pagination> </pagination>