客户管理、换行符

master
lzq 2025-12-12 10:28:26 +08:00
parent b9858c758e
commit 211b60e526
7 changed files with 351 additions and 8 deletions

View File

@ -7,6 +7,8 @@ import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.common.security.util.SecurityUtil; import com.njzscloud.common.security.util.SecurityUtil;
import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity; import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity;
import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam; import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam;
import com.njzscloud.dispose.cst.customer.pojo.param.SearchCustomerParam;
import com.njzscloud.dispose.cst.customer.pojo.result.SearchCustomerResult;
import com.njzscloud.dispose.cst.customer.service.CustomerService; import com.njzscloud.dispose.cst.customer.service.CustomerService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -64,7 +66,7 @@ public class CustomerController {
* *
*/ */
@GetMapping("/detail") @GetMapping("/detail")
public R<CustomerEntity> detail(@RequestParam Long id) { public R<SearchCustomerResult> detail(@RequestParam Long id) {
return R.success(customerService.detail(id)); return R.success(customerService.detail(id));
} }
@ -72,7 +74,7 @@ public class CustomerController {
* *
*/ */
@GetMapping("/paging") @GetMapping("/paging")
public R<PageResult<CustomerEntity>> paging(PageParam pageParam, CustomerEntity customerEntity) { public R<PageResult<SearchCustomerResult>> paging(PageParam pageParam, SearchCustomerParam searchCustomerParam) {
return R.success(customerService.paging(pageParam, customerEntity)); return R.success(customerService.paging(pageParam, searchCustomerParam));
} }
} }

View File

@ -1,12 +1,20 @@
package com.njzscloud.dispose.cst.customer.mapper; package com.njzscloud.dispose.cst.customer.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity; import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity;
import com.njzscloud.dispose.cst.customer.pojo.result.SearchCustomerResult;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* *
*/ */
@Mapper @Mapper
public interface CustomerMapper extends BaseMapper<CustomerEntity> { public interface CustomerMapper extends BaseMapper<CustomerEntity> {
IPage<SearchCustomerResult> paging(Page<Object> page, @Param("ew") QueryWrapper<?> ew);
SearchCustomerResult detail(@Param("id") Long id);
} }

View File

@ -0,0 +1,32 @@
package com.njzscloud.dispose.cst.customer.pojo.param;
import com.njzscloud.dispose.cst.customer.constant.IdentityCategory;
import com.njzscloud.dispose.cst.customer.constant.SettlementWay;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
/**
*
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class SearchCustomerParam {
/**
* PingTai-->ChanFei-->QingYun-->XiaoNa-->CaiGou-->
*/
private IdentityCategory identityCategory;
private String keywords;
/**
* YueJie-->YuE-->XianFu-->
*/
private SettlementWay settlementWay;
}

View File

@ -0,0 +1,220 @@
package com.njzscloud.dispose.cst.customer.pojo.result;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.njzscloud.dispose.cst.customer.constant.IdentityCategory;
import com.njzscloud.dispose.cst.customer.constant.SettlementWay;
import com.njzscloud.dispose.cst.org.constant.OrgCategory;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
*
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class SearchCustomerResult {
/**
* Id
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* Id
*/
private Long userId;
/**
* PingTai-->ChanFei-->QingYun-->XiaoNa-->CaiGou-->
*/
private IdentityCategory identityCategory;
/**
* Idcst_org.id
*/
private Long orgId;
/**
*
*/
private String customerName;
/**
*
*/
private String phone;
/**
* YueJie-->YuE-->XianFu-->
*/
private SettlementWay settlementWay;
/**
* 0-->1-->
*/
private Boolean manager;
/**
*
*/
private String nickname;
/**
*
*/
private String avatar;
/**
*
*/
private String username;
/**
* openid
*/
private String wechatOpenid;
/**
*
*/
private LocalDateTime regdate;
/**
* ; 0-->PC1-->2-->
*/
private Integer clientCode;
/**
* ; 0-->1-->
*/
private Boolean disabled;
/**
* GeTiHu-->QiYe-->
*/
private OrgCategory orgCategory;
/**
*
*/
private String uscc;
/**
*
*/
private String orgName;
/**
*
*/
private String businessLicense;
/**
*
*/
private LocalDate licenseStartTime;
/**
*
*/
private LocalDate licenseEndTime;
/**
*
*/
private String legalRepresentative;
/**
*
*/
private String idcard;
/**
*
*/
private LocalDate idcardStartTime;
/**
*
*/
private LocalDate idcardEndTime;
/**
*
*/
private String idcardFront;
/**
*
*/
private String idcardBack;
/**
*
*/
private String province;
/**
*
*/
private String city;
/**
*
*/
private String area;
/**
*
*/
private String town;
/**
*
*/
private String provinceName;
/**
*
*/
private String cityName;
/**
*
*/
private String areaName;
/**
*
*/
private String townName;
/**
*
*/
private String address;
/**
*
*/
private Double lng;
/**
*
*/
private Double lat;
}

