Browse Source

feat 添加客户维护地址数量功能

opt: 修改客户历史表查询方式
checkBack
Yen 1 year ago
parent
commit
6200adc1b7
  1. 2
      src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java
  2. 5
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java
  3. 5
      src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierContactsMyController.java
  4. 16
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  5. 11
      src/main/java/com/qs/serve/modules/goods/controller/GoodsAccreditController.java
  6. 2
      src/main/java/com/qs/serve/modules/goods/service/GoodsAccreditService.java
  7. 167
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java
  8. 6
      src/main/java/com/qs/serve/modules/his/entity/HisUserSupplier.java
  9. 5
      src/main/java/com/qs/serve/modules/his/mapper/HisUserSupplierMapper.java
  10. 2
      src/main/java/com/qs/serve/modules/his/service/HisUserSupplierService.java
  11. 36
      src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java
  12. 10
      src/main/resources/mapper/bms/BmsSupplierMapper.xml
  13. 27
      src/main/resources/mapper/his/HisUserSupplierMapper.xml

2
src/main/java/com/qs/serve/modules/bir/service/impl/BirBudgetTargetServiceImpl.java

@ -34,7 +34,7 @@ public class BirBudgetTargetServiceImpl extends ServiceImpl<BirBudgetTargetMappe
@Override
public List<BirBudgetTargetVo> listVo(BirBudgetTargetSo query) {
query.setLoadType(query.getLoadType()+1);
LocalDateTime endMonth = query.getYearMonthEnd();
LocalDateTime startMonth = query.getYearMonthStart();
//格式化

5
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java

@ -110,8 +110,9 @@ public class BmsRegionController {
BmsSupplier supplier = bmsSupplierService.getById(supplierId);
regionIds.addAll(supplier.listSaleRegionIds());
}
List<HisUserSupplier> hisUserSuppliers = hisUserSupplierService.selectHisSupplier(null,false);
List<Long> supplierIds = hisUserSuppliers.stream().map(HisUserSupplier::getSupplierId).collect(Collectors.toList());
//List<HisUserSupplier> hisUserSuppliers = hisUserSupplierService.selectHisSupplier(null,false);
//List<Long> supplierIds = hisUserSuppliers.stream().map(HisUserSupplier::getSupplierId).collect(Collectors.toList());
List<Long> supplierIds = hisUserSupplierService.selectHisSupplier(null,false);
supplierIds.add(0L);
List<BmsSupplier> supplierList = bmsSupplierService.listByIds(supplierIds);
List<String> firstRegionIds = supplierList.stream().map(a->a.getRegionFirst()).collect(Collectors.toList());

5
src/main/java/com/qs/serve/modules/bms/controller/my/BmsSupplierContactsMyController.java

@ -50,8 +50,9 @@ public class BmsSupplierContactsMyController {
*/
@GetMapping("/page")
public R<PageVo<BmsSupplierContacts>> getPage(BmsSupplierContactsSo param){
List<HisUserSupplier> hisUserSuppliers = hisUserSupplierService.selectHisSupplier(null,false);
List<Long> supplierIds = hisUserSuppliers.stream().map(HisUserSupplier::getSupplierId).collect(Collectors.toList());
//List<HisUserSupplier> hisUserSuppliers = hisUserSupplierService.selectHisSupplier(null,false);
//List<Long> supplierIds = hisUserSuppliers.stream().map(HisUserSupplier::getSupplierId).collect(Collectors.toList());
List<Long> supplierIds = hisUserSupplierService.selectHisSupplier(null,false);
PageUtil.startPage();
BmsSupplierContacts query = CopierUtil.copy(param,new BmsSupplierContacts());
LambdaQueryWrapper<BmsSupplierContacts> contactsLambdaQueryWrapper = new LambdaQueryWrapper<>(query);

16
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java

@ -209,6 +209,18 @@ public class BmsSupplier implements Serializable {
/** 线下下单 */
private Integer orderOfflineFlag;
/** 统计维护的地址数量 */
@TableField(exist = false)
private Integer countAddr;
/**
* 查询维护的地址
* countAddrFlag=0 表示未维护的收货地址
* countAddrFlag=1 表示已维护的收货地址
*/
@TableField(exist = false)
private Integer countAddrFlag;
/** 当前用户ID */
@TableField(exist = false)
private String currUserId;
@ -362,7 +374,7 @@ public class BmsSupplier implements Serializable {
/*-------------- ----------------- */
@TableField(exist = false)
private List<String> searchInIds;
private List<Long> searchInIds;
/*-------------- ----------------- */
@TableField(exist = false)
@ -394,6 +406,7 @@ public class BmsSupplier implements Serializable {
public HisUserSupplier toHisUserSupplier(String userId,Integer type){
HisUserSupplier userSupplier = new HisUserSupplier();
userSupplier.setQueryValue(this.keyword);
userSupplier.setUserId(userId);
if(this.getUserId()!=null){
userSupplier.setSupplierId(Long.parseLong(this.getId()));
@ -401,6 +414,7 @@ public class BmsSupplier implements Serializable {
if(this.getId()!=null){
userSupplier.setSupplierId(Long.parseLong(this.getId()));
}
userSupplier.setSelectSupplierTypes(this.getSelectSupplierTypes());
userSupplier.setSupplierName(this.getName());
userSupplier.setSupplierCode(this.getCode());
userSupplier.setSaleRegionFirst(this.getRegionFirst());

11
src/main/java/com/qs/serve/modules/goods/controller/GoodsAccreditController.java

@ -49,6 +49,17 @@ public class GoodsAccreditController {
return R.ok(data);
}
/**
* 辅助查询
* @param query
* @return
*/
@GetMapping("/getAllList")
public R<List<GoodsAccreditResult>> getAllList(GoodsAccreditQuery query){
List<GoodsAccreditResult> data = goodsAccreditService.queryList(query);
return R.ok(data);
}
/**
* ID查询
* @param cateId

2
src/main/java/com/qs/serve/modules/goods/service/GoodsAccreditService.java

@ -24,6 +24,8 @@ public interface GoodsAccreditService extends IService<GoodsAccredit> {
PageVo<GoodsAccreditResult> queryPage(GoodsAccreditQuery query);
List<GoodsAccreditResult> queryList(GoodsAccreditQuery query);
void modify(GoodsAccreditBo param);
GoodsAccreditVo getById(String cateId, String spuId, String skuId);

167
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsAccreditServiceImpl.java

@ -59,6 +59,98 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go
@Override
public PageVo<GoodsAccreditResult> queryPage(GoodsAccreditQuery query) {
initAccreditQuery(query);
PageUtil.startPage();
List<GoodsAccreditExt> list = super.baseMapper.queryUnionPage(query);
List<GoodsAccreditResult> results = getGoodsAccreditResults(list);
return R.byPageHelperList(list,results).getData();
}
@Override
public List<GoodsAccreditResult> queryList(GoodsAccreditQuery query) {
initAccreditQuery(query);
List<GoodsAccreditExt> list = super.baseMapper.queryUnionPage(query);
List<GoodsAccreditResult> results = getGoodsAccreditResults(list);
return results;
}
private List<GoodsAccreditResult> getGoodsAccreditResults(List<GoodsAccreditExt> list) {
List<GoodsAccreditResult> results = list.stream().map(ext->{
if (ext.getUnionType().equals("accredit")){
GoodsAccreditResult result = new GoodsAccreditResult();
result.setId("goods"+ext.getId());
result.setRuleType("goods");
if(ext.getCategoryId()!=null){
result.setGoodType("category");
}else if (ext.getSpuId()!=null){
result.setGoodType("spu");
}else {
result.setGoodType("sku");
}
result.setCode(ext.getCode());
result.setName(ext.getName());
result.setAccType(ext.getAccType().equals(0)?"in":"notIn");
if(ext.getTargetType().equals("0")){
result.setTargetType("supplier");
}else if (ext.getTargetType().equals("1")){
result.setTargetType("bizRegion");
}else if (ext.getTargetType().equals("2")){
result.setTargetType("saleRegion");
}else {
result.setTargetType(ext.getTargetType());
}
result.setTargetCode(ext.getTargetCode());
result.setTargetName(ext.getTargetName());
result.setTargetId(ext.getTargetId());
result.setCreateTime(ext.getCreateTime());
result.setCreateUser(ext.getCreateUser());
result.setCreateUserCode(ext.getCreateUserCode());
return result;
}else {
GoodsAccreditResult result = new GoodsAccreditResult();
result.setId("supplier"+ext.getId());
result.setRuleType("supplier");
if(ext.getUserId()!=null) {
result.setTargetType("user");
}else if(ext.getSaleRegionId()!=null){
result.setTargetType("saleRegion");
}else if (ext.getBizRegionId()!=null){
result.setTargetType("bizRegion");
}else {
result.setTargetType("supplier");
}
result.setCode(ext.getCode());
result.setName(ext.getName());
if(ext.getTargetType().equals("1")){
result.setAccType("in");
result.setGoodType("category");
}else if (ext.getTargetType().equals("2")){
result.setAccType("notIn");
result.setGoodType("category");
}else if (ext.getTargetType().equals("3")){
result.setAccType("in");
result.setGoodType("spu");
}else {
result.setAccType("notIn");
result.setGoodType("spu");
}
result.setTargetId(ext.getId()+"");
//result.setTargetType(ext.getTargetType());
result.setTargetCode(ext.getTargetCode());
result.setTargetName(ext.getTargetName());
result.setCreateTime(ext.getCreateTime());
result.setCreateUser(ext.getCreateUser());
result.setCreateUserCode(ext.getCreateUserCode());
return result;
}
}).collect(Collectors.toList());
return results;
}
private void initAccreditQuery(GoodsAccreditQuery query) {
String productCode = query.getCode();
String productName = query.getName();
String targetCode = query.getTargetCode();
@ -175,81 +267,6 @@ public class GoodsAccreditServiceImpl extends ServiceImpl<GoodsAccreditMapper,Go
query.setTargetCodeList(targetCodes);
}
PageUtil.startPage();
List<GoodsAccreditExt> list = super.baseMapper.queryUnionPage(query);
List<GoodsAccreditResult> results = list.stream().map(ext->{
if (ext.getUnionType().equals("accredit")){
GoodsAccreditResult result = new GoodsAccreditResult();
result.setId("goods"+ext.getId());
result.setRuleType("goods");
if(ext.getCategoryId()!=null){
result.setGoodType("category");
}else if (ext.getSpuId()!=null){
result.setGoodType("spu");
}else {
result.setGoodType("sku");
}
result.setCode(ext.getCode());
result.setName(ext.getName());
result.setAccType(ext.getAccType().equals(0)?"in":"notIn");
if(ext.getTargetType().equals("0")){
result.setTargetType("supplier");
}else if (ext.getTargetType().equals("1")){
result.setTargetType("bizRegion");
}else if (ext.getTargetType().equals("2")){
result.setTargetType("saleRegion");
}else {
result.setTargetType(ext.getTargetType());
}
result.setTargetCode(ext.getTargetCode());
result.setTargetName(ext.getTargetName());
result.setTargetId(ext.getTargetId());
result.setCreateTime(ext.getCreateTime());
result.setCreateUser(ext.getCreateUser());
result.setCreateUserCode(ext.getCreateUserCode());
return result;
}else {
GoodsAccreditResult result = new GoodsAccreditResult();
result.setId("supplier"+ext.getId());
result.setRuleType("supplier");
if(ext.getUserId()!=null) {
result.setTargetType("user");
}else if(ext.getSaleRegionId()!=null){
result.setTargetType("saleRegion");
}else if (ext.getBizRegionId()!=null){
result.setTargetType("bizRegion");
}else {
result.setTargetType("supplier");
}
result.setCode(ext.getCode());
result.setName(ext.getName());
if(ext.getTargetType().equals("1")){
result.setAccType("in");
result.setGoodType("category");
}else if (ext.getTargetType().equals("2")){
result.setAccType("notIn");
result.setGoodType("category");
}else if (ext.getTargetType().equals("3")){
result.setAccType("in");
result.setGoodType("spu");
}else {
result.setAccType("notIn");
result.setGoodType("spu");
}
result.setTargetId(ext.getId()+"");
//result.setTargetType(ext.getTargetType());
result.setTargetCode(ext.getTargetCode());
result.setTargetName(ext.getTargetName());
result.setCreateTime(ext.getCreateTime());
result.setCreateUser(ext.getCreateUser());
result.setCreateUserCode(ext.getCreateUserCode());
return result;
}
}).collect(Collectors.toList());
return R.byPageHelperList(list,results).getData();
}
@Override

6
src/main/java/com/qs/serve/modules/his/entity/HisUserSupplier.java

@ -135,6 +135,12 @@ public class HisUserSupplier implements Serializable {
@TableField(exist = false)
private List<String> selectUserIds;
/**
* 对应是supplierFlag
*/
@TableField(exist = false)
private List<Integer> selectSupplierTypes;
@TableField(exist = false)
private String addressId;

5
src/main/java/com/qs/serve/modules/his/mapper/HisUserSupplierMapper.java

@ -1,6 +1,8 @@
package com.qs.serve.modules.his.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.qs.serve.modules.bms.entity.so.BmsSupplierVisitSo;
import com.qs.serve.modules.his.entity.HisUserSupplier;
import com.qs.serve.modules.his.entity.dto.HisUserSupplierAddressVo;
@ -15,5 +17,8 @@ public interface HisUserSupplierMapper extends BaseMapper<HisUserSupplier> {
List<HisUserSupplierAddressVo> selectHisUserSupplierAddressList(@Param("query") HisUserSupplier param);
List<Long> selectSupplierIdByQuery(@Param("query") HisUserSupplier param,@Param(Constants.WRAPPER) QueryWrapper<HisUserSupplier> lqw);
}

2
src/main/java/com/qs/serve/modules/his/service/HisUserSupplierService.java

@ -14,7 +14,7 @@ import java.util.List;
*/
public interface HisUserSupplierService extends IService<HisUserSupplier> {
List<HisUserSupplier> selectHisSupplier(BmsSupplier param,boolean usePage);
List<Long> selectHisSupplier(BmsSupplier param,boolean usePage);
List<BmsSupplier> selectListSupplier(BmsSupplier param);

36
src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java

@ -51,7 +51,7 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
private RedisService redisService;
@Override
public List<HisUserSupplier> selectHisSupplier(BmsSupplier param, boolean usePage) {
public List<Long> selectHisSupplier(BmsSupplier param, boolean usePage) {
if(param==null){
param = new BmsSupplier();
}
@ -69,27 +69,29 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
return new ArrayList<>();
}
HisUserSupplier userSupplier = param.toHisUserSupplier(null,null);
userSupplier.setSelectUserIds(userIds);
QueryWrapper<HisUserSupplier> lqw = new QueryWrapper<>(userSupplier);
lqw.select("distinct his_user_supplier.supplier_id");
if(StringUtils.hasText(param.getKeyword())){
lqw.lambda().like(HisUserSupplier::getSupplierCode,param.getKeyword());
lqw.lambda().like(HisUserSupplier::getSupplierName,param.getKeyword());
}
if(CollectionUtil.isNotEmpty(param.getSelectSupplierTypes())){
lqw.lambda().in(HisUserSupplier::getSupplierFlag,param.getSelectSupplierTypes());
}
lqw.lambda().in(HisUserSupplier::getUserId,userIds)
.ne(HisUserSupplier::getSupplierId,0);
// lqw.select("distinct his_user_supplier.supplier_id");
// if(StringUtils.hasText(param.getKeyword())){
// lqw.lambda().like(HisUserSupplier::getSupplierCode,param.getKeyword());
// lqw.lambda().like(HisUserSupplier::getSupplierName,param.getKeyword());
// }
// if(CollectionUtil.isNotEmpty(param.getSelectSupplierTypes())){
// lqw.lambda().in(HisUserSupplier::getSupplierFlag,param.getSelectSupplierTypes());
// }
// lqw.lambda().in(HisUserSupplier::getUserId,userIds)
// .ne(HisUserSupplier::getSupplierId,0);
if(usePage){
PageUtil.startPage();
}
return this.list(lqw);
return baseMapper.selectSupplierIdByQuery(userSupplier,lqw);
//return this.list(lqw).stream().map(a->a.getSupplierId()).collect(Collectors.toList());
}
@Override
public List<BmsSupplier> selectListSupplier(BmsSupplier param) {
List<HisUserSupplier> hisUserSuppliers = selectHisSupplier(param,false);
List<String> supplierIds = hisUserSuppliers.stream().map(a->a.getSupplierId().toString()).collect(Collectors.toList());
List<Long> supplierIds = selectHisSupplier(param,false);
//List<String> supplierIds = hisUserSuppliers.stream().map(a->a.getSupplierId().toString()).collect(Collectors.toList());
if(supplierIds.size()>0) {
param.setSearchInIds(supplierIds);
List<BmsSupplier> supplierList = bmsSupplierService.selectSupplierList(param);
@ -101,12 +103,12 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
@Override
public PageVo<BmsSupplier> selectPageSupplier(BmsSupplier param) {
List<HisUserSupplier> hisUserSuppliers = selectHisSupplier(param,true);
List<String> supplierIds = hisUserSuppliers.stream().map(a->a.getSupplierId().toString()).collect(Collectors.toList());
List<Long> supplierIds = selectHisSupplier(param,true);
//List<String> supplierIds = hisUserSuppliers.stream().map(a->a.getSupplierId().toString()).collect(Collectors.toList());
if(supplierIds.size()>0) {
param.setSearchInIds(supplierIds);
List<BmsSupplier> supplierList = bmsSupplierService.selectSupplierList(param);
return R.buildPageHelperList(hisUserSuppliers,supplierList);
return R.buildPageHelperList(supplierIds,supplierList);
}else{
return R.buildPageHelperList(new ArrayList<>());
}

10
src/main/resources/mapper/bms/BmsSupplierMapper.xml

@ -85,9 +85,15 @@
bms_supplier.`del_flag` </sql>
<select id="selectSupplierList" parameterType="com.qs.serve.modules.bms.entity.BmsSupplier" resultMap="bmsSupplierMap">
SELECT <include refid="bmsSupplierSql"/> FROM `bms_supplier` `bms_supplier`
SELECT <include refid="bmsSupplierSql"/> ,
supplier_addr.`count_addr`
FROM `bms_supplier` `bms_supplier`
left join (select count(1) as count_addr,supplier_id from bms_supplier_address where del_flag = 0 group by supplier_id) supplier_addr
on supplier_addr.supplier_id = bms_supplier.id
<where>
<!-- <if test="query.countAddr != null"> and `supplier_addr`.`count_addr` = #{query.countAddr} </if>-->
<!-- <if test="query.countAddrFlag != null and query.countAddrFlag=0 "> and `supplier_addr`.`count_addr` is null </if>-->
<!-- <if test="query.countAddrFlag != null and query.countAddrFlag=1 "> and `supplier_addr`.`count_addr` is not null </if>-->
<if test="query.id != null"> and `bms_supplier`.`id` = #{query.id}</if>
<if test="query.regionFirst != null"> and `bms_supplier`.`region_first` = #{query.regionFirst}</if>
<if test="query.regionSecond != null"> and `bms_supplier`.`region_second` = #{query.regionSecond}</if>

27
src/main/resources/mapper/his/HisUserSupplierMapper.xml

@ -70,4 +70,31 @@
bms_supplier_visit_address.id
</select>
<select id="selectSupplierIdByQuery" resultType="java.lang.Long">
select distinct his_user_supplier.supplier_id
from his_user_supplier
where
his_user_supplier.supplier_id != 0
<if test="query.queryValue != null and query.queryValue != ''">
and
(
`his_user_supplier`.`supplier_code` like concat('%',#{query.queryValue},'%')
or `his_user_supplier`.`supplier_name` like concat('%',#{query.queryValue},'%')
)
</if>
<if test="query.selectUserIds!=null and query.selectUserIds.size > 0">
and `his_user_supplier`.`user_id` in
<foreach collection="query.selectUserIds" item="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.selectSupplierTypes!=null and query.selectSupplierTypes.size > 0">
and `his_user_supplier`.`supplier_flag` in
<foreach collection="query.selectSupplierTypes" item="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
${ew.customSqlSegment}
</select>
</mapper>

Loading…
Cancel
Save