Commit 8f85105e authored by 廖旭伟's avatar 廖旭伟

天府通办应用访问量埋点

parent 88d48877
......@@ -4,6 +4,7 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ITask;
import com.mortals.framework.service.ITaskExcuteService;
import com.mortals.xhx.feign.site.ISiteFeign;
import com.mortals.xhx.module.converge.service.ConvergeAppsService;
import com.mortals.xhx.module.converge.service.ConvergeDeviceService;
import com.mortals.xhx.module.converge.service.ConvergeSiteService;
import lombok.extern.slf4j.Slf4j;
......@@ -21,16 +22,29 @@ public class ProvinceConvergeTaskImpl implements ITaskExcuteService {
private ConvergeSiteService convergeSiteService;
@Autowired
private ConvergeDeviceService convergeDeviceService;
@Autowired
private ConvergeAppsService convergeAppsService;
@Override
public void excuteTask(ITask task) throws AppException {
log.info("开始执行省平台数据汇聚任务...");
try {
convergeSiteService.doConvergeSite();
}catch (Exception e){
log.error("汇聚网点数据执行出错",e);
}
try {
convergeDeviceService.doConvergeDevice();
}catch (Exception e){
log.error("数据汇聚任务执行出错",e);
log.error("汇聚设备数据出错",e);
}
try {
convergeAppsService.doConvergeApps();
}catch (Exception e){
log.error("汇聚应用数据出错",e);
}
log.info("省平台数据汇聚任务执行完成");
}
......
package com.mortals.xhx.module.converge.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import com.mortals.xhx.module.converge.model.vo.AppsAccessVo;
import java.util.List;
/**
* 应用访问Dao
* 应用访问 DAO接口
*
* @author zxfei
* @date 2023-07-03
*/
public interface ConvergeAppsAccessDao extends ICRUDDao<ConvergeAppsAccessEntity,Long>{
/**
* 应用浏览量PV统计
* @return
*/
List<AppsAccessVo> getAppsAccessPv();
/**
* 应用浏览量UV统计
* @return
*/
List<AppsAccessVo> getAppsAccessUv();
}
package com.mortals.xhx.module.converge.dao.ibatis;
import com.mortals.xhx.module.converge.model.vo.AppsAccessVo;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.converge.dao.ConvergeAppsAccessDao;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 应用访问DaoImpl DAO接口
*
* @author zxfei
* @date 2023-07-03
*/
@Repository("convergeAppsAccessDao")
public class ConvergeAppsAccessDaoImpl extends BaseCRUDDaoMybatis<ConvergeAppsAccessEntity,Long> implements ConvergeAppsAccessDao {
@Override
public List<AppsAccessVo> getAppsAccessPv() {
return this.getSqlSession().selectList(this.getSqlId("getAppsAccessPv"));
}
@Override
public List<AppsAccessVo> getAppsAccessUv() {
return this.getSqlSession().selectList(this.getSqlId("getAppsAccessUv"));
}
}
package com.mortals.xhx.module.converge.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.converge.model.vo.ConvergeAppsAccessVo;
import lombok.Data;
/**
* 应用访问实体对象
*
* @author zxfei
* @date 2023-07-04
*/
@Data
public class ConvergeAppsAccessEntity extends ConvergeAppsAccessVo {
private static final long serialVersionUID = 1L;
/**
* 站点id
*/
private Long siteId;
/**
* 应用ID
*/
private String applicationId;
/**
* 应用名称
*/
private String applicationName;
/**
* 应用打开时间
*/
private Date startTime;
/**
* 应用关闭时间
*/
private Date endTime;
/**
* 用户ID
*/
private String userId;
/**
* 用户名称
*/
private String userName;
/**
* 渠道ID
*/
private String channelId;
/**
* 渠道名称
*/
private String channelName;
/**
* 地域
*/
private String location;
/**
* 客户端名称
*/
private String clientName;
/**
* 客户端版本号
*/
private String version;
/**
* 设备唯一标识
*/
private String ecode;
/**
* 应用简称
*/
private String appSimpleName;
/**
* 应用提供方
*/
private String provider;
/**
* 应用来源
*/
private String origin;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof ConvergeAppsAccessEntity) {
ConvergeAppsAccessEntity tmp = (ConvergeAppsAccessEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.siteId = -1L;
this.applicationId = "";
this.applicationName = "";
this.startTime = null;
this.endTime = null;
this.userId = "";
this.userName = "";
this.channelId = "";
this.channelName = "";
this.location = "";
this.clientName = "";
this.version = "";
this.ecode = "";
this.appSimpleName = "";
this.provider = "";
this.origin = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.converge.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
/**
* 应用访问查询对象
*
* @author zxfei
* @date 2023-07-04
*/
public class ConvergeAppsAccessQuery extends ConvergeAppsAccessEntity {
/** 开始 序号,主键,自增长 */
private Long idStart;
/** 结束 序号,主键,自增长 */
private Long idEnd;
/** 增加 序号,主键,自增长 */
private Long idIncrement;
/** 序号,主键,自增长列表 */
private List <Long> idList;
/** 序号,主键,自增长排除列表 */
private List <Long> idNotList;
/** 开始 站点id */
private Long siteIdStart;
/** 结束 站点id */
private Long siteIdEnd;
/** 增加 站点id */
private Long siteIdIncrement;
/** 站点id列表 */
private List <Long> siteIdList;
/** 站点id排除列表 */
private List <Long> siteIdNotList;
/** 应用ID */
private List<String> applicationIdList;
/** 应用ID排除列表 */
private List <String> applicationIdNotList;
/** 应用名称 */
private List<String> applicationNameList;
/** 应用名称排除列表 */
private List <String> applicationNameNotList;
/** 开始 应用打开时间 */
private String startTimeStart;
/** 结束 应用打开时间 */
private String startTimeEnd;
/** 开始 应用关闭时间 */
private String endTimeStart;
/** 结束 应用关闭时间 */
private String endTimeEnd;
/** 用户ID */
private List<String> userIdList;
/** 用户ID排除列表 */
private List <String> userIdNotList;
/** 用户名称 */
private List<String> userNameList;
/** 用户名称排除列表 */
private List <String> userNameNotList;
/** 渠道ID */
private List<String> channelIdList;
/** 渠道ID排除列表 */
private List <String> channelIdNotList;
/** 渠道名称 */
private List<String> channelNameList;
/** 渠道名称排除列表 */
private List <String> channelNameNotList;
/** 地域 */
private List<String> locationList;
/** 地域排除列表 */
private List <String> locationNotList;
/** 客户端名称 */
private List<String> clientNameList;
/** 客户端名称排除列表 */
private List <String> clientNameNotList;
/** 客户端版本号 */
private List<String> versionList;
/** 客户端版本号排除列表 */
private List <String> versionNotList;
/** 设备唯一标识 */
private List<String> ecodeList;
/** 设备唯一标识排除列表 */
private List <String> ecodeNotList;
/** 应用简称 */
private List<String> appSimpleNameList;
/** 应用简称排除列表 */
private List <String> appSimpleNameNotList;
/** 应用提供方 */
private List<String> providerList;
/** 应用提供方排除列表 */
private List <String> providerNotList;
/** 应用来源 */
private List<String> originList;
/** 应用来源排除列表 */
private List <String> originNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<ConvergeAppsAccessQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<ConvergeAppsAccessQuery> andConditionList;
public ConvergeAppsAccessQuery(){}
/**
* 获取 开始 序号,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 序号,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 序号,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 序号,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 序号,主键,自增长
* @return idNotList
*/
public List<Long> getIdNotList(){
return this.idNotList;
}
/**
* 设置 序号,主键,自增长
* @param idNotList
*/
public void setIdNotList(List<Long> idNotList){
this.idNotList = idNotList;
}
/**
* 获取 开始 站点id
* @return siteIdStart
*/
public Long getSiteIdStart(){
return this.siteIdStart;
}
/**
* 设置 开始 站点id
* @param siteIdStart
*/
public void setSiteIdStart(Long siteIdStart){
this.siteIdStart = siteIdStart;
}
/**
* 获取 结束 站点id
* @return $siteIdEnd
*/
public Long getSiteIdEnd(){
return this.siteIdEnd;
}
/**
* 设置 结束 站点id
* @param siteIdEnd
*/
public void setSiteIdEnd(Long siteIdEnd){
this.siteIdEnd = siteIdEnd;
}
/**
* 获取 增加 站点id
* @return siteIdIncrement
*/
public Long getSiteIdIncrement(){
return this.siteIdIncrement;
}
/**
* 设置 增加 站点id
* @param siteIdIncrement
*/
public void setSiteIdIncrement(Long siteIdIncrement){
this.siteIdIncrement = siteIdIncrement;
}
/**
* 获取 站点id
* @return siteIdList
*/
public List<Long> getSiteIdList(){
return this.siteIdList;
}
/**
* 设置 站点id
* @param siteIdList
*/
public void setSiteIdList(List<Long> siteIdList){
this.siteIdList = siteIdList;
}
/**
* 获取 站点id
* @return siteIdNotList
*/
public List<Long> getSiteIdNotList(){
return this.siteIdNotList;
}
/**
* 设置 站点id
* @param siteIdNotList
*/
public void setSiteIdNotList(List<Long> siteIdNotList){
this.siteIdNotList = siteIdNotList;
}
/**
* 获取 应用ID
* @return applicationIdList
*/
public List<String> getApplicationIdList(){
return this.applicationIdList;
}
/**
* 设置 应用ID
* @param applicationIdList
*/
public void setApplicationIdList(List<String> applicationIdList){
this.applicationIdList = applicationIdList;
}
/**
* 获取 应用ID
* @return applicationIdNotList
*/
public List<String> getApplicationIdNotList(){
return this.applicationIdNotList;
}
/**
* 设置 应用ID
* @param applicationIdNotList
*/
public void setApplicationIdNotList(List<String> applicationIdNotList){
this.applicationIdNotList = applicationIdNotList;
}
/**
* 获取 应用名称
* @return applicationNameList
*/
public List<String> getApplicationNameList(){
return this.applicationNameList;
}
/**
* 设置 应用名称
* @param applicationNameList
*/
public void setApplicationNameList(List<String> applicationNameList){
this.applicationNameList = applicationNameList;
}
/**
* 获取 应用名称
* @return applicationNameNotList
*/
public List<String> getApplicationNameNotList(){
return this.applicationNameNotList;
}
/**
* 设置 应用名称
* @param applicationNameNotList
*/
public void setApplicationNameNotList(List<String> applicationNameNotList){
this.applicationNameNotList = applicationNameNotList;
}
/**
* 获取 开始 应用打开时间
* @return startTimeStart
*/
public String getStartTimeStart(){
return this.startTimeStart;
}
/**
* 设置 开始 应用打开时间
* @param startTimeStart
*/
public void setStartTimeStart(String startTimeStart){
this.startTimeStart = startTimeStart;
}
/**
* 获取 结束 应用打开时间
* @return startTimeEnd
*/
public String getStartTimeEnd(){
return this.startTimeEnd;
}
/**
* 设置 结束 应用打开时间
* @param startTimeEnd
*/
public void setStartTimeEnd(String startTimeEnd){
this.startTimeEnd = startTimeEnd;
}
/**
* 获取 开始 应用关闭时间
* @return endTimeStart
*/
public String getEndTimeStart(){
return this.endTimeStart;
}
/**
* 设置 开始 应用关闭时间
* @param endTimeStart
*/
public void setEndTimeStart(String endTimeStart){
this.endTimeStart = endTimeStart;
}
/**
* 获取 结束 应用关闭时间
* @return endTimeEnd
*/
public String getEndTimeEnd(){
return this.endTimeEnd;
}
/**
* 设置 结束 应用关闭时间
* @param endTimeEnd
*/
public void setEndTimeEnd(String endTimeEnd){
this.endTimeEnd = endTimeEnd;
}
/**
* 获取 用户ID
* @return userIdList
*/
public List<String> getUserIdList(){
return this.userIdList;
}
/**
* 设置 用户ID
* @param userIdList
*/
public void setUserIdList(List<String> userIdList){
this.userIdList = userIdList;
}
/**
* 获取 用户ID
* @return userIdNotList
*/
public List<String> getUserIdNotList(){
return this.userIdNotList;
}
/**
* 设置 用户ID
* @param userIdNotList
*/
public void setUserIdNotList(List<String> userIdNotList){
this.userIdNotList = userIdNotList;
}
/**
* 获取 用户名称
* @return userNameList
*/
public List<String> getUserNameList(){
return this.userNameList;
}
/**
* 设置 用户名称
* @param userNameList
*/
public void setUserNameList(List<String> userNameList){
this.userNameList = userNameList;
}
/**
* 获取 用户名称
* @return userNameNotList
*/
public List<String> getUserNameNotList(){
return this.userNameNotList;
}
/**
* 设置 用户名称
* @param userNameNotList
*/
public void setUserNameNotList(List<String> userNameNotList){
this.userNameNotList = userNameNotList;
}
/**
* 获取 渠道ID
* @return channelIdList
*/
public List<String> getChannelIdList(){
return this.channelIdList;
}
/**
* 设置 渠道ID
* @param channelIdList
*/
public void setChannelIdList(List<String> channelIdList){
this.channelIdList = channelIdList;
}
/**
* 获取 渠道ID
* @return channelIdNotList
*/
public List<String> getChannelIdNotList(){
return this.channelIdNotList;
}
/**
* 设置 渠道ID
* @param channelIdNotList
*/
public void setChannelIdNotList(List<String> channelIdNotList){
this.channelIdNotList = channelIdNotList;
}
/**
* 获取 渠道名称
* @return channelNameList
*/
public List<String> getChannelNameList(){
return this.channelNameList;
}
/**
* 设置 渠道名称
* @param channelNameList
*/
public void setChannelNameList(List<String> channelNameList){
this.channelNameList = channelNameList;
}
/**
* 获取 渠道名称
* @return channelNameNotList
*/
public List<String> getChannelNameNotList(){
return this.channelNameNotList;
}
/**
* 设置 渠道名称
* @param channelNameNotList
*/
public void setChannelNameNotList(List<String> channelNameNotList){
this.channelNameNotList = channelNameNotList;
}
/**
* 获取 地域
* @return locationList
*/
public List<String> getLocationList(){
return this.locationList;
}
/**
* 设置 地域
* @param locationList
*/
public void setLocationList(List<String> locationList){
this.locationList = locationList;
}
/**
* 获取 地域
* @return locationNotList
*/
public List<String> getLocationNotList(){
return this.locationNotList;
}
/**
* 设置 地域
* @param locationNotList
*/
public void setLocationNotList(List<String> locationNotList){
this.locationNotList = locationNotList;
}
/**
* 获取 客户端名称
* @return clientNameList
*/
public List<String> getClientNameList(){
return this.clientNameList;
}
/**
* 设置 客户端名称
* @param clientNameList
*/
public void setClientNameList(List<String> clientNameList){
this.clientNameList = clientNameList;
}
/**
* 获取 客户端名称
* @return clientNameNotList
*/
public List<String> getClientNameNotList(){
return this.clientNameNotList;
}
/**
* 设置 客户端名称
* @param clientNameNotList
*/
public void setClientNameNotList(List<String> clientNameNotList){
this.clientNameNotList = clientNameNotList;
}
/**
* 获取 客户端版本号
* @return versionList
*/
public List<String> getVersionList(){
return this.versionList;
}
/**
* 设置 客户端版本号
* @param versionList
*/
public void setVersionList(List<String> versionList){
this.versionList = versionList;
}
/**
* 获取 客户端版本号
* @return versionNotList
*/
public List<String> getVersionNotList(){
return this.versionNotList;
}
/**
* 设置 客户端版本号
* @param versionNotList
*/
public void setVersionNotList(List<String> versionNotList){
this.versionNotList = versionNotList;
}
/**
* 获取 设备唯一标识
* @return ecodeList
*/
public List<String> getEcodeList(){
return this.ecodeList;
}
/**
* 设置 设备唯一标识
* @param ecodeList
*/
public void setEcodeList(List<String> ecodeList){
this.ecodeList = ecodeList;
}
/**
* 获取 设备唯一标识
* @return ecodeNotList
*/
public List<String> getEcodeNotList(){
return this.ecodeNotList;
}
/**
* 设置 设备唯一标识
* @param ecodeNotList
*/
public void setEcodeNotList(List<String> ecodeNotList){
this.ecodeNotList = ecodeNotList;
}
/**
* 获取 应用简称
* @return appSimpleNameList
*/
public List<String> getAppSimpleNameList(){
return this.appSimpleNameList;
}
/**
* 设置 应用简称
* @param appSimpleNameList
*/
public void setAppSimpleNameList(List<String> appSimpleNameList){
this.appSimpleNameList = appSimpleNameList;
}
/**
* 获取 应用简称
* @return appSimpleNameNotList
*/
public List<String> getAppSimpleNameNotList(){
return this.appSimpleNameNotList;
}
/**
* 设置 应用简称
* @param appSimpleNameNotList
*/
public void setAppSimpleNameNotList(List<String> appSimpleNameNotList){
this.appSimpleNameNotList = appSimpleNameNotList;
}
/**
* 获取 应用提供方
* @return providerList
*/
public List<String> getProviderList(){
return this.providerList;
}
/**
* 设置 应用提供方
* @param providerList
*/
public void setProviderList(List<String> providerList){
this.providerList = providerList;
}
/**
* 获取 应用提供方
* @return providerNotList
*/
public List<String> getProviderNotList(){
return this.providerNotList;
}
/**
* 设置 应用提供方
* @param providerNotList
*/
public void setProviderNotList(List<String> providerNotList){
this.providerNotList = providerNotList;
}
/**
* 获取 应用来源
* @return originList
*/
public List<String> getOriginList(){
return this.originList;
}
/**
* 设置 应用来源
* @param originList
*/
public void setOriginList(List<String> originList){
this.originList = originList;
}
/**
* 获取 应用来源
* @return originNotList
*/
public List<String> getOriginNotList(){
return this.originNotList;
}
/**
* 设置 应用来源
* @param originNotList
*/
public void setOriginNotList(List<String> originNotList){
this.originNotList = originNotList;
}
/**
* 设置 序号,主键,自增长
* @param id
*/
public ConvergeAppsAccessQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 序号,主键,自增长
* @param idStart
*/
public ConvergeAppsAccessQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 序号,主键,自增长
* @param idEnd
*/
public ConvergeAppsAccessQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 序号,主键,自增长
* @param idIncrement
*/
public ConvergeAppsAccessQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idList
*/
public ConvergeAppsAccessQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 序号,主键,自增长
* @param idNotList
*/
public ConvergeAppsAccessQuery idNotList(List<Long> idNotList){
this.idNotList = idNotList;
return this;
}
/**
* 设置 站点id
* @param siteId
*/
public ConvergeAppsAccessQuery siteId(Long siteId){
setSiteId(siteId);
return this;
}
/**
* 设置 开始 站点id
* @param siteIdStart
*/
public ConvergeAppsAccessQuery siteIdStart(Long siteIdStart){
this.siteIdStart = siteIdStart;
return this;
}
/**
* 设置 结束 站点id
* @param siteIdEnd
*/
public ConvergeAppsAccessQuery siteIdEnd(Long siteIdEnd){
this.siteIdEnd = siteIdEnd;
return this;
}
/**
* 设置 增加 站点id
* @param siteIdIncrement
*/
public ConvergeAppsAccessQuery siteIdIncrement(Long siteIdIncrement){
this.siteIdIncrement = siteIdIncrement;
return this;
}
/**
* 设置 站点id
* @param siteIdList
*/
public ConvergeAppsAccessQuery siteIdList(List<Long> siteIdList){
this.siteIdList = siteIdList;
return this;
}
/**
* 设置 站点id
* @param siteIdNotList
*/
public ConvergeAppsAccessQuery siteIdNotList(List<Long> siteIdNotList){
this.siteIdNotList = siteIdNotList;
return this;
}
/**
* 设置 应用ID
* @param applicationId
*/
public ConvergeAppsAccessQuery applicationId(String applicationId){
setApplicationId(applicationId);
return this;
}
/**
* 设置 应用ID
* @param applicationIdList
*/
public ConvergeAppsAccessQuery applicationIdList(List<String> applicationIdList){
this.applicationIdList = applicationIdList;
return this;
}
/**
* 设置 应用名称
* @param applicationName
*/
public ConvergeAppsAccessQuery applicationName(String applicationName){
setApplicationName(applicationName);
return this;
}
/**
* 设置 应用名称
* @param applicationNameList
*/
public ConvergeAppsAccessQuery applicationNameList(List<String> applicationNameList){
this.applicationNameList = applicationNameList;
return this;
}
/**
* 设置 用户ID
* @param userId
*/
public ConvergeAppsAccessQuery userId(String userId){
setUserId(userId);
return this;
}
/**
* 设置 用户ID
* @param userIdList
*/
public ConvergeAppsAccessQuery userIdList(List<String> userIdList){
this.userIdList = userIdList;
return this;
}
/**
* 设置 用户名称
* @param userName
*/
public ConvergeAppsAccessQuery userName(String userName){
setUserName(userName);
return this;
}
/**
* 设置 用户名称
* @param userNameList
*/
public ConvergeAppsAccessQuery userNameList(List<String> userNameList){
this.userNameList = userNameList;
return this;
}
/**
* 设置 渠道ID
* @param channelId
*/
public ConvergeAppsAccessQuery channelId(String channelId){
setChannelId(channelId);
return this;
}
/**
* 设置 渠道ID
* @param channelIdList
*/
public ConvergeAppsAccessQuery channelIdList(List<String> channelIdList){
this.channelIdList = channelIdList;
return this;
}
/**
* 设置 渠道名称
* @param channelName
*/
public ConvergeAppsAccessQuery channelName(String channelName){
setChannelName(channelName);
return this;
}
/**
* 设置 渠道名称
* @param channelNameList
*/
public ConvergeAppsAccessQuery channelNameList(List<String> channelNameList){
this.channelNameList = channelNameList;
return this;
}
/**
* 设置 地域
* @param location
*/
public ConvergeAppsAccessQuery location(String location){
setLocation(location);
return this;
}
/**
* 设置 地域
* @param locationList
*/
public ConvergeAppsAccessQuery locationList(List<String> locationList){
this.locationList = locationList;
return this;
}
/**
* 设置 客户端名称
* @param clientName
*/
public ConvergeAppsAccessQuery clientName(String clientName){
setClientName(clientName);
return this;
}
/**
* 设置 客户端名称
* @param clientNameList
*/
public ConvergeAppsAccessQuery clientNameList(List<String> clientNameList){
this.clientNameList = clientNameList;
return this;
}
/**
* 设置 客户端版本号
* @param version
*/
public ConvergeAppsAccessQuery version(String version){
setVersion(version);
return this;
}
/**
* 设置 客户端版本号
* @param versionList
*/
public ConvergeAppsAccessQuery versionList(List<String> versionList){
this.versionList = versionList;
return this;
}
/**
* 设置 设备唯一标识
* @param ecode
*/
public ConvergeAppsAccessQuery ecode(String ecode){
setEcode(ecode);
return this;
}
/**
* 设置 设备唯一标识
* @param ecodeList
*/
public ConvergeAppsAccessQuery ecodeList(List<String> ecodeList){
this.ecodeList = ecodeList;
return this;
}
/**
* 设置 应用简称
* @param appSimpleName
*/
public ConvergeAppsAccessQuery appSimpleName(String appSimpleName){
setAppSimpleName(appSimpleName);
return this;
}
/**
* 设置 应用简称
* @param appSimpleNameList
*/
public ConvergeAppsAccessQuery appSimpleNameList(List<String> appSimpleNameList){
this.appSimpleNameList = appSimpleNameList;
return this;
}
/**
* 设置 应用提供方
* @param provider
*/
public ConvergeAppsAccessQuery provider(String provider){
setProvider(provider);
return this;
}
/**
* 设置 应用提供方
* @param providerList
*/
public ConvergeAppsAccessQuery providerList(List<String> providerList){
this.providerList = providerList;
return this;
}
/**
* 设置 应用来源
* @param origin
*/
public ConvergeAppsAccessQuery origin(String origin){
setOrigin(origin);
return this;
}
/**
* 设置 应用来源
* @param originList
*/
public ConvergeAppsAccessQuery originList(List<String> originList){
this.originList = originList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<ConvergeAppsAccessQuery> getOrConditionList(){
return this.orConditionList;
}
/**
* 设置 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @param orConditionList
*/
public void setOrConditionList(List<ConvergeAppsAccessQuery> orConditionList){
this.orConditionList = orConditionList;
}
/**
* 获取 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @return andConditionList
*/
public List<ConvergeAppsAccessQuery> getAndConditionList(){
return this.andConditionList;
}
/**
* 设置 AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4)
* @param andConditionList
*/
public void setAndConditionList(List<ConvergeAppsAccessQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.converge.model.vo;
import lombok.Data;
@Data
public class AppsAccessVo {
/**
* 站点id
*/
private Long siteId;
/**
* 设备ID
*/
private String equipmentId;
/**
* 应用标识,具有唯一性
*/
private String appEname;
/**
* 应用名称
*/
private String appName;
/**
* 应用简称
*/
private String appSimpleName;
/**
* 应用提供方
*/
private String provider;
/**
* 应用来源
*/
private String origin;
/**
* 应用访问数
*/
private Integer pv;
/**
* 应用访客数
*/
private Integer uv;
}
package com.mortals.xhx.module.converge.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
/**
* 应用访问视图对象
*
* @author zxfei
* @date 2023-07-03
*/
@Data
public class ConvergeAppsAccessVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.converge.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import com.mortals.xhx.module.converge.dao.ConvergeAppsAccessDao;
import com.mortals.xhx.module.converge.model.vo.AppsAccessVo;
import java.util.List;
/**
* ConvergeAppsAccessService
*
* 应用访问 service接口
*
* @author zxfei
* @date 2023-07-03
*/
public interface ConvergeAppsAccessService extends ICRUDService<ConvergeAppsAccessEntity,Long>{
ConvergeAppsAccessDao getDao();
/**
* 应用浏览量PV统计
* @return
*/
List<AppsAccessVo> getAppsAccessPv() throws AppException;
/**
* 应用浏览量UV统计
* @return
*/
List<AppsAccessVo> getAppsAccessUv() throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.converge.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.converge.model.ConvergeAppsEntity;
import com.mortals.xhx.module.converge.dao.ConvergeAppsDao;
......@@ -13,4 +14,10 @@ import com.mortals.xhx.module.converge.dao.ConvergeAppsDao;
public interface ConvergeAppsService extends ICRUDService<ConvergeAppsEntity,Long>{
ConvergeAppsDao getDao();
/**
* 天府通办数据汇聚
* @throws AppException
*/
void doConvergeApps() throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.converge.service.impl;
import com.mortals.xhx.module.converge.model.vo.AppsAccessVo;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.converge.dao.ConvergeAppsAccessDao;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import com.mortals.xhx.module.converge.service.ConvergeAppsAccessService;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
/**
* ConvergeAppsAccessService
* 应用访问 service实现
*
* @author zxfei
* @date 2023-07-03
*/
@Service("convergeAppsAccessService")
@Slf4j
public class ConvergeAppsAccessServiceImpl extends AbstractCRUDServiceImpl<ConvergeAppsAccessDao, ConvergeAppsAccessEntity, Long> implements ConvergeAppsAccessService {
@Override
public List<AppsAccessVo> getAppsAccessPv() throws AppException {
return dao.getAppsAccessPv();
}
@Override
public List<AppsAccessVo> getAppsAccessUv() throws AppException {
return dao.getAppsAccessUv();
}
}
\ No newline at end of file
package com.mortals.xhx.module.converge.service.impl;
import com.mortals.xhx.module.converge.model.ConvergeAppsQuery;
import com.mortals.xhx.module.converge.model.ConvergeDeviceEntity;
import com.mortals.xhx.module.converge.model.ConvergeDeviceQuery;
import com.mortals.xhx.module.converge.model.vo.AppsAccessVo;
import com.mortals.xhx.module.converge.service.ConvergeAppsAccessService;
import com.mortals.xhx.module.converge.service.ConvergeDeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
......@@ -7,6 +14,13 @@ import com.mortals.xhx.module.converge.dao.ConvergeAppsDao;
import com.mortals.xhx.module.converge.model.ConvergeAppsEntity;
import com.mortals.xhx.module.converge.service.ConvergeAppsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* ConvergeAppsService
* 设备应用 service实现
......@@ -18,4 +32,67 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class ConvergeAppsServiceImpl extends AbstractCRUDServiceImpl<ConvergeAppsDao, ConvergeAppsEntity, Long> implements ConvergeAppsService {
@Autowired
private ConvergeAppsAccessService convergeAppsAccessService;
@Autowired
private ConvergeDeviceService convergeDeviceService;
@Override
public void doConvergeApps() throws AppException {
List<AppsAccessVo> accessPvList = convergeAppsAccessService.getAppsAccessPv();
List<AppsAccessVo> accessUvList = convergeAppsAccessService.getAppsAccessUv();
if(CollectionUtils.isEmpty(accessPvList)||CollectionUtils.isEmpty(accessUvList)){
return;
}else {
Map<String,AppsAccessVo> uvMap = new HashMap<>();
for (AppsAccessVo vo:accessUvList){
String key = vo.getSiteId()+"_"+vo.getEquipmentId()+"_"+vo.getAppEname();
uvMap.put(key,vo);
}
List<ConvergeAppsEntity> appsList = new ArrayList<>();
Map<String, ConvergeDeviceEntity> deviceMap = new HashMap<>();
for(AppsAccessVo item:accessPvList){
ConvergeAppsEntity entity = new ConvergeAppsEntity();
if(deviceMap.containsKey(item.getEquipmentId())){
entity.setEquipmentId(deviceMap.get(item.getEquipmentId()).getId());
}else {
ConvergeDeviceEntity deviceEntity = convergeDeviceService.selectOne(new ConvergeDeviceQuery().logo(item.getEquipmentId()));
if(deviceEntity!=null){
deviceMap.put(item.getEquipmentId(),deviceEntity);
entity.setEquipmentId(deviceEntity.getId());
}else {
entity.setEquipmentId(-1l);
}
}
entity.setAppEname(item.getAppEname());
entity.setAppName(item.getAppName());
entity.setAppSimpleName(item.getAppSimpleName());
entity.setProvider(item.getProvider());
entity.setOrigin(item.getOrigin());
entity.setSiteId(item.getSiteId());
entity.setPv(item.getPv());
String key = item.getSiteId()+"_"+item.getEquipmentId()+"_"+item.getAppEname();
if(uvMap.containsKey(key)) {
entity.setUv(uvMap.get(key).getUv());
}
appsList.add(entity);
}
for(ConvergeAppsEntity item:appsList){
ConvergeAppsEntity temp = this.selectOne(new ConvergeAppsQuery().appEname(item.getAppEname()).equipmentId(item.getEquipmentId()).siteId(item.getSiteId()));
if(temp!=null){
item.setId(temp.getId());
if(temp.getPv()==item.getPv()&&temp.getUv()==item.getUv()){
item.setOpr("P");
}else {
item.setOpr("U");
}
this.update(item);
}else {
item.setOpr("A");
this.save(item);
}
}
}
}
}
\ No newline at end of file
......@@ -6,11 +6,11 @@ import com.mortals.xhx.common.pdu.site.SitePdu;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.feign.device.IDeviceFeign;
import com.mortals.xhx.feign.site.ISiteFeign;
import com.mortals.xhx.module.converge.model.ConvergeDeviceEntity;
import com.mortals.xhx.module.converge.model.ConvergeDeviceQuery;
import com.mortals.xhx.module.converge.model.ConvergeSiteQuery;
import com.mortals.xhx.module.converge.model.*;
import com.mortals.xhx.module.converge.model.vo.AppVO;
import com.mortals.xhx.module.converge.model.vo.BranchVO;
import com.mortals.xhx.module.converge.model.vo.EquipmentVO;
import com.mortals.xhx.module.converge.service.ConvergeAppsService;
import com.mortals.xhx.module.converge.service.ConvergeDeviceService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
......@@ -20,7 +20,6 @@ import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.converge.dao.ConvergeSiteDao;
import com.mortals.xhx.module.converge.model.ConvergeSiteEntity;
import com.mortals.xhx.module.converge.service.ConvergeSiteService;
import lombok.extern.slf4j.Slf4j;
......@@ -45,6 +44,8 @@ public class ConvergeSiteServiceImpl extends AbstractCRUDServiceImpl<ConvergeSit
private ISiteFeign siteFeign;
@Autowired
private ConvergeDeviceService convergeDeviceService;
@Autowired
private ConvergeAppsService convergeAppsService;
@Override
public List<BranchVO> getConvergeData() throws AppException {
......@@ -60,7 +61,8 @@ public class ConvergeSiteServiceImpl extends AbstractCRUDServiceImpl<ConvergeSit
for (ConvergeDeviceEntity deviceEntity:deviceEntityList){
EquipmentVO equipmentVO = new EquipmentVO();
BeanUtils.copyProperties(deviceEntity,equipmentVO,BeanUtil.getNullPropertyNames(deviceEntity));
equipmentVO.setAppStats(Collections.emptyList());
List<ConvergeAppsEntity> apps = convergeAppsService.find(new ConvergeAppsQuery().siteId(deviceEntity.getSiteId()).equipmentId(deviceEntity.getId()));
equipmentVO.setAppStats(convertAppVO(apps));
equipments.add(equipmentVO);
}
branchVO.setEquipments(equipments);
......@@ -137,4 +139,18 @@ public class ConvergeSiteServiceImpl extends AbstractCRUDServiceImpl<ConvergeSit
}
return true;
}
private List<AppVO> convertAppVO(List<ConvergeAppsEntity> apps){
if(CollectionUtils.isEmpty(apps)){
return Collections.emptyList();
}else {
List<AppVO> voList = new ArrayList<>();
for (ConvergeAppsEntity item:apps){
AppVO vo = new AppVO();
BeanUtils.copyProperties(item,vo,BeanUtil.getNullPropertyNames(item));
voList.add(vo);
}
return voList;
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.converge.web;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.model.BaseEntity;
import com.mortals.framework.service.IUser;
import com.mortals.framework.utils.BeanUtil;
import com.mortals.framework.utils.ReflectUtils;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.converge.model.ConvergeAppsAccessEntity;
import com.mortals.xhx.module.converge.service.ConvergeAppsAccessService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 应用访问
*
* @author zxfei
* @date 2023-07-03
*/
@RestController
@RequestMapping("converge/apps/access")
public class ConvergeAppsAccessController extends BaseCRUDJsonBodyMappingController<ConvergeAppsAccessService,ConvergeAppsAccessEntity,Long> {
@Autowired
private ParamService paramService;
public ConvergeAppsAccessController(){
super.setModuleDesc( "应用访问");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
@Override
@PostMapping({"save"})
@UnAuth
public String save(@RequestBody ConvergeAppsAccessEntity entity) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
int code = 1;
String busiDesc = "保存" + this.getModuleDesc();
try {
this.saveBefore(entity, model, context);
if (entity.newEntity()) {
Class<ConvergeAppsAccessEntity> tClass = ReflectUtils.getClassGenricType(this.getClass(), 1);
ConvergeAppsAccessEntity initEntity = (ConvergeAppsAccessEntity)tClass.newInstance();
initEntity.initAttrValue();
BeanUtils.copyProperties(entity, initEntity, BeanUtil.getNullPropertyNames(entity));
entity = initEntity;
busiDesc = "新增" + this.getModuleDesc();
initEntity.setCreateTime(new Date());
IUser user = this.getCurUser();
if (user != null) {
initEntity.setCreateUserId(user.getId());
initEntity.setCreateUser(user.getLoginName());
initEntity.setCreateUserName(user.getRealName());
initEntity.setCreateUserDeptId(user.getDeptId());
initEntity.setCreateUserDeptName(user.getDeptName());
}
this.service.save(initEntity, context);
} else {
busiDesc = "修改" + this.getModuleDesc();
entity.setUpdateTime(new Date());
IUser user = this.getCurUser();
if (user != null) {
entity.setUpdateUserId(user.getId());
entity.setUpdateUser(user.getLoginName());
entity.setUpdateUserName(user.getRealName());
entity.setUpdateUserDeptId(user.getDeptId());
entity.setUpdateUserDeptName(user.getDeptName());
}
this.service.update(entity, context);
}
model.put("id", entity.getId());
code = this.saveAfter(entity, model, context);
model.put("entity", entity);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception var9) {
this.doException(this.request, busiDesc, model, var9);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var9);
}
this.init(model, context);
JSONObject ret = new JSONObject();
ret.put("code", code);
ret.put("msg", model.remove("message_info"));
ret.put("data", model);
return ret.toJSONString();
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.converge.dao.ibatis.ConvergeAppsAccessDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="ConvergeAppsAccessEntity" id="ConvergeAppsAccessEntity-Map">
<id property="id" column="id" />
<result property="siteId" column="siteId" />
<result property="applicationId" column="applicationId" />
<result property="applicationName" column="applicationName" />
<result property="startTime" column="startTime" />
<result property="endTime" column="endTime" />
<result property="userId" column="userId" />
<result property="userName" column="userName" />
<result property="channelId" column="channelId" />
<result property="channelName" column="channelName" />
<result property="location" column="location" />
<result property="clientName" column="clientName" />
<result property="version" column="version" />
<result property="ecode" column="ecode" />
<result property="appSimpleName" column="appSimpleName" />
<result property="provider" column="provider" />
<result property="origin" column="origin" />
</resultMap>
<!-- 表所有列 -->
<sql id="_columns">
<trim suffixOverrides="," suffix="">
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('id') or colPickMode == 1 and data.containsKey('id')))">
a.id,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('siteId') or colPickMode == 1 and data.containsKey('siteId')))">
a.siteId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('applicationId') or colPickMode == 1 and data.containsKey('applicationId')))">
a.applicationId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('applicationName') or colPickMode == 1 and data.containsKey('applicationName')))">
a.applicationName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('startTime') or colPickMode == 1 and data.containsKey('startTime')))">
a.startTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('endTime') or colPickMode == 1 and data.containsKey('endTime')))">
a.endTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('userId') or colPickMode == 1 and data.containsKey('userId')))">
a.userId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('userName') or colPickMode == 1 and data.containsKey('userName')))">
a.userName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('channelId') or colPickMode == 1 and data.containsKey('channelId')))">
a.channelId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('channelName') or colPickMode == 1 and data.containsKey('channelName')))">
a.channelName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('location') or colPickMode == 1 and data.containsKey('location')))">
a.location,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('clientName') or colPickMode == 1 and data.containsKey('clientName')))">
a.clientName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('version') or colPickMode == 1 and data.containsKey('version')))">
a.version,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('ecode') or colPickMode == 1 and data.containsKey('ecode')))">
a.ecode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('appSimpleName') or colPickMode == 1 and data.containsKey('appSimpleName')))">
a.appSimpleName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('provider') or colPickMode == 1 and data.containsKey('provider')))">
a.provider,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('origin') or colPickMode == 1 and data.containsKey('origin')))">
a.origin,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="ConvergeAppsAccessEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_converge_apps_access
(siteId,applicationId,applicationName,startTime,endTime,userId,userName,channelId,channelName,location,clientName,version,ecode,appSimpleName,provider,origin)
VALUES
(#{siteId},#{applicationId},#{applicationName},#{startTime},#{endTime},#{userId},#{userName},#{channelId},#{channelName},#{location},#{clientName},#{version},#{ecode},#{appSimpleName},#{provider},#{origin})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_converge_apps_access
(siteId,applicationId,applicationName,startTime,endTime,userId,userName,channelId,channelName,location,clientName,version,ecode,appSimpleName,provider,origin)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.siteId},#{item.applicationId},#{item.applicationName},#{item.startTime},#{item.endTime},#{item.userId},#{item.userName},#{item.channelId},#{item.channelName},#{item.location},#{item.clientName},#{item.version},#{item.ecode},#{item.appSimpleName},#{item.provider},#{item.origin})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_converge_apps_access as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('siteId')) or (colPickMode==1 and !data.containsKey('siteId'))">
a.siteId=#{data.siteId},
</if>
<if test="(colPickMode==0 and data.containsKey('siteIdIncrement')) or (colPickMode==1 and !data.containsKey('siteIdIncrement'))">
a.siteId=ifnull(a.siteId,0) + #{data.siteIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('applicationId')) or (colPickMode==1 and !data.containsKey('applicationId'))">
a.applicationId=#{data.applicationId},
</if>
<if test="(colPickMode==0 and data.containsKey('applicationName')) or (colPickMode==1 and !data.containsKey('applicationName'))">
a.applicationName=#{data.applicationName},
</if>
<if test="(colPickMode==0 and data.containsKey('startTime')) or (colPickMode==1 and !data.containsKey('startTime'))">
a.startTime=#{data.startTime},
</if>
<if test="(colPickMode==0 and data.containsKey('endTime')) or (colPickMode==1 and !data.containsKey('endTime'))">
a.endTime=#{data.endTime},
</if>
<if test="(colPickMode==0 and data.containsKey('userId')) or (colPickMode==1 and !data.containsKey('userId'))">
a.userId=#{data.userId},
</if>
<if test="(colPickMode==0 and data.containsKey('userName')) or (colPickMode==1 and !data.containsKey('userName'))">
a.userName=#{data.userName},
</if>
<if test="(colPickMode==0 and data.containsKey('channelId')) or (colPickMode==1 and !data.containsKey('channelId'))">
a.channelId=#{data.channelId},
</if>
<if test="(colPickMode==0 and data.containsKey('channelName')) or (colPickMode==1 and !data.containsKey('channelName'))">
a.channelName=#{data.channelName},
</if>
<if test="(colPickMode==0 and data.containsKey('location')) or (colPickMode==1 and !data.containsKey('location'))">
a.location=#{data.location},
</if>
<if test="(colPickMode==0 and data.containsKey('clientName')) or (colPickMode==1 and !data.containsKey('clientName'))">
a.clientName=#{data.clientName},
</if>
<if test="(colPickMode==0 and data.containsKey('version')) or (colPickMode==1 and !data.containsKey('version'))">
a.version=#{data.version},
</if>
<if test="(colPickMode==0 and data.containsKey('ecode')) or (colPickMode==1 and !data.containsKey('ecode'))">
a.ecode=#{data.ecode},
</if>
<if test="(colPickMode==0 and data.containsKey('appSimpleName')) or (colPickMode==1 and !data.containsKey('appSimpleName'))">
a.appSimpleName=#{data.appSimpleName},
</if>
<if test="(colPickMode==0 and data.containsKey('provider')) or (colPickMode==1 and !data.containsKey('provider'))">
a.provider=#{data.provider},
</if>
<if test="(colPickMode==0 and data.containsKey('origin')) or (colPickMode==1 and !data.containsKey('origin'))">
a.origin=#{data.origin},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="paramDto">
update mortals_xhx_converge_apps_access as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="siteId=(case" suffix="ELSE siteId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('siteId')) or (colPickMode==1 and !item.containsKey('siteId'))">
when a.id=#{item.id} then #{item.siteId}
</when>
<when test="(colPickMode==0 and item.containsKey('siteIdIncrement')) or (colPickMode==1 and !item.containsKey('siteIdIncrement'))">
when a.id=#{item.id} then ifnull(a.siteId,0) + #{item.siteIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="applicationId=(case" suffix="ELSE applicationId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('applicationId')) or (colPickMode==1 and !item.containsKey('applicationId'))">
when a.id=#{item.id} then #{item.applicationId}
</if>
</foreach>
</trim>
<trim prefix="applicationName=(case" suffix="ELSE applicationName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('applicationName')) or (colPickMode==1 and !item.containsKey('applicationName'))">
when a.id=#{item.id} then #{item.applicationName}
</if>
</foreach>
</trim>
<trim prefix="startTime=(case" suffix="ELSE startTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('startTime')) or (colPickMode==1 and !item.containsKey('startTime'))">
when a.id=#{item.id} then #{item.startTime}
</if>
</foreach>
</trim>
<trim prefix="endTime=(case" suffix="ELSE endTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('endTime')) or (colPickMode==1 and !item.containsKey('endTime'))">
when a.id=#{item.id} then #{item.endTime}
</if>
</foreach>
</trim>
<trim prefix="userId=(case" suffix="ELSE userId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('userId')) or (colPickMode==1 and !item.containsKey('userId'))">
when a.id=#{item.id} then #{item.userId}
</if>
</foreach>
</trim>
<trim prefix="userName=(case" suffix="ELSE userName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('userName')) or (colPickMode==1 and !item.containsKey('userName'))">
when a.id=#{item.id} then #{item.userName}
</if>
</foreach>
</trim>
<trim prefix="channelId=(case" suffix="ELSE channelId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('channelId')) or (colPickMode==1 and !item.containsKey('channelId'))">
when a.id=#{item.id} then #{item.channelId}
</if>
</foreach>
</trim>
<trim prefix="channelName=(case" suffix="ELSE channelName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('channelName')) or (colPickMode==1 and !item.containsKey('channelName'))">
when a.id=#{item.id} then #{item.channelName}
</if>
</foreach>
</trim>
<trim prefix="location=(case" suffix="ELSE location end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('location')) or (colPickMode==1 and !item.containsKey('location'))">
when a.id=#{item.id} then #{item.location}
</if>
</foreach>
</trim>
<trim prefix="clientName=(case" suffix="ELSE clientName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('clientName')) or (colPickMode==1 and !item.containsKey('clientName'))">
when a.id=#{item.id} then #{item.clientName}
</if>
</foreach>
</trim>
<trim prefix="version=(case" suffix="ELSE version end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('version')) or (colPickMode==1 and !item.containsKey('version'))">
when a.id=#{item.id} then #{item.version}
</if>
</foreach>
</trim>
<trim prefix="ecode=(case" suffix="ELSE ecode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('ecode')) or (colPickMode==1 and !item.containsKey('ecode'))">
when a.id=#{item.id} then #{item.ecode}
</if>
</foreach>
</trim>
<trim prefix="appSimpleName=(case" suffix="ELSE appSimpleName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('appSimpleName')) or (colPickMode==1 and !item.containsKey('appSimpleName'))">
when a.id=#{item.id} then #{item.appSimpleName}
</if>
</foreach>
</trim>
<trim prefix="provider=(case" suffix="ELSE provider end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('provider')) or (colPickMode==1 and !item.containsKey('provider'))">
when a.id=#{item.id} then #{item.provider}
</if>
</foreach>
</trim>
<trim prefix="origin=(case" suffix="ELSE origin end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('origin')) or (colPickMode==1 and !item.containsKey('origin'))">
when a.id=#{item.id} then #{item.origin}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
<!-- 根据主健查询 -->
<select id="getByKey" parameterType="paramDto" resultMap="ConvergeAppsAccessEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_converge_apps_access as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_converge_apps_access as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_converge_apps_access where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据主健列表删除一批,针对单一主健有效 -->
<delete id="deleteByKeyList">
delete from mortals_xhx_converge_apps_access where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据对象列表删除一批,针对单一主健有效 -->
<delete id="deleteByEntityList">
delete from mortals_xhx_converge_apps_access where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_converge_apps_access as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="ConvergeAppsAccessEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_converge_apps_access as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
<include refid="_orderCols_"/>
</select>
<!-- 获取 -->
<select id="getListCount" parameterType="paramDto" resultType="int">
select count(1)
from mortals_xhx_converge_apps_access as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</select>
<!-- 条件映射 -->
<sql id="_condition_">
<if test="condition != null and !condition.isEmpty()">
<!-- 条件映射-普通条件 -->
<include refid="_condition_param_">
<property name="_conditionParam_" value="condition"/>
<property name="_conditionType_" value="and"/>
</include>
<!-- 条件映射-集合之间使用AND,集合中元素使用OR-(list[0].1 or list[0].2) and (list[1].3 or list[1].4) -->
<if test="condition.containsKey('andConditionList') and !condition.andConditionList.isEmpty()">
and
<foreach collection="condition.andConditionList" open="(" close=")" index="index" item="andCondition" separator=" and ">
<trim prefixOverrides="or" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="andCondition"/>
<property name="_conditionType_" value="or"/>
</include>
</trim>
</foreach>
</if>
<!-- 条件映射-集合之间使用OR,集合中元素使用AND-(list[0].1 and list[0].2) or (list[1].3 and list[1].4) -->
<if test="condition.containsKey('orConditionList') and !condition.orConditionList.isEmpty()">
and
<foreach collection="condition.orConditionList" open="(" close=")" index="index" item="orCondition" separator=" or ">
<trim prefixOverrides="and" prefix="(" suffix=")">
<include refid="_condition_param_">
<property name="_conditionParam_" value="orCondition"/>
<property name="_conditionType_" value="and"/>
</include>
</trim>
</foreach>
</if>
</if>
</sql>
<!-- 条件映射-代参数 -->
<sql id="_condition_param_">
<bind name="conditionParamRef" value="${_conditionParam_}"/>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null">
${_conditionType_} a.id=#{${_conditionParam_}.id}
</if>
</if>
<if test="conditionParamRef.containsKey('id')">
<if test="conditionParamRef.id != null ">
${_conditionType_} a.id = #{${_conditionParam_}.id}
</if>
<if test="conditionParamRef.id == null">
${_conditionType_} a.id is null
</if>
</if>
<if test="conditionParamRef.containsKey('idList') and conditionParamRef.idList.size() > 0">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idNotList') and conditionParamRef.idNotList.size() > 0">
${_conditionType_} a.id not in
<foreach collection="conditionParamRef.idNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('idStart') and conditionParamRef.idStart != null">
${_conditionType_} a.id <![CDATA[ >= ]]> #{${_conditionParam_}.idStart}
</if>
<if test="conditionParamRef.containsKey('idEnd') and conditionParamRef.idEnd != null">
${_conditionType_} a.id <![CDATA[ <= ]]> #{${_conditionParam_}.idEnd}
</if>
<if test="conditionParamRef.containsKey('siteId')">
<if test="conditionParamRef.siteId != null ">
${_conditionType_} a.siteId = #{${_conditionParam_}.siteId}
</if>
<if test="conditionParamRef.siteId == null">
${_conditionType_} a.siteId is null
</if>
</if>
<if test="conditionParamRef.containsKey('siteIdList') and conditionParamRef.siteIdList.size() > 0">
${_conditionType_} a.siteId in
<foreach collection="conditionParamRef.siteIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('siteIdNotList') and conditionParamRef.siteIdNotList.size() > 0">
${_conditionType_} a.siteId not in
<foreach collection="conditionParamRef.siteIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('siteIdStart') and conditionParamRef.siteIdStart != null">
${_conditionType_} a.siteId <![CDATA[ >= ]]> #{${_conditionParam_}.siteIdStart}
</if>
<if test="conditionParamRef.containsKey('siteIdEnd') and conditionParamRef.siteIdEnd != null">
${_conditionType_} a.siteId <![CDATA[ <= ]]> #{${_conditionParam_}.siteIdEnd}
</if>
<if test="conditionParamRef.containsKey('applicationId')">
<if test="conditionParamRef.applicationId != null and conditionParamRef.applicationId != ''">
${_conditionType_} a.applicationId like #{${_conditionParam_}.applicationId}
</if>
<if test="conditionParamRef.applicationId == null">
${_conditionType_} a.applicationId is null
</if>
</if>
<if test="conditionParamRef.containsKey('applicationIdList') and conditionParamRef.applicationIdList.size() > 0">
${_conditionType_} a.applicationId in
<foreach collection="conditionParamRef.applicationIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('applicationIdNotList') and conditionParamRef.applicationIdNotList.size() > 0">
${_conditionType_} a.applicationId not in
<foreach collection="conditionParamRef.applicationIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('applicationName')">
<if test="conditionParamRef.applicationName != null and conditionParamRef.applicationName != ''">
${_conditionType_} a.applicationName like #{${_conditionParam_}.applicationName}
</if>
<if test="conditionParamRef.applicationName == null">
${_conditionType_} a.applicationName is null
</if>
</if>
<if test="conditionParamRef.containsKey('applicationNameList') and conditionParamRef.applicationNameList.size() > 0">
${_conditionType_} a.applicationName in
<foreach collection="conditionParamRef.applicationNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('applicationNameNotList') and conditionParamRef.applicationNameNotList.size() > 0">
${_conditionType_} a.applicationName not in
<foreach collection="conditionParamRef.applicationNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('startTime')">
<if test="conditionParamRef.startTime != null ">
${_conditionType_} a.startTime = #{${_conditionParam_}.startTime}
</if>
<if test="conditionParamRef.startTime == null">
${_conditionType_} a.startTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('startTimeStart') and conditionParamRef.startTimeStart != null and conditionParamRef.startTimeStart!=''">
${_conditionType_} a.startTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.startTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('startTimeEnd') and conditionParamRef.startTimeEnd != null and conditionParamRef.startTimeEnd!=''">
${_conditionType_} a.startTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.startTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('endTime')">
<if test="conditionParamRef.endTime != null ">
${_conditionType_} a.endTime = #{${_conditionParam_}.endTime}
</if>
<if test="conditionParamRef.endTime == null">
${_conditionType_} a.endTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('endTimeStart') and conditionParamRef.endTimeStart != null and conditionParamRef.endTimeStart!=''">
${_conditionType_} a.endTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.endTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('endTimeEnd') and conditionParamRef.endTimeEnd != null and conditionParamRef.endTimeEnd!=''">
${_conditionType_} a.endTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.endTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('userId')">
<if test="conditionParamRef.userId != null and conditionParamRef.userId != ''">
${_conditionType_} a.userId like #{${_conditionParam_}.userId}
</if>
<if test="conditionParamRef.userId == null">
${_conditionType_} a.userId is null
</if>
</if>
<if test="conditionParamRef.containsKey('userIdList') and conditionParamRef.userIdList.size() > 0">
${_conditionType_} a.userId in
<foreach collection="conditionParamRef.userIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('userIdNotList') and conditionParamRef.userIdNotList.size() > 0">
${_conditionType_} a.userId not in
<foreach collection="conditionParamRef.userIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('userName')">
<if test="conditionParamRef.userName != null and conditionParamRef.userName != ''">
${_conditionType_} a.userName like #{${_conditionParam_}.userName}
</if>
<if test="conditionParamRef.userName == null">
${_conditionType_} a.userName is null
</if>
</if>
<if test="conditionParamRef.containsKey('userNameList') and conditionParamRef.userNameList.size() > 0">
${_conditionType_} a.userName in
<foreach collection="conditionParamRef.userNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('userNameNotList') and conditionParamRef.userNameNotList.size() > 0">
${_conditionType_} a.userName not in
<foreach collection="conditionParamRef.userNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('channelId')">
<if test="conditionParamRef.channelId != null and conditionParamRef.channelId != ''">
${_conditionType_} a.channelId like #{${_conditionParam_}.channelId}
</if>
<if test="conditionParamRef.channelId == null">
${_conditionType_} a.channelId is null
</if>
</if>
<if test="conditionParamRef.containsKey('channelIdList') and conditionParamRef.channelIdList.size() > 0">
${_conditionType_} a.channelId in
<foreach collection="conditionParamRef.channelIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('channelIdNotList') and conditionParamRef.channelIdNotList.size() > 0">
${_conditionType_} a.channelId not in
<foreach collection="conditionParamRef.channelIdNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('channelName')">
<if test="conditionParamRef.channelName != null and conditionParamRef.channelName != ''">
${_conditionType_} a.channelName like #{${_conditionParam_}.channelName}
</if>
<if test="conditionParamRef.channelName == null">
${_conditionType_} a.channelName is null
</if>
</if>
<if test="conditionParamRef.containsKey('channelNameList') and conditionParamRef.channelNameList.size() > 0">
${_conditionType_} a.channelName in
<foreach collection="conditionParamRef.channelNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('channelNameNotList') and conditionParamRef.channelNameNotList.size() > 0">
${_conditionType_} a.channelName not in
<foreach collection="conditionParamRef.channelNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('location')">
<if test="conditionParamRef.location != null and conditionParamRef.location != ''">
${_conditionType_} a.location like #{${_conditionParam_}.location}
</if>
<if test="conditionParamRef.location == null">
${_conditionType_} a.location is null
</if>
</if>
<if test="conditionParamRef.containsKey('locationList') and conditionParamRef.locationList.size() > 0">
${_conditionType_} a.location in
<foreach collection="conditionParamRef.locationList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('locationNotList') and conditionParamRef.locationNotList.size() > 0">
${_conditionType_} a.location not in
<foreach collection="conditionParamRef.locationNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('clientName')">
<if test="conditionParamRef.clientName != null and conditionParamRef.clientName != ''">
${_conditionType_} a.clientName like #{${_conditionParam_}.clientName}
</if>
<if test="conditionParamRef.clientName == null">
${_conditionType_} a.clientName is null
</if>
</if>
<if test="conditionParamRef.containsKey('clientNameList') and conditionParamRef.clientNameList.size() > 0">
${_conditionType_} a.clientName in
<foreach collection="conditionParamRef.clientNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('clientNameNotList') and conditionParamRef.clientNameNotList.size() > 0">
${_conditionType_} a.clientName not in
<foreach collection="conditionParamRef.clientNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('version')">
<if test="conditionParamRef.version != null and conditionParamRef.version != ''">
${_conditionType_} a.version like #{${_conditionParam_}.version}
</if>
<if test="conditionParamRef.version == null">
${_conditionType_} a.version is null
</if>
</if>
<if test="conditionParamRef.containsKey('versionList') and conditionParamRef.versionList.size() > 0">
${_conditionType_} a.version in
<foreach collection="conditionParamRef.versionList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('versionNotList') and conditionParamRef.versionNotList.size() > 0">
${_conditionType_} a.version not in
<foreach collection="conditionParamRef.versionNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('ecode')">
<if test="conditionParamRef.ecode != null and conditionParamRef.ecode != ''">
${_conditionType_} a.ecode like #{${_conditionParam_}.ecode}
</if>
<if test="conditionParamRef.ecode == null">
${_conditionType_} a.ecode is null
</if>
</if>
<if test="conditionParamRef.containsKey('ecodeList') and conditionParamRef.ecodeList.size() > 0">
${_conditionType_} a.ecode in
<foreach collection="conditionParamRef.ecodeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('ecodeNotList') and conditionParamRef.ecodeNotList.size() > 0">
${_conditionType_} a.ecode not in
<foreach collection="conditionParamRef.ecodeNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('appSimpleName')">
<if test="conditionParamRef.appSimpleName != null and conditionParamRef.appSimpleName != ''">
${_conditionType_} a.appSimpleName like #{${_conditionParam_}.appSimpleName}
</if>
<if test="conditionParamRef.appSimpleName == null">
${_conditionType_} a.appSimpleName is null
</if>
</if>
<if test="conditionParamRef.containsKey('appSimpleNameList') and conditionParamRef.appSimpleNameList.size() > 0">
${_conditionType_} a.appSimpleName in
<foreach collection="conditionParamRef.appSimpleNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('appSimpleNameNotList') and conditionParamRef.appSimpleNameNotList.size() > 0">
${_conditionType_} a.appSimpleName not in
<foreach collection="conditionParamRef.appSimpleNameNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('provider')">
<if test="conditionParamRef.provider != null and conditionParamRef.provider != ''">
${_conditionType_} a.provider like #{${_conditionParam_}.provider}
</if>
<if test="conditionParamRef.provider == null">
${_conditionType_} a.provider is null
</if>
</if>
<if test="conditionParamRef.containsKey('providerList') and conditionParamRef.providerList.size() > 0">
${_conditionType_} a.provider in
<foreach collection="conditionParamRef.providerList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('providerNotList') and conditionParamRef.providerNotList.size() > 0">
${_conditionType_} a.provider not in
<foreach collection="conditionParamRef.providerNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('origin')">
<if test="conditionParamRef.origin != null and conditionParamRef.origin != ''">
${_conditionType_} a.origin like #{${_conditionParam_}.origin}
</if>
<if test="conditionParamRef.origin == null">
${_conditionType_} a.origin is null
</if>
</if>
<if test="conditionParamRef.containsKey('originList') and conditionParamRef.originList.size() > 0">
${_conditionType_} a.origin in
<foreach collection="conditionParamRef.originList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('originNotList') and conditionParamRef.originNotList.size() > 0">
${_conditionType_} a.origin not in
<foreach collection="conditionParamRef.originNotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<foreach collection="orderColList" open="" close="" index="index" item="item" separator=",">
${item.colName} ${item.sortKind}
</foreach>
</trim>
</if>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
<trim suffixOverrides="," suffix="">
<if test="orderCol.containsKey('id')">
a.id
<if test='orderCol.id != null and "DESC".equalsIgnoreCase(orderCol.id)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('siteId')">
a.siteId
<if test='orderCol.siteId != null and "DESC".equalsIgnoreCase(orderCol.siteId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('applicationId')">
a.applicationId
<if test='orderCol.applicationId != null and "DESC".equalsIgnoreCase(orderCol.applicationId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('applicationName')">
a.applicationName
<if test='orderCol.applicationName != null and "DESC".equalsIgnoreCase(orderCol.applicationName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('startTime')">
a.startTime
<if test='orderCol.startTime != null and "DESC".equalsIgnoreCase(orderCol.startTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('endTime')">
a.endTime
<if test='orderCol.endTime != null and "DESC".equalsIgnoreCase(orderCol.endTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('userId')">
a.userId
<if test='orderCol.userId != null and "DESC".equalsIgnoreCase(orderCol.userId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('userName')">
a.userName
<if test='orderCol.userName != null and "DESC".equalsIgnoreCase(orderCol.userName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('channelId')">
a.channelId
<if test='orderCol.channelId != null and "DESC".equalsIgnoreCase(orderCol.channelId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('channelName')">
a.channelName
<if test='orderCol.channelName != null and "DESC".equalsIgnoreCase(orderCol.channelName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('location')">
a.location
<if test='orderCol.location != null and "DESC".equalsIgnoreCase(orderCol.location)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('clientName')">
a.clientName
<if test='orderCol.clientName != null and "DESC".equalsIgnoreCase(orderCol.clientName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('version')">
a.version
<if test='orderCol.version != null and "DESC".equalsIgnoreCase(orderCol.version)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('ecode')">
a.ecode
<if test='orderCol.ecode != null and "DESC".equalsIgnoreCase(orderCol.ecode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('appSimpleName')">
a.appSimpleName
<if test='orderCol.appSimpleName != null and "DESC".equalsIgnoreCase(orderCol.appSimpleName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('provider')">
a.provider
<if test='orderCol.provider != null and "DESC".equalsIgnoreCase(orderCol.provider)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('origin')">
a.origin
<if test='orderCol.origin != null and "DESC".equalsIgnoreCase(orderCol.origin)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
<sql id="_group_by_">
<if test="groupList != null and !groupList.isEmpty()">
GROUP BY
<trim suffixOverrides="," suffix="">
<foreach collection="groupList" open="" close="" index="index" item="item" separator=",">
${item}
</foreach>
</trim>
</if>
</sql>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.converge.dao.ibatis.ConvergeAppsAccessDaoImpl">
<!-- 页面浏览量PV统计 -->
<select id="getAppsAccessPv" resultType="com.mortals.xhx.module.converge.model.vo.AppsAccessVo">
SELECT
siteId,
ecode as equipmentId,
applicationId as appEname,
appSimpleName,
provider,
origin,
count(1) as pv
FROM
mortals_xhx_converge_apps_access
GROUP BY
siteId,
applicationId,
ecode
</select>
<!-- 页面浏览量UV统计 -->
<select id="getAppsAccessUv" resultType="com.mortals.xhx.module.converge.model.vo.AppsAccessVo">
SELECT
siteId,
ecode AS equipmentId,
applicationId AS appEname,
appSimpleName,
provider,
origin,
count(1) AS uv
FROM
(
SELECT
siteId,
ecode,
applicationId,
appSimpleName,
provider,
origin,
count(1),
DATE_FORMAT(startTime,'%Y-%m-%d') AS accessTime
FROM
mortals_xhx_converge_apps_access
GROUP BY
siteId,
applicationId,
ecode,
DATE_FORMAT(startTime,'%Y-%m-%d')
) AS a
GROUP BY
siteId,
applicationId,
ecode
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment