Browse Source

salesforce管理

jwy
review512jwy@163.com 1 month ago
parent
commit
a3aa52f709
  1. 29
      data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/SalesforceController.java
  2. 7
      data-center-business-controller/src/main/resources/db/migration/V74__sales.sql
  3. 64
      data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/auto/SalesforceDeviceRelationMapper.java
  4. 3
      data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/BasicSalesforceMapperExt.java
  5. 8
      data-center-business-dao/src/main/java/com/techsor/datacenter/business/dao/ex/SalesforceDeviceRelationMapperExt.java
  6. 198
      data-center-business-dao/src/main/resources/mappers/auto/SalesforceDeviceRelationMapper.xml
  7. 37
      data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml
  8. 6
      data-center-business-dao/src/main/resources/mappers/ex/DeviceInfoMapperExt.xml
  9. 4
      data-center-business-dao/src/main/resources/mybatis-generator/generatorConfig.xml
  10. 3
      data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/device/DeviceSearchParams.java
  11. 5
      data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/OptSalesforceParams.java
  12. 21
      data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/salesforce/SalesforceBingDeviceSearchParams.java
  13. 132
      data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelation.java
  14. 482
      data-center-business-model/src/main/java/com/techsor/datacenter/business/model/SalesforceDeviceRelationExample.java
  15. 46
      data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/device/DeviceShortVO.java
  16. 8
      data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java
  17. 4
      data-center-business-service/src/main/java/com/techsor/datacenter/business/service/SalesforceService.java
  18. 48
      data-center-business-service/src/main/java/com/techsor/datacenter/business/service/impl/SalesforceServiceImpl.java

29
data-center-business-controller/src/main/java/com/techsor/datacenter/business/controller/SalesforceController.java

@ -1,5 +1,7 @@
package com.techsor.datacenter.business.controller; 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.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -105,4 +107,31 @@ public class SalesforceController {
return pageResponse; return pageResponse;
} }
@Operation(summary = "Get device for binding")
@RequestMapping(value = "/getDevicePageForBinding", method = RequestMethod.GET)
public PageResponse<PageInfo<DeviceShortVO>> 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<PageInfo<DeviceShortVO>> 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;
}
} }

7
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, `updated_at` datetime DEFAULT NULL,
UNIQUE KEY `salesforce_id` (`salesforce_id`) UNIQUE KEY `salesforce_id` (`salesforce_id`)
) ENGINE=InnoDB COMMENT='salesforce同步信息'; ) 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和设备关系表';

64
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<SalesforceDeviceRelation> 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);
}

3
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; package com.techsor.datacenter.business.dao.ex;
import com.techsor.datacenter.business.dao.auto.BasicSalesforceMapper; 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.SalesforceSearchParams;
import com.techsor.datacenter.business.dto.salesforce.OptSalesforceParams; 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 com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -15,4 +17,5 @@ public interface BasicSalesforceMapperExt extends BasicSalesforceMapper {
List<SalesforcePageVO> getListPage(SalesforceSearchParams pageSearchParam); List<SalesforcePageVO> getListPage(SalesforceSearchParams pageSearchParam);
List<DeviceShortVO> getDevicePageForBinding(SalesforceBingDeviceSearchParams pageSearchParam);
} }

8
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 {
}

198
data-center-business-dao/src/main/resources/mappers/auto/SalesforceDeviceRelationMapper.xml

