提交 a3d88ba0 authored 作者: hzh's avatar hzh

部分功能实现

上级 93dd00e5
......@@ -5,6 +5,7 @@ import lombok.Getter;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.order.api.enums.OrderType;
import org.dromara.server.constant.ApplyRelateType;
import org.dromara.server.domain.ApplyPerson;
import org.dromara.server.domain.vo.TravelControlMethodVo;
......@@ -21,8 +22,52 @@ import java.util.function.BiFunction;
public enum ControlMethod {
//申请人和出行人都可以、 申请人可以、出行人可以,不控制
APPLY_AND_TRAVEL("1", "申请人和出行人都可以控制", (cm, personList) -> false),
APPLY_AND_TRAVEL("1", "申请人和出行人都可以控制", (cm, personList) -> {
List<String> phoneList = StreamUtils.toList(personList, ApplyPerson::getPhone);
if (!phoneList.contains(cm.getOrderPersonPhone())) {
return false;
}
List<String> personInfoList = StreamUtils.toList(personList, ApplyPerson::getIdCard);
OrderType orderType = cm.getOrderType();
if (StringUtils.equals(OrderType.AIRPORT.getType(), orderType.getType())) {
return personInfoList.containsAll(cm.getInfoList());
} else if (StringUtils.equals(OrderType.TRAIN.getType(), orderType.getType())) {
return personInfoList.containsAll(cm.getInfoList());
} else if (StringUtils.equals(OrderType.HOTEL.getType(), orderType.getType())) {
return personInfoList.containsAll(cm.getInfoList());
} else {
personInfoList = StreamUtils.toList(personList, ApplyPerson::getPhone);
return personInfoList.containsAll(cm.getInfoList());
}
}),
ONLY_APPLY("2", "申请人可以控制", (cm, personList) -> {
ApplyPerson selfPerson = StreamUtils.findFirst(personList, person -> StringUtils.equals(person.getRelatedType(), ApplyRelateType.SELF.getCode()));
if (selfPerson == null) {
return false;
}
if (!StringUtils.equals(selfPerson.getPhone(), cm.getOrderPersonPhone())) {
return false;
}
List<String> personInfoList = StreamUtils.toList(personList, ApplyPerson::getIdCard);
OrderType orderType = cm.getOrderType();
if (StringUtils.equals(OrderType.AIRPORT.getType(), orderType.getType())) {
return personInfoList.containsAll(cm.getInfoList());
} else if (StringUtils.equals(OrderType.TRAIN.getType(), orderType.getType())) {
return personInfoList.containsAll(cm.getInfoList());
} else if (StringUtils.equals(OrderType.HOTEL.getType(), orderType.getType())) {
return personInfoList.containsAll(cm.getInfoList());
} else {
personInfoList = StreamUtils.toList(personList, ApplyPerson::getPhone);
return personInfoList.containsAll(cm.getInfoList());
}
}),
ONLY_TRAVEL("3", "出行人可以控制", (cm, personList) -> {
List<String> phoneList = StreamUtils.toList(
StreamUtils.filter(personList, person -> !StringUtils.equals(person.getRelatedType(), ApplyRelateType.SELF.getCode())),
ApplyPerson::getPhone);
if (!phoneList.contains(cm.getOrderPersonPhone())) {
return false;
}
List<String> personInfoList = StreamUtils.toList(personList, ApplyPerson::getIdCard);
OrderType orderType = cm.getOrderType();
if (StringUtils.equals(OrderType.AIRPORT.getType(), orderType.getType())) {
......@@ -36,7 +81,6 @@ public enum ControlMethod {
return personInfoList.containsAll(cm.getInfoList());
}
}),
ONLY_TRAVEL("3", "出行人可以控制", (cm, personList) -> false),
NOT_CONTROL("4", "不控制", (cm, personList) -> true);
private final String code;
......@@ -46,7 +90,7 @@ public enum ControlMethod {
public void isMatched(TravelControlMethodVo cm, List<ApplyPerson> personList) {
boolean test = function.apply(cm, personList);
if (!test) {
throw new RuntimeException("管控方式功能配置,请使用合适的申请单!");
throw new RuntimeException("管控方式功能配置,请使用合适的申请单!");
}
}
......
......@@ -7,6 +7,7 @@ import org.dromara.order.api.enums.OrderType;
import org.dromara.server.domain.Apply;
import org.dromara.server.domain.vo.TravelTripLimitVo;
import java.util.List;
import java.util.function.BiFunction;
/**
......@@ -23,16 +24,15 @@ public enum TripLimit {
String startCity = ttl.getStartCity();
String endCity = ttl.getEndCity();
OrderType orderType = ttl.getOrderType();
List<String> addressList = StringUtils.isEmpty(apply.getAddress()) ? List.of() : List.of(apply.getAddress().split(","));
if (StringUtils.equals(OrderType.AIRPORT.getType(), orderType.getType())) {
return StringUtils.equals(startCity, apply.getDepartAddress()) &&
StringUtils.equals(endCity, apply.getArriveAddress());
return addressList.contains(startCity) && addressList.contains(endCity);
} else if (StringUtils.equals(OrderType.TRAIN.getType(), orderType.getType())) {
return StringUtils.equals(startCity, apply.getDepartAddress()) &&
StringUtils.equals(endCity, apply.getArriveAddress());
return addressList.contains(startCity) && addressList.contains(endCity);
} else if (StringUtils.equals(OrderType.HOTEL.getType(), orderType.getType())) {
return StringUtils.equals(endCity, apply.getArriveAddress());
return addressList.contains(endCity);
} else {
return StringUtils.equals(endCity, apply.getArriveAddress());
return addressList.contains(endCity);
}
});
......
package org.dromara.server.controller;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.bo.CrmAddressBo;
import org.dromara.server.domain.vo.CrmAddressVo;
import org.dromara.server.service.ICrmAddressService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* crm-常用地址
* 前端访问路由地址为:/server/address
*
* @author hzh
* @date 2024-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/address")
public class CrmAddressController extends BaseController {
private final ICrmAddressService crmAddressService;
/**
* 查询crm-常用地址列表
*/
@GetMapping("/list")
public TableDataInfo<CrmAddressVo> list(PageQuery pageQuery) {
CrmAddressBo bo = new CrmAddressBo().setUserId(LoginHelper.getUserId());
return crmAddressService.queryPageList(bo, pageQuery);
}
/**
* 查询crm-常用地址全量列表
*/
@GetMapping("/listAll")
public R<List<CrmAddressVo>> listAll() {
CrmAddressBo bo = new CrmAddressBo().setUserId(LoginHelper.getUserId());
return R.ok(crmAddressService.queryList(bo));
}
/**
* 获取crm-常用地址详细信息
*
* @param id 主键
*/
@GetMapping("/{id}")
public R<CrmAddressVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(crmAddressService.queryById(id));
}
/**
* 新增crm-常用地址
*/
@Log(title = "crm-常用地址", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody CrmAddressBo bo) {
bo.setUserId(LoginHelper.getUserId());
return toAjax(crmAddressService.insertByBo(bo));
}
/**
* 修改crm-常用地址
*/
@Log(title = "crm-常用地址", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CrmAddressBo bo) {
return toAjax(crmAddressService.updateByBo(bo));
}
/**
* 删除crm-常用地址
*
* @param ids 主键串
*/
@Log(title = "crm-常用地址", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(crmAddressService.deleteWithValidByIds(List.of(ids), true));
}
}
package org.dromara.server.controller;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.bo.CrmContractBo;
import org.dromara.server.domain.vo.CrmContractVo;
import org.dromara.server.service.ICrmContractService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* crm-常用联系人
* 前端访问路由地址为:/server/contract
*
* @author hzh
* @date 2024-12-24
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/contract")
public class CrmContractController extends BaseController {
private final ICrmContractService crmContractService;
/**
* 查询crm-常用联系人列表
*/
@GetMapping("/list")
public TableDataInfo<CrmContractVo> list(PageQuery pageQuery) {
CrmContractBo bo = new CrmContractBo().setUserId(LoginHelper.getUserId());
return crmContractService.queryPageList(bo, pageQuery);
}
/**
* 查询crm-常用联系人全量列表
*/
@GetMapping("/listAll")
public R<List<CrmContractVo>> listAll() {
CrmContractBo bo = new CrmContractBo().setUserId(LoginHelper.getUserId());
return R.ok(crmContractService.queryList(bo));
}
/**
* 获取crm-常用联系人详细信息
*
* @param id 主键
*/
@GetMapping("/{id}")
public R<CrmContractVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(crmContractService.queryById(id));
}
/**
* 新增crm-常用联系人
*/
@Log(title = "crm-常用联系人", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody CrmContractBo bo) {
bo.setUserId(LoginHelper.getUserId());
return toAjax(crmContractService.insertByBo(bo));
}
/**
* 修改crm-常用联系人
*/
@Log(title = "crm-常用联系人", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CrmContractBo bo) {
return toAjax(crmContractService.updateByBo(bo));
}
/**
* 删除crm-常用联系人
*
* @param ids 主键串
*/
@Log(title = "crm-常用联系人", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(crmContractService.deleteWithValidByIds(List.of(ids), true));
}
}
......@@ -56,14 +56,9 @@ public class Apply extends TenantEntity {
private Date applyTime;
/**
* 到达地
* 地址,多个以,分割
*/
private String arriveAddress;
/**
* 出发地
*/
private String departAddress;
private String address;
/**
* 开始时间
......
package org.dromara.server.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* crm-常用地址对象 crm_address
*
* @author hzh
* @date 2024-12-24
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("crm_address")
public class CrmAddress extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 地址
*/
private String address;
/**
* 详细地址
*/
private String addressName;
/**
* 纬度
*/
private BigDecimal latitude;
/**
* 经度
*/
private BigDecimal longitude;
/**
* 标签
*/
private String tag;
/**
* 备注
*/
private String remark;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
package org.dromara.server.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
/**
* crm-常用联系人对象 crm_contract
*
* @author hzh
* @date 2024-12-24
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("crm_contract")
public class CrmContract extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String phone;
/**
* 身份证
*/
private String idCard;
/**
* 邮箱
*/
private String email;
/**
* 备注
*/
private String remark;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
......@@ -59,16 +59,11 @@ public class ApplyBo extends BaseEntity {
private Date applyTime;
/**
* 到达地
* 地址,多个以,分割
*/
@NotBlank(message = "到达地不能为空", groups = {AddGroup.class, EditGroup.class})
private String arriveAddress;
@NotBlank(message = "地址不能为空", groups = {AddGroup.class, EditGroup.class})
private String address;
/**
* 出发地
*/
@NotBlank(message = "出发地不能为空", groups = {AddGroup.class, EditGroup.class})
private String departAddress;
/**
* 开始时间
......
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.CrmAddress;
import java.math.BigDecimal;
/**
* crm-常用地址业务对象 crm_address
*
* @author hzh
* @date 2024-12-24
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CrmAddress.class, reverseConvertGenerate = false)
public class CrmAddressBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 地址
*/
@NotBlank(message = "地址不能为空", groups = {AddGroup.class, EditGroup.class})
private String address;
/**
* 详细地址
*/
@NotBlank(message = "详细地址不能为空", groups = {AddGroup.class, EditGroup.class})
private String addressName;
/**
* 纬度
*/
@NotNull(message = "纬度不能为空", groups = {AddGroup.class, EditGroup.class})
private BigDecimal latitude;
/**
* 经度
*/
@NotNull(message = "经度不能为空", groups = {AddGroup.class, EditGroup.class})
private BigDecimal longitude;
/**
* 标签
*/
@NotBlank(message = "标签不能为空", groups = {AddGroup.class, EditGroup.class})
private String tag;
/**
* 备注
*/
private String remark;
}
package org.dromara.server.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.CrmContract;
/**
* crm-常用联系人业务对象 crm_contract
*
* @author hzh
* @date 2024-12-24
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CrmContract.class, reverseConvertGenerate = false)
public class CrmContractBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = {EditGroup.class})
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 姓名
*/
@NotBlank(message = "姓名不能为空", groups = {AddGroup.class, EditGroup.class})
private String name;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空", groups = {AddGroup.class, EditGroup.class})
private String phone;
/**
* 身份证
*/
@NotBlank(message = "身份证不能为空", groups = {AddGroup.class, EditGroup.class})
private String idCard;
/**
* 邮箱
*/
@NotBlank(message = "邮箱不能为空", groups = {AddGroup.class, EditGroup.class})
private String email;
/**
* 备注
*/
private String remark;
}
......@@ -63,16 +63,10 @@ public class ApplyVo implements Serializable {
private Date applyTime;
/**
* 到达地
* 地址,多个以,分割
*/
@ExcelProperty(value = "到达地")
private String arriveAddress;
/**
* 出发地
*/
@ExcelProperty(value = "出发地")
private String departAddress;
@ExcelProperty(value = "地址")
private String address;
/**
* 开始时间
......
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.CrmAddress;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* crm-常用地址视图对象 crm_address
*
* @author hzh
* @date 2024-12-24
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CrmAddress.class)
public class CrmAddressVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Long userId;
/**
* 地址
*/
@ExcelProperty(value = "地址")
private String address;
/**
* 详细地址
*/
@ExcelProperty(value = "详细地址")
private String addressName;
/**
* 纬度
*/
@ExcelProperty(value = "纬度")
private BigDecimal latitude;
/**
* 经度
*/
@ExcelProperty(value = "经度")
private BigDecimal longitude;
/**
* 标签
*/
@ExcelProperty(value = "标签")
private String tag;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.CrmContract;
import java.io.Serial;
import java.io.Serializable;
/**
* crm-常用联系人视图对象 crm_contract
*
* @author hzh
* @date 2024-12-24
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = CrmContract.class)
public class CrmContractVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 用户id
*/
@ExcelProperty(value = "用户id")
private Long userId;
/**
* 姓名
*/
@ExcelProperty(value = "姓名")
private String name;
/**
* 手机号
*/
@ExcelProperty(value = "手机号")
private String phone;
/**
* 身份证
*/
@ExcelProperty(value = "身份证")
private String idCard;
/**
* 邮箱
*/
@ExcelProperty(value = "邮箱")
private String email;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}
......@@ -20,4 +20,9 @@ public class TravelControlMethodVo extends TravelVo {
*/
private List<String> infoList;
/**
* 下单人手机号
*/
private String orderPersonPhone;
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.CrmAddress;
import org.dromara.server.domain.vo.CrmAddressVo;
/**
* crm-常用地址Mapper接口
*
* @author hzh
* @date 2024-12-24
*/
public interface CrmAddressMapper extends BaseMapperPlus<CrmAddress, CrmAddressVo> {
}
package org.dromara.server.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.server.domain.CrmContract;
import org.dromara.server.domain.vo.CrmContractVo;
/**
* crm-常用联系人Mapper接口
*
* @author hzh
* @date 2024-12-24
*/
public interface CrmContractMapper extends BaseMapperPlus<CrmContract, CrmContractVo> {
}
package org.dromara.server.service;
import org.dromara.common.mybatis.service.IBaseService;
import org.dromara.server.domain.CrmAddress;
import org.dromara.server.domain.bo.CrmAddressBo;
import org.dromara.server.domain.vo.CrmAddressVo;
/**
* crm-常用地址Service接口
*
* @author hzh
* @date 2024-12-24
*/
public interface ICrmAddressService extends IBaseService<CrmAddressVo, CrmAddressBo, CrmAddress> {
}
package org.dromara.server.service;
import org.dromara.common.mybatis.service.IBaseService;
import org.dromara.server.domain.CrmContract;
import org.dromara.server.domain.bo.CrmContractBo;
import org.dromara.server.domain.vo.CrmContractVo;
/**
* crm-常用联系人Service接口
*
* @author hzh
* @date 2024-12-24
*/
public interface ICrmContractService extends IBaseService<CrmContractVo, CrmContractBo, CrmContract> {
}
package org.dromara.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.service.AbstractBaseService;
import org.dromara.server.domain.CrmAddress;
import org.dromara.server.domain.bo.CrmAddressBo;
import org.dromara.server.domain.vo.CrmAddressVo;
import org.dromara.server.mapper.CrmAddressMapper;
import org.dromara.server.service.ICrmAddressService;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* crm-常用地址Service业务层处理
*
* @author hzh
* @date 2024-12-24
*/
@RequiredArgsConstructor
@Service
public class CrmAddressServiceImpl extends AbstractBaseService<CrmAddressVo, CrmAddressBo, CrmAddress> implements ICrmAddressService {
private final CrmAddressMapper baseMapper;
@Override
public BaseMapperPlus<CrmAddress, CrmAddressVo> mapper() {
return baseMapper;
}
@Override
public LambdaQueryWrapper<CrmAddress> buildQueryWrapper(CrmAddressBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CrmAddress> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, CrmAddress::getUserId, bo.getUserId());
lqw.eq(StringUtils.isNotBlank(bo.getAddress()), CrmAddress::getAddress, bo.getAddress());
lqw.like(StringUtils.isNotBlank(bo.getAddressName()), CrmAddress::getAddressName, bo.getAddressName());
lqw.eq(bo.getLatitude() != null, CrmAddress::getLatitude, bo.getLatitude());
lqw.eq(bo.getLongitude() != null, CrmAddress::getLongitude, bo.getLongitude());
lqw.eq(StringUtils.isNotBlank(bo.getTag()), CrmAddress::getTag, bo.getTag());
return lqw;
}
}
package org.dromara.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.mybatis.service.AbstractBaseService;
import org.dromara.server.domain.CrmContract;
import org.dromara.server.domain.bo.CrmContractBo;
import org.dromara.server.domain.vo.CrmContractVo;
import org.dromara.server.mapper.CrmContractMapper;
import org.dromara.server.service.ICrmContractService;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* crm-常用联系人Service业务层处理
*
* @author hzh
* @date 2024-12-24
*/
@RequiredArgsConstructor
@Service
public class CrmContractServiceImpl extends AbstractBaseService<CrmContractVo, CrmContractBo, CrmContract> implements ICrmContractService {
private final CrmContractMapper baseMapper;
@Override
public BaseMapperPlus<CrmContract, CrmContractVo> mapper() {
return baseMapper;
}
@Override
public LambdaQueryWrapper<CrmContract> buildQueryWrapper(CrmContractBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CrmContract> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, CrmContract::getUserId, bo.getUserId());
lqw.like(StringUtils.isNotBlank(bo.getName()), CrmContract::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getPhone()), CrmContract::getPhone, bo.getPhone());
lqw.eq(StringUtils.isNotBlank(bo.getIdCard()), CrmContract::getIdCard, bo.getIdCard());
lqw.eq(StringUtils.isNotBlank(bo.getEmail()), CrmContract::getEmail, bo.getEmail());
return lqw;
}
}
......@@ -127,7 +127,8 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
Arrays.stream(ControlMethod.values()).filter(cm -> Objects.equals(cm.getCode(), tc.getControlMethod()))
.findAny().ifPresent(cm -> {
TravelControlMethodVo tcm = new TravelControlMethodVo()
.setInfoList(travelApply.getPersonInfoList());
.setInfoList(travelApply.getPersonInfoList())
.setOrderPersonPhone(LoginHelper.getUserNo().split("-")[1]);
tcm.setOrderType(orderType);
//获取人员信息
List<ApplyPerson> personList = Optional.ofNullable(apply)
......
<?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="org.dromara.server.mapper.CrmAddressMapper">
</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="org.dromara.server.mapper.CrmContractMapper">
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论