Commit cff15fbd by huluobin

mapper 修改

parent 1b9beae5
package com.gogirl.application.market.discount;
import com.gogirl.domain.market.discount.LeisureDiscountConfigWeek;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
public interface ILeisureDiscountConfigWeekService extends IService<LeisureDiscountConfigWeek> {
}
package com.gogirl.application.market.discount.impl;
import com.gogirl.domain.market.discount.LeisureDiscountConfigWeek;
import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigWeekMapper;
import com.gogirl.application.market.discount.ILeisureDiscountConfigWeekService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@Service
public class LeisureDiscountConfigWeekServiceImpl extends ServiceImpl<LeisureDiscountConfigWeekMapper, LeisureDiscountConfigWeek> implements ILeisureDiscountConfigWeekService {
}
......@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.gogirl.domain.order.serve.ScheduleManage;
import com.gogirl.domain.order.serve.ScheduleServe;
import com.gogirl.dto.IdleTimeProgramQuery;
import com.gogirl.dto.LeisureScheduleServe;
import com.gogirl.dto.LeisureScheduleServeQuery;
import com.gogirl.shared.order.serve.command.schedule.CancelScheduleCommand;
import com.gogirl.shared.order.serve.command.schedule.SubmitScheduleCommand;
import com.gogirl.shared.order.serve.command.schedule.UpdateScheduleCommand;
......@@ -125,4 +127,12 @@ public interface ScheduleManageService extends IService<ScheduleManage> {
* @return
*/
Integer getScheduledServeLeisure(Integer scheduleServeId);
/**
* 查询闲时预约列表
*
* @param query
* @return
*/
IPage<LeisureScheduleServe> queryPageLeisureScheduleServe(LeisureScheduleServeQuery query);
}
......@@ -24,6 +24,8 @@ import com.gogirl.domain.store.store.StoreManage;
import com.gogirl.domain.store.store.StoreTechnician;
import com.gogirl.domain.user.customer.Customer;
import com.gogirl.dto.IdleTimeProgramQuery;
import com.gogirl.dto.LeisureScheduleServe;
import com.gogirl.dto.LeisureScheduleServeQuery;
import com.gogirl.infrastructure.common.exception.RRException;
import com.gogirl.infrastructure.common.util.*;
import com.gogirl.infrastructure.config.GogirlProperties;
......@@ -38,6 +40,7 @@ import com.gogirl.infrastructure.mapper.product.serve.TechnicianServeMapper;
import com.gogirl.infrastructure.mapper.store.oa.TakeLeaveEventMapper;
import com.gogirl.infrastructure.mapper.store.store.StoreManageMapper;
import com.gogirl.infrastructure.mapper.store.store.StoreTechnicianMapper;
import com.gogirl.infrastructure.util.MapDistance;
import com.gogirl.shared.order.serve.command.schedule.*;
import com.gogirl.shared.order.serve.query.dto.IdleTimeDTO;
import com.gogirl.shared.order.serve.query.qry.*;
......@@ -53,6 +56,7 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Collectors;
......@@ -97,7 +101,10 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
private final PurchaseSkuMapper purchaseSkuMapper;
private final BaseProduceMapper baseProduceMapper;
private List<StoreTechnicianQuery> storeTechnicianQueryList(Integer scheduledId, Integer departmentId, String scheduleDate, List<Integer> serveIdList) throws ParseException {
private List<StoreTechnicianQuery> storeTechnicianQueryList(Integer scheduledId,
Integer departmentId,
String scheduleDate,
List<Integer> serveIdList) throws ParseException {
//1.查询美甲师排班表
List<StoreClassesTechnician> storeClassesTechnicianList = storeClassesTechnicianService.listClassesTechnician(scheduledId, departmentId, scheduleDate);
......@@ -1499,6 +1506,21 @@ public class ScheduleManageServiceImpl extends ServiceImpl<ScheduleManageMapper,
}
}
@Override
public IPage<LeisureScheduleServe> queryPageLeisureScheduleServe(LeisureScheduleServeQuery query) {
IPage<LeisureScheduleServe> page = new Page<>(query.getPageNum(), query.getPageSize());
page = scheduleManageMapper.queryPageLeisureScheduleServe(page);
page.getRecords().forEach(leisureScheduleServe -> {
leisureScheduleServe.setDistance(MapDistance.getDistance(query.getLatitude().toString(),
query.getLongitude().toString(),
leisureScheduleServe.getLatitude().toString(),
leisureScheduleServe.getLongitude().toString()));
leisureScheduleServe.setDateTime(LocalDateTime.of(leisureScheduleServe.getWeekDate(), leisureScheduleServe.getTimeNode()));
});
return page;
}
/**
* 参数补全
*
......
......@@ -24,4 +24,11 @@ public interface StoreTechnicianService extends IService<StoreTechnician> {
* @param departmentId
*/
void choseStore(Integer departmentId);
/**
* 获取当前登陆美甲师
*
* @return
*/
StoreTechnician getTechnician();
}
......@@ -92,4 +92,14 @@ public class StoreTechnicianServiceImpl extends ServiceImpl<StoreTechnicianMappe
gogirlToken.setDepartmentName(storeManage.getName());
gogirlTokenService.updateByToken(gogirlToken);
}
@Override
public StoreTechnician getTechnician() {
Integer technicianId = SessionUtils.getTechnicianId();
StoreTechnician storeTechnician = this.getById(technicianId);
GogirlToken gogirlToken = SessionUtils.getTechnicianToken();
storeTechnician.setDepartmentId(gogirlToken.getDepartmentId());
storeTechnician.setDepartmentName(gogirlToken.getDepartmentName());
return storeTechnician;
}
}
package com.gogirl.application.xcx;
import com.gogirl.domain.xcx.TimeNode;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
public interface ITimeNodeService extends IService<TimeNode> {
}
package com.gogirl.application.xcx;
import com.gogirl.domain.xcx.WeekConfig;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
public interface IWeekConfigService extends IService<WeekConfig> {
}
package com.gogirl.application.xcx.impl;
import com.gogirl.domain.xcx.TimeNode;
import com.gogirl.infrastructure.mapper.xcx.TimeNodeMapper;
import com.gogirl.application.xcx.ITimeNodeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@Service
public class TimeNodeServiceImpl extends ServiceImpl<TimeNodeMapper, TimeNode> implements ITimeNodeService {
}
package com.gogirl.application.xcx.impl;
import com.gogirl.domain.xcx.WeekConfig;
import com.gogirl.infrastructure.mapper.xcx.WeekConfigMapper;
import com.gogirl.application.xcx.IWeekConfigService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@Service
public class WeekConfigServiceImpl extends ServiceImpl<WeekConfigMapper, WeekConfig> implements IWeekConfigService {
}
package com.gogirl.domain.market.discount;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="LeisureDiscountConfigWeek对象", description="")
public class LeisureDiscountConfigWeek implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "折扣主表")
private Integer leisureDiscountConfigId;
@ApiModelProperty(value = "周几")
private Integer week;
}
package com.gogirl.domain.xcx;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalTime;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "TimeNode对象", description = "")
public class TimeNode implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
private Integer id;
private LocalTime timeNode;
}
package com.gogirl.domain.xcx;
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.time.LocalDate;
/**
* <p>
*
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "WeekConfig对象", description = "")
public class WeekConfig implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "周几")
private Integer week;
@ApiModelProperty(value = "这个周几是几号")
private LocalDate weekDate;
private String weekStr;
}
package com.gogirl.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@Data
public class LeisureScheduleServe {
private Integer leisureDiscountConfigId;
private BigDecimal discountRate;
private Integer departmentId;
private LocalTime timeNode;
private LocalDate weekDate;
private Integer serveId;
private String serveName;
private String departmentName;
private Double latitude;
private Double longitude;
private Double distance;
private LocalDateTime dateTime;
}
package com.gogirl.dto;
import lombok.Data;
@Data
public class LeisureScheduleServeQuery {
private Integer pageNum;
private Integer pageSize;
private Double latitude;
private Double longitude;
}
package com.gogirl.dto;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalTime;
@Data
public class TechnicianTimeNode {
private Integer technicianId;
private Integer departmentId;
private LocalTime timeNode;
private LocalDate serveData;
}
......@@ -35,7 +35,7 @@ public class MvcInterceptorConfig extends WebMvcConfigurationSupport {
/*excludePathPatterns 用户排除拦截*/
registry.addInterceptor(loginHandlerInterceptor)
.addPathPatterns("/**")
.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**")
.excludePathPatterns("/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**", "/error")
//登陆
.excludePathPatterns("/customer/xcx/login")
.excludePathPatterns("/customer/csrf")
......
package com.gogirl.infrastructure.mapper.market.discount;
import com.gogirl.domain.market.discount.LeisureDiscountConfigWeek;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
public interface LeisureDiscountConfigWeekMapper extends BaseMapper<LeisureDiscountConfigWeek> {
}
package com.gogirl.infrastructure.mapper.order.serve;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gogirl.domain.order.serve.ScheduleManage;
import com.gogirl.domain.order.serve.ScheduleServe;
import org.apache.ibatis.annotations.Mapper;
import com.gogirl.dto.LeisureScheduleServe;
import com.gogirl.dto.TechnicianTimeNode;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
......@@ -28,4 +31,19 @@ public interface ScheduleManageMapper extends BaseMapper<ScheduleManage> {
List<ScheduleServe> checkConflict(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("technicianId") Integer technicianId, @Param("scheduleId") Integer scheduleId);
/**
* 闲时预约列表
*
* @param page
* @return
*/
IPage<LeisureScheduleServe> queryPageLeisureScheduleServe(IPage<LeisureScheduleServe> page);
/**
* 查询某天美甲师已用时间节点列表
*
* @param localDate
* @return
*/
List<TechnicianTimeNode> queryTechnicianTimeNode(LocalDate localDate);
}
package com.gogirl.infrastructure.mapper.xcx;
import com.gogirl.domain.xcx.TimeNode;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
public interface TimeNodeMapper extends BaseMapper<TimeNode> {
}
package com.gogirl.infrastructure.mapper.xcx;
import com.gogirl.domain.xcx.WeekConfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
public interface WeekConfigMapper extends BaseMapper<WeekConfig> {
}
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-03-09
*/
@RestController
@RequestMapping("/leisure-discount-config-week")
public class LeisureDiscountConfigWeekController {
}
......@@ -10,6 +10,8 @@ import com.gogirl.assembler.ScheduleManageDTOAssembler;
import com.gogirl.domain.order.serve.ScheduleManage;
import com.gogirl.domain.xcx.GogirlToken;
import com.gogirl.dto.IdleTimeProgramQuery;
import com.gogirl.dto.LeisureScheduleServe;
import com.gogirl.dto.LeisureScheduleServeQuery;
import com.gogirl.infrastructure.common.annotation.GogirlShop;
import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.common.exception.RRException;
......@@ -222,4 +224,11 @@ public class ScheduleManageController {
return JsonResult.success(result);
}
@PostMapping("/queryPageLeisureScheduleServe")
public JsonResult<IPage<LeisureScheduleServe>> queryPageLeisureScheduleServe(@RequestBody LeisureScheduleServeQuery query) {
IPage<LeisureScheduleServe> page = scheduleManageService.queryPageLeisureScheduleServe(query);
return JsonResult.success(page);
}
}
package com.gogirl.interfaces.xcx;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@RestController
@RequestMapping("/time-node")
public class TimeNodeController {
}
package com.gogirl.interfaces.xcx;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author robbendev
* @since 2020-03-09
*/
@RestController
@RequestMapping("/week-config")
public class WeekConfigController {
}
......@@ -10,7 +10,6 @@ import com.gogirl.infrastructure.common.base.JsonResult;
import com.gogirl.infrastructure.config.GogirlProperties;
import com.gogirl.infrastructure.mapper.user.customer.CustomerMapper;
import com.gogirl.infrastructure.util.ImageUtil;
import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.shared.user.query.qry.CustomerQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -111,8 +110,8 @@ public class XcxController {
@GetMapping("/technician/xcx/getUserInfo_t")
public JsonResult<StoreTechnician> getTechnician(@RequestHeader String token) {
log.info("根据token:" + token + ",查询用户信息.");
Integer technicianId = SessionUtils.getTechnicianId();
return JsonResult.success(storeTechnicianService.getById(technicianId));
StoreTechnician storeTechnician = storeTechnicianService.getTechnician();
return JsonResult.success(storeTechnician);
}
......
......@@ -10,6 +10,8 @@ public class IdleTimeQuery {
@ApiModelProperty("所有美甲师")
List<StoreTechnicianQuery> storeTechnicianDTOList;
@ApiModelProperty("时间节点")
List<Long> dateTimeList;
private Integer id;
private Integer DepartmentId;
......
......@@ -36,7 +36,6 @@ spring:
host: 127.0.0.1
port: 6379
database: 0
password: "qqwks8ams2n1nsmsa8am1n7c8a9z"
#项目属性
gogirl:
......
<?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.LeisureDiscountConfigWeekMapper">
</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.xcx.TimeNodeMapper">
</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.xcx.WeekConfigMapper">
</mapper>
......@@ -206,6 +206,38 @@
and TO_DAYS(t1.start_time) = TO_DAYS(NOW())
and t2.id != #{scheduleId}
</select>
<select id="queryPageLeisureScheduleServe" resultType="com.gogirl.dto.LeisureScheduleServe">
SELECT t1.id as leisure_discount_config_id,
t1.discount_rate,
t1.department_id,
t5.time_node,
t7.week_date,
t6.id as serve_id,
t6.`name` as serve_name,
t8.`name` as department_name,
t8.latitude,
t8.longitude
from leisure_discount_config t1
LEFT JOIN leisure_discount_config_week t2 on t1.id =t2.leisure_discount_config_id
LEFT JOIN leisure_discount_config_service t3 on t1.id =t3.leisure_discount_config_id
LEFT JOIN time_node t5 on t1.start_time &lt;= t5.time_node and t1.end_time &gt;= t5.time_node
LEFT JOIN base_serve t6 on t3.service_id =t6.id
LEFT JOIN week_config t7 on t2.`week` =t7.`week`
LEFT JOIN store_manage t8 on t1.department_id =t8.id
where t1.is_enabled =1
and t2.id is not null
and t3.id is not null
</select>
<select id="queryTechnicianTimeNode" resultType="com.gogirl.dto.TechnicianTimeNode">
SELECT t1.technician_id,t2.department_id,t3.time_node,t1.serve_data from scheduled_serve t1
LEFT JOIN scheduled_manage t2 on t1.sch_id = t2.id
LEFT JOIN time_node t3 on start_time_node &lt;= time_node and end_time_node &gt; time_node
where t1.serve_data= '2020-03-07'
and (t2.`status` =1 or t2.`status`=8)
and (t1.`STATUS` =1 or t1.`status`=2)
</select>
</mapper>
//package com.gogirl;
//
//import org.jboss.arquillian.container.test.api.Deployment;
//import org.jboss.arquillian.junit.Arquillian;
//import org.jboss.shrinkwrap.api.ShrinkWrap;
//import org.jboss.shrinkwrap.api.asset.EmptyAsset;
//import org.jboss.shrinkwrap.api.spec.JavaArchive;
//import org.junit.runner.RunWith;
//
//import static org.junit.Assert.*;
//
//@RunWith(Arquillian.class)
//public class GogirlWxappMemberApplicationTest {
// @Deployment
// public static JavaArchive createDeployment() {
// return ShrinkWrap.create(JavaArchive.class)
// .addClass(GogirlWxappMemberApplication.class)
// .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
// }
//
//}
package com.gogirl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gogirl.domain.xcx.TimeNode;
import com.gogirl.domain.xcx.WeekConfig;
import com.gogirl.infrastructure.mapper.market.discount.LeisureDiscountConfigWeekMapper;
import com.gogirl.infrastructure.mapper.xcx.TimeNodeMapper;
import com.gogirl.infrastructure.mapper.xcx.WeekConfigMapper;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {
@Resource
private TimeNodeMapper timeNodeMapper;
@org.junit.Test
public void test() throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LocalTime localTime = LocalTime.of(0, 0);
LocalTime localTime2 = LocalTime.of(23, 45);
while (localTime.compareTo(localTime2) < 0) {
TimeNode timeNode = new TimeNode();
timeNode.setTimeNode(localTime);
timeNodeMapper.insert(timeNode);
localTime = localTime.plusMinutes(15);
}
}
@Resource
private LeisureDiscountConfigWeekMapper leisureDiscountConfigWeekMapper;
@Resource
private WeekConfigMapper weekConfigMapper;
@org.junit.Test
public void weekTest() throws ParseException {
weekConfigMapper.delete(new LambdaQueryWrapper<>());
LocalDate localDate = LocalDate.now();
for (int i = 0; i < 7; i++) {
WeekConfig weekConfig = new WeekConfig();
weekConfig.setWeek(localDate.getDayOfWeek().getValue());
weekConfig.setWeekStr(localDate.getDayOfWeek().toString());
weekConfig.setWeekDate(localDate);
weekConfigMapper.insert(weekConfig);
localDate = localDate.plusDays(1);
}
}
}
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