提成优化,视频页面
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
package com.stdiet.custom.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
@ -7,6 +8,7 @@ import com.stdiet.common.annotation.Excel;
|
||||
import com.stdiet.common.core.domain.BaseEntity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 业务提成比例对象 sys_commision
|
||||
@ -54,6 +56,11 @@ public class SysCommision extends BaseEntity {
|
||||
@Excel(name = "比例", suffix = "%")
|
||||
private Float rate;
|
||||
|
||||
/** 比例开始时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date startTime;
|
||||
|
||||
/**
|
||||
* 提成
|
||||
*/
|
||||
|
@ -66,4 +66,13 @@ public interface SysNutritionalVideoMapper
|
||||
* @return
|
||||
*/
|
||||
public SysNutritionalVideo selectSysNutritionalVideByVideoId(@Param("videoId")String videoId);
|
||||
|
||||
|
||||
/**
|
||||
* 更新微信展示状态
|
||||
* @param wxShow
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
public int updateWxshowByIds(@Param("wxShow")Integer wxShow, @Param("array") Long[] ids);
|
||||
}
|
@ -73,4 +73,12 @@ public interface ISysNutritionalVideoService
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> searchVideo(String key, Integer status, Integer pageNo, Integer pageSize, String scrollToken);
|
||||
|
||||
/**
|
||||
* 更新微信展示状态
|
||||
* @param wxShow
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
public int updateWxshowByIds(Integer wxShow, Long[] ids);
|
||||
}
|
@ -296,7 +296,7 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
//该笔订单当月的成交总额
|
||||
sysOrderCommisionDayDetail.setMonthOrderTotalAmount(everyMonthTotalAmountMap.get(yearMonth));
|
||||
//该笔订单对应提成比例
|
||||
sysOrderCommisionDayDetail.setCommissionRate(rateMap.get(yearMonth) == null ? rateMap.get("190001") : rateMap.get(yearMonth));
|
||||
sysOrderCommisionDayDetail.setCommissionRate(rateMap.get(yearMonth) == null ? rateMap.get("19001") : rateMap.get(yearMonth));
|
||||
//计算该笔订单总提成
|
||||
sysOrderCommisionDayDetail.setOrderCommission(getMoney(sysOrderCommisionDayDetail.getOrderAmount().doubleValue() * sysOrderCommisionDayDetail.getCommissionRate() / 100D));
|
||||
//每年每月提成
|
||||
@ -358,25 +358,42 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
List<SysCommision> tmpComList = sysCommisionMapper.selectSysCommisionList(tmpQueryCom);
|
||||
Map<String, Float> rateMap = new TreeMap<>(new MyComparator());
|
||||
//取第一个区间为默认提成比例
|
||||
rateMap.put("190001", (tmpComList != null && tmpComList.size() > 0) ? tmpComList.get(0).getRate() : 0.0F);
|
||||
rateMap.put("19001", (tmpComList != null && tmpComList.size() > 0) ? tmpComList.get(0).getRate() : 0.0F);
|
||||
//按比例开始时间分类
|
||||
Map<String, List<SysCommision>> rateYearMonthMap = getRateMapByStartTime(tmpComList);
|
||||
for(String yearMonth : amountMap.keySet()){
|
||||
BigDecimal orderAmount = amountMap.get(yearMonth);
|
||||
rateMap.put(yearMonth, 0F);
|
||||
if(tmpComList != null && tmpComList.size() > 0){
|
||||
for (int i = 0; i < tmpComList.size(); i++) {
|
||||
SysCommision com = tmpComList.get(i);
|
||||
List<SysCommision> yearMonthRateList = null;
|
||||
for (String rateMonth : rateYearMonthMap.keySet()) {
|
||||
if(Long.parseLong(yearMonth) >= Long.parseLong(rateMonth)){
|
||||
yearMonthRateList = rateYearMonthMap.get(rateMonth);
|
||||
}else{
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(yearMonthRateList != null && yearMonthRateList.size() > 0){
|
||||
for (int i = 0; i < yearMonthRateList.size(); i++) {
|
||||
SysCommision com = yearMonthRateList.get(i);
|
||||
double cAmount = com.getAmount().floatValue();
|
||||
if (orderAmount.floatValue() <= cAmount && i == 0) {
|
||||
Long rateStartYearMonth = null;
|
||||
if(com.getStartTime() != null){
|
||||
rateStartYearMonth = Long.parseLong(DateUtils.dateToLocalDate(com.getStartTime()).getYear() + "" + DateUtils.dateToLocalDate(com.getStartTime()).getMonth().getValue());
|
||||
}else{
|
||||
rateStartYearMonth = 19001L;
|
||||
}
|
||||
|
||||
if (orderAmount.floatValue() <= cAmount && i == 0 && Long.parseLong(yearMonth) >= rateStartYearMonth) {
|
||||
// 第一条规则
|
||||
rateMap.put(yearMonth,com.getRate());
|
||||
break;
|
||||
} else if (i == tmpComList.size() - 1 && orderAmount.floatValue() > cAmount) {
|
||||
} else if (i == yearMonthRateList.size() - 1 && orderAmount.floatValue() > cAmount && Long.parseLong(yearMonth) >= rateStartYearMonth) {
|
||||
// 最后一条规则
|
||||
rateMap.put(yearMonth,com.getRate());
|
||||
break;
|
||||
} else if (cAmount < orderAmount.floatValue() && orderAmount.floatValue() <= tmpComList.get(i + 1).getAmount().floatValue()) {
|
||||
} else if (cAmount < orderAmount.floatValue() && orderAmount.floatValue() <= yearMonthRateList.get(i + 1).getAmount().floatValue() && Long.parseLong(yearMonth) >= rateStartYearMonth) {
|
||||
// 中间规则
|
||||
rateMap.put(yearMonth,tmpComList.get(i + 1).getRate());
|
||||
rateMap.put(yearMonth,yearMonthRateList.get(i + 1).getRate());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -385,6 +402,32 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
return rateMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据比例开始执行时间进行分类
|
||||
* @param tmpComList
|
||||
* @return
|
||||
*/
|
||||
public Map<String, List<SysCommision>> getRateMapByStartTime(List<SysCommision> tmpComList){
|
||||
Map<String, List<SysCommision>> result = new TreeMap<>(new MyComparator());
|
||||
for (SysCommision sysCommision : tmpComList) {
|
||||
String rateStartYearMonth = null;
|
||||
if(sysCommision.getStartTime() != null){
|
||||
rateStartYearMonth = DateUtils.dateToLocalDate(sysCommision.getStartTime()).getYear() + "" + DateUtils.dateToLocalDate(sysCommision.getStartTime()).getMonth().getValue();
|
||||
}else{
|
||||
rateStartYearMonth = 19001+"";
|
||||
}
|
||||
if(result.containsKey(rateStartYearMonth)){
|
||||
result.get(rateStartYearMonth).add(sysCommision);
|
||||
}else{
|
||||
List<SysCommision> list = new ArrayList<>();
|
||||
list.add(sysCommision);
|
||||
result.put(rateStartYearMonth, list);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询2021年1月份之后所有订单,对订单进行处理,得出每笔订单的相关信息
|
||||
* @param sysCommision 是否
|
||||
@ -549,12 +592,12 @@ public class SysCommissionDayServiceImpl implements ISysCommissionDayService {
|
||||
}
|
||||
}
|
||||
}
|
||||
for (SysOrderCommisionDayDetail c : sysOrderCommisionDayDetailList) {
|
||||
/**for (SysOrderCommisionDayDetail c : sysOrderCommisionDayDetailList) {
|
||||
System.out.println(c.getOrderId() + "-" + c.getNutritionistId() + "-" + c.getAfterSaleId() + "-"+
|
||||
DateUtils.localDateToString(c.getServerStartDate(),"yyyy-MM-dd") + "-" +
|
||||
DateUtils.localDateToString(c.getServerEndDate(),"yyyy-MM-dd") +
|
||||
"-" + c.getDayMoney().doubleValue() + "-" + c.getOrderAmount().doubleValue());
|
||||
}
|
||||
}**/
|
||||
return sysOrderCommisionDayDetailList;
|
||||
}
|
||||
|
||||
|
@ -180,4 +180,14 @@ public class SysNutritionalVideoServiceImpl implements ISysNutritionalVideoServi
|
||||
return "Normal".equals(status) ? 1 : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新微信展示状态
|
||||
* @param wxShow
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
public int updateWxshowByIds(Integer wxShow, Long[] ids){
|
||||
return sysNutritionalVideoMapper. updateWxshowByIds(wxShow, ids);
|
||||
}
|
||||
|
||||
}
|
@ -12,6 +12,7 @@
|
||||
<result property="postName" column="post_name"/>
|
||||
<result property="amount" column="amount"/>
|
||||
<result property="rate" column="rate"/>
|
||||
<result property="startTime" column="start_time" />
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
@ -136,6 +137,8 @@
|
||||
<if test="userId != null ">and user_id = #{userId}</if>
|
||||
<if test="postId != null ">and post_id = #{postId}</if>
|
||||
</where>
|
||||
<!-- 请勿随意修改排序方式,会影响提成计算 -->
|
||||
order by user_id asc,amount asc,start_time asc
|
||||
</select>
|
||||
|
||||
<select id="selectSysCommisionById" parameterType="SysCommision" resultMap="SysCommisionResult">
|
||||
@ -152,6 +155,7 @@
|
||||
<if test="postId != null">post_id,</if>
|
||||
<if test="amount != null">amount,</if>
|
||||
<if test="rate != null">rate,</if>
|
||||
<if test="startTime != null">start_time,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
@ -163,6 +167,7 @@
|
||||
<if test="postId != null">#{postId},</if>
|
||||
<if test="amount != null">#{amount},</if>
|
||||
<if test="rate != null">#{rate},</if>
|
||||
<if test="startTime != null">#{startTime},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
@ -178,6 +183,7 @@
|
||||
<if test="postId != null">post_id = #{postId},</if>
|
||||
<if test="amount != null">amount = #{amount},</if>
|
||||
<if test="rate != null">rate = #{rate},</if>
|
||||
<if test="startTime != null">start_time = #{startTime},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
|
@ -43,6 +43,9 @@
|
||||
<if test="cateId != null">
|
||||
and snv.cate_id = #{cateId}
|
||||
</if>
|
||||
<if test="payLevel != null">
|
||||
and snv.pay_level = #{payLevel}
|
||||
</if>
|
||||
<if test="key != null and key != ''">
|
||||
and (snv.title like concat('%',#{key},'%') or snv.description like concat('%',#{key},'%'))
|
||||
</if>
|
||||
@ -129,4 +132,11 @@
|
||||
<include refid="selectSysNutritionalVideoVo"/> where video_id = #{videoId} and del_flag = 0 limit 1
|
||||
</select>
|
||||
|
||||
<update id="updateWxshowByIds" parameterType="String">
|
||||
update sys_nutritional_video set show_flag = #{wxShow} where del_flag = 0 and id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user