食谱计划优化、按天计算提成优化、图片logo修改
This commit is contained in:
@ -29,6 +29,7 @@ public class SysRecipesPlan extends BaseEntity
|
||||
private String customer;
|
||||
|
||||
//非持久化字段,客户手机号
|
||||
@Excel(name = "客户手机号")
|
||||
private String phone;
|
||||
|
||||
/** 食谱开始日期 */
|
||||
|
@ -79,4 +79,11 @@ public interface SysRecipesPlanMapper
|
||||
* @return
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan);
|
||||
|
||||
/**
|
||||
* 根据订单ID查询食谱计划
|
||||
* @param sysRecipesPlan
|
||||
* @return
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan);
|
||||
}
|
@ -80,4 +80,11 @@ public interface ISysRecipesPlanService
|
||||
* @return
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan);
|
||||
|
||||
/**
|
||||
* 根据订单ID查询食谱计划
|
||||
* @param sysRecipesPlan
|
||||
* @return
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan);
|
||||
}
|
@ -123,6 +123,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
}
|
||||
commissionMonthSet.addAll(sysOrderCommisionDayDetail.getEveryYearMonthServerMoney().keySet());
|
||||
}
|
||||
//System.out.println("总提成:"+sysCommissionDayDetail.getNickName()+"-"+orderAmount.get("20211"));
|
||||
//获取提成比例以及计算提成
|
||||
Map<String, Float> rateMap = getRateByAmount(sysCommissionDayDetail.getUserId(), sysCommissionDayDetail.getPostId(), orderAmount);
|
||||
|
||||
@ -225,10 +226,10 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
//整理出每个用户对应的订单List
|
||||
Map<Long, List<SysOrderCommisionDayDetail>> userOrderResultMap = new HashMap<>();
|
||||
for (SysOrder sysOrder : orderList) {
|
||||
//建档时间为空、售后人员ID为空、营养师ID为空、订单金额为空或小于0,都视为异常订单
|
||||
//开始时间为空、售后人员ID为空、营养师ID都为空、订单金额为空,都视为异常订单
|
||||
if(sysOrder.getOrderTime() == null || sysOrder.getStartTime() == null || sysOrder.getServeTimeId() == null
|
||||
|| (sysOrder.getAfterSaleId() == null && sysOrder.getNutritionistId() == null)
|
||||
|| sysOrder.getAmount() == null || sysOrder.getAmount().doubleValue() < 0){
|
||||
|| sysOrder.getAmount() == null){
|
||||
//System.out.println("客户:"+ sysOrder.getCustomer() +",营养师:"+sysOrder.getNutritionist() + ",售后" + sysOrder.getAfterSale());
|
||||
continue;
|
||||
}
|
||||
@ -436,7 +437,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
* double转为BigDecimal,保留一位小数,向下舍去
|
||||
* */
|
||||
public BigDecimal getMoney(Double money, int n){
|
||||
return new BigDecimal(money).setScale(n, BigDecimal.ROUND_HALF_UP);
|
||||
return new BigDecimal(money.toString()).setScale(n, BigDecimal.ROUND_DOWN);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -459,7 +460,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
nf.setRoundingMode(RoundingMode.DOWN);
|
||||
System.out.println(Double.parseDouble(nf.format(s)));
|
||||
System.out.println( new BigDecimal(nf.format(s)).doubleValue());*/
|
||||
System.out.println(new BigDecimal(s).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue());
|
||||
/*System.out.println(new BigDecimal(s).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue());
|
||||
|
||||
LocalDate localDate = LocalDate.of(2020, 1, 15);
|
||||
System.out.println(ChronoUnit.MONTHS.between(localDate, LocalDate.now()));
|
||||
@ -467,6 +468,14 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
System.out.println(localDate.getDayOfWeek());
|
||||
System.out.println(localDate.getDayOfYear());
|
||||
|
||||
System.out.println(ChronoUnit.DAYS.between(LocalDate.of(2021, 1,14), LocalDate.now()));
|
||||
System.out.println(ChronoUnit.DAYS.between(LocalDate.of(2021, 1,14), LocalDate.now()));*/
|
||||
|
||||
/*System.out.println(ts(109792.8 * 6 / 100D, 1));
|
||||
System.out.println(ts(6587.8,2).doubleValue());*/
|
||||
System.out.println(ts(1.919,1).doubleValue());
|
||||
}
|
||||
|
||||
public static BigDecimal ts(Double money, int n){
|
||||
return new BigDecimal(money.toString()).setScale(n, BigDecimal.ROUND_DOWN);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.stdiet.custom.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@ -196,7 +197,8 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
* @param sysOrder
|
||||
*/
|
||||
private void setOrderServerEndDate(SysOrder sysOrder){
|
||||
sysOrder.setServerEndTime(DateUtils.localDateToDate(sysCommissionDayService.getServerEndDate(sysOrder)));
|
||||
LocalDate serverEndDate = sysCommissionDayService.getServerEndDate(sysOrder);
|
||||
sysOrder.setServerEndTime(serverEndDate != null ? DateUtils.localDateToDate(serverEndDate) : null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -133,10 +133,11 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService
|
||||
return;
|
||||
}
|
||||
SysOrder sysOrder = sysOrderService.selectSysOrderById(orderId);
|
||||
//订单为空、金额小于0不进行食谱生成、更新
|
||||
if(sysOrder == null){
|
||||
//订单为空、金额小于0不进行食谱生成、更新,只对2021年开始的订单进行食谱计划生成
|
||||
if(sysOrder == null && DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear() > 2020){
|
||||
return;
|
||||
}
|
||||
System.out.println(DateUtils.dateToLocalDate(sysOrder.getOrderTime()).getYear());
|
||||
try{
|
||||
//获取redis中该订单对应的锁
|
||||
if(synchrolockUtil.lock(String.format(generateRecipesPlanLockKey, orderId))){
|
||||
@ -281,4 +282,14 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService
|
||||
public List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan){
|
||||
return sysRecipesPlanMapper.selectPlanListByCondition(sysRecipesPlan);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID查询食谱计划
|
||||
* @param sysRecipesPlan
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SysRecipesPlan> selectPlanListByOrderId(SysRecipesPlan sysRecipesPlan){
|
||||
return sysRecipesPlanMapper.selectPlanListByOrderId(sysRecipesPlan);
|
||||
}
|
||||
}
|
@ -96,11 +96,11 @@
|
||||
</update>
|
||||
|
||||
<delete id="deleteSysRecipesPlanById" parameterType="Long">
|
||||
update sys_recipes_plan set del_flag = 1 where id = #{id}
|
||||
delete from sys_recipes_plan where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteSysRecipesPlanByIds" parameterType="String">
|
||||
update sys_recipes_plan set del_flag = 1 where id in
|
||||
delete from sys_recipes_plan where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
@ -118,7 +118,7 @@
|
||||
|
||||
<!-- 根据订单ID删除对应食谱计划 -->
|
||||
<update id="delRecipesPlanByOrderId" parameterType="String">
|
||||
update sys_recipes_plan set del_flag = 1 where order_id in
|
||||
delete from sys_recipes_plan where order_id in
|
||||
<foreach item="orderId" collection="array" open="(" separator="," close=")">
|
||||
#{orderId}
|
||||
</foreach>
|
||||
@ -133,10 +133,38 @@
|
||||
LEFT JOIN sys_user su_nutritionist_assis ON su_nutritionist_assis.user_id = sr.nutri_assis_id AND su_nutritionist_assis.del_flag = 0
|
||||
WHERE srp.del_flag = 0
|
||||
<if test="orderId != null">AND srp.order_id = #{orderId}</if>
|
||||
<if test="customer != null and customer != ''">AND sr.customer like concat('%',#{customer},'%')</if>
|
||||
<if test="sendFlag != null">AND srp.send_flag = #{sendFlag}</if>
|
||||
<if test="customer != null and customer != ''">AND (sr.customer like concat('%',#{customer},'%') OR sr.phone like concat('%',#{customer},'%'))</if>
|
||||
<if test="nutritionistId != null">AND su_nutritionist.user_id = #{nutritionistId}</if>
|
||||
<if test="nutritionistAssisId != null">AND su_nutritionist_assis.user_id = #{nutritionistAssisId}</if>
|
||||
<if test="startDate != null and endDate != null ">AND srp.start_date BETWEEN date_format(#{startDate},'%y%m%d') AND date_format(#{endDate},'%y%m%d') </if>
|
||||
ORDER BY srp.order_id DESC,srp.id ASC
|
||||
</select>
|
||||
<!-- 食谱计划、订单表联查 -->
|
||||
<!--<select id="selectPlanListByCondition" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult">
|
||||
SELECT sr.order_id,sr.customer,sr.phone,su_nutritionist.nick_name nutritionist,su_nutritionist_assis.nick_name AS nutritionist_assis,sr.start_time,sr.server_end_time
|
||||
FROM sys_order sr
|
||||
LEFT JOIN sys_user su_nutritionist ON su_nutritionist.user_id = sr.nutritionist_id AND su_nutritionist.del_flag = 0
|
||||
LEFT JOIN sys_user su_nutritionist_assis ON su_nutritionist_assis.user_id = sr.nutri_assis_id AND su_nutritionist_assis.del_flag = 0
|
||||
<where>
|
||||
<if test="orderId != null">AND sr.order_id = #{orderId}</if>
|
||||
<if test="customer != null and customer != ''">AND (sr.customer like concat('%',#{customer},'%') OR sr.phone like concat('%',#{customer},'%'))</if>
|
||||
<if test="nutritionistId != null">AND su_nutritionist.user_id = #{nutritionistId}</if>
|
||||
<if test="nutritionistAssisId != null">AND su_nutritionist_assis.user_id = #{nutritionistAssisId}</if>
|
||||
<if test="startDate != null and endDate != null ">
|
||||
AND sr.order_id IN ( SELECT order_id FROM sys_recipes_plan srp WHERE srp.del_flag = 0 AND srp.start_date BETWEEN date_format(#{startDate},'%y%m%d') AND date_format(#{endDate},'%y%m%d'))
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY sr.order_id DESC
|
||||
</select>-->
|
||||
|
||||
<!-- 根据订单ID查询食谱计划 -->
|
||||
<select id="selectPlanListByOrderId" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult">
|
||||
SELECT srp.id,srp.order_id,sr.customer,sr.phone, srp.start_date,srp.end_date,srp.send_flag,srp.send_time
|
||||
FROM sys_recipes_plan srp
|
||||
LEFT JOIN sys_order sr ON sr.order_id = srp.order_id
|
||||
WHERE srp.del_flag = 0 AND srp.order_id = #{orderId}
|
||||
<if test="sendFlag != null">AND srp.send_flag = #{sendFlag}</if>
|
||||
ORDER BY srp.id ASC
|
||||
</select>
|
||||
</mapper>
|
Reference in New Issue
Block a user