View File

@ -2,6 +2,7 @@ package com.njzscloud.dispose.cst.customer.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -9,9 +10,12 @@ import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; import com.njzscloud.dispose.cst.customer.constant.IdentityCategory;
import com.njzscloud.dispose.cst.customer.constant.SettlementWay;
import com.njzscloud.dispose.cst.customer.mapper.CustomerMapper; import com.njzscloud.dispose.cst.customer.mapper.CustomerMapper;
import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity; import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity;
import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam; import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam;
import com.njzscloud.dispose.cst.customer.pojo.param.SearchCustomerParam;
import com.njzscloud.dispose.cst.customer.pojo.result.SearchCustomerResult;
import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam; import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam;
import com.njzscloud.dispose.cst.org.service.OrgService; import com.njzscloud.dispose.cst.org.service.OrgService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -81,14 +85,30 @@ public class CustomerService extends ServiceImpl<CustomerMapper, CustomerEntity>
/** /**
* *
*/ */
public CustomerEntity detail(Long id) { public SearchCustomerResult detail(Long id) {
return this.getById(id); return baseMapper.detail(id);
} }
/** /**
* *
*/ */
public PageResult<CustomerEntity> paging(PageParam pageParam, CustomerEntity customerEntity) { public PageResult<SearchCustomerResult> paging(PageParam pageParam, SearchCustomerParam searchCustomerParam) {
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<CustomerEntity>query(customerEntity))); String keywords = searchCustomerParam.getKeywords();
SettlementWay settlementWay = searchCustomerParam.getSettlementWay();
IdentityCategory identityCategory = searchCustomerParam.getIdentityCategory();
return PageResult.of(baseMapper.paging(pageParam.toPage(), Wrappers.query()
.eq("a.deleted", 0)
.and(StrUtil.isNotBlank(keywords), it -> it
.like("a.customer_name", keywords)
.or().like("a.phone", keywords)
.or().like("b.nickname", keywords)
.or().like("c.username", keywords)
.or().like("c.wechat_openid", keywords)
.or().like("d.org_name", keywords)
.or().like("d.legal_representative", keywords)
)
.eq(settlementWay != null, "a.settlement_way", settlementWay)
.eq(identityCategory != null, "a.identity_category", identityCategory)
));
} }
} }

View File

@ -1,11 +1,11 @@
package com.njzscloud.dispose.cst.driver.pojo.entity; package com.njzscloud.dispose.cst.driver.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njzscloud.dispose.common.pojo.entity.BaseEntity;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import com.njzscloud.dispose.common.pojo.entity.BaseEntity;
import java.time.LocalDateTime; import java.time.LocalDateTime;

View File

@ -1,4 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njzscloud.dispose.cst.customer.mapper.CustomerMapper"> <mapper namespace="com.njzscloud.dispose.cst.customer.mapper.CustomerMapper">
<sql id="searchCustomer">
SELECT a.id,
a.user_id,
a.identity_category,
a.org_id,
a.customer_name,
a.phone,
a.settlement_way,
a.manager,
b.nickname,
b.avatar,
c.id account_id,
c.username,
c.wechat_openid,
c.regdate,
c.client_code,
d.org_category,
d.uscc,
d.org_name,
d.business_license,
d.license_start_time,
d.license_end_time,
d.legal_representative,
d.idcard,
d.idcard_start_time,
d.idcard_end_time,
d.idcard_front,
d.idcard_back,
d.province,
d.city,
d.area,
d.town,
d.province_name,
d.city_name,
d.area_name,
d.town_name,
d.address,
d.lng,
d.lat
FROM cst_customer a
INNER JOIN sys_user b ON b.id = a.user_id AND b.deleted = 0
INNER JOIN sys_user_account c ON c.user_id = b.id AND b.deleted = 0
LEFT JOIN cst_org d ON c.id = a.org_id AND d.deleted = 0
</sql>
<resultMap id="searchCustomerResultMap" autoMapping="true" type="com.njzscloud.dispose.cst.customer.pojo.result.SearchCustomerResult">
</resultMap>
<select id="paging" resultMap="searchCustomerResultMap">
<include refid="searchCustomer"/>
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
</select>
<select id="detail" resultMap="searchCustomerResultMap">
<include refid="searchCustomer"/>
WHERE a.deleted = 0
AND a.id = ${id}
</select>
</mapper> </mapper>