Commit 910754cb by huluobin

update

parent f8ab4814
package com.gogirl.application.market.discount;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.market.discount.LeisureDiscountConfigLabel;
/**
* <p>
* 服务类
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
public interface ILeisureDiscountConfigLabelService extends IService<LeisureDiscountConfigLabel> {
}
package com.gogirl.application.market.discount.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.market.discount.ILeisureDiscountConfigLabelService;
import com.gogirl.domain.market.discount.LeisureDiscountConfigLabel;
import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigLabelMapper;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
@Service
public class LeisureDiscountConfigLabelServiceImpl extends ServiceImpl<LeisureDiscountConfigLabelMapper, LeisureDiscountConfigLabel> implements ILeisureDiscountConfigLabelService {
}
...@@ -12,6 +12,7 @@ import com.gogirl.application.product.serve.BaseTypeService; ...@@ -12,6 +12,7 @@ import com.gogirl.application.product.serve.BaseTypeService;
import com.gogirl.application.store.store.StoreClassesTechnicianService; import com.gogirl.application.store.store.StoreClassesTechnicianService;
import com.gogirl.application.user.customer.CustomerService; import com.gogirl.application.user.customer.CustomerService;
import com.gogirl.domain.market.discount.LeisureDiscountConfig; import com.gogirl.domain.market.discount.LeisureDiscountConfig;
import com.gogirl.domain.market.discount.LeisureDiscountConfigLabel;
import com.gogirl.domain.market.discount.LeisureDiscountConfigLimit; import com.gogirl.domain.market.discount.LeisureDiscountConfigLimit;
import com.gogirl.domain.order.serve.*; import com.gogirl.domain.order.serve.*;
import com.gogirl.domain.product.purchase.PurchaseSku; import com.gogirl.domain.product.purchase.PurchaseSku;
...@@ -26,6 +27,7 @@ import com.gogirl.infrastructure.common.util.CloneUtil; ...@@ -26,6 +27,7 @@ import com.gogirl.infrastructure.common.util.CloneUtil;
import com.gogirl.infrastructure.common.util.ListUtil; import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.common.util.StringUtils; import com.gogirl.infrastructure.common.util.StringUtils;
import com.gogirl.infrastructure.config.property.GogirlProperties; import com.gogirl.infrastructure.config.property.GogirlProperties;
import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigLabelMapper;
import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigLimitMapper; import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigLimitMapper;
import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigMapper; import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigMapper;
import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper; import com.gogirl.infrastructure.mapper.order.serve.OrderManageMapper;
...@@ -83,6 +85,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -83,6 +85,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
private final ProducePromotionTimeMapper producePromotionTimeMapper; private final ProducePromotionTimeMapper producePromotionTimeMapper;
private final StoreClassesTechnicianMapper storeClassesTechnicianMapper; private final StoreClassesTechnicianMapper storeClassesTechnicianMapper;
private final LeisureDiscountConfigLimitMapper leisureDiscountConfigLimitMapper; private final LeisureDiscountConfigLimitMapper leisureDiscountConfigLimitMapper;
private final LeisureDiscountConfigLabelMapper leisureDiscountConfigLabelMapper;
private final StoreClassesTechnicianService storeClassesTechnicianService; private final StoreClassesTechnicianService storeClassesTechnicianService;
...@@ -876,19 +879,29 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -876,19 +879,29 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
/*1、查询闲时折扣*/ /*1、查询闲时折扣*/
IPage<LeisureScheduleServeResp> page = new Page<>(query.getPageNum(), query.getPageSize()); IPage<LeisureScheduleServeResp> page = new Page<>(query.getPageNum(), query.getPageSize());
List<Integer> labelIdList = new ArrayList<>();
page = scheduleManageMapper.queryPageLeisureScheduleServe(page, query.getLatitude(), query.getLongitude(), labelIdList);
page = scheduleManageMapper.queryPageLeisureScheduleServe(page, query.getLatitude(), query.getLongitude());
List<Integer> leisureDiscountConfigIdList = page.getRecords().stream().map(LeisureScheduleServeResp::getLeisureDiscountConfigId).collect(Collectors.toList());
Map<Integer, List<LeisureDiscountConfigLabel>> labelMap = leisureDiscountConfigLabelMapper.selectList(new LambdaQueryWrapper<LeisureDiscountConfigLabel>()
.in(LeisureDiscountConfigLabel::getLeisureDiscountConfigId, leisureDiscountConfigIdList))
.stream()
.collect(Collectors.groupingBy(LeisureDiscountConfigLabel::getLeisureDiscountConfigId))
/*算距离*/
page.getRecords().forEach(leisureScheduleServeResp -> { page.getRecords().forEach(leisureScheduleServeResp -> {
/*算距离*/
leisureScheduleServeResp.setDistance(MapDistanceUtils.getDistance(query.getLatitude().toString(), leisureScheduleServeResp.setDistance(MapDistanceUtils.getDistance(query.getLatitude().toString(),
query.getLongitude().toString(), query.getLongitude().toString(),
leisureScheduleServeResp.getLatitude().toString(), leisureScheduleServeResp.getLatitude().toString(),
leisureScheduleServeResp.getLongitude().toString())); leisureScheduleServeResp.getLongitude().toString()));
leisureScheduleServeResp.setDateTime(LocalDateTime.of(leisureScheduleServeResp.getWeekDate(), leisureScheduleServeResp.getTimeNode())); leisureScheduleServeResp.setDateTime(LocalDateTime.of(leisureScheduleServeResp.getWeekDate(), leisureScheduleServeResp.getTimeNode()));
leisureScheduleServeResp.setLeisureDiscountConfigLabelList(labelMap.get(leisureScheduleServeResp.getLeisureDiscountConfigId()));
}); });
//当前用户的标签id
List<Integer> customerLabelIds = new ArrayList<>();
List<LeisureScheduleServeResp> list = page.getRecords().stream() List<LeisureScheduleServeResp> list = page.getRecords().stream()
.peek(leisureScheduleServeResp -> { .peek(leisureScheduleServeResp -> {
try { try {
...@@ -898,6 +911,11 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -898,6 +911,11 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
} }
}) })
.filter(leisureScheduleServeResp -> ListUtil.isNotEmpty(leisureScheduleServeResp.getStoreTechnicianList())) .filter(leisureScheduleServeResp -> ListUtil.isNotEmpty(leisureScheduleServeResp.getStoreTechnicianList()))
.filter(leisureScheduleServeResp -> {
List<Integer> discountConfigLabelIds = leisureScheduleServeResp.getLeisureDiscountConfigLabelList().stream().map(LeisureDiscountConfigLabel::getLabelId).collect(Collectors.toList());
discountConfigLabelIds.retainAll(customerLabelIds);
return ListUtil.isNotEmpty(discountConfigLabelIds);
})
.collect(Collectors.toList()); .collect(Collectors.toList());
page.setRecords(list); page.setRecords(list);
return page; return page;
...@@ -920,7 +938,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -920,7 +938,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
return this.queryAvailableTechnician(leisureScheduleServeResp.getDepartmentId(), baseServe.getId(), startTime, endTime); return this.queryAvailableTechnician(leisureScheduleServeResp.getDepartmentId(), baseServe.getId(), startTime, endTime);
} }
private void handleLesisureDiscountConfig(ScheduleManage scheduleManage) { private void handleLeisureDiscountConfig(ScheduleManage scheduleManage) {
List<ScheduleServe> oldScheduleServeList; List<ScheduleServe> oldScheduleServeList;
if (scheduleManage.getId() != null) { if (scheduleManage.getId() != null) {
oldScheduleServeList = scheduleServeMapper.selectList(new LambdaQueryWrapper<ScheduleServe>().eq(ScheduleServe::getSchId, scheduleManage.getId())); oldScheduleServeList = scheduleServeMapper.selectList(new LambdaQueryWrapper<ScheduleServe>().eq(ScheduleServe::getSchId, scheduleManage.getId()));
...@@ -1192,7 +1210,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper, ...@@ -1192,7 +1210,7 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
scheduleManage.setTotalPrice(scheduleServes.stream().map(ScheduleServe::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add)); scheduleManage.setTotalPrice(scheduleServes.stream().map(ScheduleServe::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add));
//处理闲时折扣次数 //处理闲时折扣次数
this.handleLesisureDiscountConfig(scheduleManage); this.handleLeisureDiscountConfig(scheduleManage);
return scheduleManage; return scheduleManage;
} }
......
...@@ -53,7 +53,7 @@ public class TrainingStartClassLogTechnicianServiceImpl extends ServiceImpl<Trai ...@@ -53,7 +53,7 @@ public class TrainingStartClassLogTechnicianServiceImpl extends ServiceImpl<Trai
Map<Integer, TrainingStartClass> trainingStartClassesMap = trainingStartClassMapper.selectBatchIds(trainingStartClassIdList).stream().collect(Collectors.toMap(TrainingStartClass::getId, trainingStartClass -> trainingStartClass, (k1, k2) -> k1)); Map<Integer, TrainingStartClass> trainingStartClassesMap = trainingStartClassMapper.selectBatchIds(trainingStartClassIdList).stream().collect(Collectors.toMap(TrainingStartClass::getId, trainingStartClass -> trainingStartClass, (k1, k2) -> k1));
Map<Integer, TrainingFeedback> feedbackMap = trainingFeedbackMapper.selectList(new LambdaQueryWrapper<TrainingFeedback>().in(TrainingFeedback::getTrainingStartClassLogTechnicianId, trainingStartClassLogTechnicianIdList)).stream() Map<Integer, TrainingFeedback> feedbackMap = trainingFeedbackMapper.selectList(new LambdaQueryWrapper<TrainingFeedback>().in(TrainingFeedback::getTrainingStartClassLogTechnicianId, trainingStartClassLogTechnicianIdList)).stream()
.collect(Collectors.toMap(TrainingFeedback::getTrainingStartClassLogTechnicianId, trainingFeedback -> trainingFeedback, (k1, k2) -> k1)) .collect(Collectors.toMap(TrainingFeedback::getTrainingStartClassLogTechnicianId, trainingFeedback -> trainingFeedback, (k1, k2) -> k1));
page.getRecords().forEach(trainingStartClassLogTechnician -> { page.getRecords().forEach(trainingStartClassLogTechnician -> {
trainingStartClassLogTechnician.setTrainingStartClass(trainingStartClassesMap.get(trainingStartClassLogTechnician.getTrainingStartClassId())); trainingStartClassLogTechnician.setTrainingStartClass(trainingStartClassesMap.get(trainingStartClassLogTechnician.getTrainingStartClassId()));
......
package com.gogirl.application.user.customer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.user.customer.Label;
/**
* <p>
* 服务类
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
public interface ILabelService extends IService<Label> {
}
package com.gogirl.application.user.customer.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gogirl.application.user.customer.ILabelService;
import com.gogirl.domain.user.customer.Label;
import com.gogirl.infrastructure.mapper.user.customer.LabelMapper;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
@Service
public class LabelServiceImpl extends ServiceImpl<LabelMapper, Label> implements ILabelService {
}
package com.gogirl.domain.market.discount;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "LeisureDiscountConfigLabel对象", description = "")
public class LeisureDiscountConfigLabel implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "label.id")
private Integer labelId;
@ApiModelProperty(value = "leisure_discount_config_id")
private Integer leisureDiscountConfigId;
}
...@@ -42,5 +42,5 @@ public class TrainingStartClassLogTechnician implements Serializable { ...@@ -42,5 +42,5 @@ public class TrainingStartClassLogTechnician implements Serializable {
@ApiModelProperty("反馈记录") @ApiModelProperty("反馈记录")
@TableField(exist = false) @TableField(exist = false)
private TrainingFeedback trainingFeedback private TrainingFeedback trainingFeedback;
} }
package com.gogirl.domain.user.customer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="Label对象", description="")
public class Label implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "标签名")
private String name;
@ApiModelProperty(value = "标签图片")
private String picUrl;
@ApiModelProperty(value = "是否需要系统计算")
private Integer sysCalculation;
@ApiModelProperty(value = "下单次数 最小")
private BigDecimal orderCountMin;
@ApiModelProperty(value = "下单次数 最多")
private BigDecimal orderCountMax;
@ApiModelProperty(value = "消费金额 至少")
private BigDecimal amountMin;
@ApiModelProperty(value = "消费金额 至多")
private BigDecimal amountMax;
@ApiModelProperty(value = "客单价 至少")
private BigDecimal unitPriceMin;
@ApiModelProperty(value = "客单价 至多")
private BigDecimal unitPriceMax;
@ApiModelProperty(value = "好评数量")
private BigDecimal praiseMin;
@ApiModelProperty(value = "好评数量")
private BigDecimal praiseMax;
@ApiModelProperty(value = "是否持卡")
private Integer hasCard;
@ApiModelProperty(value = "会员等级 逗号隔开")
private String memberLevels;
@ApiModelProperty(value = "年龄 ")
private Integer ageMin;
@ApiModelProperty(value = "年龄")
private Integer ageMax;
@ApiModelProperty(value = "职业 逗号隔开")
private String jobs;
@ApiModelProperty(value = "偏好, 逗号隔开")
private String preference;
@ApiModelProperty(value = "上次消费至今 多少天内")
private Integer lastOrderDaysMin;
@ApiModelProperty(value = "上次消费至今 已经超过多少天")
private Integer lastOrderDaysMax;
@ApiModelProperty(value = "客户来源 逗号隔开")
private String source;
@ApiModelProperty(value = "做过指定服务")
private String serviceIds;
@ApiModelProperty(value = "参与过某某活动")
private String activityIds;
@ApiModelProperty(value = "拥有过哪些券")
private String couponIds;
@ApiModelProperty(value = "总客户数量")
private Integer count;
@ApiModelProperty(value = "总充值次数")
private Integer rechargeCountMin;
@ApiModelProperty(value = "充值次数")
private Integer rechargeCountMax;
@ApiModelProperty(value = "充值金额")
private BigDecimal rechargeAmountMin;
@ApiModelProperty(value = "充值金额")
private BigDecimal rechargeAmountMax;
@ApiModelProperty(value = "差评次数 (3星以下)")
private Integer complaintCountMin;
@ApiModelProperty(value = "差评次数 (3星以下)")
private Integer complaintCountMax;
@ApiModelProperty(value = "在哪些店铺有过消费 (id,逗号隔开)")
private String storeIds;
@ApiModelProperty(value = "初次服务的美甲师")
private String firstTechnicianIds;
@ApiModelProperty(value = "首次消费的服务")
private String firstServiceIds;
@ApiModelProperty(value = "昨天有消费服务")
private String yesterdayServiceTypeIds;
}
package com.gogirl.infrastructure.mapper.market.discount;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gogirl.domain.market.discount.LeisureDiscountConfigLabel;
/**
* <p>
* Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
public interface LeisureDiscountConfigLabelMapper extends BaseMapper<LeisureDiscountConfigLabel> {
}
...@@ -49,7 +49,6 @@ public interface ScheduleManageMapper extends BaseMapper<ScheduleManage> { ...@@ -49,7 +49,6 @@ public interface ScheduleManageMapper extends BaseMapper<ScheduleManage> {
*/ */
IPage<LeisureScheduleServeResp> queryPageLeisureScheduleServe(IPage<LeisureScheduleServeResp> page, IPage<LeisureScheduleServeResp> queryPageLeisureScheduleServe(IPage<LeisureScheduleServeResp> page,
@Param("latitude") Double latitude, @Param("latitude") Double latitude,
@Param("longitude") Double longitude, @Param("longitude") Double longitude);
@Param("labelIdList") List<Integer> customerId);
} }
package com.gogirl.infrastructure.mapper.user.customer;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gogirl.domain.user.customer.Label;
/**
* <p>
* Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
public interface LabelMapper extends BaseMapper<Label> {
}
package com.gogirl.interfaces.market.discount;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
@RestController
@RequestMapping("/leisure-discount-config-label")
public class LeisureDiscountConfigLabelController {
}
package com.gogirl.interfaces.user.customer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author robbendev
* @since 2020-07-07
*/
@RestController
@RequestMapping("/label")
public class LabelController {
}
package com.gogirl.shared.product; package com.gogirl.shared.product;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.gogirl.domain.market.discount.LeisureDiscountConfigLabel;
import com.gogirl.domain.store.store.StoreTechnician; import com.gogirl.domain.store.store.StoreTechnician;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -58,4 +60,7 @@ public class LeisureScheduleServeResp implements Serializable { ...@@ -58,4 +60,7 @@ public class LeisureScheduleServeResp implements Serializable {
@ApiModelProperty("可用美甲师") @ApiModelProperty("可用美甲师")
private List<StoreTechnician> storeTechnicianList; private List<StoreTechnician> storeTechnicianList;
@JsonIgnore
private List<LeisureDiscountConfigLabel> leisureDiscountConfigLabelList;
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigLabelMapper">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gogirl.infrastructure.mapper.user.customer.LabelMapper">
</mapper>
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