@ -0,0 +1,198 @@
<?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.techsor.datacenter.business.dao.auto.SalesforceDeviceRelationMapper">
<resultMap id="BaseResultMap" type="com.techsor.datacenter.business.model.SalesforceDeviceRelation">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<result column="salesforce_info_id" jdbcType="BIGINT" property="salesforceInfoId" />
<result column="device_info_id" jdbcType="BIGINT" property="deviceInfoId" />
<result column="create_time" jdbcType="BIGINT" property="createTime" />
</resultMap>
<sql id="Example_Where_Clause">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
salesforce_info_id, device_info_id, create_time
</sql>
<select id="selectByExample" parameterType="com.techsor.datacenter.business.model.SalesforceDeviceRelationExample" resultMap="BaseResultMap">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<if test="distinct">
distinct
</if>
'true' as QUERYID,
<include refid="Base_Column_List" />
from salesforce_device_relation
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<delete id="deleteByExample" parameterType="com.techsor.datacenter.business.model.SalesforceDeviceRelationExample">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
delete from salesforce_device_relation
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.techsor.datacenter.business.model.SalesforceDeviceRelation">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into salesforce_device_relation (salesforce_info_id, device_info_id, create_time
)
values (#{salesforceInfoId,jdbcType=BIGINT}, #{deviceInfoId,jdbcType=BIGINT}, #{createTime,jdbcType=BIGINT}
)
</insert>
<insert id="insertSelective" parameterType="com.techsor.datacenter.business.model.SalesforceDeviceRelation">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
insert into salesforce_device_relation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="salesforceInfoId != null">
salesforce_info_id,
</if>
<if test="deviceInfoId != null">
device_info_id,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="salesforceInfoId != null">
#{salesforceInfoId,jdbcType=BIGINT},
</if>
<if test="deviceInfoId != null">
#{deviceInfoId,jdbcType=BIGINT},
</if>
<if test="createTime != null">
#{createTime,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.techsor.datacenter.business.model.SalesforceDeviceRelationExample" resultType="java.lang.Long">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select count(*) from salesforce_device_relation
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
update salesforce_device_relation
<set>
<if test="record.salesforceInfoId != null">
salesforce_info_id = #{record.salesforceInfoId,jdbcType=BIGINT},
</if>
<if test="record.deviceInfoId != null">
device_info_id = #{record.deviceInfoId,jdbcType=BIGINT},
</if>
<if test="record.createTime != null">
create_time = #{record.createTime,jdbcType=BIGINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
<!--
WARNING - @mbg.generated
This element is automatically generated by MyBatis Generator, do not modify.
-->
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}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
</mapper>

37
data-center-business-dao/src/main/resources/mappers/ex/BasicSalesforceMapperExt.xml

@ -25,21 +25,48 @@
bsales.company_id, bsales.company_id,
bcomp.company_name, bcomp.company_name,
bsales.salesforce_id, bsales.salesforce_id,
bsales.remark bsales.remark,
FROM GROUP_CONCAT(DISTINCT di.id) AS deviceInfoIds,
basic_salesforce bsales GROUP_CONCAT(DISTINCT di.device_id) AS deviceIds
FROM basic_salesforce bsales
INNER JOIN data_center_aeon_admin.basic_company bcomp ON bcomp.id = bsales.company_id INNER JOIN data_center_aeon_admin.basic_company bcomp ON bcomp.id = bsales.company_id
LEFT JOIN salesforce_device_relation sdr ON sdr.salesforce_info_id = bsales.id
LEFT JOIN device_info di ON di.id = sdr.device_info_id AND di.flag = 0
WHERE WHERE
bsales.flag != 1 AND bcomp.flag != 1 bsales.flag != 1 AND bcomp.flag != 1
AND bsales.company_id IN <foreach collection="companyIdList" item="item" open="(" separator="," close=")">#{item}</foreach> AND bsales.company_id IN
<foreach collection="companyIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="idList != null"> <if test="idList != null">
AND bsales.id IN <foreach collection="idList" item="item" open="(" separator="," close=")">#{item}</foreach> AND bsales.id IN
<foreach collection="idList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if> </if>
<if test="salesforceId != null and salesforceId != '' "> <if test="salesforceId != null and salesforceId != '' ">
AND bsales.salesforce_id LIKE CONCAT('%',#{salesforceId},'%') AND bsales.salesforce_id LIKE CONCAT('%',#{salesforceId},'%')
</if> </if>
GROUP BY bsales.id
ORDER BY bsales.id DESC ORDER BY bsales.id DESC
</select> </select>
<select id="getDevicePageForBinding" resultType="com.techsor.datacenter.business.vo.device.DeviceShortVO">
SELECT
di.*
FROM
device_info di
WHERE di.flag = 0
AND di.company_id IN
<foreach collection="companyIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND NOT EXISTS (
SELECT 1 FROM salesforce_device_relation sdr
WHERE sdr.device_info_id = di.id
<!-- AND sdr.salesforce_info_id = #{id}-->
)
</select>
</mapper> </mapper>

