From be13567fbcbee70f0ee6f6ebe0fe55355618ed2f Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 20 Jan 2022 20:17:47 +0800 Subject: [PATCH] =?UTF-8?q?/=E3=80=81user?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/domain/po/WxCUserCar.java | 3 ++ .../com/iformall/mapper/WxCUserCarMapper.java | 1 - .../service/WxCUserBasicInfoService.java | 3 ++ .../impl/WxCUserBasicInfoServiceImpl.java | 18 +++++++ .../service/impl/WxCUserCarServiceImpl.java | 49 ++++++++++++++++++- .../resources/mapper/WxCUserCarMapper.xml | 29 ++++------- 6 files changed, 81 insertions(+), 22 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserCar.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserCar.java index 4661f60a6..5136692b0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUserCar.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUserCar.java @@ -20,6 +20,9 @@ public class WxCUserCar extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="c端用户id",name="cUserId") private Long cUserId; + @TableField(exist = false) + private List userIds; + @TableField(exist = false) private String userPhone; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java index c11ca931f..c2e4df5d6 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserCarMapper.java @@ -18,5 +18,4 @@ public interface WxCUserCarMapper extends CommonMapper { List> queryCarCountHistory(HashMap params); - List findList1(WxCUserCar record); } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index 6caabea8a..b9a61cd45 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -15,6 +15,7 @@ import com.iformall.enums.EnumScoreType; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; public interface WxCUserBasicInfoService { /** @@ -45,6 +46,8 @@ public interface WxCUserBasicInfoService { PageInfo listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize); List listPhoneAndNameByIds(WxCUserBasicInfo record); + + Map getUserMap(TenantEntity tenantEntity, List cUserIdList); /** * 根据实体查询列表 * @param record diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index 3ae88f4a9..dce00daef 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -594,6 +594,24 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExc public List listPhoneAndNameByIds(WxCUserBasicInfo record) { return wxCUserBasicInfoMapper.findListPhoneAndNameByIds(record); } + + @Override + public Map getUserMap(TenantEntity tenantEntity,List cUserIdList) { + Map userMap = new HashMap(); + if (cUserIdList.size() > 0) { + WxCUserBasicInfo cUserBasicInfoQ = new WxCUserBasicInfo(); + cUserBasicInfoQ.setFinalTenantId(tenantEntity.getFinalTenantId()); + cUserBasicInfoQ.setIds(cUserIdList); + List userList = wxCUserBasicInfoMapper.findListPhoneAndNameByIds(cUserBasicInfoQ); + if (null != userList) { + for (int i = 0 ; i < userList.size() ; i ++) { + WxCUserBasicInfo cbi = userList.get(i); + userMap.put(cbi.getId(), cbi); + } + } + } + return userMap; + } @Override public List findByPhone(TenantEntity tenantEntity, String phone) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserCarServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserCarServiceImpl.java index 8e000aa91..d15a513b3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserCarServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserCarServiceImpl.java @@ -5,28 +5,75 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.domain.dto.WxCUserBasicInfoDto; +import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.po.WxCUserCar; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.mapper.WxCUserBasicInfoMapper; import com.iformall.mapper.WxCUserCarMapper; +import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCUserCarService; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class WxCUserCarServiceImpl implements WxCUserCarService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired WxCUserCarMapper wxCUserCarMapper; + @Autowired + WxCUserBasicInfoMapper wxCUserBasicInfoMapper; + + @Autowired + WxCUserBasicInfoService wxCUserBasicInfoService; + + private void handlerUserParam(WxCUserCar record){ + if(StringUtils.isNotBlank(record.getUserPhone())){ + WxCUserBasicInfo biq = new WxCUserBasicInfo(); + biq.setFinalTenantId(record.getFinalTenantId()); + biq.setPhone(record.getUserPhone()); + List idList = wxCUserBasicInfoMapper.findIdList(biq); + if(idList == null && idList.isEmpty()){ + record.setId(-999L); + }else{ + record.setUserIds(idList); + } + } + } + + private void handlerResult(TenantEntity tenantEntity,List userCarList){ + if(userCarList == null || userCarList.isEmpty()){ + return; + } + List userIds = userCarList.stream().map(uc -> uc.getCUserId()).collect(Collectors.toList()); + Map userMap = wxCUserBasicInfoService.getUserMap(tenantEntity, userIds); + for (WxCUserCar uc:userCarList) { + WxCUserBasicInfo basicInfo = userMap.get(uc.getCUserId()); + if(basicInfo != null){ + uc.setUserPhone(basicInfo.getPhone()); + } + } + } @Override public PageInfo listAsPage(WxCUserCar record, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserCarMapper.findList1(record)); + handlerUserParam(record); + if(record.getId() != null && record.getId().equals(-999L)){ + return new PageInfo<>(); + } + PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserCarMapper.findList(record)); + handlerResult(record,pageInfo.getList()); + return pageInfo; } @Override diff --git a/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml index f81fe0eef..fecb51b0a 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserCarMapper.xml @@ -23,13 +23,11 @@ + where wcuc.`tenant_id` = #{tenantId} and wcuc.`id` = #{id} - - and wcuc.`tenant_id` = #{tenantId} - and wcuc.`parent_tenant_id` = #{parentTenantId} @@ -66,35 +64,26 @@ #{idItem} - - + + + and wcuc.c_user_id in + + #{idItem} + + + order by wcuc.create_date - -