Commit e5c5c3bf authored by 廖旭伟's avatar 廖旭伟

员工名片访问记录表;名片访问次数累加;增加名片公司地址属性

parent 4cf02192
...@@ -51,3 +51,30 @@ INSERT INTO `mortals_xhx_menu` VALUES (null, '员工离职信息', '/staff/leave ...@@ -51,3 +51,30 @@ INSERT INTO `mortals_xhx_menu` VALUES (null, '员工离职信息', '/staff/leave
INSERT INTO `mortals_xhx_resource` VALUES (null, '员工离职信息-菜单管理-查看', '/staff/leave/list,/staff/leave/view,/staff/leave/info,/staff/leave/export,/staff/leave/exportExcel,/staff/leave/downloadTemplate,/staff/leave/download', 3, 0, NULL, NULL, NULL, 0); INSERT INTO `mortals_xhx_resource` VALUES (null, '员工离职信息-菜单管理-查看', '/staff/leave/list,/staff/leave/view,/staff/leave/info,/staff/leave/export,/staff/leave/exportExcel,/staff/leave/downloadTemplate,/staff/leave/download', 3, 0, NULL, NULL, NULL, 0);
INSERT INTO `mortals_xhx_resource` VALUES (null, '员工离职信息-菜单管理-维护', '/staff/leave/add,/staff/leave/edit,/staff/leave/delete,/staff/leave/logicDelete,/staff/leave/save,/staff/leave/importData', 3, 0, NULL, NULL, NULL, 0); INSERT INTO `mortals_xhx_resource` VALUES (null, '员工离职信息-菜单管理-维护', '/staff/leave/add,/staff/leave/edit,/staff/leave/delete,/staff/leave/logicDelete,/staff/leave/save,/staff/leave/importData', 3, 0, NULL, NULL, NULL, 0);
-- ----------------------------
-- 2024-11-20
-- ----------------------------
ALTER TABLE `mortals_xhx_bussinesscard` MODIFY COLUMN `companyId` bigint(20) DEFAULT NULL COMMENT '记录名片持有者所在公司或组织的名称ID';
ALTER TABLE `mortals_xhx_bussinesscard` ADD COLUMN `companyAdress` varchar(256) COMMENT '名片展示设置';
ALTER TABLE `mortals_xhx_news_record` ADD COLUMN `viewId` bigint(20) COMMENT '查看人id';
ALTER TABLE `mortals_xhx_staff_record` ADD COLUMN `viewId` bigint(20) COMMENT '查看人id';
-- ----------------------------
-- 名片访问记录信息表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_bussinesscard_record`;
CREATE TABLE mortals_xhx_bussinesscard_record(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`bussinesscardId` bigint(20) NOT NULL COMMENT '名片ID',
`viewId` bigint(20) COMMENT '查看人id',
`viewName` varchar(64) COMMENT '查看人名称',
`sumViews` int(4) DEFAULT '0' COMMENT '累计查看次数',
`remark` varchar(255) COMMENT '备注',
`viewTime` datetime COMMENT '最后浏览时间',
`createUserId` bigint(20) COMMENT '创建用户',
`createTime` datetime COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
PRIMARY KEY (`id`)
,KEY `viewId` (`viewId`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='名片访问记录信息';
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardRecordEntity;
import java.util.List;
/**
* 名片访问记录信息Dao
* 名片访问记录信息 DAO接口
*
* @author zxfei
* @date 2024-11-20
*/
public interface BussinesscardRecordDao extends ICRUDDao<BussinesscardRecordEntity,Long>{
}
package com.mortals.xhx.module.bussinesscard.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.bussinesscard.dao.BussinesscardRecordDao;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardRecordEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 名片访问记录信息DaoImpl DAO接口
*
* @author zxfei
* @date 2024-11-20
*/
@Repository("bussinesscardRecordDao")
public class BussinesscardRecordDaoImpl extends BaseCRUDDaoMybatis<BussinesscardRecordEntity,Long> implements BussinesscardRecordDao {
}
...@@ -59,7 +59,7 @@ public class BussinesscardEntity extends BussinesscardVo { ...@@ -59,7 +59,7 @@ public class BussinesscardEntity extends BussinesscardVo {
/** /**
* 记录名片持有者所在公司或组织的名称ID * 记录名片持有者所在公司或组织的名称ID
*/ */
private String companyId; private Long companyId;
/** /**
* 记录名片持有者所在公司或组织的名称 * 记录名片持有者所在公司或组织的名称
*/ */
...@@ -104,6 +104,10 @@ public class BussinesscardEntity extends BussinesscardVo { ...@@ -104,6 +104,10 @@ public class BussinesscardEntity extends BussinesscardVo {
* 名片展示设置 * 名片展示设置
*/ */
private String setting; private String setting;
/**
* 公司地址
*/
private String companyAdress;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
...@@ -130,7 +134,7 @@ public class BussinesscardEntity extends BussinesscardVo { ...@@ -130,7 +134,7 @@ public class BussinesscardEntity extends BussinesscardVo {
this.email = ""; this.email = "";
this.phoneNumber = ""; this.phoneNumber = "";
this.idCard = ""; this.idCard = "";
this.companyId = ""; this.companyId = null;
this.companyName = ""; this.companyName = "";
this.positionId = null; this.positionId = null;
this.positionName = ""; this.positionName = "";
...@@ -142,5 +146,6 @@ public class BussinesscardEntity extends BussinesscardVo { ...@@ -142,5 +146,6 @@ public class BussinesscardEntity extends BussinesscardVo {
this.viewsByDay = 0; this.viewsByDay = 0;
this.sendBusinessCardTimes = 0; this.sendBusinessCardTimes = 0;
this.setting = ""; this.setting = "";
this.companyAdress = "";
} }
} }
\ No newline at end of file
...@@ -7,7 +7,7 @@ import com.mortals.xhx.module.bussinesscard.model.BussinesscardEntity; ...@@ -7,7 +7,7 @@ import com.mortals.xhx.module.bussinesscard.model.BussinesscardEntity;
* 名片基本信息查询对象 * 名片基本信息查询对象
* *
* @author zxfei * @author zxfei
* @date 2024-11-19 * @date 2024-11-20
*/ */
public class BussinesscardQuery extends BussinesscardEntity { public class BussinesscardQuery extends BussinesscardEntity {
/** 开始 序号,主键,自增长 */ /** 开始 序号,主键,自增长 */
...@@ -91,11 +91,21 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -91,11 +91,21 @@ public class BussinesscardQuery extends BussinesscardEntity {
/** 身份证号码排除列表 */ /** 身份证号码排除列表 */
private List <String> idCardNotList; private List <String> idCardNotList;
/** 记录名片持有者所在公司或组织的名称ID */ /** 开始 记录名片持有者所在公司或组织的名称ID */
private List<String> companyIdList; private Long companyIdStart;
/** 结束 记录名片持有者所在公司或组织的名称ID */
private Long companyIdEnd;
/** 增加 记录名片持有者所在公司或组织的名称ID */
private Long companyIdIncrement;
/** 记录名片持有者所在公司或组织的名称ID列表 */
private List <Long> companyIdList;
/** 记录名片持有者所在公司或组织的名称ID排除列表 */ /** 记录名片持有者所在公司或组织的名称ID排除列表 */
private List <String> companyIdNotList; private List <Long> companyIdNotList;
/** 记录名片持有者所在公司或组织的名称 */ /** 记录名片持有者所在公司或组织的名称 */
private List<String> companyNameList; private List<String> companyNameList;
...@@ -233,6 +243,11 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -233,6 +243,11 @@ public class BussinesscardQuery extends BussinesscardEntity {
/** 名片展示设置排除列表 */ /** 名片展示设置排除列表 */
private List <String> settingNotList; private List <String> settingNotList;
/** 公司地址 */
private List<String> companyAdressList;
/** 公司地址排除列表 */
private List <String> companyAdressNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<BussinesscardQuery> orConditionList; private List<BussinesscardQuery> orConditionList;
...@@ -708,11 +723,59 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -708,11 +723,59 @@ public class BussinesscardQuery extends BussinesscardEntity {
this.idCardNotList = idCardNotList; this.idCardNotList = idCardNotList;
} }
/**
* 获取 开始 记录名片持有者所在公司或组织的名称ID
* @return companyIdStart
*/
public Long getCompanyIdStart(){
return this.companyIdStart;
}
/**
* 设置 开始 记录名片持有者所在公司或组织的名称ID
* @param companyIdStart
*/
public void setCompanyIdStart(Long companyIdStart){
this.companyIdStart = companyIdStart;
}
/**
* 获取 结束 记录名片持有者所在公司或组织的名称ID
* @return $companyIdEnd
*/
public Long getCompanyIdEnd(){
return this.companyIdEnd;
}
/**
* 设置 结束 记录名片持有者所在公司或组织的名称ID
* @param companyIdEnd
*/
public void setCompanyIdEnd(Long companyIdEnd){
this.companyIdEnd = companyIdEnd;
}
/**
* 获取 增加 记录名片持有者所在公司或组织的名称ID
* @return companyIdIncrement
*/
public Long getCompanyIdIncrement(){
return this.companyIdIncrement;
}
/**
* 设置 增加 记录名片持有者所在公司或组织的名称ID
* @param companyIdIncrement
*/
public void setCompanyIdIncrement(Long companyIdIncrement){
this.companyIdIncrement = companyIdIncrement;
}
/** /**
* 获取 记录名片持有者所在公司或组织的名称ID * 获取 记录名片持有者所在公司或组织的名称ID
* @return companyIdList * @return companyIdList
*/ */
public List<String> getCompanyIdList(){ public List<Long> getCompanyIdList(){
return this.companyIdList; return this.companyIdList;
} }
...@@ -720,7 +783,7 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -720,7 +783,7 @@ public class BussinesscardQuery extends BussinesscardEntity {
* 设置 记录名片持有者所在公司或组织的名称ID * 设置 记录名片持有者所在公司或组织的名称ID
* @param companyIdList * @param companyIdList
*/ */
public void setCompanyIdList(List<String> companyIdList){ public void setCompanyIdList(List<Long> companyIdList){
this.companyIdList = companyIdList; this.companyIdList = companyIdList;
} }
...@@ -728,7 +791,7 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -728,7 +791,7 @@ public class BussinesscardQuery extends BussinesscardEntity {
* 获取 记录名片持有者所在公司或组织的名称ID * 获取 记录名片持有者所在公司或组织的名称ID
* @return companyIdNotList * @return companyIdNotList
*/ */
public List<String> getCompanyIdNotList(){ public List<Long> getCompanyIdNotList(){
return this.companyIdNotList; return this.companyIdNotList;
} }
...@@ -736,10 +799,11 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -736,10 +799,11 @@ public class BussinesscardQuery extends BussinesscardEntity {
* 设置 记录名片持有者所在公司或组织的名称ID * 设置 记录名片持有者所在公司或组织的名称ID
* @param companyIdNotList * @param companyIdNotList
*/ */
public void setCompanyIdNotList(List<String> companyIdNotList){ public void setCompanyIdNotList(List<Long> companyIdNotList){
this.companyIdNotList = companyIdNotList; this.companyIdNotList = companyIdNotList;
} }
/** /**
* 获取 记录名片持有者所在公司或组织的名称 * 获取 记录名片持有者所在公司或组织的名称
* @return companyNameList * @return companyNameList
...@@ -1514,6 +1578,38 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -1514,6 +1578,38 @@ public class BussinesscardQuery extends BussinesscardEntity {
this.settingNotList = settingNotList; this.settingNotList = settingNotList;
} }
/**
* 获取 公司地址
* @return companyAdressList
*/
public List<String> getCompanyAdressList(){
return this.companyAdressList;
}
/**
* 设置 公司地址
* @param companyAdressList
*/
public void setCompanyAdressList(List<String> companyAdressList){
this.companyAdressList = companyAdressList;
}
/**
* 获取 公司地址
* @return companyAdressNotList
*/
public List<String> getCompanyAdressNotList(){
return this.companyAdressNotList;
}
/**
* 设置 公司地址
* @param companyAdressNotList
*/
public void setCompanyAdressNotList(List<String> companyAdressNotList){
this.companyAdressNotList = companyAdressNotList;
}
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param id * @param id
...@@ -1791,25 +1887,60 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -1791,25 +1887,60 @@ public class BussinesscardQuery extends BussinesscardEntity {
return this; return this;
} }
/** /**
* 设置 记录名片持有者所在公司或组织的名称ID * 设置 记录名片持有者所在公司或组织的名称ID
* @param companyId * @param companyId
*/ */
public BussinesscardQuery companyId(String companyId){ public BussinesscardQuery companyId(Long companyId){
setCompanyId(companyId); setCompanyId(companyId);
return this; return this;
} }
/**
* 设置 开始 记录名片持有者所在公司或组织的名称ID
* @param companyIdStart
*/
public BussinesscardQuery companyIdStart(Long companyIdStart){
this.companyIdStart = companyIdStart;
return this;
}
/**
* 设置 结束 记录名片持有者所在公司或组织的名称ID
* @param companyIdEnd
*/
public BussinesscardQuery companyIdEnd(Long companyIdEnd){
this.companyIdEnd = companyIdEnd;
return this;
}
/**
* 设置 增加 记录名片持有者所在公司或组织的名称ID
* @param companyIdIncrement
*/
public BussinesscardQuery companyIdIncrement(Long companyIdIncrement){
this.companyIdIncrement = companyIdIncrement;
return this;
}
/** /**
* 设置 记录名片持有者所在公司或组织的名称ID * 设置 记录名片持有者所在公司或组织的名称ID
* @param companyIdList * @param companyIdList
*/ */
public BussinesscardQuery companyIdList(List<String> companyIdList){ public BussinesscardQuery companyIdList(List<Long> companyIdList){
this.companyIdList = companyIdList; this.companyIdList = companyIdList;
return this; return this;
} }
/**
* 设置 记录名片持有者所在公司或组织的名称ID
* @param companyIdNotList
*/
public BussinesscardQuery companyIdNotList(List<Long> companyIdNotList){
this.companyIdNotList = companyIdNotList;
return this;
}
/** /**
* 设置 记录名片持有者所在公司或组织的名称 * 设置 记录名片持有者所在公司或组织的名称
...@@ -2269,6 +2400,25 @@ public class BussinesscardQuery extends BussinesscardEntity { ...@@ -2269,6 +2400,25 @@ public class BussinesscardQuery extends BussinesscardEntity {
return this; return this;
} }
/**
* 设置 公司地址
* @param companyAdress
*/
public BussinesscardQuery companyAdress(String companyAdress){
setCompanyAdress(companyAdress);
return this;
}
/**
* 设置 公司地址
* @param companyAdressList
*/
public BussinesscardQuery companyAdressList(List<String> companyAdressList){
this.companyAdressList = companyAdressList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
......
package com.mortals.xhx.module.bussinesscard.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.math.BigDecimal;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.bussinesscard.model.vo.BussinesscardRecordVo;
import lombok.Data;
/**
* 名片访问记录信息实体对象
*
* @author zxfei
* @date 2024-11-20
*/
@Data
public class BussinesscardRecordEntity extends BussinesscardRecordVo {
private static final long serialVersionUID = 1L;
/**
* 名片ID
*/
private Long bussinesscardId;
/**
* 查看人id
*/
private Long viewId;
/**
* 查看人名称
*/
private String viewName;
/**
* 累计查看次数
*/
private Integer sumViews;
/**
* 备注
*/
private String remark;
/**
* 最后浏览时间
*/
private Date viewTime;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof BussinesscardRecordEntity) {
BussinesscardRecordEntity tmp = (BussinesscardRecordEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.bussinesscardId = null;
this.viewId = null;
this.viewName = "";
this.sumViews = 0;
this.remark = "";
this.viewTime = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardRecordEntity;
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 2024-11-20
*/
@Data
public class BussinesscardRecordVo extends BaseEntityLong {
/** 序号,主键,自增长列表 */
private List <Long> idList;
}
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.service;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardEntity;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardRecordEntity;
import com.mortals.xhx.module.bussinesscard.dao.BussinesscardRecordDao;
/**
* BussinesscardRecordService
*
* 名片访问记录信息 service接口
*
* @author zxfei
* @date 2024-11-20
*/
public interface BussinesscardRecordService extends ICRUDService<BussinesscardRecordEntity,Long>{
BussinesscardRecordDao getDao();
/**
* 根据名片信息保存浏览记录
* @param bussinesscardEntity
* @param context
*/
void saveRecord(BussinesscardEntity bussinesscardEntity, Context context);
}
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.service.impl;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardEntity;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardRecordQuery;
import org.springframework.beans.BeanUtils;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Function;
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.bussinesscard.dao.BussinesscardRecordDao;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardRecordEntity;
import com.mortals.xhx.module.bussinesscard.service.BussinesscardRecordService;
import lombok.extern.slf4j.Slf4j;
/**
* BussinesscardRecordService
* 名片访问记录信息 service实现
*
* @author zxfei
* @date 2024-11-20
*/
@Service("bussinesscardRecordService")
@Slf4j
public class BussinesscardRecordServiceImpl extends AbstractCRUDServiceImpl<BussinesscardRecordDao, BussinesscardRecordEntity, Long> implements BussinesscardRecordService {
@Override
public void saveRecord(BussinesscardEntity bussinesscardEntity, Context context) {
if(context!=null&&context.getUser()!=null) {
BussinesscardRecordEntity recordEntity = this.selectOne(new BussinesscardRecordQuery().bussinesscardId(bussinesscardEntity.getId()).viewId(context.getUser().getId()));
if(recordEntity!=null){
Map condition = new HashMap();
condition.put("id",recordEntity.getId());
Map data = new HashMap();
data.put("sumViewsIncrement",1);
data.put("viewTime",new Date());
this.dao.update(data,condition);
}else {
recordEntity = new BussinesscardRecordEntity();
recordEntity.initAttrValue();
recordEntity.setBussinesscardId(bussinesscardEntity.getId());
recordEntity.setSumViews(1);
recordEntity.setViewId(context.getUser().getId());
recordEntity.setViewName(context.getUser().getRealName());
recordEntity.setViewTime(new Date());
recordEntity.setCreateTime(new Date());
recordEntity.setCreateUserId(1l);
this.save(recordEntity);
}
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.service.impl; package com.mortals.xhx.module.bussinesscard.service.impl;
import com.mortals.framework.util.DataUtil;
import com.mortals.xhx.module.company.model.CompanyEntity;
import com.mortals.xhx.module.company.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -18,4 +22,28 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,4 +22,28 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
public class BussinesscardServiceImpl extends AbstractCRUDServiceImpl<BussinesscardDao, BussinesscardEntity, Long> implements BussinesscardService { public class BussinesscardServiceImpl extends AbstractCRUDServiceImpl<BussinesscardDao, BussinesscardEntity, Long> implements BussinesscardService {
@Autowired
private CompanyService companyService;
@Override
protected void saveBefore(BussinesscardEntity entity, Context context) throws AppException {
super.saveBefore(entity, context);
if(entity.getCompanyId()!=null){
CompanyEntity companyEntity = companyService.get(entity.getCompanyId());
if(companyEntity!=null){
entity.setCompanyAdress(companyEntity.getBusinessAdress());
}
}
}
@Override
protected void updateBefore(BussinesscardEntity entity, Context context) throws AppException {
super.saveBefore(entity, context);
if(entity.getCompanyId()!=null){
CompanyEntity companyEntity = companyService.get(entity.getCompanyId());
if(companyEntity!=null){
entity.setCompanyAdress(companyEntity.getBusinessAdress());
}
}
}
} }
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.web; package com.mortals.xhx.module.bussinesscard.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.base.system.user.model.UserEntity;
import com.mortals.xhx.base.system.user.service.UserService;
import com.mortals.xhx.module.bussinesscard.model.BussinesscardRecordEntity;
import com.mortals.xhx.module.bussinesscard.service.BussinesscardRecordService;
import com.mortals.xhx.module.company.model.CompanyQuery; import com.mortals.xhx.module.company.model.CompanyQuery;
import com.mortals.xhx.module.company.service.CompanyService; import com.mortals.xhx.module.company.service.CompanyService;
import com.mortals.xhx.module.position.model.PositionQuery; import com.mortals.xhx.module.position.model.PositionQuery;
...@@ -57,6 +62,10 @@ public class BussinesscardController extends BaseCRUDJsonBodyMappingController<B ...@@ -57,6 +62,10 @@ public class BussinesscardController extends BaseCRUDJsonBodyMappingController<B
private CompanyService companyService; private CompanyService companyService;
@Autowired @Autowired
private PositionService positionService; private PositionService positionService;
@Autowired
private BussinesscardRecordService bussinesscardRecordService;
@Autowired
private UserService userService;
public BussinesscardController() { public BussinesscardController() {
super.setModuleDesc("名片基本信息"); super.setModuleDesc("名片基本信息");
...@@ -75,5 +84,35 @@ public class BussinesscardController extends BaseCRUDJsonBodyMappingController<B ...@@ -75,5 +84,35 @@ public class BussinesscardController extends BaseCRUDJsonBodyMappingController<B
super.init(model, context); super.init(model, context);
} }
@Override
protected int viewAfter(Long id, Map<String, Object> model, BussinesscardEntity entity, Context context) throws AppException {
saveRecord(entity,context);
return 1;
}
@Override
protected int infoAfter(Long id, Map<String, Object> model, BussinesscardEntity entity, Context context) throws AppException {
saveRecord(entity,context);
return 1;
}
/**
* 保存名片被查看记录
* @param entity
* @param context
*/
private void saveRecord(BussinesscardEntity entity, Context context){
if(entity!=null){
if(context!=null&&context.getUser()!=null){
bussinesscardRecordService.saveRecord(entity, context);
UserEntity userEntity = userService.get(context.getUser().getId());
if(userEntity!=null){
//非本人浏览时才增加浏览次数
if(!(userEntity.getStaffId()!=null && userEntity.getStaffId().longValue() ==entity.getStaffId().longValue())){
staffService.saveView(entity.getStaffId());
}
}
}
}
}
} }
\ No newline at end of file
package com.mortals.xhx.module.bussinesscard.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
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.bussinesscard.model.BussinesscardRecordEntity;
import com.mortals.xhx.module.bussinesscard.service.BussinesscardRecordService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
import com.mortals.xhx.common.code.*;
/**
*
* 名片访问记录信息
*
* @author zxfei
* @date 2024-11-20
*/
@RestController
@RequestMapping("bussinesscard/record")
public class BussinesscardRecordController extends BaseCRUDJsonBodyMappingController<BussinesscardRecordService,BussinesscardRecordEntity,Long> {
@Autowired
private ParamService paramService;
public BussinesscardRecordController(){
super.setModuleDesc( "名片访问记录信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
}
\ No newline at end of file
...@@ -201,13 +201,13 @@ public class CompanyServiceImpl extends AbstractCRUDServiceImpl<CompanyDao, Comp ...@@ -201,13 +201,13 @@ public class CompanyServiceImpl extends AbstractCRUDServiceImpl<CompanyDao, Comp
//发送名片分布 //发送名片分布
List<BussinesscardEntity> bussinesscardList = bussinesscardService.find(new BussinesscardQuery()); List<BussinesscardEntity> bussinesscardList = bussinesscardService.find(new BussinesscardQuery());
Map<String, Integer> collect = bussinesscardList.stream().collect(Collectors.groupingBy(x -> x.getCompanyId(), Collectors.summingInt(BussinesscardEntity::getSendBusinessCardTimes))); Map<Long, Integer> collect = bussinesscardList.stream().collect(Collectors.groupingBy(x -> x.getCompanyId(), Collectors.summingInt(BussinesscardEntity::getSendBusinessCardTimes)));
/* Map<String, Integer> collect = staffList.stream().collect(Collectors.groupingBy(x -> x.getCompanyIds(), Collectors.summingInt(StaffEntity::getSendBusinessCardTimes))); /* Map<String, Integer> collect = staffList.stream().collect(Collectors.groupingBy(x -> x.getCompanyIds(), Collectors.summingInt(StaffEntity::getSendBusinessCardTimes)));
*/ */
companyList.forEach(company -> { companyList.forEach(company -> {
//归集公司发送卡片数量 //归集公司发送卡片数量
Long companyId = company.getId(); Long companyId = company.getId();
company.setBusinessCardNums(collect.getOrDefault(companyId.toString(),0)); company.setBusinessCardNums(collect.getOrDefault(companyId,0));
/* collect.entrySet().stream().forEach(item -> { /* collect.entrySet().stream().forEach(item -> {
String key = item.getKey(); String key = item.getKey();
Integer nums = item.getValue(); Integer nums = item.getValue();
......
...@@ -40,6 +40,10 @@ public class NewsRecordEntity extends NewsRecordVo { ...@@ -40,6 +40,10 @@ public class NewsRecordEntity extends NewsRecordVo {
* 最后浏览时间 * 最后浏览时间
*/ */
private Date viewTime; private Date viewTime;
/**
* 查看人id
*/
private Long viewId;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
...@@ -62,5 +66,6 @@ public class NewsRecordEntity extends NewsRecordVo { ...@@ -62,5 +66,6 @@ public class NewsRecordEntity extends NewsRecordVo {
this.sumViews = 0; this.sumViews = 0;
this.remark = ""; this.remark = "";
this.viewTime = new Date(); this.viewTime = new Date();
this.viewId = null;
} }
} }
\ No newline at end of file
...@@ -4,11 +4,11 @@ import java.util.Date; ...@@ -4,11 +4,11 @@ import java.util.Date;
import java.util.List; import java.util.List;
import com.mortals.xhx.module.news.model.NewsRecordEntity; import com.mortals.xhx.module.news.model.NewsRecordEntity;
/** /**
* 新闻访问记录信息查询对象 * 新闻访问记录信息查询对象
* *
* @author zxfei * @author zxfei
* @date 2023-09-18 * @date 2024-11-20
*/ */
public class NewsRecordQuery extends NewsRecordEntity { public class NewsRecordQuery extends NewsRecordEntity {
/** 开始 序号,主键,自增长 */ /** 开始 序号,主键,自增长 */
private Long idStart; private Long idStart;
...@@ -113,6 +113,21 @@ public class NewsRecordQuery extends NewsRecordEntity { ...@@ -113,6 +113,21 @@ public class NewsRecordQuery extends NewsRecordEntity {
/** 结束 更新时间 */ /** 结束 更新时间 */
private String updateTimeEnd; private String updateTimeEnd;
/** 开始 查看人id */
private Long viewIdStart;
/** 结束 查看人id */
private Long viewIdEnd;
/** 增加 查看人id */
private Long viewIdIncrement;
/** 查看人id列表 */
private List <Long> viewIdList;
/** 查看人id排除列表 */
private List <Long> viewIdNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<NewsRecordQuery> orConditionList; private List<NewsRecordQuery> orConditionList;
...@@ -686,6 +701,87 @@ public class NewsRecordQuery extends NewsRecordEntity { ...@@ -686,6 +701,87 @@ public class NewsRecordQuery extends NewsRecordEntity {
this.updateTimeEnd = updateTimeEnd; this.updateTimeEnd = updateTimeEnd;
} }
/**
* 获取 开始 查看人id
* @return viewIdStart
*/
public Long getViewIdStart(){
return this.viewIdStart;
}
/**
* 设置 开始 查看人id
* @param viewIdStart
*/
public void setViewIdStart(Long viewIdStart){
this.viewIdStart = viewIdStart;
}
/**
* 获取 结束 查看人id
* @return $viewIdEnd
*/
public Long getViewIdEnd(){
return this.viewIdEnd;
}
/**
* 设置 结束 查看人id
* @param viewIdEnd
*/
public void setViewIdEnd(Long viewIdEnd){
this.viewIdEnd = viewIdEnd;
}
/**
* 获取 增加 查看人id
* @return viewIdIncrement
*/
public Long getViewIdIncrement(){
return this.viewIdIncrement;
}
/**
* 设置 增加 查看人id
* @param viewIdIncrement
*/
public void setViewIdIncrement(Long viewIdIncrement){
this.viewIdIncrement = viewIdIncrement;
}
/**
* 获取 查看人id
* @return viewIdList
*/
public List<Long> getViewIdList(){
return this.viewIdList;
}
/**
* 设置 查看人id
* @param viewIdList
*/
public void setViewIdList(List<Long> viewIdList){
this.viewIdList = viewIdList;
}
/**
* 获取 查看人id
* @return viewIdNotList
*/
public List<Long> getViewIdNotList(){
return this.viewIdNotList;
}
/**
* 设置 查看人id
* @param viewIdNotList
*/
public void setViewIdNotList(List<Long> viewIdNotList){
this.viewIdNotList = viewIdNotList;
}
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param id * @param id
...@@ -997,6 +1093,60 @@ public class NewsRecordQuery extends NewsRecordEntity { ...@@ -997,6 +1093,60 @@ public class NewsRecordQuery extends NewsRecordEntity {
} }
/**
* 设置 查看人id
* @param viewId
*/
public NewsRecordQuery viewId(Long viewId){
setViewId(viewId);
return this;
}
/**
* 设置 开始 查看人id
* @param viewIdStart
*/
public NewsRecordQuery viewIdStart(Long viewIdStart){
this.viewIdStart = viewIdStart;
return this;
}
/**
* 设置 结束 查看人id
* @param viewIdEnd
*/
public NewsRecordQuery viewIdEnd(Long viewIdEnd){
this.viewIdEnd = viewIdEnd;
return this;
}
/**
* 设置 增加 查看人id
* @param viewIdIncrement
*/
public NewsRecordQuery viewIdIncrement(Long viewIdIncrement){
this.viewIdIncrement = viewIdIncrement;
return this;
}
/**
* 设置 查看人id
* @param viewIdList
*/
public NewsRecordQuery viewIdList(List<Long> viewIdList){
this.viewIdList = viewIdList;
return this;
}
/**
* 设置 查看人id
* @param viewIdNotList
*/
public NewsRecordQuery viewIdNotList(List<Long> viewIdNotList){
this.viewIdNotList = viewIdNotList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
......
...@@ -43,6 +43,10 @@ public class StaffRecordEntity extends StaffRecordVo { ...@@ -43,6 +43,10 @@ public class StaffRecordEntity extends StaffRecordVo {
* 备注 * 备注
*/ */
private String remark; private String remark;
/**
* 查看人id
*/
private Long viewId;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
...@@ -66,5 +70,6 @@ public class StaffRecordEntity extends StaffRecordVo { ...@@ -66,5 +70,6 @@ public class StaffRecordEntity extends StaffRecordVo {
this.sumViews = 0; this.sumViews = 0;
this.viewContent = ""; this.viewContent = "";
this.remark = ""; this.remark = "";
this.viewId = null;
} }
} }
\ No newline at end of file
...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.staff.model; ...@@ -3,11 +3,11 @@ package com.mortals.xhx.module.staff.model;
import java.util.List; import java.util.List;
import com.mortals.xhx.module.staff.model.StaffRecordEntity; import com.mortals.xhx.module.staff.model.StaffRecordEntity;
/** /**
* 客户访问记录信息查询对象 * 客户访问记录信息查询对象
* *
* @author zxfei * @author zxfei
* @date 2023-09-18 * @date 2024-11-20
*/ */
public class StaffRecordQuery extends StaffRecordEntity { public class StaffRecordQuery extends StaffRecordEntity {
/** 开始 序号,主键,自增长 */ /** 开始 序号,主键,自增长 */
private Long idStart; private Long idStart;
...@@ -116,6 +116,21 @@ public class StaffRecordQuery extends StaffRecordEntity { ...@@ -116,6 +116,21 @@ public class StaffRecordQuery extends StaffRecordEntity {
/** 结束 更新时间 */ /** 结束 更新时间 */
private String updateTimeEnd; private String updateTimeEnd;
/** 开始 查看人id */
private Long viewIdStart;
/** 结束 查看人id */
private Long viewIdEnd;
/** 增加 查看人id */
private Long viewIdIncrement;
/** 查看人id列表 */
private List <Long> viewIdList;
/** 查看人id排除列表 */
private List <Long> viewIdNotList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */ /** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<StaffRecordQuery> orConditionList; private List<StaffRecordQuery> orConditionList;
...@@ -721,6 +736,87 @@ public class StaffRecordQuery extends StaffRecordEntity { ...@@ -721,6 +736,87 @@ public class StaffRecordQuery extends StaffRecordEntity {
this.updateTimeEnd = updateTimeEnd; this.updateTimeEnd = updateTimeEnd;
} }
/**
* 获取 开始 查看人id
* @return viewIdStart
*/
public Long getViewIdStart(){
return this.viewIdStart;
}
/**
* 设置 开始 查看人id
* @param viewIdStart
*/
public void setViewIdStart(Long viewIdStart){
this.viewIdStart = viewIdStart;
}
/**
* 获取 结束 查看人id
* @return $viewIdEnd
*/
public Long getViewIdEnd(){
return this.viewIdEnd;
}
/**
* 设置 结束 查看人id
* @param viewIdEnd
*/
public void setViewIdEnd(Long viewIdEnd){
this.viewIdEnd = viewIdEnd;
}
/**
* 获取 增加 查看人id
* @return viewIdIncrement
*/
public Long getViewIdIncrement(){
return this.viewIdIncrement;
}
/**
* 设置 增加 查看人id
* @param viewIdIncrement
*/
public void setViewIdIncrement(Long viewIdIncrement){
this.viewIdIncrement = viewIdIncrement;
}
/**
* 获取 查看人id
* @return viewIdList
*/
public List<Long> getViewIdList(){
return this.viewIdList;
}
/**
* 设置 查看人id
* @param viewIdList
*/
public void setViewIdList(List<Long> viewIdList){
this.viewIdList = viewIdList;
}
/**
* 获取 查看人id
* @return viewIdNotList
*/
public List<Long> getViewIdNotList(){
return this.viewIdNotList;
}
/**
* 设置 查看人id
* @param viewIdNotList
*/
public void setViewIdNotList(List<Long> viewIdNotList){
this.viewIdNotList = viewIdNotList;
}
/** /**
* 设置 序号,主键,自增长 * 设置 序号,主键,自增长
* @param id * @param id
...@@ -1069,6 +1165,60 @@ public class StaffRecordQuery extends StaffRecordEntity { ...@@ -1069,6 +1165,60 @@ public class StaffRecordQuery extends StaffRecordEntity {
} }
/**
* 设置 查看人id
* @param viewId
*/
public StaffRecordQuery viewId(Long viewId){
setViewId(viewId);
return this;
}
/**
* 设置 开始 查看人id
* @param viewIdStart
*/
public StaffRecordQuery viewIdStart(Long viewIdStart){
this.viewIdStart = viewIdStart;
return this;
}
/**
* 设置 结束 查看人id
* @param viewIdEnd
*/
public StaffRecordQuery viewIdEnd(Long viewIdEnd){
this.viewIdEnd = viewIdEnd;
return this;
}
/**
* 设置 增加 查看人id
* @param viewIdIncrement
*/
public StaffRecordQuery viewIdIncrement(Long viewIdIncrement){
this.viewIdIncrement = viewIdIncrement;
return this;
}
/**
* 设置 查看人id
* @param viewIdList
*/
public StaffRecordQuery viewIdList(List<Long> viewIdList){
this.viewIdList = viewIdList;
return this;
}
/**
* 设置 查看人id
* @param viewIdNotList
*/
public StaffRecordQuery viewIdNotList(List<Long> viewIdNotList){
this.viewIdNotList = viewIdNotList;
return this;
}
/** /**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) * 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList * @return orConditionList
......
...@@ -20,4 +20,9 @@ public interface StaffService extends ICRUDCacheService<StaffEntity,Long> { ...@@ -20,4 +20,9 @@ public interface StaffService extends ICRUDCacheService<StaffEntity,Long> {
Rest<Void> leave(StaffEntity staffEntity, Context context); Rest<Void> leave(StaffEntity staffEntity, Context context);
/**
* 更新名片访问信息
* @param id
*/
void saveView(Long id);
} }
\ No newline at end of file
...@@ -21,6 +21,8 @@ import lombok.extern.slf4j.Slf4j; ...@@ -21,6 +21,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/** /**
* StaffService * StaffService
...@@ -58,4 +60,16 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta ...@@ -58,4 +60,16 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
} }
return Rest.ok(); return Rest.ok();
} }
@Override
public void saveView(Long id) {
if(id!=null){
Map condition = new HashMap();
condition.put("id",id);
Map data = new HashMap();
data.put("sumViewsIncrement",1);
data.put("viewsByDayIncrement",1);
this.dao.update(data,condition);
}
}
} }
\ No newline at end of file
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
<result property="updateTime" column="updateTime" /> <result property="updateTime" column="updateTime" />
<result property="sendBusinessCardTimes" column="sendBusinessCardTimes" /> <result property="sendBusinessCardTimes" column="sendBusinessCardTimes" />
<result property="setting" column="setting" /> <result property="setting" column="setting" />
<result property="companyAdress" column="companyAdress" />
</resultMap> </resultMap>
...@@ -157,7 +158,7 @@ ...@@ -157,7 +158,7 @@
<!-- 子表所有列 --> <!-- 子表所有列 -->
<sql id="_columns_sub"> <sql id="_columns_sub">
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
b.id,b.staffId,b.staffName,b.name,b.gender,b.birthday,b.photoPath,b.email,b.phoneNumber,b.idCard,b.companyId,b.companyName,b.positionId,b.positionName,b.bio,b.socialMedia,b.qRCode,b.remark,b.sumViews,b.viewsByDay,b.createUserId,b.createTime,b.updateUserId,b.updateTime,b.sendBusinessCardTimes,b.setting, b.id,b.staffId,b.staffName,b.name,b.gender,b.birthday,b.photoPath,b.email,b.phoneNumber,b.idCard,b.companyId,b.companyName,b.positionId,b.positionName,b.bio,b.socialMedia,b.qRCode,b.remark,b.sumViews,b.viewsByDay,b.createUserId,b.createTime,b.updateUserId,b.updateTime,b.sendBusinessCardTimes,b.setting,b.companyAdress,
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
......
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