6
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 left join target_id_check tic on dac.id = tic.alert_config_id
</if> </if>
<where> <where>
<if test="deviceVO.deviceInfoIdList != null and deviceVO.deviceInfoIdList.size() > 0">
and device_info.id in
<foreach collection="deviceVO.deviceInfoIdList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="deviceVO.deviceId != null and deviceVO.deviceId != ''"> <if test="deviceVO.deviceId != null and deviceVO.deviceId != ''">
and device_info.device_id like concat('%', #{deviceVO.deviceId}, '%') and device_info.device_id like concat('%', #{deviceVO.deviceId}, '%')
</if> </if>

4
data-center-business-dao/src/main/resources/mybatis-generator/generatorConfig.xml

@ -298,5 +298,9 @@
<property name="useActualColumnNames" value="false" /> <property name="useActualColumnNames" value="false" />
<generatedKey column="id" sqlStatement="Mysql" identity="true" /> <generatedKey column="id" sqlStatement="Mysql" identity="true" />
</table> </table>
<table tableName="salesforce_device_relation" domainObjectName="SalesforceDeviceRelation" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">
<property name="useActualColumnNames" value="false" />
</table>
</context> </context>
</generatorConfiguration> </generatorConfiguration>

3
data-center-business-model/src/main/java/com/techsor/datacenter/business/dto/device/DeviceSearchParams.java

@ -9,6 +9,9 @@ import lombok.Data;
@Data @Data
public class DeviceSearchParams extends BaseSearchParams { public class DeviceSearchParams extends BaseSearchParams {
@Schema(description = "device primary key ID list", example = "[]")
private List<Long> deviceInfoIdList;
@Schema(description ="Binded building IDs", hidden = true) @Schema(description ="Binded building IDs", hidden = true)
private List<Long> bindBuildingIdList; private List<Long> bindBuildingIdList;

5
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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @author Mr.Jiang * @author Mr.Jiang
* @time 2022年7月21日 下午8:50:31 * @time 2022年7月21日 下午8:50:31
@ -19,6 +21,9 @@ public class OptSalesforceParams{
@Schema(description = "Salesforce id", example = "testSalesforce1", required = true) @Schema(description = "Salesforce id", example = "testSalesforce1", required = true)
private String salesforceId; private String salesforceId;
@Schema(description = "device primary key ID list", example = "[]")
private List<Long> deviceInfoIdList;
@Schema(description = "备注", example = "user1", required = true) @Schema(description = "备注", example = "user1", required = true)
private String remark; private String remark;

21
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;
}

132
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();
}
}

482
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<Criteria> 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<Criteria>();
}
/**
* 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<Criteria> 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<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> 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<Long> values) {
addCriterion("salesforce_info_id in", values, "salesforceInfoId");
return (Criteria) this;
}
public Criteria andSalesforceInfoIdNotIn(List<Long> 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<Long> values) {
addCriterion("device_info_id in", values, "deviceInfoId");
return (Criteria) this;
}
public Criteria andDeviceInfoIdNotIn(List<Long> 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<Long> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Long> 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);
}
}
}

46
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;
}

8
data-center-business-model/src/main/java/com/techsor/datacenter/business/vo/salesforce/SalesforcePageVO.java

@ -10,7 +10,7 @@ import lombok.Data;
@Data @Data
public class SalesforcePageVO { public class SalesforcePageVO {
@Schema(description = "unique identifier ID", example = "2738967") @Schema(description = "primary key ID", example = "2738967")
private Long id; private Long id;
@Schema(description = "Company ID", example = "2738967", hidden = true) @Schema(description = "Company ID", example = "2738967", hidden = true)
@ -22,4 +22,10 @@ public class SalesforcePageVO {
@Schema(description = "备注", example = "user1", required = true, hidden = true) @Schema(description = "备注", example = "user1", required = true, hidden = true)
private String remark; 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;
} }

4
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.PageInfo;
import com.techsor.datacenter.business.common.response.SimpleDataResponse; import com.techsor.datacenter.business.common.response.SimpleDataResponse;
import com.techsor.datacenter.business.dto.salesforce.DeleteSalesforceParams; 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.SalesforceSearchParams;
import com.techsor.datacenter.business.dto.salesforce.OptSalesforceParams; 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 com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO;
/** /**
@ -22,4 +24,6 @@ public interface SalesforceService {
PageInfo<SalesforcePageVO> getListPage(SalesforceSearchParams pageSearchParam, Long companyId, Long userId, PageInfo<SalesforcePageVO> getListPage(SalesforceSearchParams pageSearchParam, Long companyId, Long userId,
Integer languageType, Integer uTCOffset); Integer languageType, Integer uTCOffset);
PageInfo<DeviceShortVO> getDevicePageForBinding(SalesforceBingDeviceSearchParams pageSearchParam, Long companyId, Long userId, Integer languageType, Integer utcOffset);
} }

48
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.ResponseCode;
import com.techsor.datacenter.business.common.response.SimpleDataResponse; import com.techsor.datacenter.business.common.response.SimpleDataResponse;
import com.techsor.datacenter.business.dao.ex.BasicSalesforceMapperExt; 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.DeleteSalesforceParams;
import com.techsor.datacenter.business.dto.salesforce.SalesforceBingDeviceSearchParams;
import com.techsor.datacenter.business.dto.salesforce.SalesforceSearchParams; import com.techsor.datacenter.business.dto.salesforce.SalesforceSearchParams;
import com.techsor.datacenter.business.dto.salesforce.OptSalesforceParams; import com.techsor.datacenter.business.dto.salesforce.OptSalesforceParams;
import com.techsor.datacenter.business.model.BasicSalesforce; import com.techsor.datacenter.business.model.BasicSalesforce;
import com.techsor.datacenter.business.model.BasicSalesforceExample; 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.SalesforceService;
import com.techsor.datacenter.business.service.UserOperationLogsService; import com.techsor.datacenter.business.service.UserOperationLogsService;
import com.techsor.datacenter.business.service.common.CommonOpt; import com.techsor.datacenter.business.service.common.CommonOpt;
import com.techsor.datacenter.business.util.CommonUtil; 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 com.techsor.datacenter.business.vo.salesforce.SalesforcePageVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -54,6 +62,8 @@ public class SalesforceServiceImpl implements SalesforceService {
private UserOperationLogsService userOperationLogsService; private UserOperationLogsService userOperationLogsService;
@Autowired @Autowired
private BasicSalesforceMapperExt basicSalesforceMapperExt; private BasicSalesforceMapperExt basicSalesforceMapperExt;
@Autowired
private SalesforceDeviceRelationMapperExt salesforceDeviceRelationMapperExt;
/** /**
@ -97,6 +107,9 @@ public class SalesforceServiceImpl implements SalesforceService {
basicSalesforce.setCreatorId(userId); basicSalesforce.setCreatorId(userId);
basicSalesforceMapperExt.insertSelective(basicSalesforce); basicSalesforceMapperExt.insertSelective(basicSalesforce);
//设备关联
insertDeviceRelation(optSalesforceParams, basicSalesforce, 1);
//Record log //Record log
userOperationLogsService.recordLog(companyId,userId,"添加Salesforce:"+basicSalesforce.getSalesforceId(), userOperationLogsService.recordLog(companyId,userId,"添加Salesforce:"+basicSalesforce.getSalesforceId(),
"Add 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. * Performs common verification operations on OptSalesforceParams.
* *
@ -276,6 +307,9 @@ public class SalesforceServiceImpl implements SalesforceService {
basicSalesforceMapperExt.updateByExampleSelective(basicSalesforce, example); basicSalesforceMapperExt.updateByExampleSelective(basicSalesforce, example);
//设备关联
insertDeviceRelation(optSalesforceParams, basicSalesforce, 2);
//Record log //Record log
userOperationLogsService.recordLog(companyId,userId,"编辑Salesforce:"+basicSalesforce.getSalesforceId(), userOperationLogsService.recordLog(companyId,userId,"编辑Salesforce:"+basicSalesforce.getSalesforceId(),
"edit Salesforce:"+basicSalesforce.getSalesforceId(), "edit Salesforce:"+basicSalesforce.getSalesforceId(),
@ -320,4 +354,18 @@ public class SalesforceServiceImpl implements SalesforceService {
return new PageInfo<>(resultList); return new PageInfo<>(resultList);
} }
@Override
public PageInfo<DeviceShortVO> 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<DeviceShortVO> resultList = basicSalesforceMapperExt.getDevicePageForBinding(pageSearchParam);
return new PageInfo<>(resultList);
}
} }

Loading…
Cancel
Save