diff --git a/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/SalesforceController.java b/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/SalesforceController.java index 73e928e..50efb31 100644 --- a/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/SalesforceController.java +++ b/data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/SalesforceController.java @@ -1,5 +1,7 @@ package com.techsor.datacenter.business.controller; +import com.techsor.datacenter.business.dto.salesforce.SalesforceBingDeviceSearchParams; +import com.techsor.datacenter.business.vo.device.DeviceShortVO; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; @@ -105,4 +107,31 @@ public class SalesforceController { return pageResponse; } + @Operation(summary = "Get device for binding") + @RequestMapping(value = "/getDevicePageForBinding", method = RequestMethod.GET) + public PageResponse> getDevicePageForBinding( + @Parameter(name = "LoginName", description = "Login name", required = true, schema = @Schema(defaultValue = "admin")) @RequestHeader(required = true) String LoginName, + @Parameter(name = "AccessToken", description = "Authentication token", required = true) @RequestHeader(required = true) String AccessToken, + @Parameter(name = "UserId", description = "User ID", required = true, schema = @Schema(defaultValue = "1")) @RequestHeader(required = true) Long UserId, + @Parameter(name = "CompanyId", description = "User's company ID", required = false, schema = @Schema(defaultValue = "1")) @RequestHeader(required = false) Long CompanyId, + @Parameter(name = "LanguageType", description = "Language type 0: Chinese 1: English 2: Japanese", required = true, schema = @Schema(defaultValue = "2")) @RequestHeader(required = true) Integer LanguageType, + @Parameter(name = "UTCOffset", description = "Time difference in minutes from UTC, e.g., East 8 is -480", required = true, schema = @Schema(defaultValue = "-480")) @RequestHeader(required = true) Integer UTCOffset, + SalesforceBingDeviceSearchParams pageSearchParam) throws BusinessException { + + pageSearchParam.setUserId(UserId); +// pageSearchParam.setId(id); + + PageResponse> pageResponse = new PageResponse<>(); + try { + pageResponse.setData(salesforceService.getDevicePageForBinding(pageSearchParam, CompanyId, UserId, LanguageType, UTCOffset)); + pageResponse.setCode(ResponseCode.SUCCESS); + pageResponse.setMsg("success"); + } catch (Exception e) { + logger.error("Error querying list", e); + pageResponse.setCode(ResponseCode.SERVER_ERROR); + pageResponse.setMsg("service error"); + } + return pageResponse; + } + } diff --git a/data-center-business-controller/src/main/resources/db/migration/V74__sales.sql b/data-center-business-controller/src/main/resources/db/migration/V74__sales.sql index 1e34b1b..ba53487 100644 --- a/data-center-business-controller/src/main/resources/db/migration/V74__sales.sql +++ b/data-center-business-controller/src/main/resources/db/migration/V74__sales.sql @@ -25,3 +25,10 @@ CREATE TABLE `salesforce_facility` ( `updated_at` datetime DEFAULT NULL, UNIQUE KEY `salesforce_id` (`salesforce_id`) ) ENGINE=InnoDB COMMENT='salesforce同步信息'; + + +CREATE TABLE `salesforce_device_relation` ( + `salesforce_info_id` bigint NOT NULL, + `device_info_id` bigint NOT NULL, + `create_time` bigint DEFAULT NULL +) ENGINE=InnoDB COMMENT='salesforce和设备关系表'; diff --git a/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/auto/SalesforceDeviceRelationMapper.java b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/auto/SalesforceDeviceRelationMapper.java new file mode 100644 index 0000000..343568f --- /dev/null +++ b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/auto/SalesforceDeviceRelationMapper.java @@ -0,0 +1,64 @@ +package com.techsor.datacenter.business.dao.auto; + +import com.techsor.datacenter.business.model.SalesforceDeviceRelation; +import com.techsor.datacenter.business.model.SalesforceDeviceRelationExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface SalesforceDeviceRelationMapper { + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + long countByExample(SalesforceDeviceRelationExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + int deleteByExample(SalesforceDeviceRelationExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + int insert(SalesforceDeviceRelation record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + int insertSelective(SalesforceDeviceRelation record); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + List selectByExample(SalesforceDeviceRelationExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + int updateByExampleSelective(@Param("record") SalesforceDeviceRelation record, @Param("example") SalesforceDeviceRelationExample example); + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + int updateByExample(@Param("record") SalesforceDeviceRelation record, @Param("example") SalesforceDeviceRelationExample example); +} \ No newline at end of file diff --git a/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicSalesforceMapperExt.java b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicSalesforceMapperExt.java index a4b3ce6..d860d2b 100644 --- a/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicSalesforceMapperExt.java +++ b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicSalesforceMapperExt.java @@ -1,8 +1,10 @@ package com.techsor.datacenter.business.dao.ex; import com.techsor.datacenter.business.dao.auto.BasicSalesforceMapper; +import com.techsor.datacenter.business.dto.salesforce.SalesforceBingDeviceSearchParams; import com.techsor.datacenter.business.dto.salesforce.SalesforceSearchParams; import com.techsor.datacenter.business.dto.salesforce.OptSalesforceParams; +import com.techsor.datacenter.business.vo.device.DeviceShortVO; import com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO; import org.apache.ibatis.annotations.Mapper; @@ -14,5 +16,6 @@ public interface BasicSalesforceMapperExt extends BasicSalesforceMapper { int checkExist(OptSalesforceParams optSalesforceParams); List getListPage(SalesforceSearchParams pageSearchParam); - + + List getDevicePageForBinding(SalesforceBingDeviceSearchParams pageSearchParam); } diff --git a/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/SalesforceDeviceRelationMapperExt.java b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/SalesforceDeviceRelationMapperExt.java new file mode 100644 index 0000000..8e61647 --- /dev/null +++ b/data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/SalesforceDeviceRelationMapperExt.java @@ -0,0 +1,8 @@ +package com.techsor.datacenter.business.dao.ex; + +import com.techsor.datacenter.business.dao.auto.SalesforceDeviceRelationMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SalesforceDeviceRelationMapperExt extends SalesforceDeviceRelationMapper { +} diff --git a/data-center-business-dao/src/main/resources/mappers/auto/SalesforceDeviceRelationMapper.xml b/data-center-business-dao/src/main/resources/mappers/auto/SalesforceDeviceRelationMapper.xml new file mode 100644 index 0000000..9562fbf --- /dev/null +++ b/data-center-business-dao/src/main/resources/mappers/auto/SalesforceDeviceRelationMapper.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + salesforce_info_id, device_info_id, create_time + + + + + delete from salesforce_device_relation + + + + + + + insert into salesforce_device_relation (salesforce_info_id, device_info_id, create_time + ) + values (#{salesforceInfoId,jdbcType=BIGINT}, #{deviceInfoId,jdbcType=BIGINT}, #{createTime,jdbcType=BIGINT} + ) + + + + insert into salesforce_device_relation + + + salesforce_info_id, + + + device_info_id, + + + create_time, + + + + + #{salesforceInfoId,jdbcType=BIGINT}, + + + #{deviceInfoId,jdbcType=BIGINT}, + + + #{createTime,jdbcType=BIGINT}, + + + + + + + update salesforce_device_relation + + + salesforce_info_id = #{record.salesforceInfoId,jdbcType=BIGINT}, + + + device_info_id = #{record.deviceInfoId,jdbcType=BIGINT}, + + + create_time = #{record.createTime,jdbcType=BIGINT}, + + + + + + + + + update salesforce_device_relation + set salesforce_info_id = #{record.salesforceInfoId,jdbcType=BIGINT}, + device_info_id = #{record.deviceInfoId,jdbcType=BIGINT}, + create_time = #{record.createTime,jdbcType=BIGINT} + + + + + \ No newline at end of file diff --git a/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml b/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml index 300b724..56f0bdf 100644 --- a/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml +++ b/data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml @@ -17,29 +17,56 @@ AND id != #{id} - - + + + + \ No newline at end of file diff --git a/data-center-business-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml b/data-center-business-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml index 82cb287..2e8e82c 100644 --- a/data-center-business-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml +++ b/data-center-business-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml @@ -77,6 +77,12 @@ left join target_id_check tic on dac.id = tic.alert_config_id + + and device_info.id in + + #{id} + + and device_info.device_id like concat('%', #{deviceVO.deviceId}, '%') diff --git a/data-center-business-dao/src/main/resources/mybatis-generator/generatorConfig.xml b/data-center-business-dao/src/main/resources/mybatis-generator/generatorConfig.xml index 81de56d..8525870 100644 --- a/data-center-business-dao/src/main/resources/mybatis-generator/generatorConfig.xml +++ b/data-center-business-dao/src/main/resources/mybatis-generator/generatorConfig.xml @@ -298,5 +298,9 @@ + + + +
\ No newline at end of file diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/device/DeviceSearchParams.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/device/DeviceSearchParams.java index fb0dcc0..f662928 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/device/DeviceSearchParams.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/device/DeviceSearchParams.java @@ -8,6 +8,9 @@ import lombok.Data; @Data public class DeviceSearchParams extends BaseSearchParams { + + @Schema(description = "device primary key ID list", example = "[]") + private List deviceInfoIdList; @Schema(description ="Binded building IDs", hidden = true) private List bindBuildingIdList; diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/OptSalesforceParams.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/OptSalesforceParams.java index 71227fd..915e882 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/OptSalesforceParams.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/OptSalesforceParams.java @@ -3,6 +3,8 @@ package com.techsor.datacenter.business.dto.salesforce; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.List; + /** * @author Mr.Jiang * @time 2022年7月21日 下午8:50:31 @@ -18,6 +20,9 @@ public class OptSalesforceParams{ @Schema(description = "Salesforce id", example = "testSalesforce1", required = true) private String salesforceId; + + @Schema(description = "device primary key ID list", example = "[]") + private List deviceInfoIdList; @Schema(description = "备注", example = "user1", required = true) private String remark; diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/SalesforceBingDeviceSearchParams.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/SalesforceBingDeviceSearchParams.java new file mode 100644 index 0000000..f7b1e9e --- /dev/null +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/SalesforceBingDeviceSearchParams.java @@ -0,0 +1,21 @@ +package com.techsor.datacenter.business.dto.salesforce; + +import com.techsor.datacenter.business.dto.BaseSearchParams; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** +* @author Mr.Jiang +* @time 2022年7月21日 下午8:50:31 +*/ +@Data +public class SalesforceBingDeviceSearchParams extends BaseSearchParams{ + + +// @Schema(description = "Salesforce primary key ID", example = "1") +// private Long id; + + +} diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelation.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelation.java new file mode 100644 index 0000000..dda8bbc --- /dev/null +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelation.java @@ -0,0 +1,132 @@ +package com.techsor.datacenter.business.model; + +import java.io.Serializable; + +public class SalesforceDeviceRelation implements Serializable { + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column salesforce_device_relation.salesforce_info_id + * + * @mbg.generated + */ + private Long salesforceInfoId; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column salesforce_device_relation.device_info_id + * + * @mbg.generated + */ + private Long deviceInfoId; + + /** + * + * This field was generated by MyBatis Generator. + * This field corresponds to the database column salesforce_device_relation.create_time + * + * @mbg.generated + */ + private Long createTime; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + private static final long serialVersionUID = 1L; + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column salesforce_device_relation.salesforce_info_id + * + * @return the value of salesforce_device_relation.salesforce_info_id + * + * @mbg.generated + */ + public Long getSalesforceInfoId() { + return salesforceInfoId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column salesforce_device_relation.salesforce_info_id + * + * @param salesforceInfoId the value for salesforce_device_relation.salesforce_info_id + * + * @mbg.generated + */ + public void setSalesforceInfoId(Long salesforceInfoId) { + this.salesforceInfoId = salesforceInfoId; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column salesforce_device_relation.device_info_id + * + * @return the value of salesforce_device_relation.device_info_id + * + * @mbg.generated + */ + public Long getDeviceInfoId() { + return deviceInfoId; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column salesforce_device_relation.device_info_id + * + * @param deviceInfoId the value for salesforce_device_relation.device_info_id + * + * @mbg.generated + */ + public void setDeviceInfoId(Long deviceInfoId) { + this.deviceInfoId = deviceInfoId; + } + + /** + * This method was generated by MyBatis Generator. + * This method returns the value of the database column salesforce_device_relation.create_time + * + * @return the value of salesforce_device_relation.create_time + * + * @mbg.generated + */ + public Long getCreateTime() { + return createTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method sets the value of the database column salesforce_device_relation.create_time + * + * @param createTime the value for salesforce_device_relation.create_time + * + * @mbg.generated + */ + public void setCreateTime(Long createTime) { + this.createTime = createTime; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", salesforceInfoId=").append(salesforceInfoId); + sb.append(", deviceInfoId=").append(deviceInfoId); + sb.append(", createTime=").append(createTime); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelationExample.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelationExample.java new file mode 100644 index 0000000..9b47270 --- /dev/null +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelationExample.java @@ -0,0 +1,482 @@ +package com.techsor.datacenter.business.model; + +import java.util.ArrayList; +import java.util.List; + +public class SalesforceDeviceRelationExample { + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + protected String orderByClause; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + protected boolean distinct; + + /** + * This field was generated by MyBatis Generator. + * This field corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + protected List oredCriteria; + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public SalesforceDeviceRelationExample() { + oredCriteria = new ArrayList(); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public String getOrderByClause() { + return orderByClause; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public boolean isDistinct() { + return distinct; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public List getOredCriteria() { + return oredCriteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + /** + * This method was generated by MyBatis Generator. + * This method corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andSalesforceInfoIdIsNull() { + addCriterion("salesforce_info_id is null"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdIsNotNull() { + addCriterion("salesforce_info_id is not null"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdEqualTo(Long value) { + addCriterion("salesforce_info_id =", value, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdNotEqualTo(Long value) { + addCriterion("salesforce_info_id <>", value, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdGreaterThan(Long value) { + addCriterion("salesforce_info_id >", value, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdGreaterThanOrEqualTo(Long value) { + addCriterion("salesforce_info_id >=", value, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdLessThan(Long value) { + addCriterion("salesforce_info_id <", value, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdLessThanOrEqualTo(Long value) { + addCriterion("salesforce_info_id <=", value, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdIn(List values) { + addCriterion("salesforce_info_id in", values, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdNotIn(List values) { + addCriterion("salesforce_info_id not in", values, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdBetween(Long value1, Long value2) { + addCriterion("salesforce_info_id between", value1, value2, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andSalesforceInfoIdNotBetween(Long value1, Long value2) { + addCriterion("salesforce_info_id not between", value1, value2, "salesforceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdIsNull() { + addCriterion("device_info_id is null"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdIsNotNull() { + addCriterion("device_info_id is not null"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdEqualTo(Long value) { + addCriterion("device_info_id =", value, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdNotEqualTo(Long value) { + addCriterion("device_info_id <>", value, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdGreaterThan(Long value) { + addCriterion("device_info_id >", value, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdGreaterThanOrEqualTo(Long value) { + addCriterion("device_info_id >=", value, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdLessThan(Long value) { + addCriterion("device_info_id <", value, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdLessThanOrEqualTo(Long value) { + addCriterion("device_info_id <=", value, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdIn(List values) { + addCriterion("device_info_id in", values, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdNotIn(List values) { + addCriterion("device_info_id not in", values, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdBetween(Long value1, Long value2) { + addCriterion("device_info_id between", value1, value2, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andDeviceInfoIdNotBetween(Long value1, Long value2) { + addCriterion("device_info_id not between", value1, value2, "deviceInfoId"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Long value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Long value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Long value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Long value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Long value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Long value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Long value1, Long value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Long value1, Long value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table salesforce_device_relation + * + * @mbg.generated do_not_delete_during_merge + */ + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + /** + * This class was generated by MyBatis Generator. + * This class corresponds to the database table salesforce_device_relation + * + * @mbg.generated + */ + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/device/DeviceShortVO.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/device/DeviceShortVO.java new file mode 100644 index 0000000..97689e7 --- /dev/null +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/device/DeviceShortVO.java @@ -0,0 +1,46 @@ +package com.techsor.datacenter.business.vo.device; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +/****** + * create table device_info + * ( + * id int auto_increment + * primary key, + * device_id varchar(45) not null, + * device_sn varchar(99) null comment '用于记录SN,当SN与deviceId不同时使用', + * type_id int null, + * wsclient_id int null, + * space_id bigint null comment '空间ID', + * device_name varchar(200) null comment '设备名称', + * remark varchar(500) null comment '备注信息', + * building_id bigint null comment '楼宇ID', + * assset_id bigint null comment '资产ID', + * flag int null, + * company_id bigint null comment '公司ID', + * created_by bigint null, + * created_timestamp timestamp null, + * updated_by bigint null, + * updated_timestamp bigint null, + * project_id bigint null comment '项目ID', + * floor_id bigint null comment '楼宇ID', + * constraint device_id_UNIQUE + * unique (device_id) + * ) + * comment '需要解析的zeta设备'; + * + * **/ +@Data +public class DeviceShortVO { + + private Long id; + + private String deviceId; + + private String deviceSn; + + private String deviceName; + +} diff --git a/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java index 06e039f..7cb72cc 100644 --- a/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java +++ b/data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java @@ -10,7 +10,7 @@ import lombok.Data; @Data public class SalesforcePageVO { - @Schema(description = "unique identifier ID", example = "2738967") + @Schema(description = "primary key ID", example = "2738967") private Long id; @Schema(description = "Company ID", example = "2738967", hidden = true) @@ -22,4 +22,10 @@ public class SalesforcePageVO { @Schema(description = "备注", example = "user1", required = true, hidden = true) private String remark; + @Schema(description = "device primary key ID,separated by commas", example = "1,2,3") + private String deviceInfoIds; + + @Schema(description = "device id,separated by commas", example = "dd1,dd2,dd3") + private String deviceIds; + } diff --git a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/SalesforceService.java b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/SalesforceService.java index e328055..9604b65 100644 --- a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/SalesforceService.java +++ b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/SalesforceService.java @@ -3,8 +3,10 @@ package com.techsor.datacenter.business.service; import com.techsor.datacenter.business.common.response.PageInfo; import com.techsor.datacenter.business.common.response.SimpleDataResponse; import com.techsor.datacenter.business.dto.salesforce.DeleteSalesforceParams; +import com.techsor.datacenter.business.dto.salesforce.SalesforceBingDeviceSearchParams; import com.techsor.datacenter.business.dto.salesforce.SalesforceSearchParams; import com.techsor.datacenter.business.dto.salesforce.OptSalesforceParams; +import com.techsor.datacenter.business.vo.device.DeviceShortVO; import com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO; /** @@ -22,4 +24,6 @@ public interface SalesforceService { PageInfo getListPage(SalesforceSearchParams pageSearchParam, Long companyId, Long userId, Integer languageType, Integer uTCOffset); + + PageInfo getDevicePageForBinding(SalesforceBingDeviceSearchParams pageSearchParam, Long companyId, Long userId, Integer languageType, Integer utcOffset); } diff --git a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/SalesforceServiceImpl.java b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/SalesforceServiceImpl.java index 665a4b2..53f85af 100644 --- a/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/SalesforceServiceImpl.java +++ b/data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/SalesforceServiceImpl.java @@ -9,16 +9,24 @@ import com.techsor.datacenter.business.common.response.PageInfo; import com.techsor.datacenter.business.common.response.ResponseCode; import com.techsor.datacenter.business.common.response.SimpleDataResponse; import com.techsor.datacenter.business.dao.ex.BasicSalesforceMapperExt; +import com.techsor.datacenter.business.dao.ex.SalesforceDeviceRelationMapperExt; +import com.techsor.datacenter.business.dto.level.LevelRelationEntity; import com.techsor.datacenter.business.dto.salesforce.DeleteSalesforceParams; +import com.techsor.datacenter.business.dto.salesforce.SalesforceBingDeviceSearchParams; import com.techsor.datacenter.business.dto.salesforce.SalesforceSearchParams; import com.techsor.datacenter.business.dto.salesforce.OptSalesforceParams; import com.techsor.datacenter.business.model.BasicSalesforce; import com.techsor.datacenter.business.model.BasicSalesforceExample; +import com.techsor.datacenter.business.model.SalesforceDeviceRelation; +import com.techsor.datacenter.business.model.SalesforceDeviceRelationExample; import com.techsor.datacenter.business.service.SalesforceService; import com.techsor.datacenter.business.service.UserOperationLogsService; import com.techsor.datacenter.business.service.common.CommonOpt; import com.techsor.datacenter.business.util.CommonUtil; +import com.techsor.datacenter.business.vo.device.DeviceShortVO; +import com.techsor.datacenter.business.vo.device.DeviceVO; import com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,6 +62,8 @@ public class SalesforceServiceImpl implements SalesforceService { private UserOperationLogsService userOperationLogsService; @Autowired private BasicSalesforceMapperExt basicSalesforceMapperExt; + @Autowired + private SalesforceDeviceRelationMapperExt salesforceDeviceRelationMapperExt; /** @@ -97,6 +107,9 @@ public class SalesforceServiceImpl implements SalesforceService { basicSalesforce.setCreatorId(userId); basicSalesforceMapperExt.insertSelective(basicSalesforce); + //设备关联 + insertDeviceRelation(optSalesforceParams, basicSalesforce, 1); + //Record log userOperationLogsService.recordLog(companyId,userId,"添加Salesforce:"+basicSalesforce.getSalesforceId(), "Add Salesforce:"+basicSalesforce.getSalesforceId(), @@ -112,6 +125,24 @@ public class SalesforceServiceImpl implements SalesforceService { } } + private void insertDeviceRelation(OptSalesforceParams optSalesforceParams, BasicSalesforce basicSalesforce, int optType) { + if (2 == optType){ + SalesforceDeviceRelationExample delRelationExample = new SalesforceDeviceRelationExample(); + delRelationExample.createCriteria().andSalesforceInfoIdEqualTo(basicSalesforce.getId()); + salesforceDeviceRelationMapperExt.deleteByExample(delRelationExample); + } + if (CollectionUtils.isNotEmpty(optSalesforceParams.getDeviceInfoIdList())) { + long currentUnix = System.currentTimeMillis(); + for (Long deviceInfoId : optSalesforceParams.getDeviceInfoIdList()){ + SalesforceDeviceRelation salesforceDeviceRelation = new SalesforceDeviceRelation(); + salesforceDeviceRelation.setSalesforceInfoId(basicSalesforce.getId()); + salesforceDeviceRelation.setDeviceInfoId(deviceInfoId); + salesforceDeviceRelation.setCreateTime(currentUnix); + salesforceDeviceRelationMapperExt.insertSelective(salesforceDeviceRelation); + } + } + } + /** * Performs common verification operations on OptSalesforceParams. * @@ -276,6 +307,9 @@ public class SalesforceServiceImpl implements SalesforceService { basicSalesforceMapperExt.updateByExampleSelective(basicSalesforce, example); + //设备关联 + insertDeviceRelation(optSalesforceParams, basicSalesforce, 2); + //Record log userOperationLogsService.recordLog(companyId,userId,"编辑Salesforce:"+basicSalesforce.getSalesforceId(), "edit Salesforce:"+basicSalesforce.getSalesforceId(), @@ -320,4 +354,18 @@ public class SalesforceServiceImpl implements SalesforceService { return new PageInfo<>(resultList); } + @Override + public PageInfo getDevicePageForBinding(SalesforceBingDeviceSearchParams pageSearchParam, Long companyId, Long userId, Integer languageType, Integer utcOffset) { + //list防${}注入 + if (StringUtils.isBlank(pageSearchParam.getCompanyIds())) { + pageSearchParam.setCompanyIdList(Arrays.asList(companyId)); + } else { + pageSearchParam.setCompanyIdList(commonOpt.filterCompanyIds(companyId, pageSearchParam.getCompanyIds())); + } + PageHelper.startPage(pageSearchParam.getPageNum() == null ? 1 : pageSearchParam.getPageNum(), pageSearchParam.getPageSize() == null ? 20 : pageSearchParam.getPageSize()); + List resultList = basicSalesforceMapperExt.getDevicePageForBinding(pageSearchParam); + + return new PageInfo<>(resultList); + } + }