| src/main/java/com/ruoyi/basic/controller/CustomerContactController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/dto/CustomerContactDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/mapper/CustomerContactMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/pojo/CustomerContact.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/service/CustomerContactService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/service/impl/CustomerContactServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/basic/CustomerContactMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/basic/controller/CustomerContactController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,64 @@ package com.ruoyi.basic.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.dto.CustomerContactDto; import com.ruoyi.basic.service.CustomerContactService; import com.ruoyi.framework.web.domain.R; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; /** * <p> * 客æ·è系人表 å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-05-07 03:46:40 */ @RestController @RequestMapping("/customerContact") @AllArgsConstructor @Tag(name = "客æ·è系人表") public class CustomerContactController { private final CustomerContactService customerContactService; /** * å页æ¥è¯¢ * @param page * @param customerContact * @return */ @GetMapping("/listPage") @Operation(summary = "å页æ¥è¯¢") public R listPage(Page<CustomerContactDto> page, CustomerContactDto customerContact) { return R.ok(customerContactService.listPage(page, customerContact)); } @PostMapping("/add") @Operation(summary = "æ·»å ") public R add(@RequestBody CustomerContactDto customerContact) { return R.ok(customerContactService.add(customerContact)); } @PutMapping("update") @Operation(summary = "ä¿®æ¹") public R update(@RequestBody CustomerContactDto customerContact) { return R.ok(customerContactService.updateCustomerContact(customerContact)); } @GetMapping("/getById/{id}") @Operation(summary = "éè¿idæ¥è¯¢") public R getById(@PathVariable("id") Long id) { return R.ok(customerContactService.getCustomerContactDtoById(id)); } @DeleteMapping("/delete") @Operation(summary = "å é¤") public R delete(@RequestBody CustomerContactDto customerContact) { return R.ok(customerContactService.removeById(customerContact)); } } src/main/java/com/ruoyi/basic/dto/CustomerContactDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.ruoyi.basic.dto; import com.ruoyi.basic.pojo.CustomerContact; import lombok.Data; import java.util.List; @Data public class CustomerContactDto extends CustomerContact { private String customerNames; private List<Long> customerIdList; } src/main/java/com/ruoyi/basic/mapper/CustomerContactMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.basic.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.dto.CustomerContactDto; import com.ruoyi.basic.pojo.CustomerContact; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * <p> * 客æ·è系人表 Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-05-07 03:46:40 */ @Mapper public interface CustomerContactMapper extends BaseMapper<CustomerContact> { IPage<CustomerContactDto> listPage(Page<CustomerContactDto> page, @Param("customerContactDto") CustomerContactDto customerContactDto); } src/main/java/com/ruoyi/basic/pojo/CustomerContact.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,105 @@ package com.ruoyi.basic.pojo; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; import lombok.ToString; import java.io.Serializable; import java.time.LocalDateTime; /** * <p> * 客æ·è系人表 * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-05-07 03:46:40 */ @Getter @Setter @ToString @TableName("customer_contact") @ApiModel(value = "CustomerContact对象", description = "客æ·è系人表") public class CustomerContact implements Serializable { private static final long serialVersionUID = 1L; /** * 主é®ID */ @ApiModelProperty("主é®ID") @TableId(value = "id", type = IdType.AUTO) private Long id; /** * è系人åç§° */ @ApiModelProperty("è系人åç§°") private String contactName; /** * çµè¯ */ @ApiModelProperty("çµè¯") private String phone; /** * å ³è客æ·ä¿¡æ¯è¡¨ID */ @ApiModelProperty("å ³è客æ·ä¿¡æ¯è¡¨ID") private String customerId; /** * é¨é¨ID */ @ApiModelProperty("é¨é¨ID") @TableField(fill = FieldFill.INSERT) private Long deptId; /** * å建人 */ @ApiModelProperty("å建人") @TableField(fill = FieldFill.INSERT) private Long createUser; /** * å建æ¶é´ */ @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** * æ´æ°äºº */ @ApiModelProperty("æ´æ°äºº") @TableField(fill = FieldFill.INSERT_UPDATE) private Long updateUser; /** * æ´æ°æ¶é´ */ @ApiModelProperty("æ´æ°æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; /** * 夿³¨ */ @ApiModelProperty("夿³¨") private String remark; /** * å 餿 å¿ï¼0代表åå¨ 2代表å é¤ï¼ */ @ApiModelProperty("å 餿 å¿ï¼0代表åå¨ 2代表å é¤ï¼") private String delFlag; } src/main/java/com/ruoyi/basic/service/CustomerContactService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.ruoyi.basic.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.dto.CustomerContactDto; import com.ruoyi.basic.pojo.CustomerContact; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 客æ·è系人表 æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-05-07 03:46:40 */ public interface CustomerContactService extends IService<CustomerContact> { IPage<CustomerContactDto> listPage(Page<CustomerContactDto> page, CustomerContactDto customerContact); Boolean add(CustomerContactDto customerContact); Boolean updateCustomerContact(CustomerContactDto customerContact); CustomerContactDto getCustomerContactDtoById(Long id); } src/main/java/com/ruoyi/basic/service/impl/CustomerContactServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,84 @@ package com.ruoyi.basic.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.basic.dto.CustomerContactDto; import com.ruoyi.basic.mapper.CustomerContactMapper; import com.ruoyi.basic.pojo.CustomerContact; import com.ruoyi.basic.service.CustomerContactService; import com.ruoyi.common.utils.bean.BeanUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * <p> * 客æ·è系人表 æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-05-07 03:46:40 */ @Service @RequiredArgsConstructor public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMapper, CustomerContact> implements CustomerContactService { private final CustomerContactMapper customerContactMapper; @Override public IPage<CustomerContactDto> listPage(Page<CustomerContactDto> page, CustomerContactDto customerContactDto) { return customerContactMapper.listPage(page,customerContactDto); } @Override public Boolean add(CustomerContactDto customerContact) { List<Long> idList = customerContact.getCustomerIdList(); if (idList != null && !idList.isEmpty()) { String result = idList.stream() .filter(Objects::nonNull) .distinct() .map(String::valueOf) // å° Long 转æ¢ä¸º String .collect(Collectors.joining(",")); customerContact.setCustomerId(result); } return save(customerContact); } @Override public Boolean updateCustomerContact(CustomerContactDto customerContact) { List<Long> idList = customerContact.getCustomerIdList(); if (idList != null && !idList.isEmpty()) { String result = idList.stream() .filter(Objects::nonNull) .distinct() .map(String::valueOf) // å° Long 转æ¢ä¸º String .collect(Collectors.joining(",")); customerContact.setCustomerId(result); } return updateById(customerContact); } @Override public CustomerContactDto getCustomerContactDtoById(Long id) { CustomerContact byId = getById(id); CustomerContactDto customerContactDto = new CustomerContactDto(); BeanUtils.copyProperties(byId, customerContactDto); if (byId != null && byId.getCustomerId() != null && !byId.getCustomerId().isEmpty()) { List<Long> idList = Arrays.stream(byId.getCustomerId().split(",")) .map(String::trim) // å»é¤å¯è½çç©ºæ ¼ .filter(s -> !s.isEmpty()) // è¿æ»¤ç©ºå符串 .map(Long::parseLong) // 转æ¢ä¸º Long .collect(Collectors.toList()); customerContactDto.setCustomerIdList(idList); } else { customerContactDto.setCustomerIdList(new ArrayList<>()); } return customerContactDto; } } src/main/resources/mapper/basic/CustomerContactMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@ <?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.ruoyi.basic.mapper.CustomerContactMapper"> <!-- éç¨æ¥è¯¢æ å°ç»æ --> <resultMap id="BaseResultMap" type="com.ruoyi.basic.pojo.CustomerContact"> <id column="id" property="id" /> <result column="contact_name" property="contactName" /> <result column="phone" property="phone" /> <result column="customer_id" property="customerId" /> <result column="dept_id" property="deptId" /> <result column="create_user" property="createUser" /> <result column="create_time" property="createTime" /> <result column="update_user" property="updateUser" /> <result column="update_time" property="updateTime" /> <result column="remark" property="remark" /> <result column="del_flag" property="delFlag" /> </resultMap> <select id="listPage" resultType="com.ruoyi.basic.dto.CustomerContactDto"> SELECT cc.*, ( SELECT GROUP_CONCAT(ci.customer_name SEPARATOR ',') FROM customer ci WHERE FIND_IN_SET(ci.id, cc.customer_id) ) AS customer_names FROM customer_contact cc <where> cc.del_flag = 0 <if test="customerContactDto.contactName != null and customerContactDto.contactName !=''"> and cc.contact_name = #{customerContactDto.contactName} </if> <if test="customerContactDto.phone != null and customerContactDto.phone !=''"> and cc.phone = #{customerContactDto.phone} </if> </where> </select> </mapper>