Commit bf7366e6 authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'origin/base-modify' into base-modify

parents e0e7b086 a74cbc88
......@@ -4,8 +4,10 @@ import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDataFindDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberSaveDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberExportMapper;
import com.github.wxiaoqi.security.admin.vo.BaseUserMemberExportVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
......@@ -22,6 +24,7 @@ import tk.mybatis.mapper.entity.Example;
import java.time.Instant;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -45,7 +48,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
private AppUserLoginBiz appUserLoginBiz;
public void saveUserMember(UserMemberSaveDTO userMemberSaveDTO,Integer userId,String name) {
public void saveUserMember(UserMemberSaveDTO userMemberSaveDTO, Integer userId, String name) {
if (userMemberSaveDTO != null) {
UserMemberDTO userMemberDTO = new UserMemberDTO();
BaseUserMemberLevel level = userMemberLevelBiz.getLevel(userMemberSaveDTO.getMemberLevel());
......@@ -86,26 +89,37 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
}
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public int importUserMember(List<String[]> userMemberData,Integer userId,String userName) {
public int importUserMember(List<String[]> userMemberData, Integer userId, String userName) {
List<BaseUserMemberExport> baseUserMemberExports = new ArrayList<>();
List<Integer> levels = userMemberData.stream().map(x -> x[1]).map(Integer::valueOf).distinct().collect(Collectors.toList());
Map<Integer, Integer> levelAndDisCountMap = userMemberLevelBiz.getUserMemberLevelAndDisCountMapByLevels(levels);
List<BaseUserMemberLevel> levesls = userMemberLevelBiz.getLevesls();
Map<Integer, BaseUserMemberLevel> levelAndbaseUserMemberMap = levesls.stream().collect(Collectors.toMap(BaseUserMemberLevel::getLevel, Function.identity()));
Map<String,Integer> leavelNameAndLeaveMap = levelAndbaseUserMemberMap.values().stream().collect(Collectors.toMap(BaseUserMemberLevel::getName, BaseUserMemberLevel::getLevel));
List<String> phones = userMemberData.stream().map(x -> x[0]).distinct().collect(Collectors.toList());
Map<String, Integer> phoneAndUserIdMap = appUserLoginBiz.findPhoneAndUserIdMapByPhones(phones);
Set<Map.Entry<String, Integer>> leaveNameAndLeaveEntry = leavelNameAndLeaveMap.entrySet();
Integer memberLevel =1;
Integer discount = 0;
for (String[] data : userMemberData) {
String phone = data[0];
String memberLevel = data[1];
String memberLevelName = data[1];
String totalNumber = data[2];
String rentFreeDays = data[3];
for (Map.Entry<String, Integer> entry : leaveNameAndLeaveEntry) {
if (entry.getKey().contains(memberLevelName.substring(0,1))){
memberLevel = entry.getValue();
discount = levelAndbaseUserMemberMap.get(memberLevel).getDiscount();
break;
}
}
if (phoneAndUserIdMap != null && phoneAndUserIdMap.get(phone) != null) {
UserMemberDTO userMemberDTO = new UserMemberDTO();
userMemberDTO.setUserId(phoneAndUserIdMap.get(phone));
userMemberDTO.setMemberLevel(Integer.valueOf(memberLevel));
userMemberDTO.setDiscount(levelAndDisCountMap == null ? 0 : (levelAndDisCountMap.get(Integer.valueOf(memberLevel)) == null ? 0 : levelAndDisCountMap.get(Integer.valueOf(memberLevel))));
userMemberDTO.setMemberLevel(memberLevel);
userMemberDTO.setDiscount(discount);
userMemberDTO.setTotalNumber(Integer.valueOf(totalNumber));
userMemberDTO.setRentFreeDays(Integer.valueOf(rentFreeDays));
userMemberDTO.setIsBind(1);
......@@ -120,10 +134,10 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
BaseUserMemberExport memberExport = BaseUserMemberExport
.builder()
.username(phone)
.memberLevel(Integer.valueOf(memberLevel))
.memberLevel(memberLevel)
.totalNumber(Integer.valueOf(totalNumber))
.rentFreeDays(Integer.valueOf(rentFreeDays))
.discount(levelAndDisCountMap == null ? 0 : (levelAndDisCountMap.get(Integer.valueOf(memberLevel)) == null ? 0 : levelAndDisCountMap.get(Integer.valueOf(memberLevel))))
.discount(discount)
.status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(phone) == null ? 0 : 1))
.crtId(userId)
.crtName(userName)
......@@ -152,7 +166,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("username", phone);
criteria.andEqualTo("status", 0);
criteria.andEqualTo("isDel",0);
criteria.andEqualTo("isDel", 0);
List<BaseUserMemberExport> baseUserMemberExports = mapper.selectByExample(example);
if (CollectionUtils.isNotEmpty(baseUserMemberExports)) {
......@@ -183,7 +197,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
BaseUserMemberExportVo baseUserMemberExportVo;
for (BaseUserMemberExportDTO userMemberExportDTO : userMemberExportDTOS) {
baseUserMemberExportVo = new BaseUserMemberExportVo();
BeanUtils.copyProperties(userMemberExportDTO,baseUserMemberExportVo);
BeanUtils.copyProperties(userMemberExportDTO, baseUserMemberExportVo);
baseUserMemberExportVos.add(baseUserMemberExportVo);
}
baseUserMemberExportVos.sort(Comparator.comparing(BaseUserMemberExportVo::getCrtTime).reversed());
......@@ -196,6 +210,6 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
}
public void updateUserMemberExportDataStatus(Integer id) {
mapper.updateUserMemberExportDataStatusById(id,1);
mapper.updateUserMemberExportDataStatusById(id, 1);
}
}
......@@ -98,9 +98,13 @@ public class UserBusinessBiz {
if (leaderId != 0) {
Map<Integer, AppUserLogin> userIdAndUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(Arrays.asList(leaderId));
Map<Integer, AppUserDetail> userIdAndUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(Arrays.asList(leaderId));
if (!userIdAndUserLoginMap.isEmpty()){
promoteBO.setLeaderUsername(userIdAndUserLoginMap.get(leaderId).getUsername());
}
if (!userIdAndUserDetailMap.isEmpty()){
promoteBO.setLeaderHeadUrl(userIdAndUserDetailMap.get(leaderId).getHeadimgurl());
}
}
promoteBO.setInviteNumber(memberStateAndCountMap.get(0));
promoteBO.setActivatedNumber(memberStateAndCountMap.get(1));
......
......@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.collections.CollectionUtils;
......@@ -12,6 +13,7 @@ import tk.mybatis.mapper.entity.Example;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -41,11 +43,11 @@ public class UserMemberLevelBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUs
}
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public Map<Integer,Integer> getUserMemberLevelAndDisCountMapByLevels(List<Integer> levels){
public Map<Integer, BaseUserMemberLevel> getUserMemberLevelAndUserMemberMapByLevels(List<Integer> levels){
List<BaseUserMemberLevel> baseUserMemberLevels = mapper.selectUserMembersLevelByLevels(levels);
Map<Integer,Integer> levelAndDiscountMap = null;
Map<Integer,BaseUserMemberLevel> levelAndDiscountMap = null;
if (CollectionUtils.isNotEmpty(baseUserMemberLevels)){
levelAndDiscountMap = baseUserMemberLevels.stream().collect(Collectors.toMap(BaseUserMemberLevel::getLevel,BaseUserMemberLevel::getDiscount));
levelAndDiscountMap = baseUserMemberLevels.stream().collect(Collectors.toMap(BaseUserMemberLevel::getLevel, Function.identity()));
}
return levelAndDiscountMap;
}
......
......@@ -8,7 +8,9 @@ import com.github.wxiaoqi.security.admin.biz.AppUserSellingWaterBiz;
import com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
......@@ -18,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Map;
import java.util.concurrent.ExecutorService;
......@@ -73,7 +76,7 @@ public class WaterMQHandler {
setGoodId(orderMQDTO.getOrderRentVehicleDetail().getModelId());
setGoodNumber(1);
setImg(orderMQDTO.getPicture());
setPrice(orderMQDTO.getGoodsAmount());
setPrice(orderMQDTO.getItemByTypeEnum(ItemTypeEnum.VEHICLE_MODEL).getRealAmount());
setTitle(orderMQDTO.getName());
setType(OrderGoodsDTO.TYPE_RENT);
}});
......@@ -81,13 +84,16 @@ public class WaterMQHandler {
);
break;
case TOUR:
OrderItem tourAdultItem = orderMQDTO.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT);
OrderItem tourChildItem = orderMQDTO.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD);
orderWaterDTO.setGoodsDTOList(
new ArrayList<OrderGoodsDTO>() {{
add(new OrderGoodsDTO() {{
setGoodId(orderMQDTO.getOrderTourDetail().getGoodId());
setGoodNumber(1);
setImg(orderMQDTO.getPicture());
setPrice(orderMQDTO.getGoodsAmount());
setPrice(tourAdultItem.getRealAmount().add(null == tourChildItem?
BigDecimal.ZERO:tourChildItem.getRealAmount()));
setTitle(orderMQDTO.getName());
setType(OrderGoodsDTO.TYPE_TOUR);
}});
......@@ -101,7 +107,7 @@ public class WaterMQHandler {
setGoodId(orderMQDTO.getOrderMemberDetail().getMemberLevelId());
setGoodNumber(1);
setImg(orderMQDTO.getPicture());
setPrice(orderMQDTO.getGoodsAmount());
setPrice(orderMQDTO.getItemByTypeEnum(ItemTypeEnum.MEMBER).getRealAmount());
setTitle(orderMQDTO.getName());
setType(OrderGoodsDTO.TYPE_MEMBER);
}});
......
......@@ -202,6 +202,9 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
}
couponAmout=couponAmout.add(getCouponAmout(couponId,channel,amout));
}
if (couponAmout.compareTo(amout)>0){
couponAmout=amout;
}
return couponAmout;
}
......
......@@ -45,7 +45,7 @@ public class UserCouponAdminController {
}
@PostMapping("/sendcoupon")
public ObjectRestResponse<Void> sendCoupon(UserCouponSendDTO userCouponSendDTO){
public ObjectRestResponse<Void> sendCoupon(@RequestBody UserCouponSendDTO userCouponSendDTO){
userCouponBiz.sendCoupon(userCouponSendDTO);
return ObjectRestResponse.succ();
}
......
......@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.stream.Collectors;
......@@ -140,10 +141,13 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
BigDecimal couponAmount = BigDecimal.ZERO;
//设置Item
OrderItem vehicleOrderItem = orderItemBiz.initOrderItem(detail.getBaseUserMemberLevel().getPrice(), 1, detail.getBaseUserMemberLevel().getName(), detail.getBaseUserMemberLevel().getId(), ItemTypeEnum.MEMBER);
OrderItem memberOrderItem = orderItemBiz.initOrderItem(detail.getBaseUserMemberLevel().getPrice(), 1, detail.getBaseUserMemberLevel().getName(), detail.getBaseUserMemberLevel().getId(), ItemTypeEnum.MEMBER);
detail.setItems(new ArrayList<OrderItem>());
detail.getItems().add(memberOrderItem);
//商品价格
goodsAmount = goodsAmount.add(vehicleOrderItem.getCalculateAmount(Boolean.TRUE));
goodsAmount = goodsAmount.add(memberOrderItem.getCalculateAmount(Boolean.TRUE));
//vehicleAmount 优惠券处理
if(null != detail.getTickerNo() && detail.getTickerNo().size() > 0) {
......@@ -151,7 +155,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
if(couponAmount.compareTo(BigDecimal.ZERO) > 0) {
detail.getOrder().setCouponTickerNos(detail.getTickerNo().stream().collect(Collectors.joining(",")));
detail.getOrder().setHasDiscount(SYS_TRUE);
vehicleOrderItem.handleCouponAmount(couponAmount);
memberOrderItem.handleCouponAmount(couponAmount);
}
}
......
......@@ -143,7 +143,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
OrderItem tourAdultItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT);
OrderItem tourChildItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD);
BigDecimal amount = tourAdultItem.getTotalAmount().add(tourChildItem.getTotalAmount());
BigDecimal amount = tourAdultItem.getTotalAmount().add(null == tourChildItem? BigDecimal.ZERO: tourChildItem.getTotalAmount());
//如果有使用优惠券,则扣减
if(BigDecimal.ZERO.compareTo(bo.getOrder().getCouponAmount()) < 0) {
......@@ -215,14 +215,22 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
tourAdultItem.setUnitPrice(tourSpePriceVo.getPrice());
OrderItem tourChildItem = orderItemBiz.initOrderItem(tourSpePriceVo.getChildOriginalPrice(), detail.getChildNum(), "儿童", detail.getSpePriceId(), ItemTypeEnum.TOUR_CHILD);
tourChildItem.setUnitPrice(tourSpePriceVo.getChildPrice());
//人数 * 天数
OrderItem insureItem = orderItemBiz.initOrderItem(INSURE_PRICE, detail.getTotalNumber() * detail.getTourGood().getNumber(), "旅游保险", null, ItemTypeEnum.TOUR_INSURE);
detail.setItems(new ArrayList<OrderItem>());
detail.getItems().add(tourAdultItem);
if(tourChildItem.getBuyNum() > 0) {
detail.getItems().add(tourChildItem);
}
//需要保险
if(SYS_TRUE.equals(detail.getHasInsure())) {
//人数 * 天数 * 价格
insureAmount = insureAmount.add(insureItem.getCalculateAmount(Boolean.TRUE));
detail.getItems().add(insureItem);
}
//总价
......
......@@ -47,5 +47,4 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty("订单号")
private String orderNo;
}
\ No newline at end of file
......@@ -308,8 +308,11 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
checkIfVehicleExists(bookVehicleVo.getVehicleId());
//提取日期和相应的预定目标日期
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap();
DateTime startDay =DateTime.parse(bookVehicleVo.getBookStartDate(),DEFAULT_DATE_TIME_FORMATTER);
DateTime endDay =DateTime.parse(bookVehicleVo.getBookEndDate(), DEFAULT_DATE_TIME_FORMATTER);
String[] bookStartDateArray = bookVehicleVo.getBookStartDate().split(" ");
String[] bookEndDateArray = bookVehicleVo.getBookEndDate().split(" ");
DateTime startDay =DateTime.parse(bookStartDateArray[0],DEFAULT_DATE_TIME_FORMATTER);
DateTime endDay =DateTime.parse(bookEndDateArray[0], DEFAULT_DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法
......@@ -332,9 +335,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
vehicleBookRecord.setBookUser(userId);
vehicleBookRecord.setBookUserName(userName);
vehicleBookRecord.setBookStartDate(DateTime.
parse(bookVehicleVo.getBookStartDate(),DEFAULT_DATE_TIME_FORMATTER).toDate());
parse(bookStartDateArray[0],DEFAULT_DATE_TIME_FORMATTER).toDate());
vehicleBookRecord.setBookEndDate(DateTime.
parse(bookVehicleVo.getBookEndDate(),DEFAULT_DATE_TIME_FORMATTER).toDate());
parse(bookEndDateArray[0],DEFAULT_DATE_TIME_FORMATTER).toDate());
vehicleBookRecord.setLiftAddr(bookVehicleVo.getLiftAddr());
vehicleBookRecord.setRemark(bookVehicleVo.getRemark());
vehicleBookRecord.setDestination(bookVehicleVo.getDestination());
......
......@@ -398,10 +398,8 @@ public class VehicleController extends BaseController<VehicleBiz> {
Integer operatorId = USER_APP;
String userName = dto.getUserName();
//BaseContextHandler.getName();
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
dto.setLimit(1);
dto.setPage(1);
bookVehicleVo.setBookType(BookType.USER_RENT.getCode());
//查询可车辆信息
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if (pageDataVO.getData().size() <= 0) {
......@@ -409,6 +407,10 @@ public class VehicleController extends BaseController<VehicleBiz> {
add("可用车辆不存在");
}});
}
dto.setBookStartDate(dto.getBookStartDate()+ " 00:00:00");
dto.setBookEndDate(dto.getBookEndDate()+ " 23:59:59");
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
bookVehicleVo.setBookType(BookType.USER_RENT.getCode());
bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId());
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName);
return ObjectRestResponse.succ(vehicleBookRecord);
......
package com.xxfc.platform.vehicle;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.junit.Test;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;
public class ListTest {
@Test
public void ListTest(){
List<Object> objects = Arrays.asList();
DateTime startDay= DateTime.parse("2019-07-30 00:00:00", DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(startDay);
}
}
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