Kaynağa Gözat

分页查询联系人

yusm 1 yıl önce
ebeveyn
işleme
839d7d3608

+ 9 - 3
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/ContactsController.java

@@ -1,10 +1,11 @@
 package com.management.platform.controller;
 
 
+import com.management.platform.entity.Contacts;
 import com.management.platform.service.ContactsService;
-import com.management.platform.service.ProjectService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RequestParam;
@@ -32,8 +33,13 @@ public class ContactsController {
     private ContactsService contactsService;
 
     @RequestMapping("/addContacts")
-    public HttpRespMsg addContacts(String name,Integer customId,String email,String phone){
-        return contactsService.addContacts(name, customId, email,phone, request);
+    public HttpRespMsg addContacts(@RequestBody Contacts contacts){
+        return contactsService.addContacts(contacts, request);
+    }
+
+    @RequestMapping("/pageContacts")
+    public HttpRespMsg pageContacts(@RequestParam Integer pageIndex, @RequestParam Integer pageSize,String customName, String name, String phone, String ownerName){
+        return contactsService.pageContacts(pageIndex,pageSize,customName,name,phone,ownerName,request);
     }
 
 }

+ 13 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/Contacts.java

@@ -3,11 +3,15 @@ package com.management.platform.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * <p>
@@ -15,7 +19,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2024-02-28
+ * @since 2024-03-05
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -96,6 +100,14 @@ public class Contacts extends Model<Contacts> {
     @TableField("is_delete")
     private Integer isDelete;
 
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime createTime;
+
 
     @Override
     protected Serializable pkVal() {

+ 13 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/vo/ContactsVo.java

@@ -0,0 +1,13 @@
+package com.management.platform.entity.vo;
+
+import com.management.platform.entity.Contacts;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+public class ContactsVo extends Contacts {
+    private String customName;
+    private String ownerName;
+
+}

+ 8 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/ContactsMapper.java

@@ -1,7 +1,13 @@
 package com.management.platform.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.Contacts;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.vo.ContactsVo;
+import com.management.platform.util.HttpRespMsg;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +19,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ContactsMapper extends BaseMapper<Contacts> {
 
+
+    Page<ContactsVo> pageContacts(Page page, Map<String, Object> map);
 }

+ 4 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/ContactsService.java

@@ -2,6 +2,7 @@ package com.management.platform.service;
 
 import com.management.platform.entity.Contacts;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.vo.ContactsVo;
 import com.management.platform.util.HttpRespMsg;
 
 import javax.servlet.http.HttpServletRequest;
@@ -16,5 +17,7 @@ import javax.servlet.http.HttpServletRequest;
  */
 public interface ContactsService extends IService<Contacts> {
 
-    HttpRespMsg addContacts(String name, Integer customId, String email, String phone, HttpServletRequest request);
+    HttpRespMsg addContacts(Contacts contacts, HttpServletRequest request);
+
+    HttpRespMsg pageContacts(Integer pageIndex, Integer pageSize, String customName, String name, String phone, String ownerName, HttpServletRequest request);
 }

+ 38 - 11
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/ContactsServiceImpl.java

@@ -1,8 +1,11 @@
 package com.management.platform.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.management.platform.entity.Contacts;
 import com.management.platform.entity.User;
+import com.management.platform.entity.vo.ContactsVo;
 import com.management.platform.mapper.ContactsMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.ContactsService;
@@ -10,10 +13,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -25,7 +34,7 @@ import java.util.List;
  */
 @Service
 public class ContactsServiceImpl extends ServiceImpl<ContactsMapper, Contacts> implements ContactsService {
-    @Mapper
+    @Resource
     private ContactsMapper contactsMapper;
     @Resource
     private UserMapper userMapper;
@@ -33,29 +42,47 @@ public class ContactsServiceImpl extends ServiceImpl<ContactsMapper, Contacts> i
 
 
     @Override
-    public HttpRespMsg addContacts(String name, Integer customId, String email, String phone, HttpServletRequest request) {
+    @Transactional
+    public HttpRespMsg addContacts(Contacts contacts, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        User user = userMapper.selectById(request.getHeader("Token"));
+        String token = String.valueOf(request.getHeader("Token"));
+        User user = userMapper.selectById(token);
         Integer companyId = user.getCompanyId();
 
         LambdaQueryWrapper<Contacts> lqw_contacts = new LambdaQueryWrapper<>();
-        lqw_contacts.eq(Contacts::getCustomId,customId).eq(Contacts::getName,name);
+        lqw_contacts.eq(Contacts::getCustomId,contacts.getCustomId()).eq(Contacts::getName,contacts.getName());
         Contacts selectedOne = contactsMapper.selectOne(lqw_contacts);
         if (selectedOne!=null){
             httpRespMsg.setError("已存在该客户!");
         }
-        Contacts contacts = new Contacts()
-                .setCompanyId(companyId)
-                .setName(name)
-                .setCustomId(customId)
-                .setEmail(email)
-                .setPhone(phone)
+        contacts.setCompanyId(companyId)
                 .setOwnerId(user.getId())//添加时默认
-                .setIsDelete(0);
+                .setIsDelete(0)
+                .setCreateTime(LocalDateTime.now());
         int insert = contactsMapper.insert(contacts);
         if (insert<=0){
             httpRespMsg.setError("添加失败!");
         }
         return httpRespMsg;
     }
+
+    @Override
+    public HttpRespMsg pageContacts(Integer pageIndex, Integer pageSize, String customName, String name, String phone, String ownerName, HttpServletRequest request) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("customName", customName);
+        map.put("name", name);
+        map.put("phone", phone);
+        map.put("ownerName", ownerName);
+        String token = String.valueOf(request.getHeader("Token"));
+        User user = userMapper.selectById(token);
+        map.put("companyId",user.getCompanyId());
+        Page<ContactsVo> pageContacts = contactsMapper.pageContacts(new Page(pageIndex, pageSize), map);
+        List<ContactsVo> contactsVoList = pageContacts.getRecords();
+
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.setData(contactsVoList);
+        return msg;
+    }
+
+
 }

+ 30 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/ContactsMapper.xml

@@ -17,11 +17,40 @@
         <result column="plate4" property="plate4" />
         <result column="plate5" property="plate5" />
         <result column="is_delete" property="isDelete" />
+        <result column="create_time" property="createTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, company_id, name, custom_id, email, phone, owner_id, plate1, plate2, plate3, plate4, plate5, is_delete
+        id, company_id, name, custom_id, email, phone, owner_id, plate1, plate2, plate3, plate4, plate5, is_delete, create_time
     </sql>
+    <select id="pageContacts" parameterType="java.util.Map"  resultType="com.management.platform.entity.vo.ContactsVo">
+        SELECT c.*, cust.custom_name as customName, own.name as ownerName
+        FROM contacts c
+        LEFT JOIN custom cust ON c.custom_id = cust.id
+        LEFT JOIN user own ON c.owner_id = own.id
+        <where>
+            1=1 and c.is_delete=0
+
+            <if test="map.customName != null and map.customName != ''">
+                AND cust.custom_name LIKE CONCAT('%', #{map.customName}, '%')
+            </if>
+            <if test="map.ownerName != null and map.ownerName != ''">
+                AND own.name LIKE CONCAT('%', #{map.ownerName}, '%')
+            </if>
+            <if test="map.phone != null and map.phone != ''">
+                AND c.phone LIKE CONCAT('%', #{map.phone}, '%')
+            </if>
+            <if test="map.name != null and map.name != ''">
+                AND c.name LIKE CONCAT('%', #{map.name}, '%')
+            </if>
+            <if test="map.companyId != null">
+                AND c.company_id=#{map.companyId}
+            </if>
+        </where>
+        order by create_time desc
+
+    </select>
+
 
 </mapper>