ljw 2025-12-18 17:17:38 +08:00
parent e72876114a
commit 71f2bb4d86
5 changed files with 282 additions and 8 deletions

View File

@ -6,6 +6,7 @@ import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.dispose.cst.org.pojo.entity.OrgEntity;
import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam;
import com.njzscloud.dispose.cst.org.pojo.param.OrgPagingParam;
import com.njzscloud.dispose.cst.org.pojo.result.OrgResult;
import com.njzscloud.dispose.cst.org.service.OrgService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -92,7 +93,7 @@ public class OrgController {
*
*/
@GetMapping("/paging")
public R<PageResult<OrgEntity>> paging(PageParam pageParam, OrgPagingParam orgPagingParam) {
public R<PageResult<OrgResult>> paging(PageParam pageParam, OrgPagingParam orgPagingParam) {
return R.success(orgService.paging(pageParam, orgPagingParam));
}
}

View File

@ -1,16 +1,28 @@
package com.njzscloud.dispose.cst.org.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity;
import com.njzscloud.dispose.cst.org.pojo.entity.OrgEntity;
import com.njzscloud.dispose.cst.org.pojo.result.OrgResult;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
* @author lzq
*/
@Mapper
public interface OrgMapper extends BaseMapper<OrgEntity> {
boolean admitCustomer(@Param("orgId") Long orgId, @Param("customerId") Long customerId);
boolean quitOrg(@Param("customerId") Long customerId);
Page<OrgResult> paging(Page<OrgResult> page, @Param("ew") QueryWrapper<OrgResult> ew);
List<CustomerEntity> queryList(@Param("ew") QueryWrapper<CustomerEntity> ew);
}

View File

@ -0,0 +1,175 @@
package com.njzscloud.dispose.cst.org.pojo.result;
import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity;
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;
import java.util.List;
/**
*
*
* @author ljw
*/
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class OrgResult {
/**
* Id
*/
private Long id;
/**
* 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;
/**
* Id sys_user.id
*/
private Long creatorId;
/**
* Id sys_user.id
*/
private Long modifierId;
/**
*
*/
private LocalDateTime createTime;
/**
*
*/
private LocalDateTime modifyTime;
/**
* 0-->1-->
*/
private Boolean deleted;
/**
*
*/
private List<CustomerEntity> customerList;
}

View File

@ -3,18 +3,21 @@ package com.njzscloud.dispose.cst.org.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity;
import com.njzscloud.dispose.cst.org.constant.ApplyStatus;
import com.njzscloud.dispose.cst.org.mapper.OrgMapper;
import com.njzscloud.dispose.cst.org.pojo.entity.OrgApplyEntity;
import com.njzscloud.dispose.cst.org.pojo.entity.OrgEntity;
import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam;
import com.njzscloud.dispose.cst.org.pojo.param.OrgPagingParam;
import com.njzscloud.dispose.cst.org.pojo.result.OrgResult;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -22,9 +25,14 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
*
*
* @author lzq
*/
@Slf4j
@Service
@ -74,15 +82,32 @@ public class OrgService extends ServiceImpl<OrgMapper, OrgEntity> implements ISe
/**
*
*/
public PageResult<OrgEntity> paging(PageParam pageParam, OrgPagingParam orgPagingParam) {
public PageResult<OrgResult> paging(PageParam pageParam, OrgPagingParam orgPagingParam) {
String keywords = orgPagingParam.getKeywords();
return PageResult.of(this.page(pageParam.toPage(), Wrappers.<OrgEntity>lambdaQuery()
QueryWrapper<OrgResult> ew = Wrappers.<OrgResult>query()
.eq("deleted", Boolean.FALSE)
.and(StrUtil.isNotBlank(keywords), it ->
it.like(OrgEntity::getUscc, keywords)
.or().like(OrgEntity::getOrgName, keywords)
.or().like(OrgEntity::getLegalRepresentative, keywords)
)
));
it.like("uscc", keywords)
.or().like("org_name", keywords)
.or().like("legal_representative", keywords)
);
PageResult<OrgResult> page = PageResult.of(baseMapper.paging(pageParam.toPage(), ew));
List<OrgResult> records = page.getRecords();
if (records.isEmpty()) {
return page;
}
List<Long> orgIds = records.stream()
.map(OrgResult::getId)
.filter(Objects::nonNull)
.toList();
Map<Long, List<CustomerEntity>> orgMap = baseMapper.queryList(Wrappers.<CustomerEntity>query()
.eq("deleted", Boolean.FALSE)
.eq("manager", Boolean.TRUE)
.in("org_id", orgIds))
.stream()
.collect(Collectors.groupingBy(CustomerEntity::getOrgId));
records.forEach(org -> org.setCustomerList(orgMap.get(org.getId())));
return page;
}
@Transactional(rollbackFor = Exception.class)

View File

@ -1,6 +1,10 @@
<?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.njzscloud.dispose.cst.org.mapper.OrgMapper">
<resultMap id="BaseResultMap" autoMapping="true" type="com.njzscloud.dispose.cst.org.pojo.result.OrgResult">
</resultMap>
<resultMap id="CustomerResultMap" autoMapping="true" type="com.njzscloud.dispose.cst.customer.pojo.entity.CustomerEntity">
</resultMap>
<update id="admitCustomer">
UPDATE cst_customer
SET org_id = #{orgId}
@ -15,4 +19,61 @@
AND org_id IS NOT NULL
</update>
<select id="paging" resultMap="BaseResultMap">
SELECT
id,
org_category,
uscc,
org_name,
business_license,
license_start_time,
license_end_time,
legal_representative,
idcard,
idcard_start_time,
idcard_end_time,
idcard_front,
idcard_back,
province,
city,
area,
town,
province_name,
city_name,
area_name,
town_name,
address,
lng,
lat,
creator_id,
modifier_id,
create_time,
modify_time,
deleted
FROM cst_org
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
</select>
<select id="queryList" resultMap="CustomerResultMap">
SELECT
id,
user_id,
identity_category,
org_id,
customer_name,
phone,
settlement_way,
manager,
creator_id,
modifier_id,
create_time,
modify_time,
deleted
from cst_customer
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
</select>
</mapper>