提成明细需要加上替换的订单

This commit is contained in:
xiezhijun 2021-05-27 20:03:43 +08:00
parent 01fd29f2ec
commit e333cb007e
8 changed files with 69 additions and 9 deletions

View File

@ -255,6 +255,7 @@ public class SysCommisionController extends BaseController {
@PreAuthorize("@ss.hasPermi('commisionDay:detail:list')") @PreAuthorize("@ss.hasPermi('commisionDay:detail:list')")
@GetMapping("/orderDetailDay") @GetMapping("/orderDetailDay")
public AjaxResult getOrderCommissionDetailDay(SysCommision sysCommision) { public AjaxResult getOrderCommissionDetailDay(SysCommision sysCommision) {
sysCommision.setReplaceOrderFlag(true);
startPage(); startPage();
return sysCommissionDayService.calculateOrderCommissionDetail(sysCommision); return sysCommissionDayService.calculateOrderCommissionDetail(sysCommision);
} }

View File

@ -78,4 +78,7 @@ public class SysCommision extends BaseEntity {
//服务结束时间用于计算该时间段的提成 //服务结束时间用于计算该时间段的提成
private String serverScopeEndTime; private String serverScopeEndTime;
//是否查询替换订单
private Boolean replaceOrderFlag;
} }

View File

@ -66,4 +66,11 @@ public interface SysOrderNutritionistReplaceRecordMapper
* @return * @return
*/ */
List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByOrderId(@Param("orderId")Long orderId); List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByOrderId(@Param("orderId")Long orderId);
/**
* 根据用户ID查询营养师售后更换记录
* @param userId
* @return
*/
List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByUserId(@Param("userId")Long userId);
} }

View File

@ -65,4 +65,11 @@ public interface ISysOrderNutritionistReplaceRecordService
* @return * @return
*/ */
List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByOrderId(Long orderId); List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByOrderId(Long orderId);
/**
* 根据用户ID查询营养师售后更换记录
* @param userId
* @return
*/
List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByUserId(Long userId);
} }

View File

@ -435,14 +435,20 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
* @param cutOrderFlag 是否根据售后营养师更换记录进行订单切割计算提成 * @param cutOrderFlag 是否根据售后营养师更换记录进行订单切割计算提成
* @return * @return
*/ */
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 = null; Map<Long, List<SysOrderNutritionistReplaceRecord>> replaceRecordMap = dealNutritionistReplaceRecord(sysOrderNutritionistReplaceRecordService.getSysOrderReplaceRecordByOrderId(null));
if(cutOrderFlag){ /*if(cutOrderFlag){
//查询所有订单营养师售后转移记录 //查询所有订单营养师售后转移记录
replaceRecordMap = dealNutritionistReplaceRecord(sysOrderNutritionistReplaceRecordService.getSysOrderReplaceRecordByOrderId(null)); replaceRecordMap = dealNutritionistReplaceRecord(sysOrderNutritionistReplaceRecordService.getSysOrderReplaceRecordByOrderId(null));
} }*/
//根据用户ID查询所有替换记录
/*List<SysOrderNutritionistReplaceRecord> usertReplaceRecordList = null;
if(replaceOrderFlag != null && replaceOrderFlag && sysCommision.getUserId() != null){
usertReplaceRecordList = sysOrderNutritionistReplaceRecordService.getSysOrderReplaceRecordByUserId(sysCommision.getUserId());
}*/
//整理出每个用户对应的订单List //整理出每个用户对应的订单List
Map<Long, List<SysOrderCommisionDayDetail>> userOrderResultMap = new HashMap<>(); Map<Long, List<SysOrderCommisionDayDetail>> userOrderResultMap = new HashMap<>();
for (SysOrder sysOrder : orderList) { for (SysOrder sysOrder : orderList) {
@ -463,9 +469,22 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
orderCommisionDayDetailList = cutOrderByReplaceRecord(sysOrder, sysCommision, sysOrderCommisionDayDetail, replaceRecordMap.get(sysOrder.getOrderId())); orderCommisionDayDetailList = cutOrderByReplaceRecord(sysOrder, sysCommision, sysOrderCommisionDayDetail, replaceRecordMap.get(sysOrder.getOrderId()));
}else{ }else{
SysOrderCommisionDayDetail commisionDetail = statisticsOrderMessage(sysOrder, sysCommision.getServerScopeStartTime(), sysCommision.getServerScopeEndTime()); SysOrderCommisionDayDetail commisionDetail = statisticsOrderMessage(sysOrder, sysCommision.getServerScopeStartTime(), sysCommision.getServerScopeEndTime());
orderCommisionDayDetailList = new ArrayList<>(); 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())){
commisionDetail = detail;
break;
}
}
}
orderCommisionDayDetailList = orderCommisionDayDetailList == null ? new ArrayList<>() : orderCommisionDayDetailList;
if(commisionDetail != null){
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){
@ -477,6 +496,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
} }
} }
} }
System.out.println(userOrderResultMap.get(131L).size() +" 订单数量");
return userOrderResultMap; return userOrderResultMap;
} }

View File

@ -105,4 +105,13 @@ public class SysOrderNutritionistReplaceRecordServiceImpl implements ISysOrderNu
public List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByOrderId(Long orderId){ public List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByOrderId(Long orderId){
return sysOrderNutritionistReplaceRecordMapper.getSysOrderReplaceRecordByOrderId(orderId); return sysOrderNutritionistReplaceRecordMapper.getSysOrderReplaceRecordByOrderId(orderId);
} }
/**
* 根据用户ID查询营养师售后更换记录
* @param userId
* @return
*/
public List<SysOrderNutritionistReplaceRecord> getSysOrderReplaceRecordByUserId(Long userId){
return sysOrderNutritionistReplaceRecordMapper.getSysOrderReplaceRecordByUserId(userId);
}
} }

View File

@ -437,8 +437,14 @@
<if test="reviewStatus != null and reviewStatus != ''"> <if test="reviewStatus != null and reviewStatus != ''">
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}

View File

@ -114,4 +114,11 @@
order by id asc order by id asc
</select> </select>
<select id="getSysOrderReplaceRecordByUserId" parameterType="Long"
resultMap="SysOrderNutritionistReplaceRecordResult">
select id, order_id, nutritionist_id, after_sale_id, nutri_assis_id, start_time, create_time, create_by from
sys_order_nutritionist_replace_record
where del_flag = 0 and after_sale_id = #{userId} or nutritionist_id = #{userId} order by id asc
</select>
</mapper> </mapper>