Commit 3b4cc1d5 authored by 周健威's avatar 周健威

Merge remote-tracking branch 'origin/dev' into dev

parents 552a0b06 cfe4edaa
package com.xxfc.platform.order.Utils; package com.xxfc.platform.order.Utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
public class OrderDateUtils { public class OrderDateUtils {
public static String getFirstDayOfMonth(int year, int month) { public static String getFirstDayOfMonth(int year, int month) {
String monthStr = month < 10 ? "0" + month : String.valueOf(month); String monthStr = String.valueOf(month);
return year + "-" + monthStr + "-" + "01"; return year + "-" + monthStr + "-" + "01";
} }
...@@ -75,4 +78,34 @@ public class OrderDateUtils { ...@@ -75,4 +78,34 @@ public class OrderDateUtils {
return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" + return cal.get(Calendar.YEAR) + "-" + (cal.get(Calendar.MONTH) + 1) + "-" +
cal.get(Calendar.DAY_OF_MONTH); cal.get(Calendar.DAY_OF_MONTH);
} }
public static String timeStampConversionToString(Long time) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(time);
return simpleDateFormat.format(date);
}
public static Long ConvertingStringsToTimestamps(String time) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
return simpleDateFormat.parse(time).getTime();
}
public static Integer getTodayOfWeek() {
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.WEEK_OF_YEAR);
}
public static Integer getTodayOfMonth() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.MONTH)+1;
}
public static Integer getThisYear() {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
return cal.get(Calendar.YEAR);
}
} }
...@@ -21,7 +21,7 @@ public class OrderStatistics { ...@@ -21,7 +21,7 @@ public class OrderStatistics {
/** /**
* 历史交总金额 * 历史交总金额
*/ */
@ApiModelProperty(value = "历史交总金额") @ApiModelProperty(value = "历史交总金额")
private BigDecimal totalGmv; private BigDecimal totalGmv;
/** /**
......
...@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service; ...@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -57,7 +58,7 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -57,7 +58,7 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
setAdditionalIndemnity(vehicle.getTotalCompensation() setAdditionalIndemnity(vehicle.getTotalCompensation()
.add(vehicle.getTotalForfeit()) .add(vehicle.getTotalForfeit())
.add(vehicle.getTotalDefaultMoney()) .add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv()))) .add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv()).add(vehicle.getTotalReturnGmv()))
); );
}}; }};
orderStatistics.add(data); orderStatistics.add(data);
...@@ -90,7 +91,8 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -90,7 +91,8 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
return result; return result;
} }
public PageResult<MembersOrderDto> getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) { public Object getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) throws ParseException {
List<MembersOrder> membersOrderList = membersBiz.getMemberOrderStatistics(query); List<MembersOrder> membersOrderList = membersBiz.getMemberOrderStatistics(query);
//按每天分类 //按每天分类
...@@ -117,55 +119,67 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -117,55 +119,67 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
arrayList.add(mbdto); arrayList.add(mbdto);
} }
} else { } else {
if (membersOrderList.size() == 1) { for (int i = 0; i < membersOrderList.size(); i++) {
MembersOrder mb = membersOrderList.get(0); MembersOrder mb = membersOrderList.get(i);
String period = mb.getPeriod();
if (StringUtils.isBlank(period)) {
continue;
}
MembersOrderDto mbdto = new MembersOrderDto(); MembersOrderDto mbdto = new MembersOrderDto();
//设置时间段 String[] periods = mb.getPeriod().split("-");
mbdto.setTimeSlot(query.getStartTime() + "-" + query.getEndTime()); String startDay = null;
TotalPaymentAndMemberName(map, mb, mbdto); String endDay = null;
arrayList.add(mbdto); Integer time = null;
if (OrderInquiryType.WEEK.getCode().equals(query.getType())) {
} else { startDay = OrderDateUtils.getStartDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
endDay = OrderDateUtils.getEndDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
for (int i = 0; i < membersOrderList.size(); i++) { //获取今天是今年的第几周
MembersOrder mb = membersOrderList.get(i); time = OrderDateUtils.getTodayOfWeek();
String period = mb.getPeriod(); }
if (StringUtils.isBlank(period)) { Integer thisYear =OrderDateUtils.getThisYear();
continue; if (OrderInquiryType.MONTH.getCode().equals(query.getType())) {
} startDay = OrderDateUtils.getFirstDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
MembersOrderDto mbdto = new MembersOrderDto(); endDay = OrderDateUtils.getLastDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
String[] periods = mb.getPeriod().split("-"); //获取今天是今年的第几个月
String startDay = null; time = OrderDateUtils.getTodayOfMonth();
String endDay = null; }
if (OrderInquiryType.WEEK.getCode().equals(query.getType())) {
startDay = OrderDateUtils.getEndDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
endDay = OrderDateUtils.getStartDayOfWeekNo(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
}
if (OrderInquiryType.MONTH.getCode().equals(query.getType())) {
startDay = OrderDateUtils.getFirstDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
endDay = OrderDateUtils.getLastDayOfMonth(Integer.parseInt(periods[0]), Integer.parseInt(periods[1]));
}
if (i == 0) {
startDay = timeStampConversionToString(query.getStartTime()); if (i == 0 && query.getStartTime() != null) {
} startDay = OrderDateUtils.timeStampConversionToString(query.getStartTime());
if (i == (membersOrderList.size() - 1)) { }
endDay = timeStampConversionToString(query.getEndTime()); //获取当前的年.周(年.月)小数
} double today=Double.parseDouble(thisYear+"."+time);
if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)) {
mbdto.setTimeSlot(startDay + "-" + endDay); if (i == (membersOrderList.size() - 1)) {
} else { //查询到的最后一条数据年.周(年.月)小数
mbdto.setTimeSlot(""); double date = Double.parseDouble(Integer.parseInt(periods[0]) + "." + Integer.parseInt(periods[1]));
if (date == today) {
endDay = OrderDateUtils.timeStampConversionToString(System.currentTimeMillis());
} else if (date < today) {
//获取最后一条数据,周末日期
Long end = OrderDateUtils.ConvertingStringsToTimestamps(endDay);
//查询的结束日期
Long endTime = query.getEndTime();
if (endTime != null && end > endTime) {
endDay = OrderDateUtils.timeStampConversionToString(query.getEndTime());
}
} }
arrayList.add(mbdto);
} }
if (StringUtils.isNotBlank(startDay) && StringUtils.isNotBlank(endDay)) {
mbdto.setTimeSlot(startDay + "~" + endDay);
} else {
mbdto.setTimeSlot("");
}
TotalPaymentAndMemberName(map, mb, mbdto);
arrayList.add(mbdto);
} }
} }
//进行分页处理
//进行分页处理
return arrayList;
return pagingProcessing(query,arrayList); // return pagingProcessing(query, arrayList);
} }
...@@ -176,22 +190,19 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat ...@@ -176,22 +190,19 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
return pageResult; return pageResult;
} }
private String timeStampConversionToString(Long startTime) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(startTime);
return simpleDateFormat.format(date);
}
private void TotalPaymentAndMemberName(HashMap<Integer, String> map, MembersOrder mb, MembersOrderDto mbdto) { private void TotalPaymentAndMemberName(HashMap<Integer, String> map, MembersOrder mb, MembersOrderDto mbdto) {
BigDecimal totalPayment = mbdto.getTotalPayment();
BigDecimal totalPayment =BigDecimal.ZERO;
List<Member> members = mb.getMembers(); List<Member> members = mb.getMembers();
//设置时间段购买会员总金额和不同的会员名称 //设置时间段购买会员总金额和不同的会员名称
if (CollectionUtil.isNotEmpty(members)) { if (CollectionUtil.isNotEmpty(members)) {
mbdto.setMembers(members); mbdto.setMembers(members);
for (Member member : members) { for (Member member : members) {
member.setMemberName(map.get(member.getLevel())); member.setMemberName(map.get(member.getLevel()));
totalPayment = totalPayment.add(member.getAmount()); totalPayment = totalPayment.add(member.getAmount()==null?BigDecimal.ZERO:member.getAmount());
} }
} }
mbdto.setTotalPayment(totalPayment);
} }
} }
...@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -132,16 +133,14 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -132,16 +133,14 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
} }
@GetMapping("/order") @PostMapping("/order")
@ApiOperation(value = "会员统计") @ApiOperation(value = "会员统计")
public ObjectRestResponse getMemberOrderStatisticsData(@RequestBody OrderQuery query) { public ObjectRestResponse getMemberOrderStatisticsData(@RequestBody OrderQuery query) throws ParseException {
//获取会员等级信息 //获取会员等级信息
List<BaseUserMemberLevel> memberLevels = userFeign.levels(); List<BaseUserMemberLevel> memberLevels = userFeign.levels();
//获取会员订单统计信息 //获取会员订单统计信息
baseBiz.getMemberOrderStatistics(memberLevels,query); return ObjectRestResponse.succ( baseBiz.getMemberOrderStatistics(memberLevels,query));
return ObjectRestResponse.succ();
} }
......
...@@ -43,10 +43,10 @@ ...@@ -43,10 +43,10 @@
resultMap="order"> resultMap="order">
SELECT SELECT
<if test="type==2"> <if test="type==2">
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m') AS period, DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v') AS period,
</if> </if>
<if test="type==3"> <if test="type==3">
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v') AS period, DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m') AS period,
</if> </if>
date( FROM_UNIXTIME( a.crt_time / 1000 ) ) AS period, date( FROM_UNIXTIME( a.crt_time / 1000 ) ) AS period,
count( a.id ) AS number, count( a.id ) AS number,
...@@ -68,10 +68,10 @@ ...@@ -68,10 +68,10 @@
</if> </if>
GROUP BY GROUP BY
<if test="type==2"> <if test="type==2">
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m'), DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v'),
</if> </if>
<if test="type==3"> <if test="type==3">
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v'), DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m'),
</if> </if>
date( FROM_UNIXTIME( a.crt_time / 1000 ) ), date( FROM_UNIXTIME( a.crt_time / 1000 ) ),
...@@ -80,8 +80,8 @@ ...@@ -80,8 +80,8 @@
<resultMap id="order" type="com.xxfc.platform.order.entity.MembersOrder"> <resultMap id="order" type="com.xxfc.platform.order.entity.MembersOrder">
<result column="period" property="period"></result> <result column="period" property="period"></result>
<collection property="members" ofType="com.xxfc.platform.order.pojo.Member"> <collection property="members" ofType="com.xxfc.platform.order.pojo.Member">
<result column="number" property="level"></result> <result column="number" property="number"></result>
<result column="amount" property="level"></result> <result column="amount" property="amount"></result>
<result column="level" property="level"></result> <result column="level" property="level"></result>
</collection> </collection>
</resultMap> </resultMap>
......
...@@ -113,6 +113,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -113,6 +113,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
public void publishSummitActivityById(Integer id, Integer state) { public void publishSummitActivityById(Integer id, Integer state) {
SummitActivity summitActivity = new SummitActivity(); SummitActivity summitActivity = new SummitActivity();
summitActivity.setIsPublish(state); summitActivity.setIsPublish(state);
summitActivity.setUpdTime(Instant.now().toEpochMilli());
summitActivity.setId(id); summitActivity.setId(id);
mapper.updateByPrimaryKeySelective(summitActivity); mapper.updateByPrimaryKeySelective(summitActivity);
} }
...@@ -121,6 +122,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -121,6 +122,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
SummitActivity summitActivity = new SummitActivity(); SummitActivity summitActivity = new SummitActivity();
summitActivity.setIsShow(state); summitActivity.setIsShow(state);
summitActivity.setId(id); summitActivity.setId(id);
summitActivity.setUpdTime(Instant.now().toEpochMilli());
mapper.updateByPrimaryKeySelective(summitActivity); mapper.updateByPrimaryKeySelective(summitActivity);
} }
...@@ -128,6 +130,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -128,6 +130,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
SummitActivity summitActivity = new SummitActivity(); SummitActivity summitActivity = new SummitActivity();
summitActivity.setIsHomePage(state); summitActivity.setIsHomePage(state);
summitActivity.setId(id); summitActivity.setId(id);
summitActivity.setUpdTime(Instant.now().toEpochMilli());
mapper.updateByPrimaryKeySelective(summitActivity); mapper.updateByPrimaryKeySelective(summitActivity);
} }
...@@ -135,6 +138,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -135,6 +138,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
SummitActivity summitActivity = new SummitActivity(); SummitActivity summitActivity = new SummitActivity();
summitActivity.setIsOpenReg(state); summitActivity.setIsOpenReg(state);
summitActivity.setId(id); summitActivity.setId(id);
summitActivity.setUpdTime(Instant.now().toEpochMilli());
mapper.updateByPrimaryKeySelective(summitActivity); mapper.updateByPrimaryKeySelective(summitActivity);
} }
...@@ -142,6 +146,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -142,6 +146,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
SummitActivity summitActivity = new SummitActivity(); SummitActivity summitActivity = new SummitActivity();
summitActivity.setIsDel(1); summitActivity.setIsDel(1);
summitActivity.setId(id); summitActivity.setId(id);
summitActivity.setUpdTime(Instant.now().toEpochMilli());
mapper.updateByPrimaryKeySelective(summitActivity); mapper.updateByPrimaryKeySelective(summitActivity);
} }
...@@ -162,6 +167,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv ...@@ -162,6 +167,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
SummitActivity summitActivity = new SummitActivity(); SummitActivity summitActivity = new SummitActivity();
summitActivity.setId(id); summitActivity.setId(id);
summitActivity.setRank(rank); summitActivity.setRank(rank);
summitActivity.setUpdTime(Instant.now().toEpochMilli());
mapper.updateByPrimaryKeySelective(summitActivity); mapper.updateByPrimaryKeySelective(summitActivity);
} }
......
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