Commit 10feb9db authored by libin's avatar libin

Merge branch 'master-member-feture-count' into dev

parents f7d8f557 50485273
...@@ -335,9 +335,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -335,9 +335,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
pageDataVO.setPageNum(memberOrderFindDTO.getPage()); pageDataVO.setPageNum(memberOrderFindDTO.getPage());
pageDataVO.setPageSize(memberOrderFindDTO.getLimit()); pageDataVO.setPageSize(memberOrderFindDTO.getLimit());
pageDataVO.setData(Collections.EMPTY_LIST); pageDataVO.setData(Collections.EMPTY_LIST);
String name = memberOrderFindDTO.getLevel()==null?"":memberOrderFindDTO.getLevel()==1?"普通":memberOrderFindDTO.getLevel()==2?"黄金":memberOrderFindDTO.getLevel()==3?"钻石":null;
memberOrderFindDTO.setLevelName(name);
if (Objects.nonNull(memberOrderFindDTO.getEndPayTime())){ if (Objects.nonNull(memberOrderFindDTO.getEndPayTime())){
Long payEndTime = memberOrderFindDTO.getEndPayTime()+(1000*60*60*24); Long payEndTime = memberOrderFindDTO.getEndPayTime()+(1000*60*60*24);
memberOrderFindDTO.setEndPayTime(payEndTime); memberOrderFindDTO.setEndPayTime(payEndTime);
...@@ -409,40 +406,29 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -409,40 +406,29 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
private MemberOrderStatisticsBo getMemberOrderStatisticsBo(List<MemberOrderBo> baseOrders){ private MemberOrderStatisticsBo getMemberOrderStatisticsBo(List<MemberOrderBo> baseOrders){
MemberOrderStatisticsBo memberOrderStatisticsBo = new MemberOrderStatisticsBo(); MemberOrderStatisticsBo memberOrderStatisticsBo = new MemberOrderStatisticsBo();
baseOrders.stream().peek(x->{ Map<Integer, List<MemberOrderBo>> baseOrderMap = baseOrders.stream().collect(Collectors.groupingBy(MemberOrderBo::getMemberLevel, Collectors.toList()));
if(x.getName().contains("黄金")){ Map<Integer, List<MemberOrderBo>> baseOrderHasPayMap = baseOrders.stream().filter(x->x.getHasPay()==1).collect(Collectors.groupingBy(MemberOrderBo::getMemberLevel, Collectors.toList()));
x.setDesc("黄金");
}
if (x.getName().contains("钻石")){
x.setDesc("钻石");
}
if (x.getName().contains("普通")){
x.setDesc("普通");
}
}).count();
Map<String, List<MemberOrderBo>> baseOrderMap = baseOrders.stream().collect(Collectors.groupingBy(MemberOrderBo::getDesc, Collectors.toList()));
Map<String, List<MemberOrderBo>> baseOrderHasPayMap = baseOrders.stream().filter(x->x.getHasPay()==1).collect(Collectors.groupingBy(MemberOrderBo::getDesc, Collectors.toList()));
memberOrderStatisticsBo.setOrderNum(baseOrders.size()); memberOrderStatisticsBo.setOrderNum(baseOrders.size());
BigDecimal totalAmount = baseOrders.stream().filter(x->x.getHasPay()==1).map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal totalAmount = baseOrders.stream().filter(x->x.getHasPay()==1).map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalAmount(totalAmount); memberOrderStatisticsBo.setTotalAmount(totalAmount);
List<MemberOrderBo> diamondOrders = baseOrderMap.get(levelEnum.DIAMOND.getDesc()); List<MemberOrderBo> diamondOrders = baseOrderMap.get(levelEnum.DIAMOND.getLevel());
memberOrderStatisticsBo.setDiamondOrderNum(diamondOrders==null?0:diamondOrders.size()); memberOrderStatisticsBo.setDiamondOrderNum(diamondOrders==null?0:diamondOrders.size());
List<MemberOrderBo> diamondHashPayOrders = baseOrderHasPayMap.get(levelEnum.DIAMOND.getDesc()); List<MemberOrderBo> diamondHashPayOrders = baseOrderHasPayMap.get(levelEnum.DIAMOND.getLevel());
diamondHashPayOrders = diamondHashPayOrders==null?Collections.EMPTY_LIST:diamondHashPayOrders; diamondHashPayOrders = diamondHashPayOrders==null?Collections.EMPTY_LIST:diamondHashPayOrders;
BigDecimal diamondAmount = diamondHashPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal diamondAmount = diamondHashPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
memberOrderStatisticsBo.setTotalDiamondAmount(diamondAmount); memberOrderStatisticsBo.setTotalDiamondAmount(diamondAmount);
List<MemberOrderBo> goldOrders = baseOrderMap.get(levelEnum.GOLD.getDesc()); List<MemberOrderBo> goldOrders = baseOrderMap.get(levelEnum.GOLD.getLevel());
memberOrderStatisticsBo.setGoldOrderNum(goldOrders==null?0:goldOrders.size()); memberOrderStatisticsBo.setGoldOrderNum(goldOrders==null?0:goldOrders.size());
List<MemberOrderBo> goldHasPayOrders = baseOrderHasPayMap.get(levelEnum.GOLD.getDesc()); List<MemberOrderBo> goldHasPayOrders = baseOrderHasPayMap.get(levelEnum.GOLD.getLevel());
goldHasPayOrders = goldHasPayOrders==null?Collections.EMPTY_LIST:goldHasPayOrders; goldHasPayOrders = goldHasPayOrders==null?Collections.EMPTY_LIST:goldHasPayOrders;
BigDecimal goldAmount = goldHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal goldAmount = goldHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalGoldAmount(goldAmount); memberOrderStatisticsBo.setTotalGoldAmount(goldAmount);
List<MemberOrderBo> generalOrders = baseOrderMap.get(levelEnum.GENERAL.getDesc()); List<MemberOrderBo> generalOrders = baseOrderMap.get(levelEnum.GENERAL.getLevel());
memberOrderStatisticsBo.setGeneralOrderNum(generalOrders==null?0:generalOrders.size()); memberOrderStatisticsBo.setGeneralOrderNum(generalOrders==null?0:generalOrders.size());
List<MemberOrderBo> generalHasPayOrders = baseOrderHasPayMap.get(levelEnum.GENERAL.getDesc()); List<MemberOrderBo> generalHasPayOrders = baseOrderHasPayMap.get(levelEnum.GENERAL.getLevel());
generalHasPayOrders = generalHasPayOrders==null?Collections.EMPTY_LIST:generalHasPayOrders; generalHasPayOrders = generalHasPayOrders==null?Collections.EMPTY_LIST:generalHasPayOrders;
BigDecimal generalAmount = generalHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal generalAmount = generalHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalGeneralAmount(generalAmount); memberOrderStatisticsBo.setTotalGeneralAmount(generalAmount);
...@@ -450,16 +436,26 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -450,16 +436,26 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return memberOrderStatisticsBo; return memberOrderStatisticsBo;
} }
private enum levelEnum{ private enum levelEnum{
DIAMOND("钻石"), DIAMOND(3,"钻石"),
GOLD("黄金"), GOLD(2,"黄金"),
GENERAL("普通"); GENERAL(1,"普通");
levelEnum(String desc) { levelEnum(Integer level,String desc) {
this.level = level;
this.desc = desc; this.desc = desc;
} }
private Integer level;
private String desc; private String desc;
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public String getDesc() { public String getDesc() {
return desc; return desc;
} }
......
...@@ -285,6 +285,7 @@ ...@@ -285,6 +285,7 @@
</select> </select>
<select id="findMemberOrders" resultType="com.xxfc.platform.order.pojo.dto.MemberOrderBo"> <select id="findMemberOrders" resultType="com.xxfc.platform.order.pojo.dto.MemberOrderBo">
select bo.*,omd.member_level AS `memberLevel` from (
SELECT SELECT
`id`, `id`,
`no` AS `orderNo`, `no` AS `orderNo`,
...@@ -298,7 +299,6 @@ ...@@ -298,7 +299,6 @@
`coupon_amount` AS `couponAmount`, `coupon_amount` AS `couponAmount`,
`user_id` AS `userId`, `user_id` AS `userId`,
`has_pay` AS `hasPay`, `has_pay` AS `hasPay`,
`member_level` AS `memberLevel`,
`facilitate_id` AS `facilitateId`, `facilitate_id` AS `facilitateId`,
`facilitate_phone` AS `facilitatePhone` `facilitate_phone` AS `facilitatePhone`
FROM FROM
...@@ -332,15 +332,18 @@ ...@@ -332,15 +332,18 @@
<if test="endPayTime!=null and startPayTime==null"> <if test="endPayTime!=null and startPayTime==null">
and `pay_time` <![CDATA[<=#{endPayTime}]]> and `pay_time` <![CDATA[<=#{endPayTime}]]>
</if> </if>
<if test="levelName!=null and levelName!=''">
and `name` like CONCAT('%',#{levelName},'%')
</if>
<if test="userIds!=null and userIds.size()>0"> <if test="userIds!=null and userIds.size()>0">
and `user_id` IN and `user_id` IN
<foreach collection="userIds" item="userId" separator="," open="(" close=")"> <foreach collection="userIds" item="userId" separator="," open="(" close=")">
#{userId} #{userId}
</foreach> </foreach>
</if> </if>
ORDER BY `crt_time` DESC ) AS `bo`
INNER JOIN (select * from `order_member_detail` where 1=1
<if test="level!=null">
and `member_level`=#{level}
</if>
) AS `omd` ON omd.order_id=bo.id
ORDER BY bo.`creatTime` DESC
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -30,5 +30,4 @@ public class VehicleApplication { ...@@ -30,5 +30,4 @@ public class VehicleApplication {
SpringApplication.run(VehicleApplication.class, args); SpringApplication.run(VehicleApplication.class, args);
} }
} }
...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.common.RestResponse; ...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.*; import com.xxfc.platform.vehicle.constant.*;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.jobhandler.VehicleJobHandler;
import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper; import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper; import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper;
import com.xxfc.platform.vehicle.mapper.VehicleMapper; import com.xxfc.platform.vehicle.mapper.VehicleMapper;
...@@ -89,6 +90,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -89,6 +90,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
@Autowired @Autowired
private VehicleBookInfoBiz vehicleBookInfoBiz; private VehicleBookInfoBiz vehicleBookInfoBiz;
@Autowired
private VehicleJobHandler vehicleJobHandler;
@Override @Override
public UserFeign getUserFeign() { public UserFeign getUserFeign() {
...@@ -237,6 +241,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -237,6 +241,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
// } // }
} }
mapper.insertSelective(vehicle); mapper.insertSelective(vehicle);
//排班表插入
vehicleJobHandler.InsertBookInfo(vehicle.getId());
} }
return RestResponse.suc(); return RestResponse.suc();
} }
......
...@@ -17,6 +17,7 @@ import org.springframework.stereotype.Component; ...@@ -17,6 +17,7 @@ import org.springframework.stereotype.Component;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* @author libin * @author libin
...@@ -66,4 +67,21 @@ public class VehicleJobHandler extends IJobHandler { ...@@ -66,4 +67,21 @@ public class VehicleJobHandler extends IJobHandler {
return FAIL; return FAIL;
} }
} }
public void InsertBookInfo(String vehicleId){
XxlJobLogger.log("----添加新建的车辆【{}】的bookInfo",vehicleId);
List<VehicleBookInfo> bookInfos = Stream.of(0, 1, 2).map(x -> {
LocalDate date = LocalDate.now().plusMonths(x);
int year = date.getYear();
int month = date.getMonthValue();
String yearAndMonth = String.format("%d-%02d", year, month);
VehicleBookInfo vehicleBookInfo = new VehicleBookInfo();
vehicleBookInfo.setVehicle(vehicleId);
vehicleBookInfo.setYearMonth(yearAndMonth);
return vehicleBookInfo;
}).collect(Collectors.toList());
XxlJobLogger.log("----插入车型对象:【{}】",bookInfos);
vehicleBookInfoBiz.InsertBatch(bookInfos);
}
} }
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