修改系列接口
This commit is contained in:
parent
3ba58dc671
commit
a982953513
|
|
@ -4,6 +4,7 @@ import com.linln.admin.orders.domain.*;
|
||||||
import com.linln.admin.orders.repository.*;
|
import com.linln.admin.orders.repository.*;
|
||||||
import com.linln.admin.users.domain.UserCoupons;
|
import com.linln.admin.users.domain.UserCoupons;
|
||||||
import com.linln.admin.users.repository.UsersCouponsRepository;
|
import com.linln.admin.users.repository.UsersCouponsRepository;
|
||||||
|
import com.linln.admin.users.repository.UsersRepository;
|
||||||
import com.linln.common.enums.StatusEnum;
|
import com.linln.common.enums.StatusEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -29,6 +30,8 @@ public class InitLoadDataService extends ApplicationAvailabilityBean {
|
||||||
|
|
||||||
public static final Map<Long, Goods> GOODS_MAP = new HashMap<>();
|
public static final Map<Long, Goods> GOODS_MAP = new HashMap<>();
|
||||||
public static final Map<Long, Car> CAR_MAP = new HashMap<>();
|
public static final Map<Long, Car> CAR_MAP = new HashMap<>();
|
||||||
|
|
||||||
|
public static final Map<Long, CarUser> CAR_USER_MAP = new HashMap<>();
|
||||||
public static final Map<Long, PetBaseInfo> PET_BASE_INFO_MAP = new HashMap<>();
|
public static final Map<Long, PetBaseInfo> PET_BASE_INFO_MAP = new HashMap<>();
|
||||||
public static final Map<String, List<Goods>> PET_GOODS_MAP = new HashMap<>();
|
public static final Map<String, List<Goods>> PET_GOODS_MAP = new HashMap<>();
|
||||||
public static final List<ServiceAddrs> SERVICE_ADDRS = new ArrayList<>();
|
public static final List<ServiceAddrs> SERVICE_ADDRS = new ArrayList<>();
|
||||||
|
|
@ -43,6 +46,12 @@ public class InitLoadDataService extends ApplicationAvailabilityBean {
|
||||||
@Resource
|
@Resource
|
||||||
private CarRepository carRepository;
|
private CarRepository carRepository;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CarUserRepository carUserRepository;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UsersRepository usersRepository;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PetGoodsRepository petGoodsRepository;
|
private PetGoodsRepository petGoodsRepository;
|
||||||
|
|
||||||
|
|
@ -77,6 +86,12 @@ public class InitLoadDataService extends ApplicationAvailabilityBean {
|
||||||
List<Car> carList = carRepository.findAll();
|
List<Car> carList = carRepository.findAll();
|
||||||
CAR_MAP.clear();
|
CAR_MAP.clear();
|
||||||
CAR_MAP.putAll(carList.stream().collect(Collectors.toMap(Car::getId, car -> car)));
|
CAR_MAP.putAll(carList.stream().collect(Collectors.toMap(Car::getId, car -> car)));
|
||||||
|
List<CarUser> carUserList = carUserRepository.findAll();
|
||||||
|
for (CarUser carUser : carUserList) {
|
||||||
|
carUser.setUsers(usersRepository.findById(carUser.getUid()).get());
|
||||||
|
}
|
||||||
|
CAR_USER_MAP.clear();
|
||||||
|
CAR_USER_MAP.putAll(carUserList.stream().collect(Collectors.toMap(CarUser::getId, carUser -> carUser)));
|
||||||
List<PetGoods> petGoodsList = petGoodsRepository.findAll();
|
List<PetGoods> petGoodsList = petGoodsRepository.findAll();
|
||||||
Map<String, List<Goods>> petGoodsMap = new HashMap<>();
|
Map<String, List<Goods>> petGoodsMap = new HashMap<>();
|
||||||
for (PetGoods petGoods : petGoodsList) {
|
for (PetGoods petGoods : petGoodsList) {
|
||||||
|
|
|
||||||
|
|
@ -156,6 +156,8 @@ public class OrderMainController {
|
||||||
@RequiresPermissions("orders:orderMain:edit")
|
@RequiresPermissions("orders:orderMain:edit")
|
||||||
public String toEdit(@PathVariable("id") OrderMain orderMain, Model model) {
|
public String toEdit(@PathVariable("id") OrderMain orderMain, Model model) {
|
||||||
orderMain = orderMainService.getById(orderMain.getId());
|
orderMain = orderMainService.getById(orderMain.getId());
|
||||||
|
List<Car> cars = orderMainService.getCars();
|
||||||
|
model.addAttribute("cars", cars);
|
||||||
model.addAttribute("orderMain", orderMain);
|
model.addAttribute("orderMain", orderMain);
|
||||||
return "/orders/orderMain/add";
|
return "/orders/orderMain/add";
|
||||||
}
|
}
|
||||||
|
|
@ -222,15 +224,13 @@ public class OrderMainController {
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public ResultVo save(@Validated OrderMainValid valid, OrderMain orderMain) {
|
public ResultVo save(@Validated OrderMainValid valid, OrderMain orderMain) {
|
||||||
// 复制保留无需修改的数据
|
// 复制保留无需修改的数据
|
||||||
if (orderMain.getId() != null) {
|
OrderMain beOrderMain = orderMainService.getById(orderMain.getId());
|
||||||
OrderMain beOrderMain = orderMainService.getById(orderMain.getId());
|
|
||||||
EntityBeanUtil.copyProperties(beOrderMain, orderMain);
|
|
||||||
}
|
|
||||||
if (StrUtil.isNotBlank(orderMain.getAddr())) {
|
if (StrUtil.isNotBlank(orderMain.getAddr())) {
|
||||||
orderMainService.updateUserAddr(orderMain.getAddrId(), orderMain.getAddr());
|
orderMainService.updateUserAddr(orderMain.getAddrId(), orderMain.getAddr());
|
||||||
}
|
}
|
||||||
// 保存数据
|
beOrderMain.setServiceTime(orderMain.getServiceTime());
|
||||||
orderMainService.save(orderMain);
|
orderMainService.save(beOrderMain);
|
||||||
|
orderMainService.updateCarOrder(orderMain.getOrderId(), orderMain.getCarId());
|
||||||
return ResultVoUtil.SAVE_SUCCESS;
|
return ResultVoUtil.SAVE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -109,9 +109,13 @@ public class OrderMain implements Serializable {
|
||||||
@Transient
|
@Transient
|
||||||
private Long addrId;
|
private Long addrId;
|
||||||
@Transient
|
@Transient
|
||||||
|
private Long carId;
|
||||||
|
@Transient
|
||||||
private String addr;
|
private String addr;
|
||||||
@Transient
|
@Transient
|
||||||
private String payDj;
|
private String payDj;
|
||||||
|
@Transient
|
||||||
|
private String carInfo;
|
||||||
|
|
||||||
public OrderMain() {
|
public OrderMain() {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,4 +8,7 @@ import com.linln.modules.system.repository.BaseRepository;
|
||||||
* @date 2024/04/29
|
* @date 2024/04/29
|
||||||
*/
|
*/
|
||||||
public interface CarOrderRepository extends BaseRepository<CarOrder, Long> {
|
public interface CarOrderRepository extends BaseRepository<CarOrder, Long> {
|
||||||
|
|
||||||
|
CarOrder findFirstByOrderId(String orderId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package com.linln.admin.orders.repository;
|
package com.linln.admin.orders.repository;
|
||||||
|
|
||||||
import com.linln.admin.orders.domain.Pet;
|
import com.linln.admin.orders.domain.Pet;
|
||||||
|
import com.linln.modules.system.domain.User;
|
||||||
import com.linln.modules.system.repository.BaseRepository;
|
import com.linln.modules.system.repository.BaseRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -9,7 +11,7 @@ import java.util.List;
|
||||||
* @author gion
|
* @author gion
|
||||||
* @date 2024/04/29
|
* @date 2024/04/29
|
||||||
*/
|
*/
|
||||||
public interface PetRepository extends BaseRepository<Pet, Long> {
|
public interface PetRepository extends BaseRepository<Pet, Long>, JpaSpecificationExecutor<Pet> {
|
||||||
|
|
||||||
List<Pet> findAllByUid(long uid);
|
List<Pet> findAllByUid(long uid);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ public interface OrderMainService {
|
||||||
OrderMain save(OrderMain orderMain);
|
OrderMain save(OrderMain orderMain);
|
||||||
|
|
||||||
void dispatchOrder(String orderId, Long carId);
|
void dispatchOrder(String orderId, Long carId);
|
||||||
|
void updateCarOrder(String orderId, Long carId);
|
||||||
|
|
||||||
List<Car> getCars();
|
List<Car> getCars();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -184,7 +184,15 @@ public class OrderMainServiceImpl implements OrderMainService {
|
||||||
} else {
|
} else {
|
||||||
orderMain.setPayDj("未支付");
|
orderMain.setPayDj("未支付");
|
||||||
}
|
}
|
||||||
|
//已派单
|
||||||
|
if (orderMain.getDispatchStatus() == 1) {
|
||||||
|
CarOrder carOrder = carOrderRepository.findFirstByOrderId(orderMain.getOrderId());
|
||||||
|
Car car = InitLoadDataService.CAR_MAP.get(carOrder.getCarId());
|
||||||
|
List<String> userNames = InitLoadDataService.CAR_USER_MAP.values().stream().filter(f -> f.getCarId().longValue() == car.getId().longValue()).collect(Collectors.toList()).stream().map(m -> m.getUsers().getNickName()).collect(Collectors.toList());
|
||||||
|
String name = String.join("</br>", userNames);
|
||||||
|
String carInfo = car.getCarNo() + "</br>" + name;
|
||||||
|
orderMain.setCarInfo(carInfo);
|
||||||
|
}
|
||||||
orderMain.setGoodsDiscountAmount(couponsOriginPrice * 10 - orderSubs.stream().map(OrderSub::getGoodsDiscountAmount).reduce(0, Integer::sum));
|
orderMain.setGoodsDiscountAmount(couponsOriginPrice * 10 - orderSubs.stream().map(OrderSub::getGoodsDiscountAmount).reduce(0, Integer::sum));
|
||||||
orderMain.setUserServiceAddr("姓名:" + userServiceAddr.getName() + "<br>联系电话:" + userServiceAddr.getMobile() + "<br>地址:" + userServiceAddr.getAddr());
|
orderMain.setUserServiceAddr("姓名:" + userServiceAddr.getName() + "<br>联系电话:" + userServiceAddr.getMobile() + "<br>地址:" + userServiceAddr.getAddr());
|
||||||
}
|
}
|
||||||
|
|
@ -200,7 +208,10 @@ public class OrderMainServiceImpl implements OrderMainService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dispatchOrder(String orderId, Long carId) {
|
public void dispatchOrder(String orderId, Long carId) {
|
||||||
CarOrder carOrder = new CarOrder();
|
CarOrder carOrder = carOrderRepository.findFirstByOrderId(orderId);
|
||||||
|
if (carOrder == null) {
|
||||||
|
carOrder = new CarOrder();
|
||||||
|
}
|
||||||
carOrder.setCarId(carId);
|
carOrder.setCarId(carId);
|
||||||
carOrder.setOrderId(orderId);
|
carOrder.setOrderId(orderId);
|
||||||
carOrderRepository.save(carOrder);
|
carOrderRepository.save(carOrder);
|
||||||
|
|
@ -214,6 +225,13 @@ public class OrderMainServiceImpl implements OrderMainService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateCarOrder(String orderId, Long carId) {
|
||||||
|
CarOrder carOrder = carOrderRepository.findFirstByOrderId(orderId);
|
||||||
|
carOrder.setCarId(carId);
|
||||||
|
carOrderRepository.save(carOrder);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Car> getCars() {
|
public List<Car> getCars() {
|
||||||
return carRepository.findAll();
|
return carRepository.findAll();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.linln.admin.users.service.impl;
|
package com.linln.admin.users.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.linln.admin.config.InitLoadDataService;
|
import com.linln.admin.config.InitLoadDataService;
|
||||||
import com.linln.admin.orders.domain.Pet;
|
import com.linln.admin.orders.domain.Pet;
|
||||||
import com.linln.admin.orders.repository.PetRepository;
|
import com.linln.admin.orders.repository.PetRepository;
|
||||||
|
|
@ -9,10 +10,13 @@ import com.linln.common.enums.StatusEnum;
|
||||||
import org.springframework.data.domain.Example;
|
import org.springframework.data.domain.Example;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.PageRequest;
|
||||||
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.persistence.criteria.Predicate;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,7 +47,19 @@ public class PetServiceImpl implements PetService {
|
||||||
public Page<Pet> getPageList(Example<Pet> example) {
|
public Page<Pet> getPageList(Example<Pet> example) {
|
||||||
// 创建分页对象
|
// 创建分页对象
|
||||||
PageRequest page = PageSort.pageRequest();
|
PageRequest page = PageSort.pageRequest();
|
||||||
Page<Pet> pets = petsRepository.findAll(example, page);
|
Page<Pet> pets = petsRepository.findAll((Specification<Pet>) (root, query, cb) -> {
|
||||||
|
List<Predicate> preList = new ArrayList<>();
|
||||||
|
if (example.getProbe().getUid() != null) {
|
||||||
|
preList.add(cb.equal(root.get("uid").as(Long.class), example.getProbe().getUid()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(example.getProbe().getBirthday())) {
|
||||||
|
preList.add(cb.like(root.get("birthday").as(String.class), "%-" + example.getProbe().getBirthday() + "-%"));
|
||||||
|
}
|
||||||
|
Predicate[] pres = new Predicate[preList.size()];
|
||||||
|
return query.where(preList.toArray(pres)).getRestriction();
|
||||||
|
}, page);
|
||||||
|
|
||||||
List<Pet> content = pets.getContent();
|
List<Pet> content = pets.getContent();
|
||||||
for (Pet pet : content) {
|
for (Pet pet : content) {
|
||||||
pet.setPetBaseInfo(InitLoadDataService.PET_BASE_INFO_MAP.get(pet.getPetId()));
|
pet.setPetBaseInfo(InitLoadDataService.PET_BASE_INFO_MAP.get(pet.getPetId()));
|
||||||
|
|
|
||||||
|
|
@ -478,7 +478,25 @@ a{
|
||||||
left: 0;
|
left: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
width: 10px; /* 滚动条宽度 */
|
||||||
|
height: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background: #eee;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
background: #666;
|
||||||
|
border-radius: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar-thumb:hover {
|
||||||
|
background: #999;
|
||||||
|
}
|
||||||
/* 页面通用样式 */
|
/* 页面通用样式 */
|
||||||
.timo-layout-page{
|
.timo-layout-page{
|
||||||
background-color: #eeeeee;
|
background-color: #eeeeee;
|
||||||
|
|
|
||||||
|
|
@ -21,24 +21,32 @@
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">订单服务时长</label>
|
<label class="layui-form-label">订单服务时长</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input class="layui-input" type="text" name="projectionServiceTime"
|
<input class="layui-input" type="text" name="projectionServiceTime" disabled
|
||||||
th:value="${orderMain.projectionServiceTime}"/>
|
th:value="${orderMain.projectionServiceTime}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">服务时间</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input class="layui-input" type="text" name="serviceTime"
|
|
||||||
th:value="${orderMain.serviceTime}"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label">详细地址信息</label>
|
<label class="layui-form-label">详细地址信息</label>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input class="layui-input" type="text" name="addr" th:value="${orderMain.userServiceAddrInfo.addr}"/>
|
<input class="layui-input" type="text" name="addr" th:value="${orderMain.userServiceAddrInfo.addr}" disabled/>
|
||||||
<input type="hidden" name="addrId" th:value="${orderMain.userServiceAddrInfo.id}"/>
|
<input type="hidden" name="addrId" th:value="${orderMain.userServiceAddrInfo.id}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">服务时间</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input class="layui-input" id="serviceTime" type="text" name="serviceTime"
|
||||||
|
th:value="${orderMain.serviceTime}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">服务车辆</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<select class="timo-search-select" id="carId" name="carId">
|
||||||
|
<option th:each="c,Car:${cars}" th:value="${c.id}" th:text="${c.carNo}"></option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="layui-form-item timo-finally">
|
<div class="layui-form-item timo-finally">
|
||||||
<button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
|
<button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
|
||||||
<button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
|
<button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
|
||||||
|
|
@ -47,4 +55,15 @@
|
||||||
</div>
|
</div>
|
||||||
<script th:replace="/common/template :: script"></script>
|
<script th:replace="/common/template :: script"></script>
|
||||||
</body>
|
</body>
|
||||||
|
<script>
|
||||||
|
layui.use(['laydate'], function () {
|
||||||
|
var laydate = layui.laydate;
|
||||||
|
// 渲染
|
||||||
|
laydate.render({
|
||||||
|
elem: '#serviceTime',
|
||||||
|
type: 'datetime',
|
||||||
|
format: 'yyyy-MM-dd HH'
|
||||||
|
});
|
||||||
|
})
|
||||||
|
</script>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -76,6 +76,7 @@
|
||||||
<th>服务时间</th>
|
<th>服务时间</th>
|
||||||
<th>订单状态</th>
|
<th>订单状态</th>
|
||||||
<th>派单状态</th>
|
<th>派单状态</th>
|
||||||
|
<th>派单信息</th>
|
||||||
<th>地址信息</th>
|
<th>地址信息</th>
|
||||||
<th>宠物信息</th>
|
<th>宠物信息</th>
|
||||||
<th>洗护时长</th>
|
<th>洗护时长</th>
|
||||||
|
|
@ -100,7 +101,7 @@
|
||||||
th:attr="data-url=@{'/orders/orderMain/toDispatchPage/'+${item.id}}" data-size="auto"
|
th:attr="data-url=@{'/orders/orderMain/toDispatchPage/'+${item.id}}" data-size="auto"
|
||||||
href="#">派单</a>
|
href="#">派单</a>
|
||||||
<a th:if="${item.orderStatus == 1}" class="ajax-get" data-msg="您是否确认取消订单" th:href="@{/orders/orderMain/orderCancel(ids=${item.id})}">取消订单</a>
|
<a th:if="${item.orderStatus == 1}" class="ajax-get" data-msg="您是否确认取消订单" th:href="@{/orders/orderMain/orderCancel(ids=${item.id})}">取消订单</a>
|
||||||
<a class="open-popup" data-title="编辑订单"
|
<a class="open-popup" data-title="编辑"
|
||||||
th:attr="data-url=@{'/orders/orderMain/edit/'+${item.id}}" data-size="auto"
|
th:attr="data-url=@{'/orders/orderMain/edit/'+${item.id}}" data-size="auto"
|
||||||
href="#">编辑</a>
|
href="#">编辑</a>
|
||||||
<a th:if="${item.orderStatus == 3 || item.orderStatus == 4}" class="ajax-get" data-msg="您是否确认删除" th:href="@{/orders/orderMain/status/delete(ids=${item.id})}">删除</a>
|
<a th:if="${item.orderStatus == 3 || item.orderStatus == 4}" class="ajax-get" data-msg="您是否确认删除" th:href="@{/orders/orderMain/status/delete(ids=${item.id})}">删除</a>
|
||||||
|
|
@ -111,6 +112,7 @@
|
||||||
<td th:text="${item.serviceTime}">服务时间</td>
|
<td th:text="${item.serviceTime}">服务时间</td>
|
||||||
<td th:text="${#dicts.orderStatus(item.orderStatus)}">订单状态</td>
|
<td th:text="${#dicts.orderStatus(item.orderStatus)}">订单状态</td>
|
||||||
<td th:text="${#dicts.dispatchStatus(item.dispatchStatus)}">派单状态</td>
|
<td th:text="${#dicts.dispatchStatus(item.dispatchStatus)}">派单状态</td>
|
||||||
|
<td th:utext="${item.carInfo}">派单信息</td>
|
||||||
<td th:utext="${item.userServiceAddr}">地址信息</td>
|
<td th:utext="${item.userServiceAddr}">地址信息</td>
|
||||||
<td th:utext="${item.petInfos}">宠物信息</td>
|
<td th:utext="${item.petInfos}">宠物信息</td>
|
||||||
<td th:text="${item.projectionServiceTime}">洗护时长</td>
|
<td th:text="${item.projectionServiceTime}">洗护时长</td>
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,9 @@
|
||||||
var laydate = layui.laydate;
|
var laydate = layui.laydate;
|
||||||
// 渲染
|
// 渲染
|
||||||
laydate.render({
|
laydate.render({
|
||||||
elem: '#birthday'
|
elem: '#birthday',
|
||||||
|
type: 'month',
|
||||||
|
format: 'MM'
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -74,43 +74,38 @@ public class UserServiceImpl implements UserService {
|
||||||
PageRequest page = PageSort.pageRequest(Sort.Direction.ASC);
|
PageRequest page = PageSort.pageRequest(Sort.Direction.ASC);
|
||||||
|
|
||||||
// 使用Specification复杂查询
|
// 使用Specification复杂查询
|
||||||
return userRepository.findAll(new Specification<User>(){
|
return userRepository.findAll((Specification<User>) (root, query, cb) -> {
|
||||||
|
List<Predicate> preList = new ArrayList<>();
|
||||||
|
if(user.getId() != null){
|
||||||
|
preList.add(cb.equal(root.get("id").as(Long.class), user.getId()));
|
||||||
|
}
|
||||||
|
if(user.getUsername() != null){
|
||||||
|
preList.add(cb.equal(root.get("username").as(String.class), user.getUsername()));
|
||||||
|
}
|
||||||
|
if(user.getNickname() != null){
|
||||||
|
preList.add(cb.like(root.get("nickname").as(String.class), "%"+ user.getNickname() + "%"));
|
||||||
|
}
|
||||||
|
if(user.getDept() != null){
|
||||||
|
// 联级查询部门
|
||||||
|
Dept dept = user.getDept();
|
||||||
|
List<Long> deptIn = new ArrayList<>();
|
||||||
|
deptIn.add(dept.getId());
|
||||||
|
List<Dept> deptList = deptService.getListByPidLikeOk(dept.getId());
|
||||||
|
deptList.forEach(item -> deptIn.add(item.getId()));
|
||||||
|
|
||||||
@Override
|
Join<User, Dept> join = root.join("dept", JoinType.INNER);
|
||||||
public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
CriteriaBuilder.In<Long> in = cb.in(join.get("id").as(Long.class));
|
||||||
List<Predicate> preList = new ArrayList<>();
|
deptIn.forEach(in::value);
|
||||||
if(user.getId() != null){
|
preList.add(in);
|
||||||
preList.add(cb.equal(root.get("id").as(Long.class), user.getId()));
|
|
||||||
}
|
|
||||||
if(user.getUsername() != null){
|
|
||||||
preList.add(cb.equal(root.get("username").as(String.class), user.getUsername()));
|
|
||||||
}
|
|
||||||
if(user.getNickname() != null){
|
|
||||||
preList.add(cb.like(root.get("nickname").as(String.class), "%"+ user.getNickname() + "%"));
|
|
||||||
}
|
|
||||||
if(user.getDept() != null){
|
|
||||||
// 联级查询部门
|
|
||||||
Dept dept = user.getDept();
|
|
||||||
List<Long> deptIn = new ArrayList<>();
|
|
||||||
deptIn.add(dept.getId());
|
|
||||||
List<Dept> deptList = deptService.getListByPidLikeOk(dept.getId());
|
|
||||||
deptList.forEach(item -> deptIn.add(item.getId()));
|
|
||||||
|
|
||||||
Join<User, Dept> join = root.join("dept", JoinType.INNER);
|
|
||||||
CriteriaBuilder.In<Long> in = cb.in(join.get("id").as(Long.class));
|
|
||||||
deptIn.forEach(in::value);
|
|
||||||
preList.add(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 数据状态
|
|
||||||
if(user.getStatus() != null){
|
|
||||||
preList.add(cb.equal(root.get("status").as(Byte.class), user.getStatus()));
|
|
||||||
}
|
|
||||||
|
|
||||||
Predicate[] pres = new Predicate[preList.size()];
|
|
||||||
return query.where(preList.toArray(pres)).getRestriction();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 数据状态
|
||||||
|
if(user.getStatus() != null){
|
||||||
|
preList.add(cb.equal(root.get("status").as(Byte.class), user.getStatus()));
|
||||||
|
}
|
||||||
|
|
||||||
|
Predicate[] pres = new Predicate[preList.size()];
|
||||||
|
return query.where(preList.toArray(pres)).getRestriction();
|
||||||
}, page);
|
}, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue