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

问答管理,建议管理,帮助管理,消息推送等后端接口

parent a576e758
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 评价等级
*/
public enum EvaluateLevelEnum implements IBaseEnum {
LEVEL_0(0,"未评价",SysConstains.STYLE_DEFAULT),
LEVEL_1(1,"非常不满意",SysConstains.STYLE_DEFAULT),
LEVEL_2(2,"不满意", SysConstains.STYLE_DEFAULT),
LEVEL_3(3,"基本满意",SysConstains.STYLE_DEFAULT),
LEVEL_4(4,"满意", SysConstains.STYLE_DEFAULT),
LEVEL_5(5,"完美解决问题", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
EvaluateLevelEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static EvaluateLevelEnum getByValue(int value) {
for (EvaluateLevelEnum e : EvaluateLevelEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (EvaluateLevelEnum item : EvaluateLevelEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 评价类型
*/
public enum EvaluateType implements IBaseEnum {
USEFUL(1,"有用", SysConstains.STYLE_DEFAULT),
USELESS(2,"没用", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
EvaluateType(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static EvaluateType getByValue(int value) {
for (EvaluateType e : EvaluateType.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (EvaluateType item : EvaluateType.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 消息类型
*/
public enum MessageTypeEnum implements IBaseEnum {
TITLE(1,"提标题消息", SysConstains.STYLE_DEFAULT),
DYNAMIC(2,"动态消息", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
MessageTypeEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static MessageTypeEnum getByValue(int value) {
for (MessageTypeEnum e : MessageTypeEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (MessageTypeEnum item : MessageTypeEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 问题记录类型
*/
public enum QuestionRecordType implements IBaseEnum {
QUESTION(1,"提问", SysConstains.STYLE_DEFAULT),
ANSWER(2,"答复", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
QuestionRecordType(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static QuestionRecordType getByValue(int value) {
for (QuestionRecordType e : QuestionRecordType.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (QuestionRecordType item : QuestionRecordType.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 问答状态
*/
public enum QuestionStatusEnum implements IBaseEnum {
NOT_FINISHED(0,"未完成", SysConstains.STYLE_DEFAULT),
Finished(1,"已完成", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
QuestionStatusEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static QuestionStatusEnum getByValue(int value) {
for (QuestionStatusEnum e : QuestionStatusEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (QuestionStatusEnum item : QuestionStatusEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
\ No newline at end of file
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 查阅状态
*/
public enum ReadStatusEnum implements IBaseEnum {
READ(1,"已读", SysConstains.STYLE_DEFAULT),
UN_READ(0,"未读", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
ReadStatusEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static ReadStatusEnum getByValue(int value) {
for (ReadStatusEnum e : ReadStatusEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (ReadStatusEnum item : ReadStatusEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 客户建议回复状态
*/
public enum ReplyStatusEnum implements IBaseEnum {
UN_REPLY(0,"未回复", SysConstains.STYLE_DEFAULT),
REPLY(1,"已回复", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
ReplyStatusEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static ReplyStatusEnum getByValue(int value) {
for (ReplyStatusEnum e : ReplyStatusEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (ReplyStatusEnum item : ReplyStatusEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 发送方式
*/
public enum SendModeEnum implements IBaseEnum {
ON_SITE(1,"站内发送", SysConstains.STYLE_DEFAULT),
ON_SMS(2,"短信发送", SysConstains.STYLE_DEFAULT),
ALL(3,"同时发送", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
SendModeEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static SendModeEnum getByValue(int value) {
for (SendModeEnum e : SendModeEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (SendModeEnum item : SendModeEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 发送范围
*/
public enum SendScopeEnum implements IBaseEnum {
ALL(1,"所有人可见", SysConstains.STYLE_DEFAULT),
VIP(2,"VIP可见", SysConstains.STYLE_DEFAULT),
ORDINARY(3,"普通用户可见", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
SendScopeEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static SendScopeEnum getByValue(int value) {
for (SendScopeEnum e : SendScopeEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (SendScopeEnum item : SendScopeEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
package com.mortals.xhx.common.code;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.common.IBaseEnum;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 发送状态
*/
public enum SendStatusEnum implements IBaseEnum {
UNSENT(0,"未发送", SysConstains.STYLE_DEFAULT),
SENT(1,"已发送", SysConstains.STYLE_DEFAULT),
;
private int value;
private String desc;
private String style;
SendStatusEnum(int value, String desc, String style) {
this.value = value;
this.desc = desc;
this.style = style;
}
@Override
public int getValue() {
return this.value;
}
@Override
public String getDesc() {
return this.desc;
}
@Override
public String getStyle() {
return this.style;
}
public static SendStatusEnum getByValue(int value) {
for (SendStatusEnum e : SendStatusEnum.values()) {
if (e.getValue() == value) {
return e;
}
}
return null;
}
public static Map<String,String> getEnumMap(int... eItem) {
Map<String,String> resultMap= new LinkedHashMap<String,String>();
for (SendStatusEnum item : SendStatusEnum.values()) {
try{
boolean hasE = false;
for (int e : eItem){
if(item.getValue()==e){
hasE = true;
break;
}
}
if(!hasE){
resultMap.put(item.getValue()+"", item.getDesc());
}
}catch(Exception ex){
}
}
return resultMap;
}
}
......@@ -3,8 +3,6 @@ package com.mortals.xhx.module.customer.model;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
......@@ -15,7 +13,7 @@ import com.mortals.xhx.module.customer.model.vo.CustomerVo;
* 客户管理实体对象
*
* @author zxfei
* @date 2022-06-13
* @date 2022-07-01
*/
public class CustomerEntity extends CustomerVo implements IUser {
......@@ -65,6 +63,10 @@ public class CustomerEntity extends CustomerVo implements IUser {
* 职位
*/
private String job;
/**
* 头像图片地址
*/
private String avatar;
/**
* 客户来源
*/
......@@ -76,7 +78,6 @@ public class CustomerEntity extends CustomerVo implements IUser {
/**
* 最后一次登录时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date lastLoginTime;
/**
* 最后一次登录地址
......@@ -90,7 +91,6 @@ public class CustomerEntity extends CustomerVo implements IUser {
* 获取 用户登录账号
* @return String
*/
@Override
public String getLoginName(){
return loginName;
}
......@@ -241,6 +241,20 @@ public class CustomerEntity extends CustomerVo implements IUser {
public void setJob(String job){
this.job = job;
}
/**
* 获取 头像图片地址
* @return String
*/
public String getAvatar(){
return avatar;
}
/**
* 设置 头像图片地址
* @param avatar
*/
public void setAvatar(String avatar){
this.avatar = avatar;
}
/**
* 获取 客户来源
* @return Long
......@@ -330,6 +344,7 @@ public class CustomerEntity extends CustomerVo implements IUser {
sb.append(",sex:").append(getSex());
sb.append(",mailbox:").append(getMailbox());
sb.append(",job:").append(getJob());
sb.append(",avatar:").append(getAvatar());
sb.append(",customerSrc:").append(getCustomerSrc());
sb.append(",status:").append(getStatus());
sb.append(",lastLoginTime:").append(getLastLoginTime());
......@@ -361,6 +376,8 @@ public class CustomerEntity extends CustomerVo implements IUser {
this.job = "";
this.avatar = "";
this.customerSrc = null;
this.status = 0;
......@@ -431,5 +448,4 @@ public class CustomerEntity extends CustomerVo implements IUser {
public String getMenuUrl() {
return null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.customer.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.customer.model.CustomerEntity;
/**
* 客户管理查询对象
*
* @author zxfei
* @date 2022-06-08
*/
* 客户管理查询对象
*
* @author zxfei
* @date 2022-07-01
*/
public class CustomerQuery extends CustomerEntity {
/** 开始 主键ID,主键,自增长 */
private Long idStart;
......@@ -81,6 +82,9 @@ public class CustomerQuery extends CustomerEntity {
/** 职位 */
private List<String> jobList;
/** 头像图片地址 */
private List<String> avatarList;
/** 开始 客户来源 */
private Long customerSrcStart;
......@@ -129,6 +133,15 @@ public class CustomerQuery extends CustomerEntity {
/** 结束 更新时间 */
private String updateTimeEnd;
/** 开始 最后一次登录时间 */
private String lastLoginTimeStart;
/** 结束 最后一次登录时间 */
private String lastLoginTimeEnd;
/** 最后一次登录地址 */
private List<String> lastLoginAddressList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<CustomerQuery> orConditionList;
......@@ -513,6 +526,21 @@ public class CustomerQuery extends CustomerEntity {
public void setJobList(List<String> jobList){
this.jobList = jobList;
}
/**
* 获取 头像图片地址
* @return avatarList
*/
public List<String> getAvatarList(){
return this.avatarList;
}
/**
* 设置 头像图片地址
* @param avatarList
*/
public void setAvatarList(List<String> avatarList){
this.avatarList = avatarList;
}
/**
* 获取 开始 客户来源
* @return customerSrcStart
......@@ -769,6 +797,53 @@ public class CustomerQuery extends CustomerEntity {
this.updateTimeEnd = updateTimeEnd;
}
/**
* 获取 开始 最后一次登录时间
* @return lastLoginTimeStart
*/
public String getLastLoginTimeStart(){
return this.lastLoginTimeStart;
}
/**
* 设置 开始 最后一次登录时间
* @param lastLoginTimeStart
*/
public void setLastLoginTimeStart(String lastLoginTimeStart){
this.lastLoginTimeStart = lastLoginTimeStart;
}
/**
* 获取 结束 最后一次登录时间
* @return lastLoginTimeEnd
*/
public String getLastLoginTimeEnd(){
return this.lastLoginTimeEnd;
}
/**
* 设置 结束 最后一次登录时间
* @param lastLoginTimeEnd
*/
public void setLastLoginTimeEnd(String lastLoginTimeEnd){
this.lastLoginTimeEnd = lastLoginTimeEnd;
}
/**
* 获取 最后一次登录地址
* @return lastLoginAddressList
*/
public List<String> getLastLoginAddressList(){
return this.lastLoginAddressList;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddressList
*/
public void setLastLoginAddressList(List<String> lastLoginAddressList){
this.lastLoginAddressList = lastLoginAddressList;
}
/**
* 设置 主键ID,主键,自增长
* @param id
......@@ -1101,6 +1176,25 @@ public class CustomerQuery extends CustomerEntity {
return this;
}
/**
* 设置 头像图片地址
* @param avatar
*/
public CustomerQuery avatar(String avatar){
setAvatar(avatar);
return this;
}
/**
* 设置 头像图片地址
* @param avatarList
*/
public CustomerQuery avatarList(List<String> avatarList){
this.avatarList = avatarList;
return this;
}
/**
* 设置 客户来源
* @param customerSrc
......@@ -1238,6 +1332,26 @@ public class CustomerQuery extends CustomerEntity {
/**
* 设置 最后一次登录地址
* @param lastLoginAddress
*/
public CustomerQuery lastLoginAddress(String lastLoginAddress){
setLastLoginAddress(lastLoginAddress);
return this;
}
/**
* 设置 最后一次登录地址
* @param lastLoginAddressList
*/
public CustomerQuery lastLoginAddressList(List<String> lastLoginAddressList){
this.lastLoginAddressList = lastLoginAddressList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
......
......@@ -7,11 +7,11 @@ import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.customer.model.vo.CustomerWorkDesignVo;
/**
* 客户作品信息实体对象
*
* @author zxfei
* @date 2022-06-14
*/
* 客户作品信息实体对象
*
* @author zxfei
* @date 2022-07-01
*/
public class CustomerWorkDesignEntity extends CustomerWorkDesignVo {
private static final long serialVersionUID = 1L;
......@@ -48,6 +48,10 @@ public class CustomerWorkDesignEntity extends CustomerWorkDesignVo {
* 作品引用的字体
*/
private String fontIds;
/**
* 作品图片预览地址(相对地址)
*/
private String previewUrl;
......@@ -164,6 +168,20 @@ public class CustomerWorkDesignEntity extends CustomerWorkDesignVo {
public void setFontIds(String fontIds){
this.fontIds = fontIds;
}
/**
* 获取 作品图片预览地址(相对地址)
* @return String
*/
public String getPreviewUrl(){
return previewUrl;
}
/**
* 设置 作品图片预览地址(相对地址)
* @param previewUrl
*/
public void setPreviewUrl(String previewUrl){
this.previewUrl = previewUrl;
}
......@@ -194,6 +212,7 @@ public class CustomerWorkDesignEntity extends CustomerWorkDesignVo {
sb.append(",pictureSrcIds:").append(getPictureSrcIds());
sb.append(",pictureBackgroundIds:").append(getPictureBackgroundIds());
sb.append(",fontIds:").append(getFontIds());
sb.append(",previewUrl:").append(getPreviewUrl());
return sb.toString();
}
......@@ -214,5 +233,7 @@ public class CustomerWorkDesignEntity extends CustomerWorkDesignVo {
this.pictureBackgroundIds = "";
this.fontIds = "";
this.previewUrl = "";
}
}
\ No newline at end of file
......@@ -3,11 +3,11 @@ package com.mortals.xhx.module.customer.model;
import java.util.List;
import com.mortals.xhx.module.customer.model.CustomerWorkDesignEntity;
/**
* 客户作品信息查询对象
*
* @author zxfei
* @date 2022-06-14
*/
* 客户作品信息查询对象
*
* @author zxfei
* @date 2022-07-01
*/
public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
/** 开始 主键ID,主键,自增长 */
private Long idStart;
......@@ -33,12 +33,6 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
/** 客户ID列表 */
private List <Long> customerIdList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 作品名称 */
private List<String> workDesignNameList;
......@@ -57,6 +51,12 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
/** 作品描述 */
private List<String> workDesignDescList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 更新时间 */
private String updateTimeStart;
......@@ -75,6 +75,9 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
/** 作品引用的字体 */
private List<String> fontIdsList;
/** 作品图片预览地址(相对地址) */
private List<String> previewUrlList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<CustomerWorkDesignQuery> orConditionList;
......@@ -211,38 +214,6 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
this.customerIdList = customerIdList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 作品名称
* @return workDesignNameList
......@@ -337,6 +308,38 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
public void setWorkDesignDescList(List<String> workDesignDescList){
this.workDesignDescList = workDesignDescList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 更新时间
* @return updateTimeStart
......@@ -429,6 +432,21 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
public void setFontIdsList(List<String> fontIdsList){
this.fontIdsList = fontIdsList;
}
/**
* 获取 作品图片预览地址(相对地址)
* @return previewUrlList
*/
public List<String> getPreviewUrlList(){
return this.previewUrlList;
}
/**
* 设置 作品图片预览地址(相对地址)
* @param previewUrlList
*/
public void setPreviewUrlList(List<String> previewUrlList){
this.previewUrlList = previewUrlList;
}
/**
* 设置 主键ID,主键,自增长
* @param id
......@@ -520,7 +538,6 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
}
/**
* 设置 作品名称
* @param workDesignName
......@@ -605,6 +622,7 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
/**
* 设置 模版引用的图片
* @param pictureIds
......@@ -680,6 +698,25 @@ public class CustomerWorkDesignQuery extends CustomerWorkDesignEntity {
return this;
}
/**
* 设置 作品图片预览地址(相对地址)
* @param previewUrl
*/
public CustomerWorkDesignQuery previewUrl(String previewUrl){
setPreviewUrl(previewUrl);
return this;
}
/**
* 设置 作品图片预览地址(相对地址)
* @param previewUrlList
*/
public CustomerWorkDesignQuery previewUrlList(List<String> previewUrlList){
this.previewUrlList = previewUrlList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
......
......@@ -7,11 +7,11 @@ import com.mortals.framework.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.design.model.vo.DesignMasterplateVo;
/**
* 模版管理实体对象
*
* @author zxfei
* @date 2022-06-14
*/
* 模版管理实体对象
*
* @author zxfei
* @date 2022-07-01
*/
public class DesignMasterplateEntity extends DesignMasterplateVo {
private static final long serialVersionUID = 1L;
......@@ -41,10 +41,6 @@ public class DesignMasterplateEntity extends DesignMasterplateVo {
*/
private String masterplatePath;
/**
* 模版被引用的次数。默认:0
*/
private Integer masterplateUseNum;
/**
* 模版引用的图片
*/
private String pictureIds;
......@@ -60,6 +56,14 @@ public class DesignMasterplateEntity extends DesignMasterplateVo {
* 模版引用的字体
*/
private String fontIds;
/**
* 模版被引用的次数。默认:0
*/
private Integer masterplateUseNum;
/**
* 作品图片预览地址(相对地址)
*/
private String previewUrl;
......@@ -149,20 +153,6 @@ public class DesignMasterplateEntity extends DesignMasterplateVo {
this.masterplatePath = masterplatePath;
}
/**
* 获取 模版被引用的次数。默认:0
* @return Integer
*/
public Integer getMasterplateUseNum(){
return masterplateUseNum;
}
/**
* 设置 模版被引用的次数。默认:0
* @param masterplateUseNum
*/
public void setMasterplateUseNum(Integer masterplateUseNum){
this.masterplateUseNum = masterplateUseNum;
}
/**
* 获取 模版引用的图片
* @return String
*/
......@@ -218,6 +208,34 @@ public class DesignMasterplateEntity extends DesignMasterplateVo {
public void setFontIds(String fontIds){
this.fontIds = fontIds;
}
/**
* 获取 模版被引用的次数。默认:0
* @return Integer
*/
public Integer getMasterplateUseNum(){
return masterplateUseNum;
}
/**
* 设置 模版被引用的次数。默认:0
* @param masterplateUseNum
*/
public void setMasterplateUseNum(Integer masterplateUseNum){
this.masterplateUseNum = masterplateUseNum;
}
/**
* 获取 作品图片预览地址(相对地址)
* @return String
*/
public String getPreviewUrl(){
return previewUrl;
}
/**
* 设置 作品图片预览地址(相对地址)
* @param previewUrl
*/
public void setPreviewUrl(String previewUrl){
this.previewUrl = previewUrl;
}
......@@ -246,11 +264,12 @@ public class DesignMasterplateEntity extends DesignMasterplateVo {
sb.append(",customerName:").append(getCustomerName());
sb.append(",masterplateDesc:").append(getMasterplateDesc());
sb.append(",masterplatePath:").append(getMasterplatePath());
sb.append(",masterplateUseNum:").append(getMasterplateUseNum());
sb.append(",pictureIds:").append(getPictureIds());
sb.append(",pictureSrcIds:").append(getPictureSrcIds());
sb.append(",pictureBackgroundIds:").append(getPictureBackgroundIds());
sb.append(",fontIds:").append(getFontIds());
sb.append(",masterplateUseNum:").append(getMasterplateUseNum());
sb.append(",previewUrl:").append(getPreviewUrl());
return sb.toString();
}
......@@ -268,8 +287,6 @@ public class DesignMasterplateEntity extends DesignMasterplateVo {
this.masterplatePath = "";
this.masterplateUseNum = null;
this.pictureIds = "";
this.pictureSrcIds = "";
......@@ -277,5 +294,9 @@ public class DesignMasterplateEntity extends DesignMasterplateVo {
this.pictureBackgroundIds = "";
this.fontIds = "";
this.masterplateUseNum = null;
this.previewUrl = "";
}
}
\ No newline at end of file
......@@ -3,11 +3,11 @@ package com.mortals.xhx.module.design.model;
import java.util.List;
import com.mortals.xhx.module.design.model.DesignMasterplateEntity;
/**
* 模版管理查询对象
*
* @author zxfei
* @date 2022-06-14
*/
* 模版管理查询对象
*
* @author zxfei
* @date 2022-07-01
*/
public class DesignMasterplateQuery extends DesignMasterplateEntity {
/** 开始 主键ID,主键,自增长 */
private Long idStart;
......@@ -63,6 +63,18 @@ public class DesignMasterplateQuery extends DesignMasterplateEntity {
/** 模版下载地址(相对地址) */
private List<String> masterplatePathList;
/** 模版引用的图片 */
private List<String> pictureIdsList;
/** 模版引用的素材 */
private List<String> pictureSrcIdsList;
/** 模版引用的背景 */
private List<String> pictureBackgroundIdsList;
/** 模版引用的字体 */
private List<String> fontIdsList;
/** 开始 模版被引用的次数。默认:0 */
private Integer masterplateUseNumStart;
......@@ -75,17 +87,8 @@ public class DesignMasterplateQuery extends DesignMasterplateEntity {
/** 模版被引用的次数。默认:0列表 */
private List <Integer> masterplateUseNumList;
/** 模版引用的图片 */
private List<String> pictureIdsList;
/** 模版引用的素材 */
private List<String> pictureSrcIdsList;
/** 模版引用的背景 */
private List<String> pictureBackgroundIdsList;
/** 模版引用的字体 */
private List<String> fontIdsList;
/** 作品图片预览地址(相对地址) */
private List<String> previewUrlList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<DesignMasterplateQuery> orConditionList;
......@@ -379,6 +382,66 @@ public class DesignMasterplateQuery extends DesignMasterplateEntity {
public void setMasterplatePathList(List<String> masterplatePathList){
this.masterplatePathList = masterplatePathList;
}
/**
* 获取 模版引用的图片
* @return pictureIdsList
*/
public List<String> getPictureIdsList(){
return this.pictureIdsList;
}
/**
* 设置 模版引用的图片
* @param pictureIdsList
*/
public void setPictureIdsList(List<String> pictureIdsList){
this.pictureIdsList = pictureIdsList;
}
/**
* 获取 模版引用的素材
* @return pictureSrcIdsList
*/
public List<String> getPictureSrcIdsList(){
return this.pictureSrcIdsList;
}
/**
* 设置 模版引用的素材
* @param pictureSrcIdsList
*/
public void setPictureSrcIdsList(List<String> pictureSrcIdsList){
this.pictureSrcIdsList = pictureSrcIdsList;
}
/**
* 获取 模版引用的背景
* @return pictureBackgroundIdsList
*/
public List<String> getPictureBackgroundIdsList(){
return this.pictureBackgroundIdsList;
}
/**
* 设置 模版引用的背景
* @param pictureBackgroundIdsList
*/
public void setPictureBackgroundIdsList(List<String> pictureBackgroundIdsList){
this.pictureBackgroundIdsList = pictureBackgroundIdsList;
}
/**
* 获取 模版引用的字体
* @return fontIdsList
*/
public List<String> getFontIdsList(){
return this.fontIdsList;
}
/**
* 设置 模版引用的字体
* @param fontIdsList
*/
public void setFontIdsList(List<String> fontIdsList){
this.fontIdsList = fontIdsList;
}
/**
* 获取 开始 模版被引用的次数。默认:0
* @return masterplateUseNumStart
......@@ -444,64 +507,19 @@ public class DesignMasterplateQuery extends DesignMasterplateEntity {
}
/**
* 获取 模版引用的图片
* @return pictureIdsList
*/
public List<String> getPictureIdsList(){
return this.pictureIdsList;
}
/**
* 设置 模版引用的图片
* @param pictureIdsList
*/
public void setPictureIdsList(List<String> pictureIdsList){
this.pictureIdsList = pictureIdsList;
}
/**
* 获取 模版引用的素材
* @return pictureSrcIdsList
*/
public List<String> getPictureSrcIdsList(){
return this.pictureSrcIdsList;
}
/**
* 设置 模版引用的素材
* @param pictureSrcIdsList
*/
public void setPictureSrcIdsList(List<String> pictureSrcIdsList){
this.pictureSrcIdsList = pictureSrcIdsList;
}
/**
* 获取 模版引用的背景
* @return pictureBackgroundIdsList
*/
public List<String> getPictureBackgroundIdsList(){
return this.pictureBackgroundIdsList;
}
/**
* 设置 模版引用的背景
* @param pictureBackgroundIdsList
* 获取 作品图片预览地址(相对地址)
* @return previewUrlList
*/
public void setPictureBackgroundIdsList(List<String> pictureBackgroundIdsList){
this.pictureBackgroundIdsList = pictureBackgroundIdsList;
}
/**
* 获取 模版引用的字体
* @return fontIdsList
*/
public List<String> getFontIdsList(){
return this.fontIdsList;
public List<String> getPreviewUrlList(){
return this.previewUrlList;
}
/**
* 设置 模版引用的字体
* @param fontIdsList
* 设置 作品图片预览地址(相对地址)
* @param previewUrlList
*/
public void setFontIdsList(List<String> fontIdsList){
this.fontIdsList = fontIdsList;
public void setPreviewUrlList(List<String> previewUrlList){
this.previewUrlList = previewUrlList;
}
/**
* 设置 主键ID,主键,自增长
......@@ -715,51 +733,6 @@ public class DesignMasterplateQuery extends DesignMasterplateEntity {
return this;
}
/**
* 设置 模版被引用的次数。默认:0
* @param masterplateUseNum
*/
public DesignMasterplateQuery masterplateUseNum(Integer masterplateUseNum){
setMasterplateUseNum(masterplateUseNum);
return this;
}
/**
* 设置 开始 模版被引用的次数。默认:0
* @param masterplateUseNumStart
*/
public DesignMasterplateQuery masterplateUseNumStart(Integer masterplateUseNumStart){
this.masterplateUseNumStart = masterplateUseNumStart;
return this;
}
/**
* 设置 结束 模版被引用的次数。默认:0
* @param masterplateUseNumEnd
*/
public DesignMasterplateQuery masterplateUseNumEnd(Integer masterplateUseNumEnd){
this.masterplateUseNumEnd = masterplateUseNumEnd;
return this;
}
/**
* 设置 增加 模版被引用的次数。默认:0
* @param masterplateUseNumIncrement
*/
public DesignMasterplateQuery masterplateUseNumIncrement(Integer masterplateUseNumIncrement){
this.masterplateUseNumIncrement = masterplateUseNumIncrement;
return this;
}
/**
* 设置 模版被引用的次数。默认:0
* @param masterplateUseNumList
*/
public DesignMasterplateQuery masterplateUseNumList(List<Integer> masterplateUseNumList){
this.masterplateUseNumList = masterplateUseNumList;
return this;
}
/**
* 设置 模版引用的图片
......@@ -836,6 +809,70 @@ public class DesignMasterplateQuery extends DesignMasterplateEntity {
return this;
}
/**
* 设置 模版被引用的次数。默认:0
* @param masterplateUseNum
*/
public DesignMasterplateQuery masterplateUseNum(Integer masterplateUseNum){
setMasterplateUseNum(masterplateUseNum);
return this;
}
/**
* 设置 开始 模版被引用的次数。默认:0
* @param masterplateUseNumStart
*/
public DesignMasterplateQuery masterplateUseNumStart(Integer masterplateUseNumStart){
this.masterplateUseNumStart = masterplateUseNumStart;
return this;
}
/**
* 设置 结束 模版被引用的次数。默认:0
* @param masterplateUseNumEnd
*/
public DesignMasterplateQuery masterplateUseNumEnd(Integer masterplateUseNumEnd){
this.masterplateUseNumEnd = masterplateUseNumEnd;
return this;
}
/**
* 设置 增加 模版被引用的次数。默认:0
* @param masterplateUseNumIncrement
*/
public DesignMasterplateQuery masterplateUseNumIncrement(Integer masterplateUseNumIncrement){
this.masterplateUseNumIncrement = masterplateUseNumIncrement;
return this;
}
/**
* 设置 模版被引用的次数。默认:0
* @param masterplateUseNumList
*/
public DesignMasterplateQuery masterplateUseNumList(List<Integer> masterplateUseNumList){
this.masterplateUseNumList = masterplateUseNumList;
return this;
}
/**
* 设置 作品图片预览地址(相对地址)
* @param previewUrl
*/
public DesignMasterplateQuery previewUrl(String previewUrl){
setPreviewUrl(previewUrl);
return this;
}
/**
* 设置 作品图片预览地址(相对地址)
* @param previewUrlList
*/
public DesignMasterplateQuery previewUrlList(List<String> previewUrlList){
this.previewUrlList = previewUrlList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
......
package com.mortals.xhx.module.help.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.help.model.HelpEntity;
import java.util.List;
/**
* 帮助信息Dao
* 帮助信息 DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface HelpDao extends ICRUDDao<HelpEntity,Long>{
}
package com.mortals.xhx.module.help.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.help.model.HelpEvaluateEntity;
import java.util.List;
/**
* 帮助评价信息Dao
* 帮助评价信息 DAO接口
*
* @author zxfei
* @date 2022-06-29
*/
public interface HelpEvaluateDao extends ICRUDDao<HelpEvaluateEntity,Long>{
}
package com.mortals.xhx.module.help.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.help.dao.HelpDao;
import com.mortals.xhx.module.help.model.HelpEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 帮助信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
@Repository("helpDao")
public class HelpDaoImpl extends BaseCRUDDaoMybatis<HelpEntity,Long> implements HelpDao {
}
package com.mortals.xhx.module.help.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.help.dao.HelpEvaluateDao;
import com.mortals.xhx.module.help.model.HelpEvaluateEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 帮助评价信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-29
*/
@Repository("helpEvaluateDao")
public class HelpEvaluateDaoImpl extends BaseCRUDDaoMybatis<HelpEvaluateEntity,Long> implements HelpEvaluateDao {
}
package com.mortals.xhx.module.help.model;
import com.mortals.xhx.module.help.model.vo.HelpVo;
/**
* 帮助信息实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class HelpEntity extends HelpVo {
private static final long serialVersionUID = 1L;
/**
* 排序号
*/
private Integer sortNum;
/**
* 问题标题
*/
private String title;
/**
* 问题内容
*/
private String content;
/**
* 问题回复
*/
private String answerContent;
/**
* 问题类型备用字段
*/
private Integer questionType;
/**
* 状态备用字段
*/
private Integer status;
/**
* 有用统计
*/
private Integer useful;
/**
* 无用统计
*/
private Integer useless;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 修改用户名称
*/
private String updateUserName;
public HelpEntity(){}
/**
* 获取 排序号
* @return Integer
*/
public Integer getSortNum(){
return sortNum;
}
/**
* 设置 排序号
* @param sortNum
*/
public void setSortNum(Integer sortNum){
this.sortNum = sortNum;
}
/**
* 获取 问题标题
* @return String
*/
public String getTitle(){
return title;
}
/**
* 设置 问题标题
* @param title
*/
public void setTitle(String title){
this.title = title;
}
/**
* 获取 问题内容
* @return String
*/
public String getContent(){
return content;
}
/**
* 设置 问题内容
* @param content
*/
public void setContent(String content){
this.content = content;
}
/**
* 获取 问题回复
* @return String
*/
public String getAnswerContent(){
return answerContent;
}
/**
* 设置 问题回复
* @param answerContent
*/
public void setAnswerContent(String answerContent){
this.answerContent = answerContent;
}
/**
* 获取 问题类型备用字段
* @return Integer
*/
public Integer getQuestionType(){
return questionType;
}
/**
* 设置 问题类型备用字段
* @param questionType
*/
public void setQuestionType(Integer questionType){
this.questionType = questionType;
}
/**
* 获取 状态备用字段
* @return Integer
*/
public Integer getStatus(){
return status;
}
/**
* 设置 状态备用字段
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取 有用统计
* @return Integer
*/
public Integer getUseful(){
return useful;
}
/**
* 设置 有用统计
* @param useful
*/
public void setUseful(Integer useful){
this.useful = useful;
}
/**
* 获取 无用统计
* @return Integer
*/
public Integer getUseless(){
return useless;
}
/**
* 设置 无用统计
* @param useless
*/
public void setUseless(Integer useless){
this.useless = useless;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 修改用户名称
* @return String
*/
public String getUpdateUserName(){
return updateUserName;
}
/**
* 设置 修改用户名称
* @param updateUserName
*/
public void setUpdateUserName(String updateUserName){
this.updateUserName = updateUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof HelpEntity) {
HelpEntity tmp = (HelpEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",sortNum:").append(getSortNum());
sb.append(",title:").append(getTitle());
sb.append(",content:").append(getContent());
sb.append(",answerContent:").append(getAnswerContent());
sb.append(",questionType:").append(getQuestionType());
sb.append(",status:").append(getStatus());
sb.append(",useful:").append(getUseful());
sb.append(",useless:").append(getUseless());
sb.append(",createUserName:").append(getCreateUserName());
sb.append(",updateUserName:").append(getUpdateUserName());
return sb.toString();
}
public void initAttrValue(){
this.sortNum = null;
this.title = "";
this.content = "";
this.answerContent = "";
this.questionType = null;
this.status = null;
this.useful = 0;
this.useless = 0;
this.createUserName = "";
this.updateUserName = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.help.model;
import com.mortals.xhx.module.help.model.vo.HelpEvaluateVo;
import java.util.Date;
/**
* 帮助评价信息实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class HelpEvaluateEntity extends HelpEvaluateVo {
private static final long serialVersionUID = 1L;
/**
* 帮助ID
*/
private Long helpId;
/**
* 客户id
*/
private Long customerId;
/**
* 客户真实名称
*/
private String custName;
/**
* 单位名称
*/
private String organization;
/**
* 联系电话
*/
private String contactTelphone;
/**
* 评价结果1有用2没用
*/
private Integer evaluateType;
/**
* 评价时间
*/
private Date evaluateTime;
public HelpEvaluateEntity(){}
/**
* 获取 帮助ID
* @return Long
*/
public Long getHelpId(){
return helpId;
}
/**
* 设置 帮助ID
* @param helpId
*/
public void setHelpId(Long helpId){
this.helpId = helpId;
}
/**
* 获取 客户id
* @return Long
*/
public Long getCustomerId(){
return customerId;
}
/**
* 设置 客户id
* @param customerId
*/
public void setCustomerId(Long customerId){
this.customerId = customerId;
}
/**
* 获取 客户真实名称
* @return String
*/
public String getCustName(){
return custName;
}
/**
* 设置 客户真实名称
* @param custName
*/
public void setCustName(String custName){
this.custName = custName;
}
/**
* 获取 单位名称
* @return String
*/
public String getOrganization(){
return organization;
}
/**
* 设置 单位名称
* @param organization
*/
public void setOrganization(String organization){
this.organization = organization;
}
/**
* 获取 联系电话
* @return String
*/
public String getContactTelphone(){
return contactTelphone;
}
/**
* 设置 联系电话
* @param contactTelphone
*/
public void setContactTelphone(String contactTelphone){
this.contactTelphone = contactTelphone;
}
/**
* 获取 评价结果1有用2没用
* @return Integer
*/
public Integer getEvaluateType(){
return evaluateType;
}
/**
* 设置 评价结果1有用2没用
* @param evaluateType
*/
public void setEvaluateType(Integer evaluateType){
this.evaluateType = evaluateType;
}
/**
* 获取 评价时间
* @return Date
*/
public Date getEvaluateTime(){
return evaluateTime;
}
/**
* 设置 评价时间
* @param evaluateTime
*/
public void setEvaluateTime(Date evaluateTime){
this.evaluateTime = evaluateTime;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof HelpEvaluateEntity) {
HelpEvaluateEntity tmp = (HelpEvaluateEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",helpId:").append(getHelpId());
sb.append(",customerId:").append(getCustomerId());
sb.append(",custName:").append(getCustName());
sb.append(",organization:").append(getOrganization());
sb.append(",contactTelphone:").append(getContactTelphone());
sb.append(",evaluateType:").append(getEvaluateType());
sb.append(",evaluateTime:").append(getEvaluateTime());
return sb.toString();
}
public void initAttrValue(){
this.helpId = null;
this.customerId = null;
this.custName = "";
this.organization = "";
this.contactTelphone = "";
this.evaluateType = 1;
this.evaluateTime = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.help.model;
import java.util.List;
/**
* 帮助评价信息查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class HelpEvaluateQuery extends HelpEvaluateEntity {
/** 开始 评价ID,主键,自增长 */
private Long idStart;
/** 结束 评价ID,主键,自增长 */
private Long idEnd;
/** 增加 评价ID,主键,自增长 */
private Long idIncrement;
/** 评价ID,主键,自增长列表 */
private List <Long> idList;
/** 开始 帮助ID */
private Long helpIdStart;
/** 结束 帮助ID */
private Long helpIdEnd;
/** 增加 帮助ID */
private Long helpIdIncrement;
/** 帮助ID列表 */
private List <Long> helpIdList;
/** 开始 客户id */
private Long customerIdStart;
/** 结束 客户id */
private Long customerIdEnd;
/** 增加 客户id */
private Long customerIdIncrement;
/** 客户id列表 */
private List <Long> customerIdList;
/** 客户真实名称 */
private List<String> custNameList;
/** 单位名称 */
private List<String> organizationList;
/** 联系电话 */
private List<String> contactTelphoneList;
/** 开始 评价结果1有用2没用 */
private Integer evaluateTypeStart;
/** 结束 评价结果1有用2没用 */
private Integer evaluateTypeEnd;
/** 增加 评价结果1有用2没用 */
private Integer evaluateTypeIncrement;
/** 评价结果1有用2没用列表 */
private List <Integer> evaluateTypeList;
/** 开始 评价时间 */
private String evaluateTimeStart;
/** 结束 评价时间 */
private String evaluateTimeEnd;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<HelpEvaluateQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<HelpEvaluateQuery> andConditionList;
public HelpEvaluateQuery(){}
/**
* 获取 开始 评价ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 评价ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 评价ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 评价ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 评价ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 评价ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 评价ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 评价ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 帮助ID
* @return helpIdStart
*/
public Long getHelpIdStart(){
return this.helpIdStart;
}
/**
* 设置 开始 帮助ID
* @param helpIdStart
*/
public void setHelpIdStart(Long helpIdStart){
this.helpIdStart = helpIdStart;
}
/**
* 获取 结束 帮助ID
* @return $helpIdEnd
*/
public Long getHelpIdEnd(){
return this.helpIdEnd;
}
/**
* 设置 结束 帮助ID
* @param helpIdEnd
*/
public void setHelpIdEnd(Long helpIdEnd){
this.helpIdEnd = helpIdEnd;
}
/**
* 获取 增加 帮助ID
* @return helpIdIncrement
*/
public Long getHelpIdIncrement(){
return this.helpIdIncrement;
}
/**
* 设置 增加 帮助ID
* @param helpIdIncrement
*/
public void setHelpIdIncrement(Long helpIdIncrement){
this.helpIdIncrement = helpIdIncrement;
}
/**
* 获取 帮助ID
* @return helpIdList
*/
public List<Long> getHelpIdList(){
return this.helpIdList;
}
/**
* 设置 帮助ID
* @param helpIdList
*/
public void setHelpIdList(List<Long> helpIdList){
this.helpIdList = helpIdList;
}
/**
* 获取 开始 客户id
* @return customerIdStart
*/
public Long getCustomerIdStart(){
return this.customerIdStart;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public void setCustomerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
}
/**
* 获取 结束 客户id
* @return $customerIdEnd
*/
public Long getCustomerIdEnd(){
return this.customerIdEnd;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public void setCustomerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
}
/**
* 获取 增加 客户id
* @return customerIdIncrement
*/
public Long getCustomerIdIncrement(){
return this.customerIdIncrement;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public void setCustomerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
}
/**
* 获取 客户id
* @return customerIdList
*/
public List<Long> getCustomerIdList(){
return this.customerIdList;
}
/**
* 设置 客户id
* @param customerIdList
*/
public void setCustomerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
}
/**
* 获取 客户真实名称
* @return custNameList
*/
public List<String> getCustNameList(){
return this.custNameList;
}
/**
* 设置 客户真实名称
* @param custNameList
*/
public void setCustNameList(List<String> custNameList){
this.custNameList = custNameList;
}
/**
* 获取 单位名称
* @return organizationList
*/
public List<String> getOrganizationList(){
return this.organizationList;
}
/**
* 设置 单位名称
* @param organizationList
*/
public void setOrganizationList(List<String> organizationList){
this.organizationList = organizationList;
}
/**
* 获取 联系电话
* @return contactTelphoneList
*/
public List<String> getContactTelphoneList(){
return this.contactTelphoneList;
}
/**
* 设置 联系电话
* @param contactTelphoneList
*/
public void setContactTelphoneList(List<String> contactTelphoneList){
this.contactTelphoneList = contactTelphoneList;
}
/**
* 获取 开始 评价结果1有用2没用
* @return evaluateTypeStart
*/
public Integer getEvaluateTypeStart(){
return this.evaluateTypeStart;
}
/**
* 设置 开始 评价结果1有用2没用
* @param evaluateTypeStart
*/
public void setEvaluateTypeStart(Integer evaluateTypeStart){
this.evaluateTypeStart = evaluateTypeStart;
}
/**
* 获取 结束 评价结果1有用2没用
* @return $evaluateTypeEnd
*/
public Integer getEvaluateTypeEnd(){
return this.evaluateTypeEnd;
}
/**
* 设置 结束 评价结果1有用2没用
* @param evaluateTypeEnd
*/
public void setEvaluateTypeEnd(Integer evaluateTypeEnd){
this.evaluateTypeEnd = evaluateTypeEnd;
}
/**
* 获取 增加 评价结果1有用2没用
* @return evaluateTypeIncrement
*/
public Integer getEvaluateTypeIncrement(){
return this.evaluateTypeIncrement;
}
/**
* 设置 增加 评价结果1有用2没用
* @param evaluateTypeIncrement
*/
public void setEvaluateTypeIncrement(Integer evaluateTypeIncrement){
this.evaluateTypeIncrement = evaluateTypeIncrement;
}
/**
* 获取 评价结果1有用2没用
* @return evaluateTypeList
*/
public List<Integer> getEvaluateTypeList(){
return this.evaluateTypeList;
}
/**
* 设置 评价结果1有用2没用
* @param evaluateTypeList
*/
public void setEvaluateTypeList(List<Integer> evaluateTypeList){
this.evaluateTypeList = evaluateTypeList;
}
/**
* 获取 开始 评价时间
* @return evaluateTimeStart
*/
public String getEvaluateTimeStart(){
return this.evaluateTimeStart;
}
/**
* 设置 开始 评价时间
* @param evaluateTimeStart
*/
public void setEvaluateTimeStart(String evaluateTimeStart){
this.evaluateTimeStart = evaluateTimeStart;
}
/**
* 获取 结束 评价时间
* @return evaluateTimeEnd
*/
public String getEvaluateTimeEnd(){
return this.evaluateTimeEnd;
}
/**
* 设置 结束 评价时间
* @param evaluateTimeEnd
*/
public void setEvaluateTimeEnd(String evaluateTimeEnd){
this.evaluateTimeEnd = evaluateTimeEnd;
}
/**
* 设置 评价ID,主键,自增长
* @param id
*/
public HelpEvaluateQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 评价ID,主键,自增长
* @param idStart
*/
public HelpEvaluateQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 评价ID,主键,自增长
* @param idEnd
*/
public HelpEvaluateQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 评价ID,主键,自增长
* @param idIncrement
*/
public HelpEvaluateQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 评价ID,主键,自增长
* @param idList
*/
public HelpEvaluateQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 帮助ID
* @param helpId
*/
public HelpEvaluateQuery helpId(Long helpId){
setHelpId(helpId);
return this;
}
/**
* 设置 开始 帮助ID
* @param helpIdStart
*/
public HelpEvaluateQuery helpIdStart(Long helpIdStart){
this.helpIdStart = helpIdStart;
return this;
}
/**
* 设置 结束 帮助ID
* @param helpIdEnd
*/
public HelpEvaluateQuery helpIdEnd(Long helpIdEnd){
this.helpIdEnd = helpIdEnd;
return this;
}
/**
* 设置 增加 帮助ID
* @param helpIdIncrement
*/
public HelpEvaluateQuery helpIdIncrement(Long helpIdIncrement){
this.helpIdIncrement = helpIdIncrement;
return this;
}
/**
* 设置 帮助ID
* @param helpIdList
*/
public HelpEvaluateQuery helpIdList(List<Long> helpIdList){
this.helpIdList = helpIdList;
return this;
}
/**
* 设置 客户id
* @param customerId
*/
public HelpEvaluateQuery customerId(Long customerId){
setCustomerId(customerId);
return this;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public HelpEvaluateQuery customerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
return this;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public HelpEvaluateQuery customerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
return this;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public HelpEvaluateQuery customerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
return this;
}
/**
* 设置 客户id
* @param customerIdList
*/
public HelpEvaluateQuery customerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
return this;
}
/**
* 设置 客户真实名称
* @param custName
*/
public HelpEvaluateQuery custName(String custName){
setCustName(custName);
return this;
}
/**
* 设置 客户真实名称
* @param custNameList
*/
public HelpEvaluateQuery custNameList(List<String> custNameList){
this.custNameList = custNameList;
return this;
}
/**
* 设置 单位名称
* @param organization
*/
public HelpEvaluateQuery organization(String organization){
setOrganization(organization);
return this;
}
/**
* 设置 单位名称
* @param organizationList
*/
public HelpEvaluateQuery organizationList(List<String> organizationList){
this.organizationList = organizationList;
return this;
}
/**
* 设置 联系电话
* @param contactTelphone
*/
public HelpEvaluateQuery contactTelphone(String contactTelphone){
setContactTelphone(contactTelphone);
return this;
}
/**
* 设置 联系电话
* @param contactTelphoneList
*/
public HelpEvaluateQuery contactTelphoneList(List<String> contactTelphoneList){
this.contactTelphoneList = contactTelphoneList;
return this;
}
/**
* 设置 评价结果1有用2没用
* @param evaluateType
*/
public HelpEvaluateQuery evaluateType(Integer evaluateType){
setEvaluateType(evaluateType);
return this;
}
/**
* 设置 开始 评价结果1有用2没用
* @param evaluateTypeStart
*/
public HelpEvaluateQuery evaluateTypeStart(Integer evaluateTypeStart){
this.evaluateTypeStart = evaluateTypeStart;
return this;
}
/**
* 设置 结束 评价结果1有用2没用
* @param evaluateTypeEnd
*/
public HelpEvaluateQuery evaluateTypeEnd(Integer evaluateTypeEnd){
this.evaluateTypeEnd = evaluateTypeEnd;
return this;
}
/**
* 设置 增加 评价结果1有用2没用
* @param evaluateTypeIncrement
*/
public HelpEvaluateQuery evaluateTypeIncrement(Integer evaluateTypeIncrement){
this.evaluateTypeIncrement = evaluateTypeIncrement;
return this;
}
/**
* 设置 评价结果1有用2没用
* @param evaluateTypeList
*/
public HelpEvaluateQuery evaluateTypeList(List<Integer> evaluateTypeList){
this.evaluateTypeList = evaluateTypeList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<HelpEvaluateQuery> 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<HelpEvaluateQuery> 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<HelpEvaluateQuery> 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<HelpEvaluateQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.help.model;
import java.util.List;
/**
* 帮助信息查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class HelpQuery extends HelpEntity {
/** 开始 帮助ID,主键,自增长 */
private Long idStart;
/** 结束 帮助ID,主键,自增长 */
private Long idEnd;
/** 增加 帮助ID,主键,自增长 */
private Long idIncrement;
/** 帮助ID,主键,自增长列表 */
private List <Long> idList;
/** 开始 排序号 */
private Integer sortNumStart;
/** 结束 排序号 */
private Integer sortNumEnd;
/** 增加 排序号 */
private Integer sortNumIncrement;
/** 排序号列表 */
private List <Integer> sortNumList;
/** 问题标题 */
private List<String> titleList;
/** 问题内容 */
private List<String> contentList;
/** 问题回复 */
private List<String> answerContentList;
/** 开始 问题类型备用字段 */
private Integer questionTypeStart;
/** 结束 问题类型备用字段 */
private Integer questionTypeEnd;
/** 增加 问题类型备用字段 */
private Integer questionTypeIncrement;
/** 问题类型备用字段列表 */
private List <Integer> questionTypeList;
/** 开始 状态备用字段 */
private Integer statusStart;
/** 结束 状态备用字段 */
private Integer statusEnd;
/** 增加 状态备用字段 */
private Integer statusIncrement;
/** 状态备用字段列表 */
private List <Integer> statusList;
/** 开始 有用统计 */
private Integer usefulStart;
/** 结束 有用统计 */
private Integer usefulEnd;
/** 增加 有用统计 */
private Integer usefulIncrement;
/** 有用统计列表 */
private List <Integer> usefulList;
/** 开始 无用统计 */
private Integer uselessStart;
/** 结束 无用统计 */
private Integer uselessEnd;
/** 增加 无用统计 */
private Integer uselessIncrement;
/** 无用统计列表 */
private List <Integer> uselessList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** 开始 修改时间 */
private String updateTimeStart;
/** 结束 修改时间 */
private String updateTimeEnd;
/** 开始 修改用户 */
private Long updateUserIdStart;
/** 结束 修改用户 */
private Long updateUserIdEnd;
/** 增加 修改用户 */
private Long updateUserIdIncrement;
/** 修改用户列表 */
private List <Long> updateUserIdList;
/** 修改用户名称 */
private List<String> updateUserNameList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<HelpQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<HelpQuery> andConditionList;
public HelpQuery(){}
/**
* 获取 开始 帮助ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 帮助ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 帮助ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 帮助ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 帮助ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 帮助ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 帮助ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 帮助ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 排序号
* @return sortNumStart
*/
public Integer getSortNumStart(){
return this.sortNumStart;
}
/**
* 设置 开始 排序号
* @param sortNumStart
*/
public void setSortNumStart(Integer sortNumStart){
this.sortNumStart = sortNumStart;
}
/**
* 获取 结束 排序号
* @return $sortNumEnd
*/
public Integer getSortNumEnd(){
return this.sortNumEnd;
}
/**
* 设置 结束 排序号
* @param sortNumEnd
*/
public void setSortNumEnd(Integer sortNumEnd){
this.sortNumEnd = sortNumEnd;
}
/**
* 获取 增加 排序号
* @return sortNumIncrement
*/
public Integer getSortNumIncrement(){
return this.sortNumIncrement;
}
/**
* 设置 增加 排序号
* @param sortNumIncrement
*/
public void setSortNumIncrement(Integer sortNumIncrement){
this.sortNumIncrement = sortNumIncrement;
}
/**
* 获取 排序号
* @return sortNumList
*/
public List<Integer> getSortNumList(){
return this.sortNumList;
}
/**
* 设置 排序号
* @param sortNumList
*/
public void setSortNumList(List<Integer> sortNumList){
this.sortNumList = sortNumList;
}
/**
* 获取 问题标题
* @return titleList
*/
public List<String> getTitleList(){
return this.titleList;
}
/**
* 设置 问题标题
* @param titleList
*/
public void setTitleList(List<String> titleList){
this.titleList = titleList;
}
/**
* 获取 问题内容
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 问题内容
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 问题回复
* @return answerContentList
*/
public List<String> getAnswerContentList(){
return this.answerContentList;
}
/**
* 设置 问题回复
* @param answerContentList
*/
public void setAnswerContentList(List<String> answerContentList){
this.answerContentList = answerContentList;
}
/**
* 获取 开始 问题类型备用字段
* @return questionTypeStart
*/
public Integer getQuestionTypeStart(){
return this.questionTypeStart;
}
/**
* 设置 开始 问题类型备用字段
* @param questionTypeStart
*/
public void setQuestionTypeStart(Integer questionTypeStart){
this.questionTypeStart = questionTypeStart;
}
/**
* 获取 结束 问题类型备用字段
* @return $questionTypeEnd
*/
public Integer getQuestionTypeEnd(){
return this.questionTypeEnd;
}
/**
* 设置 结束 问题类型备用字段
* @param questionTypeEnd
*/
public void setQuestionTypeEnd(Integer questionTypeEnd){
this.questionTypeEnd = questionTypeEnd;
}
/**
* 获取 增加 问题类型备用字段
* @return questionTypeIncrement
*/
public Integer getQuestionTypeIncrement(){
return this.questionTypeIncrement;
}
/**
* 设置 增加 问题类型备用字段
* @param questionTypeIncrement
*/
public void setQuestionTypeIncrement(Integer questionTypeIncrement){
this.questionTypeIncrement = questionTypeIncrement;
}
/**
* 获取 问题类型备用字段
* @return questionTypeList
*/
public List<Integer> getQuestionTypeList(){
return this.questionTypeList;
}
/**
* 设置 问题类型备用字段
* @param questionTypeList
*/
public void setQuestionTypeList(List<Integer> questionTypeList){
this.questionTypeList = questionTypeList;
}
/**
* 获取 开始 状态备用字段
* @return statusStart
*/
public Integer getStatusStart(){
return this.statusStart;
}
/**
* 设置 开始 状态备用字段
* @param statusStart
*/
public void setStatusStart(Integer statusStart){
this.statusStart = statusStart;
}
/**
* 获取 结束 状态备用字段
* @return $statusEnd
*/
public Integer getStatusEnd(){
return this.statusEnd;
}
/**
* 设置 结束 状态备用字段
* @param statusEnd
*/
public void setStatusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
}
/**
* 获取 增加 状态备用字段
* @return statusIncrement
*/
public Integer getStatusIncrement(){
return this.statusIncrement;
}
/**
* 设置 增加 状态备用字段
* @param statusIncrement
*/
public void setStatusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
}
/**
* 获取 状态备用字段
* @return statusList
*/
public List<Integer> getStatusList(){
return this.statusList;
}
/**
* 设置 状态备用字段
* @param statusList
*/
public void setStatusList(List<Integer> statusList){
this.statusList = statusList;
}
/**
* 获取 开始 有用统计
* @return usefulStart
*/
public Integer getUsefulStart(){
return this.usefulStart;
}
/**
* 设置 开始 有用统计
* @param usefulStart
*/
public void setUsefulStart(Integer usefulStart){
this.usefulStart = usefulStart;
}
/**
* 获取 结束 有用统计
* @return $usefulEnd
*/
public Integer getUsefulEnd(){
return this.usefulEnd;
}
/**
* 设置 结束 有用统计
* @param usefulEnd
*/
public void setUsefulEnd(Integer usefulEnd){
this.usefulEnd = usefulEnd;
}
/**
* 获取 增加 有用统计
* @return usefulIncrement
*/
public Integer getUsefulIncrement(){
return this.usefulIncrement;
}
/**
* 设置 增加 有用统计
* @param usefulIncrement
*/
public void setUsefulIncrement(Integer usefulIncrement){
this.usefulIncrement = usefulIncrement;
}
/**
* 获取 有用统计
* @return usefulList
*/
public List<Integer> getUsefulList(){
return this.usefulList;
}
/**
* 设置 有用统计
* @param usefulList
*/
public void setUsefulList(List<Integer> usefulList){
this.usefulList = usefulList;
}
/**
* 获取 开始 无用统计
* @return uselessStart
*/
public Integer getUselessStart(){
return this.uselessStart;
}
/**
* 设置 开始 无用统计
* @param uselessStart
*/
public void setUselessStart(Integer uselessStart){
this.uselessStart = uselessStart;
}
/**
* 获取 结束 无用统计
* @return $uselessEnd
*/
public Integer getUselessEnd(){
return this.uselessEnd;
}
/**
* 设置 结束 无用统计
* @param uselessEnd
*/
public void setUselessEnd(Integer uselessEnd){
this.uselessEnd = uselessEnd;
}
/**
* 获取 增加 无用统计
* @return uselessIncrement
*/
public Integer getUselessIncrement(){
return this.uselessIncrement;
}
/**
* 设置 增加 无用统计
* @param uselessIncrement
*/
public void setUselessIncrement(Integer uselessIncrement){
this.uselessIncrement = uselessIncrement;
}
/**
* 获取 无用统计
* @return uselessList
*/
public List<Integer> getUselessList(){
return this.uselessList;
}
/**
* 设置 无用统计
* @param uselessList
*/
public void setUselessList(List<Integer> uselessList){
this.uselessList = uselessList;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 获取 开始 修改时间
* @return updateTimeStart
*/
public String getUpdateTimeStart(){
return this.updateTimeStart;
}
/**
* 设置 开始 修改时间
* @param updateTimeStart
*/
public void setUpdateTimeStart(String updateTimeStart){
this.updateTimeStart = updateTimeStart;
}
/**
* 获取 结束 修改时间
* @return updateTimeEnd
*/
public String getUpdateTimeEnd(){
return this.updateTimeEnd;
}
/**
* 设置 结束 修改时间
* @param updateTimeEnd
*/
public void setUpdateTimeEnd(String updateTimeEnd){
this.updateTimeEnd = updateTimeEnd;
}
/**
* 获取 开始 修改用户
* @return updateUserIdStart
*/
public Long getUpdateUserIdStart(){
return this.updateUserIdStart;
}
/**
* 设置 开始 修改用户
* @param updateUserIdStart
*/
public void setUpdateUserIdStart(Long updateUserIdStart){
this.updateUserIdStart = updateUserIdStart;
}
/**
* 获取 结束 修改用户
* @return $updateUserIdEnd
*/
public Long getUpdateUserIdEnd(){
return this.updateUserIdEnd;
}
/**
* 设置 结束 修改用户
* @param updateUserIdEnd
*/
public void setUpdateUserIdEnd(Long updateUserIdEnd){
this.updateUserIdEnd = updateUserIdEnd;
}
/**
* 获取 增加 修改用户
* @return updateUserIdIncrement
*/
public Long getUpdateUserIdIncrement(){
return this.updateUserIdIncrement;
}
/**
* 设置 增加 修改用户
* @param updateUserIdIncrement
*/
public void setUpdateUserIdIncrement(Long updateUserIdIncrement){
this.updateUserIdIncrement = updateUserIdIncrement;
}
/**
* 获取 修改用户
* @return updateUserIdList
*/
public List<Long> getUpdateUserIdList(){
return this.updateUserIdList;
}
/**
* 设置 修改用户
* @param updateUserIdList
*/
public void setUpdateUserIdList(List<Long> updateUserIdList){
this.updateUserIdList = updateUserIdList;
}
/**
* 获取 修改用户名称
* @return updateUserNameList
*/
public List<String> getUpdateUserNameList(){
return this.updateUserNameList;
}
/**
* 设置 修改用户名称
* @param updateUserNameList
*/
public void setUpdateUserNameList(List<String> updateUserNameList){
this.updateUserNameList = updateUserNameList;
}
/**
* 设置 帮助ID,主键,自增长
* @param id
*/
public HelpQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 帮助ID,主键,自增长
* @param idStart
*/
public HelpQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 帮助ID,主键,自增长
* @param idEnd
*/
public HelpQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 帮助ID,主键,自增长
* @param idIncrement
*/
public HelpQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 帮助ID,主键,自增长
* @param idList
*/
public HelpQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 排序号
* @param sortNum
*/
public HelpQuery sortNum(Integer sortNum){
setSortNum(sortNum);
return this;
}
/**
* 设置 开始 排序号
* @param sortNumStart
*/
public HelpQuery sortNumStart(Integer sortNumStart){
this.sortNumStart = sortNumStart;
return this;
}
/**
* 设置 结束 排序号
* @param sortNumEnd
*/
public HelpQuery sortNumEnd(Integer sortNumEnd){
this.sortNumEnd = sortNumEnd;
return this;
}
/**
* 设置 增加 排序号
* @param sortNumIncrement
*/
public HelpQuery sortNumIncrement(Integer sortNumIncrement){
this.sortNumIncrement = sortNumIncrement;
return this;
}
/**
* 设置 排序号
* @param sortNumList
*/
public HelpQuery sortNumList(List<Integer> sortNumList){
this.sortNumList = sortNumList;
return this;
}
/**
* 设置 问题标题
* @param title
*/
public HelpQuery title(String title){
setTitle(title);
return this;
}
/**
* 设置 问题标题
* @param titleList
*/
public HelpQuery titleList(List<String> titleList){
this.titleList = titleList;
return this;
}
/**
* 设置 问题内容
* @param content
*/
public HelpQuery content(String content){
setContent(content);
return this;
}
/**
* 设置 问题内容
* @param contentList
*/
public HelpQuery contentList(List<String> contentList){
this.contentList = contentList;
return this;
}
/**
* 设置 问题回复
* @param answerContent
*/
public HelpQuery answerContent(String answerContent){
setAnswerContent(answerContent);
return this;
}
/**
* 设置 问题回复
* @param answerContentList
*/
public HelpQuery answerContentList(List<String> answerContentList){
this.answerContentList = answerContentList;
return this;
}
/**
* 设置 问题类型备用字段
* @param questionType
*/
public HelpQuery questionType(Integer questionType){
setQuestionType(questionType);
return this;
}
/**
* 设置 开始 问题类型备用字段
* @param questionTypeStart
*/
public HelpQuery questionTypeStart(Integer questionTypeStart){
this.questionTypeStart = questionTypeStart;
return this;
}
/**
* 设置 结束 问题类型备用字段
* @param questionTypeEnd
*/
public HelpQuery questionTypeEnd(Integer questionTypeEnd){
this.questionTypeEnd = questionTypeEnd;
return this;
}
/**
* 设置 增加 问题类型备用字段
* @param questionTypeIncrement
*/
public HelpQuery questionTypeIncrement(Integer questionTypeIncrement){
this.questionTypeIncrement = questionTypeIncrement;
return this;
}
/**
* 设置 问题类型备用字段
* @param questionTypeList
*/
public HelpQuery questionTypeList(List<Integer> questionTypeList){
this.questionTypeList = questionTypeList;
return this;
}
/**
* 设置 状态备用字段
* @param status
*/
public HelpQuery status(Integer status){
setStatus(status);
return this;
}
/**
* 设置 开始 状态备用字段
* @param statusStart
*/
public HelpQuery statusStart(Integer statusStart){
this.statusStart = statusStart;
return this;
}
/**
* 设置 结束 状态备用字段
* @param statusEnd
*/
public HelpQuery statusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
return this;
}
/**
* 设置 增加 状态备用字段
* @param statusIncrement
*/
public HelpQuery statusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
return this;
}
/**
* 设置 状态备用字段
* @param statusList
*/
public HelpQuery statusList(List<Integer> statusList){
this.statusList = statusList;
return this;
}
/**
* 设置 有用统计
* @param useful
*/
public HelpQuery useful(Integer useful){
setUseful(useful);
return this;
}
/**
* 设置 开始 有用统计
* @param usefulStart
*/
public HelpQuery usefulStart(Integer usefulStart){
this.usefulStart = usefulStart;
return this;
}
/**
* 设置 结束 有用统计
* @param usefulEnd
*/
public HelpQuery usefulEnd(Integer usefulEnd){
this.usefulEnd = usefulEnd;
return this;
}
/**
* 设置 增加 有用统计
* @param usefulIncrement
*/
public HelpQuery usefulIncrement(Integer usefulIncrement){
this.usefulIncrement = usefulIncrement;
return this;
}
/**
* 设置 有用统计
* @param usefulList
*/
public HelpQuery usefulList(List<Integer> usefulList){
this.usefulList = usefulList;
return this;
}
/**
* 设置 无用统计
* @param useless
*/
public HelpQuery useless(Integer useless){
setUseless(useless);
return this;
}
/**
* 设置 开始 无用统计
* @param uselessStart
*/
public HelpQuery uselessStart(Integer uselessStart){
this.uselessStart = uselessStart;
return this;
}
/**
* 设置 结束 无用统计
* @param uselessEnd
*/
public HelpQuery uselessEnd(Integer uselessEnd){
this.uselessEnd = uselessEnd;
return this;
}
/**
* 设置 增加 无用统计
* @param uselessIncrement
*/
public HelpQuery uselessIncrement(Integer uselessIncrement){
this.uselessIncrement = uselessIncrement;
return this;
}
/**
* 设置 无用统计
* @param uselessList
*/
public HelpQuery uselessList(List<Integer> uselessList){
this.uselessList = uselessList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public HelpQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public HelpQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public HelpQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public HelpQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public HelpQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public HelpQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public HelpQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 设置 修改用户
* @param updateUserId
*/
public HelpQuery updateUserId(Long updateUserId){
setUpdateUserId(updateUserId);
return this;
}
/**
* 设置 开始 修改用户
* @param updateUserIdStart
*/
public HelpQuery updateUserIdStart(Long updateUserIdStart){
this.updateUserIdStart = updateUserIdStart;
return this;
}
/**
* 设置 结束 修改用户
* @param updateUserIdEnd
*/
public HelpQuery updateUserIdEnd(Long updateUserIdEnd){
this.updateUserIdEnd = updateUserIdEnd;
return this;
}
/**
* 设置 增加 修改用户
* @param updateUserIdIncrement
*/
public HelpQuery updateUserIdIncrement(Long updateUserIdIncrement){
this.updateUserIdIncrement = updateUserIdIncrement;
return this;
}
/**
* 设置 修改用户
* @param updateUserIdList
*/
public HelpQuery updateUserIdList(List<Long> updateUserIdList){
this.updateUserIdList = updateUserIdList;
return this;
}
/**
* 设置 修改用户名称
* @param updateUserName
*/
public HelpQuery updateUserName(String updateUserName){
setUpdateUserName(updateUserName);
return this;
}
/**
* 设置 修改用户名称
* @param updateUserNameList
*/
public HelpQuery updateUserNameList(List<String> updateUserNameList){
this.updateUserNameList = updateUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<HelpQuery> 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<HelpQuery> 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<HelpQuery> 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<HelpQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.help.model.vo;
import com.mortals.framework.model.BaseEntityLong;
/**
* 帮助评价信息视图对象
*
* @author zxfei
* @date 2022-06-29
*/
public class HelpEvaluateVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.help.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import lombok.Data;
/**
* 帮助信息视图对象
*
* @author zxfei
* @date 2022-06-28
*/
@Data
public class HelpVo extends BaseEntityLong {
/** 查询条件 */
private String query;
}
\ No newline at end of file
package com.mortals.xhx.module.help.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.help.model.HelpEvaluateEntity;
/**
* HelpEvaluateService
*
* 帮助评价信息 service接口
*
* @author zxfei
* @date 2022-06-29
*/
public interface HelpEvaluateService extends ICRUDService<HelpEvaluateEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.help.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.help.model.HelpEntity;
/**
* HelpService
*
* 帮助信息 service接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface HelpService extends ICRUDService<HelpEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.help.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.help.dao.HelpEvaluateDao;
import com.mortals.xhx.module.help.model.HelpEvaluateEntity;
import com.mortals.xhx.module.help.service.HelpEvaluateService;
/**
* HelpEvaluateService
* 帮助评价信息 service实现
*
* @author zxfei
* @date 2022-06-29
*/
@Service("helpEvaluateService")
public class HelpEvaluateServiceImpl extends AbstractCRUDServiceImpl<HelpEvaluateDao, HelpEvaluateEntity, Long> implements HelpEvaluateService {
@Override
protected HelpEvaluateEntity findBefore(HelpEvaluateEntity params, PageInfo pageInfo, Context context) throws AppException {
pageInfo.setPrePageResult(-1);
return super.findBefore(params, pageInfo, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.help.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.common.code.EvaluateType;
import com.mortals.xhx.common.utils.StringUtils;
import com.mortals.xhx.module.help.dao.HelpDao;
import com.mortals.xhx.module.help.model.HelpEntity;
import com.mortals.xhx.module.help.model.HelpEvaluateEntity;
import com.mortals.xhx.module.help.service.HelpEvaluateService;
import com.mortals.xhx.module.help.service.HelpService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* HelpService
* 帮助信息 service实现
*
* @author zxfei
* @date 2022-06-28
*/
@Service("helpService")
public class HelpServiceImpl extends AbstractCRUDServiceImpl<HelpDao, HelpEntity, Long> implements HelpService {
@Autowired
private HelpEvaluateService helpEvaluateService;
@Override
protected HelpEntity findBefore(HelpEntity entity, PageInfo pageInfo, Context context) throws AppException {
if(StringUtils.isNotEmpty(entity.getQuery())){
StringBuffer condition = new StringBuffer("%");
condition.append(entity.getQuery()).append("%");
entity.setContent(condition.toString());
}
return entity;
}
@Override
protected void findAfter(HelpEntity params, PageInfo pageInfo, Context context, List<HelpEntity> list) throws AppException {
if(CollectionUtils.isNotEmpty(list)) {
list.stream().forEach(item -> {
HelpEvaluateEntity query = new HelpEvaluateEntity();
query.setHelpId(item.getId());
List<HelpEvaluateEntity> evaluateEntities = helpEvaluateService.find(query);
if(CollectionUtils.isNotEmpty(evaluateEntities)){
Map<Integer, List<HelpEvaluateEntity>> map = evaluateEntities.stream().collect(Collectors.groupingBy(HelpEvaluateEntity::getEvaluateType));
item.setUseful(CollectionUtils.isNotEmpty(map.get(EvaluateType.USEFUL.getValue()))?map.get(EvaluateType.USEFUL.getValue()).size():0);
item.setUseless(CollectionUtils.isNotEmpty(map.get(EvaluateType.USELESS.getValue()))?map.get(EvaluateType.USELESS.getValue()).size():0);
}else {
item.setUseful(0);
item.setUseless(0);
}
});
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.help.web;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.QuestionStatusEnum;
import com.mortals.xhx.module.help.model.HelpEntity;
import com.mortals.xhx.module.help.service.HelpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*
* 帮助信息
*
* @author zxfei
* @date 2022-06-28
*/
@RestController
@RequestMapping("help")
public class HelpController extends BaseCRUDJsonBodyMappingController<HelpService,HelpEntity,Long> {
public HelpController(){
super.setModuleDesc( "帮助信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model,"status", IBaseEnum.getEnumMap(QuestionStatusEnum.class));
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.help.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.EvaluateType;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.module.customer.model.CustomerEntity;
import com.mortals.xhx.module.customer.service.CustomerService;
import com.mortals.xhx.module.help.model.HelpEvaluateEntity;
import com.mortals.xhx.module.help.service.HelpEvaluateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* 帮助评价信息
*
* @author zxfei
* @date 2022-06-29
*/
@RestController
@RequestMapping("help/evaluate")
public class HelpEvaluateController extends BaseCRUDJsonBodyMappingController<HelpEvaluateService,HelpEvaluateEntity,Long> {
@Autowired
private CustomerService customerService;
public HelpEvaluateController(){
super.setModuleDesc( "帮助评价信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "evaluateType", IBaseEnum.getEnumMap(EvaluateType.class));
super.init(model, context);
}
@Override
protected void saveBefore(HelpEvaluateEntity entity, Map<String, Object> model, Context context) throws AppException {
if(this.getCurUser()==null||this.getCurUser().getUserType()!= Constant.CUSTOMER_USER){
throw new AppException("非法用户,不可访问");
}
CustomerEntity customerEntity = customerService.get(this.getCurUser().getId());
entity.setCustomerId(this.getCurUser().getId());
entity.setCustName(customerEntity.getCustName());
entity.setContactTelphone(customerEntity.getContactTelphone());
entity.setOrganization(customerEntity.getOrganization());
}
protected int doListAfter(HelpEvaluateEntity query, Map<String, Object> model, Context context) throws AppException {
List<HelpEvaluateEntity> evaluateEntities = (List<HelpEvaluateEntity>)model.get("data");
Map<Integer, List<HelpEvaluateEntity>> map = evaluateEntities.stream().collect(Collectors.groupingBy(HelpEvaluateEntity::getEvaluateType));
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("useful",map.get(EvaluateType.USEFUL.getValue()));
dataMap.put("useless",map.get(EvaluateType.USELESS.getValue()));
model.put("data",dataMap);
return 1;
}
/**
* 新增有用评价
* @return
*/
@GetMapping({"useful"})
public String useful(Long helpId) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
int code = 1;
String busiDesc = "保存有用" + this.getModuleDesc();
HelpEvaluateEntity entity = new HelpEvaluateEntity();
entity.setHelpId(helpId);
entity.setEvaluateType(EvaluateType.USEFUL.getValue());
entity.setEvaluateTime(new Date());
try {
this.saveBefore(entity, model, context);
this.service.save(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 var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
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();
}
/**
* 新增有用评价
* @return
*/
@GetMapping({"useless"})
public String useless(Long helpId) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
int code = 1;
String busiDesc = "保存无用" + this.getModuleDesc();
HelpEvaluateEntity entity = new HelpEvaluateEntity();
entity.setHelpId(helpId);
entity.setEvaluateType(EvaluateType.USELESS.getValue());
entity.setEvaluateTime(new Date());
try {
this.saveBefore(entity, model, context);
this.service.save(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 var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
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
package com.mortals.xhx.module.masterplate.web;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.module.customer.model.CustomerEntity;
import com.mortals.xhx.module.customer.model.CustomerWorkDesignEntity;
import com.mortals.xhx.module.customer.service.CustomerService;
import com.mortals.xhx.module.masterplate.model.MasterplateUseInfoEntity;
import com.mortals.xhx.module.masterplate.service.MasterplateUseInfoService;
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.masterplate.model.MasterplateUseInfoEntity;
import com.mortals.xhx.module.masterplate.model.MasterplateUseInfoQuery;
import com.mortals.xhx.module.masterplate.service.MasterplateUseInfoService;
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.*;
/**
*
* 模版使用信息
......@@ -39,8 +24,6 @@ import static com.mortals.framework.ap.SysConstains.*;
@RequestMapping("masterplate/use/info")
public class MasterplateUseInfoController extends BaseCRUDJsonBodyMappingController<MasterplateUseInfoService,MasterplateUseInfoEntity,Long> {
@Autowired
private ParamService paramService;
@Autowired
private CustomerService customerService;
......
package com.mortals.xhx.module.message.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.message.model.MessageEntity;
/**
* 客户建议信息Dao
* 客户建议信息 DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface MessageDao extends ICRUDDao<MessageEntity,Long>{
}
package com.mortals.xhx.module.message.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.message.dao.MessageDao;
import com.mortals.xhx.module.message.model.MessageEntity;
import org.springframework.stereotype.Repository;
/**
* 客户建议信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
@Repository("messageDao")
public class MessageDaoImpl extends BaseCRUDDaoMybatis<MessageEntity,Long> implements MessageDao {
}
package com.mortals.xhx.module.message.model;
import com.mortals.xhx.module.message.model.vo.MessageVo;
import java.util.Date;
/**
* 客户建议信息实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class MessageEntity extends MessageVo {
private static final long serialVersionUID = 1L;
/**
* 消息标题
*/
private String title;
/**
* 消息内容
*/
private String content;
/**
* 发送方式1站内发送2短信发送3同时发送
*/
private Integer sendMode;
/**
* 可见范围1所有人可见2VIP可见3普通用户可见
*/
private Integer scope;
/**
* 发送状态0未发送1已发送
*/
private Integer sendStatus;
/**
* 发送时间
*/
private Date sendTime;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 消息类型1标题消息2动态消息
*/
private Integer messageType;
public MessageEntity(){}
/**
* 获取 消息标题
* @return String
*/
public String getTitle(){
return title;
}
/**
* 设置 消息标题
* @param title
*/
public void setTitle(String title){
this.title = title;
}
/**
* 获取 消息内容
* @return String
*/
public String getContent(){
return content;
}
/**
* 设置 消息内容
* @param content
*/
public void setContent(String content){
this.content = content;
}
/**
* 获取 发送方式1站内发送2短信发送3同时发送
* @return Integer
*/
public Integer getSendMode(){
return sendMode;
}
/**
* 设置 发送方式1站内发送2短信发送3同时发送
* @param sendMode
*/
public void setSendMode(Integer sendMode){
this.sendMode = sendMode;
}
/**
* 获取 可见范围1所有人可见2VIP可见3普通用户可见
* @return Integer
*/
public Integer getScope(){
return scope;
}
/**
* 设置 可见范围1所有人可见2VIP可见3普通用户可见
* @param scope
*/
public void setScope(Integer scope){
this.scope = scope;
}
/**
* 获取 发送状态0未发送1已发送
* @return Integer
*/
public Integer getSendStatus(){
return sendStatus;
}
/**
* 设置 发送状态0未发送1已发送
* @param sendStatus
*/
public void setSendStatus(Integer sendStatus){
this.sendStatus = sendStatus;
}
/**
* 获取 发送时间
* @return Date
*/
public Date getSendTime(){
return sendTime;
}
/**
* 设置 发送时间
* @param sendTime
*/
public void setSendTime(Date sendTime){
this.sendTime = sendTime;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 消息类型1标题消息2动态消息
* @return Integer
*/
public Integer getMessageType(){
return messageType;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageType
*/
public void setMessageType(Integer messageType){
this.messageType = messageType;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof MessageEntity) {
MessageEntity tmp = (MessageEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",title:").append(getTitle());
sb.append(",content:").append(getContent());
sb.append(",sendMode:").append(getSendMode());
sb.append(",scope:").append(getScope());
sb.append(",sendStatus:").append(getSendStatus());
sb.append(",sendTime:").append(getSendTime());
sb.append(",createUserName:").append(getCreateUserName());
sb.append(",messageType:").append(getMessageType());
return sb.toString();
}
public void initAttrValue(){
this.title = "";
this.content = "";
this.sendMode = 1;
this.scope = 1;
this.sendStatus = 0;
this.sendTime = null;
this.createUserName = "";
this.messageType = 1;
}
}
\ No newline at end of file
package com.mortals.xhx.module.message.model;
import java.util.List;
/**
* 客户建议信息查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class MessageQuery extends MessageEntity {
/** 开始 消息ID,主键,自增长 */
private Long idStart;
/** 结束 消息ID,主键,自增长 */
private Long idEnd;
/** 增加 消息ID,主键,自增长 */
private Long idIncrement;
/** 消息ID,主键,自增长列表 */
private List <Long> idList;
/** 消息标题 */
private List<String> titleList;
/** 消息内容 */
private List<String> contentList;
/** 开始 发送方式1站内发送2短信发送3同时发送 */
private Integer sendModeStart;
/** 结束 发送方式1站内发送2短信发送3同时发送 */
private Integer sendModeEnd;
/** 增加 发送方式1站内发送2短信发送3同时发送 */
private Integer sendModeIncrement;
/** 发送方式1站内发送2短信发送3同时发送列表 */
private List <Integer> sendModeList;
/** 开始 可见范围1所有人可见2VIP可见3普通用户可见 */
private Integer scopeStart;
/** 结束 可见范围1所有人可见2VIP可见3普通用户可见 */
private Integer scopeEnd;
/** 增加 可见范围1所有人可见2VIP可见3普通用户可见 */
private Integer scopeIncrement;
/** 可见范围1所有人可见2VIP可见3普通用户可见列表 */
private List <Integer> scopeList;
/** 开始 发送状态0未发送1已发送 */
private Integer sendStatusStart;
/** 结束 发送状态0未发送1已发送 */
private Integer sendStatusEnd;
/** 增加 发送状态0未发送1已发送 */
private Integer sendStatusIncrement;
/** 发送状态0未发送1已发送列表 */
private List <Integer> sendStatusList;
/** 开始 发送时间 */
private String sendTimeStart;
/** 结束 发送时间 */
private String sendTimeEnd;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户列表 */
private List <Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** 开始 消息类型1标题消息2动态消息 */
private Integer messageTypeStart;
/** 结束 消息类型1标题消息2动态消息 */
private Integer messageTypeEnd;
/** 增加 消息类型1标题消息2动态消息 */
private Integer messageTypeIncrement;
/** 消息类型1标题消息2动态消息列表 */
private List <Integer> messageTypeList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<MessageQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<MessageQuery> andConditionList;
public MessageQuery(){}
/**
* 获取 开始 消息ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 消息ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 消息ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 消息ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 消息ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 消息ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 消息ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 消息ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 消息标题
* @return titleList
*/
public List<String> getTitleList(){
return this.titleList;
}
/**
* 设置 消息标题
* @param titleList
*/
public void setTitleList(List<String> titleList){
this.titleList = titleList;
}
/**
* 获取 消息内容
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 消息内容
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 开始 发送方式1站内发送2短信发送3同时发送
* @return sendModeStart
*/
public Integer getSendModeStart(){
return this.sendModeStart;
}
/**
* 设置 开始 发送方式1站内发送2短信发送3同时发送
* @param sendModeStart
*/
public void setSendModeStart(Integer sendModeStart){
this.sendModeStart = sendModeStart;
}
/**
* 获取 结束 发送方式1站内发送2短信发送3同时发送
* @return $sendModeEnd
*/
public Integer getSendModeEnd(){
return this.sendModeEnd;
}
/**
* 设置 结束 发送方式1站内发送2短信发送3同时发送
* @param sendModeEnd
*/
public void setSendModeEnd(Integer sendModeEnd){
this.sendModeEnd = sendModeEnd;
}
/**
* 获取 增加 发送方式1站内发送2短信发送3同时发送
* @return sendModeIncrement
*/
public Integer getSendModeIncrement(){
return this.sendModeIncrement;
}
/**
* 设置 增加 发送方式1站内发送2短信发送3同时发送
* @param sendModeIncrement
*/
public void setSendModeIncrement(Integer sendModeIncrement){
this.sendModeIncrement = sendModeIncrement;
}
/**
* 获取 发送方式1站内发送2短信发送3同时发送
* @return sendModeList
*/
public List<Integer> getSendModeList(){
return this.sendModeList;
}
/**
* 设置 发送方式1站内发送2短信发送3同时发送
* @param sendModeList
*/
public void setSendModeList(List<Integer> sendModeList){
this.sendModeList = sendModeList;
}
/**
* 获取 开始 可见范围1所有人可见2VIP可见3普通用户可见
* @return scopeStart
*/
public Integer getScopeStart(){
return this.scopeStart;
}
/**
* 设置 开始 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeStart
*/
public void setScopeStart(Integer scopeStart){
this.scopeStart = scopeStart;
}
/**
* 获取 结束 可见范围1所有人可见2VIP可见3普通用户可见
* @return $scopeEnd
*/
public Integer getScopeEnd(){
return this.scopeEnd;
}
/**
* 设置 结束 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeEnd
*/
public void setScopeEnd(Integer scopeEnd){
this.scopeEnd = scopeEnd;
}
/**
* 获取 增加 可见范围1所有人可见2VIP可见3普通用户可见
* @return scopeIncrement
*/
public Integer getScopeIncrement(){
return this.scopeIncrement;
}
/**
* 设置 增加 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeIncrement
*/
public void setScopeIncrement(Integer scopeIncrement){
this.scopeIncrement = scopeIncrement;
}
/**
* 获取 可见范围1所有人可见2VIP可见3普通用户可见
* @return scopeList
*/
public List<Integer> getScopeList(){
return this.scopeList;
}
/**
* 设置 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeList
*/
public void setScopeList(List<Integer> scopeList){
this.scopeList = scopeList;
}
/**
* 获取 开始 发送状态0未发送1已发送
* @return sendStatusStart
*/
public Integer getSendStatusStart(){
return this.sendStatusStart;
}
/**
* 设置 开始 发送状态0未发送1已发送
* @param sendStatusStart
*/
public void setSendStatusStart(Integer sendStatusStart){
this.sendStatusStart = sendStatusStart;
}
/**
* 获取 结束 发送状态0未发送1已发送
* @return $sendStatusEnd
*/
public Integer getSendStatusEnd(){
return this.sendStatusEnd;
}
/**
* 设置 结束 发送状态0未发送1已发送
* @param sendStatusEnd
*/
public void setSendStatusEnd(Integer sendStatusEnd){
this.sendStatusEnd = sendStatusEnd;
}
/**
* 获取 增加 发送状态0未发送1已发送
* @return sendStatusIncrement
*/
public Integer getSendStatusIncrement(){
return this.sendStatusIncrement;
}
/**
* 设置 增加 发送状态0未发送1已发送
* @param sendStatusIncrement
*/
public void setSendStatusIncrement(Integer sendStatusIncrement){
this.sendStatusIncrement = sendStatusIncrement;
}
/**
* 获取 发送状态0未发送1已发送
* @return sendStatusList
*/
public List<Integer> getSendStatusList(){
return this.sendStatusList;
}
/**
* 设置 发送状态0未发送1已发送
* @param sendStatusList
*/
public void setSendStatusList(List<Integer> sendStatusList){
this.sendStatusList = sendStatusList;
}
/**
* 获取 开始 发送时间
* @return sendTimeStart
*/
public String getSendTimeStart(){
return this.sendTimeStart;
}
/**
* 设置 开始 发送时间
* @param sendTimeStart
*/
public void setSendTimeStart(String sendTimeStart){
this.sendTimeStart = sendTimeStart;
}
/**
* 获取 结束 发送时间
* @return sendTimeEnd
*/
public String getSendTimeEnd(){
return this.sendTimeEnd;
}
/**
* 设置 结束 发送时间
* @param sendTimeEnd
*/
public void setSendTimeEnd(String sendTimeEnd){
this.sendTimeEnd = sendTimeEnd;
}
/**
* 获取 开始 创建时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 创建时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 创建时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 创建时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 创建用户
* @return createUserIdStart
*/
public Long getCreateUserIdStart(){
return this.createUserIdStart;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public void setCreateUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
}
/**
* 获取 结束 创建用户
* @return $createUserIdEnd
*/
public Long getCreateUserIdEnd(){
return this.createUserIdEnd;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public void setCreateUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
}
/**
* 获取 增加 创建用户
* @return createUserIdIncrement
*/
public Long getCreateUserIdIncrement(){
return this.createUserIdIncrement;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public void setCreateUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
}
/**
* 获取 创建用户
* @return createUserIdList
*/
public List<Long> getCreateUserIdList(){
return this.createUserIdList;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public void setCreateUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 获取 开始 消息类型1标题消息2动态消息
* @return messageTypeStart
*/
public Integer getMessageTypeStart(){
return this.messageTypeStart;
}
/**
* 设置 开始 消息类型1标题消息2动态消息
* @param messageTypeStart
*/
public void setMessageTypeStart(Integer messageTypeStart){
this.messageTypeStart = messageTypeStart;
}
/**
* 获取 结束 消息类型1标题消息2动态消息
* @return $messageTypeEnd
*/
public Integer getMessageTypeEnd(){
return this.messageTypeEnd;
}
/**
* 设置 结束 消息类型1标题消息2动态消息
* @param messageTypeEnd
*/
public void setMessageTypeEnd(Integer messageTypeEnd){
this.messageTypeEnd = messageTypeEnd;
}
/**
* 获取 增加 消息类型1标题消息2动态消息
* @return messageTypeIncrement
*/
public Integer getMessageTypeIncrement(){
return this.messageTypeIncrement;
}
/**
* 设置 增加 消息类型1标题消息2动态消息
* @param messageTypeIncrement
*/
public void setMessageTypeIncrement(Integer messageTypeIncrement){
this.messageTypeIncrement = messageTypeIncrement;
}
/**
* 获取 消息类型1标题消息2动态消息
* @return messageTypeList
*/
public List<Integer> getMessageTypeList(){
return this.messageTypeList;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageTypeList
*/
public void setMessageTypeList(List<Integer> messageTypeList){
this.messageTypeList = messageTypeList;
}
/**
* 设置 消息ID,主键,自增长
* @param id
*/
public MessageQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 消息ID,主键,自增长
* @param idStart
*/
public MessageQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 消息ID,主键,自增长
* @param idEnd
*/
public MessageQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 消息ID,主键,自增长
* @param idIncrement
*/
public MessageQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 消息ID,主键,自增长
* @param idList
*/
public MessageQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 消息标题
* @param title
*/
public MessageQuery title(String title){
setTitle(title);
return this;
}
/**
* 设置 消息标题
* @param titleList
*/
public MessageQuery titleList(List<String> titleList){
this.titleList = titleList;
return this;
}
/**
* 设置 消息内容
* @param content
*/
public MessageQuery content(String content){
setContent(content);
return this;
}
/**
* 设置 消息内容
* @param contentList
*/
public MessageQuery contentList(List<String> contentList){
this.contentList = contentList;
return this;
}
/**
* 设置 发送方式1站内发送2短信发送3同时发送
* @param sendMode
*/
public MessageQuery sendMode(Integer sendMode){
setSendMode(sendMode);
return this;
}
/**
* 设置 开始 发送方式1站内发送2短信发送3同时发送
* @param sendModeStart
*/
public MessageQuery sendModeStart(Integer sendModeStart){
this.sendModeStart = sendModeStart;
return this;
}
/**
* 设置 结束 发送方式1站内发送2短信发送3同时发送
* @param sendModeEnd
*/
public MessageQuery sendModeEnd(Integer sendModeEnd){
this.sendModeEnd = sendModeEnd;
return this;
}
/**
* 设置 增加 发送方式1站内发送2短信发送3同时发送
* @param sendModeIncrement
*/
public MessageQuery sendModeIncrement(Integer sendModeIncrement){
this.sendModeIncrement = sendModeIncrement;
return this;
}
/**
* 设置 发送方式1站内发送2短信发送3同时发送
* @param sendModeList
*/
public MessageQuery sendModeList(List<Integer> sendModeList){
this.sendModeList = sendModeList;
return this;
}
/**
* 设置 可见范围1所有人可见2VIP可见3普通用户可见
* @param scope
*/
public MessageQuery scope(Integer scope){
setScope(scope);
return this;
}
/**
* 设置 开始 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeStart
*/
public MessageQuery scopeStart(Integer scopeStart){
this.scopeStart = scopeStart;
return this;
}
/**
* 设置 结束 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeEnd
*/
public MessageQuery scopeEnd(Integer scopeEnd){
this.scopeEnd = scopeEnd;
return this;
}
/**
* 设置 增加 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeIncrement
*/
public MessageQuery scopeIncrement(Integer scopeIncrement){
this.scopeIncrement = scopeIncrement;
return this;
}
/**
* 设置 可见范围1所有人可见2VIP可见3普通用户可见
* @param scopeList
*/
public MessageQuery scopeList(List<Integer> scopeList){
this.scopeList = scopeList;
return this;
}
/**
* 设置 发送状态0未发送1已发送
* @param sendStatus
*/
public MessageQuery sendStatus(Integer sendStatus){
setSendStatus(sendStatus);
return this;
}
/**
* 设置 开始 发送状态0未发送1已发送
* @param sendStatusStart
*/
public MessageQuery sendStatusStart(Integer sendStatusStart){
this.sendStatusStart = sendStatusStart;
return this;
}
/**
* 设置 结束 发送状态0未发送1已发送
* @param sendStatusEnd
*/
public MessageQuery sendStatusEnd(Integer sendStatusEnd){
this.sendStatusEnd = sendStatusEnd;
return this;
}
/**
* 设置 增加 发送状态0未发送1已发送
* @param sendStatusIncrement
*/
public MessageQuery sendStatusIncrement(Integer sendStatusIncrement){
this.sendStatusIncrement = sendStatusIncrement;
return this;
}
/**
* 设置 发送状态0未发送1已发送
* @param sendStatusList
*/
public MessageQuery sendStatusList(List<Integer> sendStatusList){
this.sendStatusList = sendStatusList;
return this;
}
/**
* 设置 创建用户
* @param createUserId
*/
public MessageQuery createUserId(Long createUserId){
setCreateUserId(createUserId);
return this;
}
/**
* 设置 开始 创建用户
* @param createUserIdStart
*/
public MessageQuery createUserIdStart(Long createUserIdStart){
this.createUserIdStart = createUserIdStart;
return this;
}
/**
* 设置 结束 创建用户
* @param createUserIdEnd
*/
public MessageQuery createUserIdEnd(Long createUserIdEnd){
this.createUserIdEnd = createUserIdEnd;
return this;
}
/**
* 设置 增加 创建用户
* @param createUserIdIncrement
*/
public MessageQuery createUserIdIncrement(Long createUserIdIncrement){
this.createUserIdIncrement = createUserIdIncrement;
return this;
}
/**
* 设置 创建用户
* @param createUserIdList
*/
public MessageQuery createUserIdList(List<Long> createUserIdList){
this.createUserIdList = createUserIdList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public MessageQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public MessageQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageType
*/
public MessageQuery messageType(Integer messageType){
setMessageType(messageType);
return this;
}
/**
* 设置 开始 消息类型1标题消息2动态消息
* @param messageTypeStart
*/
public MessageQuery messageTypeStart(Integer messageTypeStart){
this.messageTypeStart = messageTypeStart;
return this;
}
/**
* 设置 结束 消息类型1标题消息2动态消息
* @param messageTypeEnd
*/
public MessageQuery messageTypeEnd(Integer messageTypeEnd){
this.messageTypeEnd = messageTypeEnd;
return this;
}
/**
* 设置 增加 消息类型1标题消息2动态消息
* @param messageTypeIncrement
*/
public MessageQuery messageTypeIncrement(Integer messageTypeIncrement){
this.messageTypeIncrement = messageTypeIncrement;
return this;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageTypeList
*/
public MessageQuery messageTypeList(List<Integer> messageTypeList){
this.messageTypeList = messageTypeList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<MessageQuery> 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<MessageQuery> 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<MessageQuery> 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<MessageQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.message.model.vo;
import com.mortals.framework.model.BaseEntityLong;
/**
* 客户建议信息视图对象
*
* @author zxfei
* @date 2022-06-28
*/
public class MessageVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.message.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.message.model.MessageEntity;
/**
* MessageService
*
* 客户建议信息 service接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface MessageService extends ICRUDService<MessageEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.message.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.common.code.MemberLevelEnum;
import com.mortals.xhx.common.code.ReadStatusEnum;
import com.mortals.xhx.common.code.SendScopeEnum;
import com.mortals.xhx.common.utils.StringUtils;
import com.mortals.xhx.module.customer.model.CustomerEntity;
import com.mortals.xhx.module.customer.model.CustomerQuery;
import com.mortals.xhx.module.customer.service.CustomerService;
import com.mortals.xhx.module.message.dao.MessageDao;
import com.mortals.xhx.module.message.model.MessageEntity;
import com.mortals.xhx.module.message.service.MessageService;
import com.mortals.xhx.module.news.model.NewsEntity;
import com.mortals.xhx.module.news.model.NewsQuery;
import com.mortals.xhx.module.news.service.NewsService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* MessageService
* 客户建议信息 service实现
*
* @author zxfei
* @date 2022-06-28
*/
@Service("messageService")
public class MessageServiceImpl extends AbstractCRUDServiceImpl<MessageDao, MessageEntity, Long> implements MessageService {
@Autowired
private NewsService newsService;
@Autowired
private CustomerService customerService;
@Override
protected MessageEntity findBefore(MessageEntity entity, PageInfo pageInfo, Context context) throws AppException {
if(StringUtils.isNotEmpty(entity.getContent())){
StringBuffer condition = new StringBuffer("%");
condition.append(entity.getContent()).append("%");
entity.setContent(condition.toString());
}
return entity;
}
@Override
protected void saveAfter(MessageEntity entity, Context context) throws AppException {
CustomerQuery customerQuery = new CustomerQuery();
List<Integer> memberLevel = new ArrayList<>();
if(entity.getScope()== SendScopeEnum.VIP.getValue()){
memberLevel.add(MemberLevelEnum.VIP.getValue());
}
if(entity.getScope()== SendScopeEnum.ORDINARY.getValue()){
memberLevel.add(MemberLevelEnum.NOT_OPEN.getValue());
}else {
memberLevel.add(MemberLevelEnum.VIP.getValue());
memberLevel.add(MemberLevelEnum.NOT_OPEN.getValue());
}
List<CustomerEntity> customerEntities = customerService.find(customerQuery,context);
if(CollectionUtils.isNotEmpty(customerEntities)){
List<NewsEntity> newsEntities = new ArrayList<>();
Date now = new Date();
customerEntities.stream().forEach(item->{
NewsEntity newsEntity = new NewsEntity();
newsEntity.setMessageId(entity.getId());
newsEntity.setCustomerId(item.getId());
newsEntity.setTitle(entity.getTitle());
newsEntity.setContent(entity.getContent());
newsEntity.setMessageType(entity.getMessageType());
newsEntity.setReadStatus(ReadStatusEnum.UN_READ.getValue());
newsEntity.setReceiveTime(now);
newsEntities.add(newsEntity);
});
newsService.save(newsEntities,context);
}
}
@Override
protected void removeBefore(Long[] ids, Context context) throws AppException {
List<MessageEntity> entities = this.get(ids,context);
Date now = new Date();
for(MessageEntity messageEntity:entities){
long between = now.getTime()-messageEntity.getCreateTime().getTime();
if(between>600000){
throw new AppException("超过十分钟,不能撤回");
}
}
}
@Override
protected void removeAfter(Long[] ids, Context context, int result) throws AppException {
NewsQuery condition = new NewsQuery();
List<Long> messageIds = Arrays.asList(ids);
condition.setMessageIdList(messageIds);
newsService.remove(condition,context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.message.web;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.MessageTypeEnum;
import com.mortals.xhx.common.code.SendModeEnum;
import com.mortals.xhx.common.code.SendScopeEnum;
import com.mortals.xhx.common.code.SendStatusEnum;
import com.mortals.xhx.module.message.model.MessageEntity;
import com.mortals.xhx.module.message.service.MessageService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*
* 客户建议信息
*
* @author zxfei
* @date 2022-06-28
*/
@RestController
@RequestMapping("message")
public class MessageController extends BaseCRUDJsonBodyMappingController<MessageService,MessageEntity,Long> {
public MessageController(){
super.setModuleDesc( "客户建议信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "sendMode", IBaseEnum.getEnumMap(SendModeEnum.class));
this.addDict(model, "scope", IBaseEnum.getEnumMap(SendScopeEnum.class));
this.addDict(model, "sendStatus", IBaseEnum.getEnumMap(SendStatusEnum.class));
this.addDict(model, "messageType", IBaseEnum.getEnumMap(MessageTypeEnum.class));
super.init(model, context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.news.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.news.model.NewsEntity;
/**
* 用户消息Dao
* 用户消息 DAO接口
*
* @author zxfei
* @date 2022-06-29
*/
public interface NewsDao extends ICRUDDao<NewsEntity,Long>{
}
package com.mortals.xhx.module.news.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.xhx.module.news.dao.NewsDao;
import com.mortals.xhx.module.news.model.NewsEntity;
import org.springframework.stereotype.Repository;
/**
* 用户消息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-29
*/
@Repository("newsDao")
public class NewsDaoImpl extends BaseCRUDDaoMybatis<NewsEntity,Long> implements NewsDao {
}
package com.mortals.xhx.module.news.model;
import com.mortals.xhx.module.news.model.vo.NewsVo;
import java.util.Date;
/**
* 用户消息实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class NewsEntity extends NewsVo {
private static final long serialVersionUID = 1L;
/**
* 消息id
*/
private Long messageId;
/**
* 客户id
*/
private Long customerId;
/**
* 消息标题
*/
private String title;
/**
* 消息内容
*/
private String content;
/**
* 消息类型1标题消息2动态消息
*/
private Integer messageType;
/**
* 查阅状态0未读1已读
*/
private Integer readStatus;
/**
* 接收时间
*/
private Date receiveTime;
public NewsEntity(){}
/**
* 获取 消息id
* @return Long
*/
public Long getMessageId(){
return messageId;
}
/**
* 设置 消息id
* @param messageId
*/
public void setMessageId(Long messageId){
this.messageId = messageId;
}
/**
* 获取 客户id
* @return Long
*/
public Long getCustomerId(){
return customerId;
}
/**
* 设置 客户id
* @param customerId
*/
public void setCustomerId(Long customerId){
this.customerId = customerId;
}
/**
* 获取 消息标题
* @return String
*/
public String getTitle(){
return title;
}
/**
* 设置 消息标题
* @param title
*/
public void setTitle(String title){
this.title = title;
}
/**
* 获取 消息内容
* @return String
*/
public String getContent(){
return content;
}
/**
* 设置 消息内容
* @param content
*/
public void setContent(String content){
this.content = content;
}
/**
* 获取 消息类型1标题消息2动态消息
* @return Integer
*/
public Integer getMessageType(){
return messageType;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageType
*/
public void setMessageType(Integer messageType){
this.messageType = messageType;
}
/**
* 获取 查阅状态0未读1已读
* @return Integer
*/
public Integer getReadStatus(){
return readStatus;
}
/**
* 设置 查阅状态0未读1已读
* @param readStatus
*/
public void setReadStatus(Integer readStatus){
this.readStatus = readStatus;
}
/**
* 获取 接收时间
* @return Date
*/
public Date getReceiveTime(){
return receiveTime;
}
/**
* 设置 接收时间
* @param receiveTime
*/
public void setReceiveTime(Date receiveTime){
this.receiveTime = receiveTime;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof NewsEntity) {
NewsEntity tmp = (NewsEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",messageId:").append(getMessageId());
sb.append(",customerId:").append(getCustomerId());
sb.append(",title:").append(getTitle());
sb.append(",content:").append(getContent());
sb.append(",messageType:").append(getMessageType());
sb.append(",readStatus:").append(getReadStatus());
sb.append(",receiveTime:").append(getReceiveTime());
return sb.toString();
}
public void initAttrValue(){
this.messageId = null;
this.customerId = null;
this.title = "";
this.content = "";
this.messageType = 1;
this.readStatus = 0;
this.receiveTime = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.news.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.news.model.NewsEntity;
/**
* 用户消息查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class NewsQuery extends NewsEntity {
/** 开始 消息ID,主键,自增长 */
private Long idStart;
/** 结束 消息ID,主键,自增长 */
private Long idEnd;
/** 增加 消息ID,主键,自增长 */
private Long idIncrement;
/** 消息ID,主键,自增长列表 */
private List <Long> idList;
/** 开始 消息id */
private Long messageIdStart;
/** 结束 消息id */
private Long messageIdEnd;
/** 增加 消息id */
private Long messageIdIncrement;
/** 消息id列表 */
private List <Long> messageIdList;
/** 开始 客户id */
private Long customerIdStart;
/** 结束 客户id */
private Long customerIdEnd;
/** 增加 客户id */
private Long customerIdIncrement;
/** 客户id列表 */
private List <Long> customerIdList;
/** 消息标题 */
private List<String> titleList;
/** 消息内容 */
private List<String> contentList;
/** 开始 消息类型1标题消息2动态消息 */
private Integer messageTypeStart;
/** 结束 消息类型1标题消息2动态消息 */
private Integer messageTypeEnd;
/** 增加 消息类型1标题消息2动态消息 */
private Integer messageTypeIncrement;
/** 消息类型1标题消息2动态消息列表 */
private List <Integer> messageTypeList;
/** 开始 查阅状态0未读1已读 */
private Integer readStatusStart;
/** 结束 查阅状态0未读1已读 */
private Integer readStatusEnd;
/** 增加 查阅状态0未读1已读 */
private Integer readStatusIncrement;
/** 查阅状态0未读1已读列表 */
private List <Integer> readStatusList;
/** 开始 接收时间 */
private String receiveTimeStart;
/** 结束 接收时间 */
private String receiveTimeEnd;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<NewsQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<NewsQuery> andConditionList;
public NewsQuery(){}
/**
* 获取 开始 消息ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 消息ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 消息ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 消息ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 消息ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 消息ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 消息ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 消息ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 消息id
* @return messageIdStart
*/
public Long getMessageIdStart(){
return this.messageIdStart;
}
/**
* 设置 开始 消息id
* @param messageIdStart
*/
public void setMessageIdStart(Long messageIdStart){
this.messageIdStart = messageIdStart;
}
/**
* 获取 结束 消息id
* @return $messageIdEnd
*/
public Long getMessageIdEnd(){
return this.messageIdEnd;
}
/**
* 设置 结束 消息id
* @param messageIdEnd
*/
public void setMessageIdEnd(Long messageIdEnd){
this.messageIdEnd = messageIdEnd;
}
/**
* 获取 增加 消息id
* @return messageIdIncrement
*/
public Long getMessageIdIncrement(){
return this.messageIdIncrement;
}
/**
* 设置 增加 消息id
* @param messageIdIncrement
*/
public void setMessageIdIncrement(Long messageIdIncrement){
this.messageIdIncrement = messageIdIncrement;
}
/**
* 获取 消息id
* @return messageIdList
*/
public List<Long> getMessageIdList(){
return this.messageIdList;
}
/**
* 设置 消息id
* @param messageIdList
*/
public void setMessageIdList(List<Long> messageIdList){
this.messageIdList = messageIdList;
}
/**
* 获取 开始 客户id
* @return customerIdStart
*/
public Long getCustomerIdStart(){
return this.customerIdStart;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public void setCustomerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
}
/**
* 获取 结束 客户id
* @return $customerIdEnd
*/
public Long getCustomerIdEnd(){
return this.customerIdEnd;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public void setCustomerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
}
/**
* 获取 增加 客户id
* @return customerIdIncrement
*/
public Long getCustomerIdIncrement(){
return this.customerIdIncrement;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public void setCustomerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
}
/**
* 获取 客户id
* @return customerIdList
*/
public List<Long> getCustomerIdList(){
return this.customerIdList;
}
/**
* 设置 客户id
* @param customerIdList
*/
public void setCustomerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
}
/**
* 获取 消息标题
* @return titleList
*/
public List<String> getTitleList(){
return this.titleList;
}
/**
* 设置 消息标题
* @param titleList
*/
public void setTitleList(List<String> titleList){
this.titleList = titleList;
}
/**
* 获取 消息内容
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 消息内容
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 开始 消息类型1标题消息2动态消息
* @return messageTypeStart
*/
public Integer getMessageTypeStart(){
return this.messageTypeStart;
}
/**
* 设置 开始 消息类型1标题消息2动态消息
* @param messageTypeStart
*/
public void setMessageTypeStart(Integer messageTypeStart){
this.messageTypeStart = messageTypeStart;
}
/**
* 获取 结束 消息类型1标题消息2动态消息
* @return $messageTypeEnd
*/
public Integer getMessageTypeEnd(){
return this.messageTypeEnd;
}
/**
* 设置 结束 消息类型1标题消息2动态消息
* @param messageTypeEnd
*/
public void setMessageTypeEnd(Integer messageTypeEnd){
this.messageTypeEnd = messageTypeEnd;
}
/**
* 获取 增加 消息类型1标题消息2动态消息
* @return messageTypeIncrement
*/
public Integer getMessageTypeIncrement(){
return this.messageTypeIncrement;
}
/**
* 设置 增加 消息类型1标题消息2动态消息
* @param messageTypeIncrement
*/
public void setMessageTypeIncrement(Integer messageTypeIncrement){
this.messageTypeIncrement = messageTypeIncrement;
}
/**
* 获取 消息类型1标题消息2动态消息
* @return messageTypeList
*/
public List<Integer> getMessageTypeList(){
return this.messageTypeList;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageTypeList
*/
public void setMessageTypeList(List<Integer> messageTypeList){
this.messageTypeList = messageTypeList;
}
/**
* 获取 开始 查阅状态0未读1已读
* @return readStatusStart
*/
public Integer getReadStatusStart(){
return this.readStatusStart;
}
/**
* 设置 开始 查阅状态0未读1已读
* @param readStatusStart
*/
public void setReadStatusStart(Integer readStatusStart){
this.readStatusStart = readStatusStart;
}
/**
* 获取 结束 查阅状态0未读1已读
* @return $readStatusEnd
*/
public Integer getReadStatusEnd(){
return this.readStatusEnd;
}
/**
* 设置 结束 查阅状态0未读1已读
* @param readStatusEnd
*/
public void setReadStatusEnd(Integer readStatusEnd){
this.readStatusEnd = readStatusEnd;
}
/**
* 获取 增加 查阅状态0未读1已读
* @return readStatusIncrement
*/
public Integer getReadStatusIncrement(){
return this.readStatusIncrement;
}
/**
* 设置 增加 查阅状态0未读1已读
* @param readStatusIncrement
*/
public void setReadStatusIncrement(Integer readStatusIncrement){
this.readStatusIncrement = readStatusIncrement;
}
/**
* 获取 查阅状态0未读1已读
* @return readStatusList
*/
public List<Integer> getReadStatusList(){
return this.readStatusList;
}
/**
* 设置 查阅状态0未读1已读
* @param readStatusList
*/
public void setReadStatusList(List<Integer> readStatusList){
this.readStatusList = readStatusList;
}
/**
* 获取 开始 接收时间
* @return receiveTimeStart
*/
public String getReceiveTimeStart(){
return this.receiveTimeStart;
}
/**
* 设置 开始 接收时间
* @param receiveTimeStart
*/
public void setReceiveTimeStart(String receiveTimeStart){
this.receiveTimeStart = receiveTimeStart;
}
/**
* 获取 结束 接收时间
* @return receiveTimeEnd
*/
public String getReceiveTimeEnd(){
return this.receiveTimeEnd;
}
/**
* 设置 结束 接收时间
* @param receiveTimeEnd
*/
public void setReceiveTimeEnd(String receiveTimeEnd){
this.receiveTimeEnd = receiveTimeEnd;
}
/**
* 设置 消息ID,主键,自增长
* @param id
*/
public NewsQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 消息ID,主键,自增长
* @param idStart
*/
public NewsQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 消息ID,主键,自增长
* @param idEnd
*/
public NewsQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 消息ID,主键,自增长
* @param idIncrement
*/
public NewsQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 消息ID,主键,自增长
* @param idList
*/
public NewsQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 消息id
* @param messageId
*/
public NewsQuery messageId(Long messageId){
setMessageId(messageId);
return this;
}
/**
* 设置 开始 消息id
* @param messageIdStart
*/
public NewsQuery messageIdStart(Long messageIdStart){
this.messageIdStart = messageIdStart;
return this;
}
/**
* 设置 结束 消息id
* @param messageIdEnd
*/
public NewsQuery messageIdEnd(Long messageIdEnd){
this.messageIdEnd = messageIdEnd;
return this;
}
/**
* 设置 增加 消息id
* @param messageIdIncrement
*/
public NewsQuery messageIdIncrement(Long messageIdIncrement){
this.messageIdIncrement = messageIdIncrement;
return this;
}
/**
* 设置 消息id
* @param messageIdList
*/
public NewsQuery messageIdList(List<Long> messageIdList){
this.messageIdList = messageIdList;
return this;
}
/**
* 设置 客户id
* @param customerId
*/
public NewsQuery customerId(Long customerId){
setCustomerId(customerId);
return this;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public NewsQuery customerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
return this;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public NewsQuery customerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
return this;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public NewsQuery customerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
return this;
}
/**
* 设置 客户id
* @param customerIdList
*/
public NewsQuery customerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
return this;
}
/**
* 设置 消息标题
* @param title
*/
public NewsQuery title(String title){
setTitle(title);
return this;
}
/**
* 设置 消息标题
* @param titleList
*/
public NewsQuery titleList(List<String> titleList){
this.titleList = titleList;
return this;
}
/**
* 设置 消息内容
* @param content
*/
public NewsQuery content(String content){
setContent(content);
return this;
}
/**
* 设置 消息内容
* @param contentList
*/
public NewsQuery contentList(List<String> contentList){
this.contentList = contentList;
return this;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageType
*/
public NewsQuery messageType(Integer messageType){
setMessageType(messageType);
return this;
}
/**
* 设置 开始 消息类型1标题消息2动态消息
* @param messageTypeStart
*/
public NewsQuery messageTypeStart(Integer messageTypeStart){
this.messageTypeStart = messageTypeStart;
return this;
}
/**
* 设置 结束 消息类型1标题消息2动态消息
* @param messageTypeEnd
*/
public NewsQuery messageTypeEnd(Integer messageTypeEnd){
this.messageTypeEnd = messageTypeEnd;
return this;
}
/**
* 设置 增加 消息类型1标题消息2动态消息
* @param messageTypeIncrement
*/
public NewsQuery messageTypeIncrement(Integer messageTypeIncrement){
this.messageTypeIncrement = messageTypeIncrement;
return this;
}
/**
* 设置 消息类型1标题消息2动态消息
* @param messageTypeList
*/
public NewsQuery messageTypeList(List<Integer> messageTypeList){
this.messageTypeList = messageTypeList;
return this;
}
/**
* 设置 查阅状态0未读1已读
* @param readStatus
*/
public NewsQuery readStatus(Integer readStatus){
setReadStatus(readStatus);
return this;
}
/**
* 设置 开始 查阅状态0未读1已读
* @param readStatusStart
*/
public NewsQuery readStatusStart(Integer readStatusStart){
this.readStatusStart = readStatusStart;
return this;
}
/**
* 设置 结束 查阅状态0未读1已读
* @param readStatusEnd
*/
public NewsQuery readStatusEnd(Integer readStatusEnd){
this.readStatusEnd = readStatusEnd;
return this;
}
/**
* 设置 增加 查阅状态0未读1已读
* @param readStatusIncrement
*/
public NewsQuery readStatusIncrement(Integer readStatusIncrement){
this.readStatusIncrement = readStatusIncrement;
return this;
}
/**
* 设置 查阅状态0未读1已读
* @param readStatusList
*/
public NewsQuery readStatusList(List<Integer> readStatusList){
this.readStatusList = readStatusList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<NewsQuery> 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<NewsQuery> 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<NewsQuery> 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<NewsQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.news.model.vo;
import com.mortals.framework.model.BaseEntityLong;
/**
* 用户消息视图对象
*
* @author zxfei
* @date 2022-06-29
*/
public class NewsVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.news.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.news.model.NewsEntity;
/**
* NewsService
*
* 用户消息 service接口
*
* @author zxfei
* @date 2022-06-29
*/
public interface NewsService extends ICRUDService<NewsEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.news.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.news.dao.NewsDao;
import com.mortals.xhx.module.news.model.NewsEntity;
import com.mortals.xhx.module.news.service.NewsService;
/**
* NewsService
* 用户消息 service实现
*
* @author zxfei
* @date 2022-06-29
*/
@Service("newsService")
public class NewsServiceImpl extends AbstractCRUDServiceImpl<NewsDao, NewsEntity, Long> implements NewsService {
}
\ No newline at end of file
package com.mortals.xhx.module.news.web;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.MessageTypeEnum;
import com.mortals.xhx.common.code.ReadStatusEnum;
import com.mortals.xhx.module.news.model.NewsEntity;
import com.mortals.xhx.module.news.service.NewsService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*
* 用户消息
*
* @author zxfei
* @date 2022-06-29
*/
@RestController
@RequestMapping("news")
public class NewsController extends BaseCRUDJsonBodyMappingController<NewsService,NewsEntity,Long> {
public NewsController(){
super.setModuleDesc( "用户消息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "messageType", IBaseEnum.getEnumMap(MessageTypeEnum.class));
this.addDict(model, "readStatus", IBaseEnum.getEnumMap(ReadStatusEnum.class));
super.init(model, context);
}
@Override
protected void doListBefore(NewsEntity query, Map<String, Object> model, Context context) throws AppException {
query.setCustomerId(this.getCurUser().getId());
}
@Override
protected int viewAfter(Long id, Map<String, Object> model, NewsEntity entity, Context context) throws AppException {
//查看以后标记为已读
NewsEntity update = new NewsEntity();
update.setId(id);
update.setReadStatus(ReadStatusEnum.READ.getValue());
this.service.update(update);
return 1;
}
}
\ No newline at end of file
package com.mortals.xhx.module.proposal.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.proposal.model.ProposalEntity;
import java.util.List;
/**
* 客户建议信息Dao
* 客户建议信息 DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface ProposalDao extends ICRUDDao<ProposalEntity,Long>{
}
package com.mortals.xhx.module.proposal.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.proposal.dao.ProposalDao;
import com.mortals.xhx.module.proposal.model.ProposalEntity;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 客户建议信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
@Repository("proposalDao")
public class ProposalDaoImpl extends BaseCRUDDaoMybatis<ProposalEntity,Long> implements ProposalDao {
}
package com.mortals.xhx.module.proposal.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.proposal.model.vo.ProposalVo;
/**
* 客户建议信息实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class ProposalEntity extends ProposalVo {
private static final long serialVersionUID = 1L;
/**
* 建议内容
*/
private String content;
/**
* 截图地址
*/
private String screenshot;
/**
* 客户id
*/
private Long customerId;
/**
* 客户名称
*/
private String custName;
/**
* 回复状态备0未回复1已回复
*/
private Integer replyStatus;
/**
* 回复内容
*/
private String replyContent;
/**
* 回复时间
*/
private Date replyTime;
/**
* 回复发送方式1站内发送2短信发送3同时发送
*/
private Integer sendMode;
/**
* 回复发送状态0未发送1已发送
*/
private Integer sendStatus;
/**
* 联系电话
*/
private String contactTelphone;
public ProposalEntity(){}
/**
* 获取 建议内容
* @return String
*/
public String getContent(){
return content;
}
/**
* 设置 建议内容
* @param content
*/
public void setContent(String content){
this.content = content;
}
/**
* 获取 截图地址
* @return String
*/
public String getScreenshot(){
return screenshot;
}
/**
* 设置 截图地址
* @param screenshot
*/
public void setScreenshot(String screenshot){
this.screenshot = screenshot;
}
/**
* 获取 客户id
* @return Long
*/
public Long getCustomerId(){
return customerId;
}
/**
* 设置 客户id
* @param customerId
*/
public void setCustomerId(Long customerId){
this.customerId = customerId;
}
/**
* 获取 客户名称
* @return String
*/
public String getCustName(){
return custName;
}
/**
* 设置 客户名称
* @param custName
*/
public void setCustName(String custName){
this.custName = custName;
}
/**
* 获取 回复状态备0未回复1已回复
* @return Integer
*/
public Integer getReplyStatus(){
return replyStatus;
}
/**
* 设置 回复状态备0未回复1已回复
* @param replyStatus
*/
public void setReplyStatus(Integer replyStatus){
this.replyStatus = replyStatus;
}
/**
* 获取 回复内容
* @return String
*/
public String getReplyContent(){
return replyContent;
}
/**
* 设置 回复内容
* @param replyContent
*/
public void setReplyContent(String replyContent){
this.replyContent = replyContent;
}
/**
* 获取 回复时间
* @return Date
*/
public Date getReplyTime(){
return replyTime;
}
/**
* 设置 回复时间
* @param replyTime
*/
public void setReplyTime(Date replyTime){
this.replyTime = replyTime;
}
/**
* 获取 回复发送方式1站内发送2短信发送3同时发送
* @return Integer
*/
public Integer getSendMode(){
return sendMode;
}
/**
* 设置 回复发送方式1站内发送2短信发送3同时发送
* @param sendMode
*/
public void setSendMode(Integer sendMode){
this.sendMode = sendMode;
}
/**
* 获取 回复发送状态0未发送1已发送
* @return Integer
*/
public Integer getSendStatus(){
return sendStatus;
}
/**
* 设置 回复发送状态0未发送1已发送
* @param sendStatus
*/
public void setSendStatus(Integer sendStatus){
this.sendStatus = sendStatus;
}
/**
* 获取 联系电话
* @return String
*/
public String getContactTelphone(){
return contactTelphone;
}
/**
* 设置 联系电话
* @param contactTelphone
*/
public void setContactTelphone(String contactTelphone){
this.contactTelphone = contactTelphone;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof ProposalEntity) {
ProposalEntity tmp = (ProposalEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",content:").append(getContent());
sb.append(",screenshot:").append(getScreenshot());
sb.append(",customerId:").append(getCustomerId());
sb.append(",custName:").append(getCustName());
sb.append(",replyStatus:").append(getReplyStatus());
sb.append(",replyContent:").append(getReplyContent());
sb.append(",replyTime:").append(getReplyTime());
sb.append(",sendMode:").append(getSendMode());
sb.append(",sendStatus:").append(getSendStatus());
sb.append(",contactTelphone:").append(getContactTelphone());
return sb.toString();
}
public void initAttrValue(){
this.content = "";
this.screenshot = "";
this.customerId = null;
this.custName = "";
this.replyStatus = 0;
this.replyContent = "";
this.replyTime = null;
this.sendMode = null;
this.sendStatus = null;
this.contactTelphone = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.proposal.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.proposal.model.ProposalEntity;
/**
* 客户建议信息查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class ProposalQuery extends ProposalEntity {
/** 开始 建议ID,主键,自增长 */
private Long idStart;
/** 结束 建议ID,主键,自增长 */
private Long idEnd;
/** 增加 建议ID,主键,自增长 */
private Long idIncrement;
/** 建议ID,主键,自增长列表 */
private List <Long> idList;
/** 建议内容 */
private List<String> contentList;
/** 截图地址 */
private List<String> screenshotList;
/** 开始 客户id */
private Long customerIdStart;
/** 结束 客户id */
private Long customerIdEnd;
/** 增加 客户id */
private Long customerIdIncrement;
/** 客户id列表 */
private List <Long> customerIdList;
/** 客户名称 */
private List<String> custNameList;
/** 开始 提交时间 */
private String createTimeStart;
/** 结束 提交时间 */
private String createTimeEnd;
/** 开始 回复状态备0未回复1已回复 */
private Integer replyStatusStart;
/** 结束 回复状态备0未回复1已回复 */
private Integer replyStatusEnd;
/** 增加 回复状态备0未回复1已回复 */
private Integer replyStatusIncrement;
/** 回复状态备0未回复1已回复列表 */
private List <Integer> replyStatusList;
/** 回复内容 */
private List<String> replyContentList;
/** 开始 回复时间 */
private String replyTimeStart;
/** 结束 回复时间 */
private String replyTimeEnd;
/** 开始 回复发送方式1站内发送2短信发送3同时发送 */
private Integer sendModeStart;
/** 结束 回复发送方式1站内发送2短信发送3同时发送 */
private Integer sendModeEnd;
/** 增加 回复发送方式1站内发送2短信发送3同时发送 */
private Integer sendModeIncrement;
/** 回复发送方式1站内发送2短信发送3同时发送列表 */
private List <Integer> sendModeList;
/** 开始 回复发送状态0未发送1已发送 */
private Integer sendStatusStart;
/** 结束 回复发送状态0未发送1已发送 */
private Integer sendStatusEnd;
/** 增加 回复发送状态0未发送1已发送 */
private Integer sendStatusIncrement;
/** 回复发送状态0未发送1已发送列表 */
private List <Integer> sendStatusList;
/** 联系电话 */
private List<String> contactTelphoneList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<ProposalQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<ProposalQuery> andConditionList;
public ProposalQuery(){}
/**
* 获取 开始 建议ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 建议ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 建议ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 建议ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 建议ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 建议ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 建议ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 建议ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 建议内容
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 建议内容
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 截图地址
* @return screenshotList
*/
public List<String> getScreenshotList(){
return this.screenshotList;
}
/**
* 设置 截图地址
* @param screenshotList
*/
public void setScreenshotList(List<String> screenshotList){
this.screenshotList = screenshotList;
}
/**
* 获取 开始 客户id
* @return customerIdStart
*/
public Long getCustomerIdStart(){
return this.customerIdStart;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public void setCustomerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
}
/**
* 获取 结束 客户id
* @return $customerIdEnd
*/
public Long getCustomerIdEnd(){
return this.customerIdEnd;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public void setCustomerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
}
/**
* 获取 增加 客户id
* @return customerIdIncrement
*/
public Long getCustomerIdIncrement(){
return this.customerIdIncrement;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public void setCustomerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
}
/**
* 获取 客户id
* @return customerIdList
*/
public List<Long> getCustomerIdList(){
return this.customerIdList;
}
/**
* 设置 客户id
* @param customerIdList
*/
public void setCustomerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
}
/**
* 获取 客户名称
* @return custNameList
*/
public List<String> getCustNameList(){
return this.custNameList;
}
/**
* 设置 客户名称
* @param custNameList
*/
public void setCustNameList(List<String> custNameList){
this.custNameList = custNameList;
}
/**
* 获取 开始 提交时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 提交时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 提交时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 提交时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 开始 回复状态备0未回复1已回复
* @return replyStatusStart
*/
public Integer getReplyStatusStart(){
return this.replyStatusStart;
}
/**
* 设置 开始 回复状态备0未回复1已回复
* @param replyStatusStart
*/
public void setReplyStatusStart(Integer replyStatusStart){
this.replyStatusStart = replyStatusStart;
}
/**
* 获取 结束 回复状态备0未回复1已回复
* @return $replyStatusEnd
*/
public Integer getReplyStatusEnd(){
return this.replyStatusEnd;
}
/**
* 设置 结束 回复状态备0未回复1已回复
* @param replyStatusEnd
*/
public void setReplyStatusEnd(Integer replyStatusEnd){
this.replyStatusEnd = replyStatusEnd;
}
/**
* 获取 增加 回复状态备0未回复1已回复
* @return replyStatusIncrement
*/
public Integer getReplyStatusIncrement(){
return this.replyStatusIncrement;
}
/**
* 设置 增加 回复状态备0未回复1已回复
* @param replyStatusIncrement
*/
public void setReplyStatusIncrement(Integer replyStatusIncrement){
this.replyStatusIncrement = replyStatusIncrement;
}
/**
* 获取 回复状态备0未回复1已回复
* @return replyStatusList
*/
public List<Integer> getReplyStatusList(){
return this.replyStatusList;
}
/**
* 设置 回复状态备0未回复1已回复
* @param replyStatusList
*/
public void setReplyStatusList(List<Integer> replyStatusList){
this.replyStatusList = replyStatusList;
}
/**
* 获取 回复内容
* @return replyContentList
*/
public List<String> getReplyContentList(){
return this.replyContentList;
}
/**
* 设置 回复内容
* @param replyContentList
*/
public void setReplyContentList(List<String> replyContentList){
this.replyContentList = replyContentList;
}
/**
* 获取 开始 回复时间
* @return replyTimeStart
*/
public String getReplyTimeStart(){
return this.replyTimeStart;
}
/**
* 设置 开始 回复时间
* @param replyTimeStart
*/
public void setReplyTimeStart(String replyTimeStart){
this.replyTimeStart = replyTimeStart;
}
/**
* 获取 结束 回复时间
* @return replyTimeEnd
*/
public String getReplyTimeEnd(){
return this.replyTimeEnd;
}
/**
* 设置 结束 回复时间
* @param replyTimeEnd
*/
public void setReplyTimeEnd(String replyTimeEnd){
this.replyTimeEnd = replyTimeEnd;
}
/**
* 获取 开始 回复发送方式1站内发送2短信发送3同时发送
* @return sendModeStart
*/
public Integer getSendModeStart(){
return this.sendModeStart;
}
/**
* 设置 开始 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeStart
*/
public void setSendModeStart(Integer sendModeStart){
this.sendModeStart = sendModeStart;
}
/**
* 获取 结束 回复发送方式1站内发送2短信发送3同时发送
* @return $sendModeEnd
*/
public Integer getSendModeEnd(){
return this.sendModeEnd;
}
/**
* 设置 结束 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeEnd
*/
public void setSendModeEnd(Integer sendModeEnd){
this.sendModeEnd = sendModeEnd;
}
/**
* 获取 增加 回复发送方式1站内发送2短信发送3同时发送
* @return sendModeIncrement
*/
public Integer getSendModeIncrement(){
return this.sendModeIncrement;
}
/**
* 设置 增加 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeIncrement
*/
public void setSendModeIncrement(Integer sendModeIncrement){
this.sendModeIncrement = sendModeIncrement;
}
/**
* 获取 回复发送方式1站内发送2短信发送3同时发送
* @return sendModeList
*/
public List<Integer> getSendModeList(){
return this.sendModeList;
}
/**
* 设置 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeList
*/
public void setSendModeList(List<Integer> sendModeList){
this.sendModeList = sendModeList;
}
/**
* 获取 开始 回复发送状态0未发送1已发送
* @return sendStatusStart
*/
public Integer getSendStatusStart(){
return this.sendStatusStart;
}
/**
* 设置 开始 回复发送状态0未发送1已发送
* @param sendStatusStart
*/
public void setSendStatusStart(Integer sendStatusStart){
this.sendStatusStart = sendStatusStart;
}
/**
* 获取 结束 回复发送状态0未发送1已发送
* @return $sendStatusEnd
*/
public Integer getSendStatusEnd(){
return this.sendStatusEnd;
}
/**
* 设置 结束 回复发送状态0未发送1已发送
* @param sendStatusEnd
*/
public void setSendStatusEnd(Integer sendStatusEnd){
this.sendStatusEnd = sendStatusEnd;
}
/**
* 获取 增加 回复发送状态0未发送1已发送
* @return sendStatusIncrement
*/
public Integer getSendStatusIncrement(){
return this.sendStatusIncrement;
}
/**
* 设置 增加 回复发送状态0未发送1已发送
* @param sendStatusIncrement
*/
public void setSendStatusIncrement(Integer sendStatusIncrement){
this.sendStatusIncrement = sendStatusIncrement;
}
/**
* 获取 回复发送状态0未发送1已发送
* @return sendStatusList
*/
public List<Integer> getSendStatusList(){
return this.sendStatusList;
}
/**
* 设置 回复发送状态0未发送1已发送
* @param sendStatusList
*/
public void setSendStatusList(List<Integer> sendStatusList){
this.sendStatusList = sendStatusList;
}
/**
* 获取 联系电话
* @return contactTelphoneList
*/
public List<String> getContactTelphoneList(){
return this.contactTelphoneList;
}
/**
* 设置 联系电话
* @param contactTelphoneList
*/
public void setContactTelphoneList(List<String> contactTelphoneList){
this.contactTelphoneList = contactTelphoneList;
}
/**
* 设置 建议ID,主键,自增长
* @param id
*/
public ProposalQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 建议ID,主键,自增长
* @param idStart
*/
public ProposalQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 建议ID,主键,自增长
* @param idEnd
*/
public ProposalQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 建议ID,主键,自增长
* @param idIncrement
*/
public ProposalQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 建议ID,主键,自增长
* @param idList
*/
public ProposalQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 建议内容
* @param content
*/
public ProposalQuery content(String content){
setContent(content);
return this;
}
/**
* 设置 建议内容
* @param contentList
*/
public ProposalQuery contentList(List<String> contentList){
this.contentList = contentList;
return this;
}
/**
* 设置 截图地址
* @param screenshot
*/
public ProposalQuery screenshot(String screenshot){
setScreenshot(screenshot);
return this;
}
/**
* 设置 截图地址
* @param screenshotList
*/
public ProposalQuery screenshotList(List<String> screenshotList){
this.screenshotList = screenshotList;
return this;
}
/**
* 设置 客户id
* @param customerId
*/
public ProposalQuery customerId(Long customerId){
setCustomerId(customerId);
return this;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public ProposalQuery customerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
return this;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public ProposalQuery customerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
return this;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public ProposalQuery customerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
return this;
}
/**
* 设置 客户id
* @param customerIdList
*/
public ProposalQuery customerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
return this;
}
/**
* 设置 客户名称
* @param custName
*/
public ProposalQuery custName(String custName){
setCustName(custName);
return this;
}
/**
* 设置 客户名称
* @param custNameList
*/
public ProposalQuery custNameList(List<String> custNameList){
this.custNameList = custNameList;
return this;
}
/**
* 设置 回复状态备0未回复1已回复
* @param replyStatus
*/
public ProposalQuery replyStatus(Integer replyStatus){
setReplyStatus(replyStatus);
return this;
}
/**
* 设置 开始 回复状态备0未回复1已回复
* @param replyStatusStart
*/
public ProposalQuery replyStatusStart(Integer replyStatusStart){
this.replyStatusStart = replyStatusStart;
return this;
}
/**
* 设置 结束 回复状态备0未回复1已回复
* @param replyStatusEnd
*/
public ProposalQuery replyStatusEnd(Integer replyStatusEnd){
this.replyStatusEnd = replyStatusEnd;
return this;
}
/**
* 设置 增加 回复状态备0未回复1已回复
* @param replyStatusIncrement
*/
public ProposalQuery replyStatusIncrement(Integer replyStatusIncrement){
this.replyStatusIncrement = replyStatusIncrement;
return this;
}
/**
* 设置 回复状态备0未回复1已回复
* @param replyStatusList
*/
public ProposalQuery replyStatusList(List<Integer> replyStatusList){
this.replyStatusList = replyStatusList;
return this;
}
/**
* 设置 回复内容
* @param replyContent
*/
public ProposalQuery replyContent(String replyContent){
setReplyContent(replyContent);
return this;
}
/**
* 设置 回复内容
* @param replyContentList
*/
public ProposalQuery replyContentList(List<String> replyContentList){
this.replyContentList = replyContentList;
return this;
}
/**
* 设置 回复发送方式1站内发送2短信发送3同时发送
* @param sendMode
*/
public ProposalQuery sendMode(Integer sendMode){
setSendMode(sendMode);
return this;
}
/**
* 设置 开始 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeStart
*/
public ProposalQuery sendModeStart(Integer sendModeStart){
this.sendModeStart = sendModeStart;
return this;
}
/**
* 设置 结束 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeEnd
*/
public ProposalQuery sendModeEnd(Integer sendModeEnd){
this.sendModeEnd = sendModeEnd;
return this;
}
/**
* 设置 增加 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeIncrement
*/
public ProposalQuery sendModeIncrement(Integer sendModeIncrement){
this.sendModeIncrement = sendModeIncrement;
return this;
}
/**
* 设置 回复发送方式1站内发送2短信发送3同时发送
* @param sendModeList
*/
public ProposalQuery sendModeList(List<Integer> sendModeList){
this.sendModeList = sendModeList;
return this;
}
/**
* 设置 回复发送状态0未发送1已发送
* @param sendStatus
*/
public ProposalQuery sendStatus(Integer sendStatus){
setSendStatus(sendStatus);
return this;
}
/**
* 设置 开始 回复发送状态0未发送1已发送
* @param sendStatusStart
*/
public ProposalQuery sendStatusStart(Integer sendStatusStart){
this.sendStatusStart = sendStatusStart;
return this;
}
/**
* 设置 结束 回复发送状态0未发送1已发送
* @param sendStatusEnd
*/
public ProposalQuery sendStatusEnd(Integer sendStatusEnd){
this.sendStatusEnd = sendStatusEnd;
return this;
}
/**
* 设置 增加 回复发送状态0未发送1已发送
* @param sendStatusIncrement
*/
public ProposalQuery sendStatusIncrement(Integer sendStatusIncrement){
this.sendStatusIncrement = sendStatusIncrement;
return this;
}
/**
* 设置 回复发送状态0未发送1已发送
* @param sendStatusList
*/
public ProposalQuery sendStatusList(List<Integer> sendStatusList){
this.sendStatusList = sendStatusList;
return this;
}
/**
* 设置 联系电话
* @param contactTelphone
*/
public ProposalQuery contactTelphone(String contactTelphone){
setContactTelphone(contactTelphone);
return this;
}
/**
* 设置 联系电话
* @param contactTelphoneList
*/
public ProposalQuery contactTelphoneList(List<String> contactTelphoneList){
this.contactTelphoneList = contactTelphoneList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<ProposalQuery> 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<ProposalQuery> 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<ProposalQuery> 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<ProposalQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.proposal.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import lombok.Data;
/**
* 客户建议信息视图对象
*
* @author zxfei
* @date 2022-06-28
*/
@Data
public class ProposalVo extends BaseEntityLong {
/** 查询条件 */
private String query;
}
\ No newline at end of file
package com.mortals.xhx.module.proposal.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.proposal.model.ProposalEntity;
/**
* ProposalService
*
* 客户建议信息 service接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface ProposalService extends ICRUDService<ProposalEntity,Long>{
}
\ No newline at end of file
package com.mortals.xhx.module.proposal.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.common.code.ReadStatusEnum;
import com.mortals.xhx.common.code.SendModeEnum;
import com.mortals.xhx.common.utils.StringUtils;
import com.mortals.xhx.module.news.model.NewsEntity;
import com.mortals.xhx.module.news.service.NewsService;
import com.mortals.xhx.module.proposal.dao.ProposalDao;
import com.mortals.xhx.module.proposal.model.ProposalEntity;
import com.mortals.xhx.module.proposal.model.ProposalQuery;
import com.mortals.xhx.module.proposal.service.ProposalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* ProposalService
* 客户建议信息 service实现
*
* @author zxfei
* @date 2022-06-28
*/
@Service("proposalService")
public class ProposalServiceImpl extends AbstractCRUDServiceImpl<ProposalDao, ProposalEntity, Long> implements ProposalService {
@Autowired
private NewsService newsService;
@Override
protected ProposalEntity findBefore(ProposalEntity entity, PageInfo pageInfo, Context context) throws AppException {
ProposalQuery query = new ProposalQuery();
//BeanUtils.copyProperties(entity,query);
if(StringUtils.isNotEmpty(entity.getQuery())){
StringBuffer condition = new StringBuffer("%");
condition.append(entity.getQuery()).append("%");
ProposalQuery condition1 = new ProposalQuery();
ProposalQuery condition2 = new ProposalQuery();
condition1.setContactTelphone(condition.toString());
condition2.setCustName(condition.toString());
List<ProposalQuery> orConditionList = new ArrayList<>();
orConditionList.add(condition1);
orConditionList.add(condition2);
query.setOrConditionList(orConditionList);
}
return entity;
}
@Override
protected void updateAfter(ProposalEntity entity, Context context) throws AppException {
if(StringUtils.isNotEmpty(entity.getReplyContent()) && entity.getSendMode()!= SendModeEnum.ON_SMS.getValue()){
ProposalEntity proposalEntity = this.get(entity.getId());
NewsEntity newsEntity = new NewsEntity();
newsEntity.setMessageId(proposalEntity.getId());
newsEntity.setCustomerId(proposalEntity.getCustomerId());
newsEntity.setContent(proposalEntity.getReplyContent());
newsEntity.setMessageType(0);
newsEntity.setReadStatus(ReadStatusEnum.UN_READ.getValue());
newsEntity.setReceiveTime(new Date());
newsService.save(newsEntity,context);
}
}
}
\ No newline at end of file
package com.mortals.xhx.module.proposal.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.IUser;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.ReplyStatusEnum;
import com.mortals.xhx.common.code.SendModeEnum;
import com.mortals.xhx.common.code.SendStatusEnum;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.module.customer.model.CustomerEntity;
import com.mortals.xhx.module.customer.service.CustomerService;
import com.mortals.xhx.module.help.model.HelpEvaluateEntity;
import com.mortals.xhx.module.proposal.model.ProposalEntity;
import com.mortals.xhx.module.proposal.service.ProposalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
*
* 客户建议信息
*
* @author zxfei
* @date 2022-06-28
*/
@RestController
@RequestMapping("proposal")
public class ProposalController extends BaseCRUDJsonBodyMappingController<ProposalService,ProposalEntity,Long> {
@Autowired
private CustomerService customerService;
public ProposalController(){
super.setModuleDesc( "客户建议信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "replyStatus", IBaseEnum.getEnumMap(ReplyStatusEnum.class));
this.addDict(model, "sendMode", IBaseEnum.getEnumMap(SendModeEnum.class));
this.addDict(model, "sendStatus", IBaseEnum.getEnumMap(SendStatusEnum.class));
super.init(model, context);
}
@Override
protected void saveBefore(ProposalEntity entity, Map<String, Object> model, Context context) throws AppException {
if(this.getCurUser()==null||this.getCurUser().getUserType()!= Constant.CUSTOMER_USER){
throw new AppException("非法用户,不可访问");
}
CustomerEntity customerEntity = customerService.get(this.getCurUser().getId());
entity.setCustomerId(this.getCurUser().getId());
entity.setCustName(customerEntity.getCustName());
entity.setContactTelphone(customerEntity.getContactTelphone());
if(entity.newEntity()){
entity.setReplyStatus(ReplyStatusEnum.UN_REPLY.getValue());
}
}
@PostMapping({"reply"})
@RepeatSubmit
public String reply(@RequestBody ProposalEntity entity) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
int code = 1;
String busiDesc = "保存" + this.getModuleDesc();
try {
if(entity.getId()==null){
throw new AppException("建议id不能为空");
}
IUser user;
busiDesc = "修改" + this.getModuleDesc();
entity.setUpdateTime(new Date());
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());
}
entity.setReplyTime(new Date());
entity.setReplyStatus(ReplyStatusEnum.REPLY.getValue());
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 var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
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
package com.mortals.xhx.module.question.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.question.model.QuestionEntity;
import java.util.List;
/**
* 问答信息Dao
* 问答信息 DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface QuestionDao extends ICRUDDao<QuestionEntity,Long>{
}
package com.mortals.xhx.module.question.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
import java.util.List;
/**
* 问答记录信息Dao
* 问答记录信息 DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface QuestionRecordDao extends ICRUDDao<QuestionRecordEntity,Long>{
}
package com.mortals.xhx.module.question.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.question.model.QuestionReplyEntity;
import java.util.List;
/**
* 问答自动回复Dao
* 问答自动回复 DAO接口
*
* @author zxfei
* @date 2022-06-29
*/
public interface QuestionReplyDao extends ICRUDDao<QuestionReplyEntity,Long>{
}
package com.mortals.xhx.module.question.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.question.dao.QuestionDao;
import com.mortals.xhx.module.question.model.QuestionEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 问答信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
@Repository("questionDao")
public class QuestionDaoImpl extends BaseCRUDDaoMybatis<QuestionEntity,Long> implements QuestionDao {
}
package com.mortals.xhx.module.question.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.question.dao.QuestionRecordDao;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 问答记录信息DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-28
*/
@Repository("questionRecordDao")
public class QuestionRecordDaoImpl extends BaseCRUDDaoMybatis<QuestionRecordEntity,Long> implements QuestionRecordDao {
}
package com.mortals.xhx.module.question.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.question.dao.QuestionReplyDao;
import com.mortals.xhx.module.question.model.QuestionReplyEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 问答自动回复DaoImpl DAO接口
*
* @author zxfei
* @date 2022-06-29
*/
@Repository("questionReplyDao")
public class QuestionReplyDaoImpl extends BaseCRUDDaoMybatis<QuestionReplyEntity,Long> implements QuestionReplyDao {
}
package com.mortals.xhx.module.question.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.question.model.vo.QuestionVo;
/**
* 问答信息实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class QuestionEntity extends QuestionVo {
private static final long serialVersionUID = 1L;
/**
* 问题类型备用字段
*/
private Integer questionType;
/**
* 状态0未完成1已完成
*/
private Integer status;
/**
* 客户id
*/
private Long customerId;
/**
* 客户真实名称
*/
private String custName;
/**
* 单位名称
*/
private String organization;
/**
* 联系电话
*/
private String contactTelphone;
/**
* 创建用户名称
*/
private String createUserName;
/**
* 修改时间
*/
private Date beginTime;
/**
* 修改时间
*/
private Date finishTime;
/**
* 评价
*/
private Integer evaluate;
/**
* 问答次数
*/
private Integer sumQA;
public QuestionEntity(){}
/**
* 获取 问题类型备用字段
* @return Integer
*/
public Integer getQuestionType(){
return questionType;
}
/**
* 设置 问题类型备用字段
* @param questionType
*/
public void setQuestionType(Integer questionType){
this.questionType = questionType;
}
/**
* 获取 状态0未完成1已完成
* @return Integer
*/
public Integer getStatus(){
return status;
}
/**
* 设置 状态0未完成1已完成
* @param status
*/
public void setStatus(Integer status){
this.status = status;
}
/**
* 获取 客户id
* @return Long
*/
public Long getCustomerId(){
return customerId;
}
/**
* 设置 客户id
* @param customerId
*/
public void setCustomerId(Long customerId){
this.customerId = customerId;
}
/**
* 获取 客户真实名称
* @return String
*/
public String getCustName(){
return custName;
}
/**
* 设置 客户真实名称
* @param custName
*/
public void setCustName(String custName){
this.custName = custName;
}
/**
* 获取 单位名称
* @return String
*/
public String getOrganization(){
return organization;
}
/**
* 设置 单位名称
* @param organization
*/
public void setOrganization(String organization){
this.organization = organization;
}
/**
* 获取 联系电话
* @return String
*/
public String getContactTelphone(){
return contactTelphone;
}
/**
* 设置 联系电话
* @param contactTelphone
*/
public void setContactTelphone(String contactTelphone){
this.contactTelphone = contactTelphone;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 修改时间
* @return Date
*/
public Date getBeginTime(){
return beginTime;
}
/**
* 设置 修改时间
* @param beginTime
*/
public void setBeginTime(Date beginTime){
this.beginTime = beginTime;
}
/**
* 获取 修改时间
* @return Date
*/
public Date getFinishTime(){
return finishTime;
}
/**
* 设置 修改时间
* @param finishTime
*/
public void setFinishTime(Date finishTime){
this.finishTime = finishTime;
}
/**
* 获取 评价
* @return Integer
*/
public Integer getEvaluate(){
return evaluate;
}
/**
* 设置 评价
* @param evaluate
*/
public void setEvaluate(Integer evaluate){
this.evaluate = evaluate;
}
/**
* 获取 问答次数
* @return Integer
*/
public Integer getSumQA(){
return sumQA;
}
/**
* 设置 问答次数
* @param sumQA
*/
public void setSumQA(Integer sumQA){
this.sumQA = sumQA;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof QuestionEntity) {
QuestionEntity tmp = (QuestionEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",questionType:").append(getQuestionType());
sb.append(",status:").append(getStatus());
sb.append(",customerId:").append(getCustomerId());
sb.append(",custName:").append(getCustName());
sb.append(",organization:").append(getOrganization());
sb.append(",contactTelphone:").append(getContactTelphone());
sb.append(",createUserName:").append(getCreateUserName());
sb.append(",beginTime:").append(getBeginTime());
sb.append(",finishTime:").append(getFinishTime());
sb.append(",evaluate:").append(getEvaluate());
sb.append(",sumQA:").append(getSumQA());
return sb.toString();
}
public void initAttrValue(){
this.questionType = null;
this.status = 0;
this.customerId = null;
this.custName = "";
this.organization = "";
this.contactTelphone = "";
this.createUserName = "";
this.beginTime = null;
this.finishTime = null;
this.evaluate = 0;
this.sumQA = 0;
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.model;
import java.util.Date;
import java.util.List;
import com.mortals.xhx.module.question.model.QuestionEntity;
/**
* 问答信息查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class QuestionQuery extends QuestionEntity {
/** 开始 问答ID,主键,自增长 */
private Long idStart;
/** 结束 问答ID,主键,自增长 */
private Long idEnd;
/** 增加 问答ID,主键,自增长 */
private Long idIncrement;
/** 问答ID,主键,自增长列表 */
private List <Long> idList;
/** 开始 问题类型备用字段 */
private Integer questionTypeStart;
/** 结束 问题类型备用字段 */
private Integer questionTypeEnd;
/** 增加 问题类型备用字段 */
private Integer questionTypeIncrement;
/** 问题类型备用字段列表 */
private List <Integer> questionTypeList;
/** 开始 状态0未完成1已完成 */
private Integer statusStart;
/** 结束 状态0未完成1已完成 */
private Integer statusEnd;
/** 增加 状态0未完成1已完成 */
private Integer statusIncrement;
/** 状态0未完成1已完成列表 */
private List <Integer> statusList;
/** 开始 客户id */
private Long customerIdStart;
/** 结束 客户id */
private Long customerIdEnd;
/** 增加 客户id */
private Long customerIdIncrement;
/** 客户id列表 */
private List <Long> customerIdList;
/** 客户真实名称 */
private List<String> custNameList;
/** 单位名称 */
private List<String> organizationList;
/** 联系电话 */
private List<String> contactTelphoneList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** 开始 修改时间 */
private String beginTimeStart;
/** 结束 修改时间 */
private String beginTimeEnd;
/** 开始 修改时间 */
private String finishTimeStart;
/** 结束 修改时间 */
private String finishTimeEnd;
/** 开始 评价 */
private Integer evaluateStart;
/** 结束 评价 */
private Integer evaluateEnd;
/** 增加 评价 */
private Integer evaluateIncrement;
/** 评价列表 */
private List <Integer> evaluateList;
/** 开始 问答次数 */
private Integer sumQAStart;
/** 结束 问答次数 */
private Integer sumQAEnd;
/** 增加 问答次数 */
private Integer sumQAIncrement;
/** 问答次数列表 */
private List <Integer> sumQAList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<QuestionQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<QuestionQuery> andConditionList;
public QuestionQuery(){}
/**
* 获取 开始 问答ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 问答ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 问答ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 问答ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 问答ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 问答ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 问答ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 问答ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 问题类型备用字段
* @return questionTypeStart
*/
public Integer getQuestionTypeStart(){
return this.questionTypeStart;
}
/**
* 设置 开始 问题类型备用字段
* @param questionTypeStart
*/
public void setQuestionTypeStart(Integer questionTypeStart){
this.questionTypeStart = questionTypeStart;
}
/**
* 获取 结束 问题类型备用字段
* @return $questionTypeEnd
*/
public Integer getQuestionTypeEnd(){
return this.questionTypeEnd;
}
/**
* 设置 结束 问题类型备用字段
* @param questionTypeEnd
*/
public void setQuestionTypeEnd(Integer questionTypeEnd){
this.questionTypeEnd = questionTypeEnd;
}
/**
* 获取 增加 问题类型备用字段
* @return questionTypeIncrement
*/
public Integer getQuestionTypeIncrement(){
return this.questionTypeIncrement;
}
/**
* 设置 增加 问题类型备用字段
* @param questionTypeIncrement
*/
public void setQuestionTypeIncrement(Integer questionTypeIncrement){
this.questionTypeIncrement = questionTypeIncrement;
}
/**
* 获取 问题类型备用字段
* @return questionTypeList
*/
public List<Integer> getQuestionTypeList(){
return this.questionTypeList;
}
/**
* 设置 问题类型备用字段
* @param questionTypeList
*/
public void setQuestionTypeList(List<Integer> questionTypeList){
this.questionTypeList = questionTypeList;
}
/**
* 获取 开始 状态0未完成1已完成
* @return statusStart
*/
public Integer getStatusStart(){
return this.statusStart;
}
/**
* 设置 开始 状态0未完成1已完成
* @param statusStart
*/
public void setStatusStart(Integer statusStart){
this.statusStart = statusStart;
}
/**
* 获取 结束 状态0未完成1已完成
* @return $statusEnd
*/
public Integer getStatusEnd(){
return this.statusEnd;
}
/**
* 设置 结束 状态0未完成1已完成
* @param statusEnd
*/
public void setStatusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
}
/**
* 获取 增加 状态0未完成1已完成
* @return statusIncrement
*/
public Integer getStatusIncrement(){
return this.statusIncrement;
}
/**
* 设置 增加 状态0未完成1已完成
* @param statusIncrement
*/
public void setStatusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
}
/**
* 获取 状态0未完成1已完成
* @return statusList
*/
public List<Integer> getStatusList(){
return this.statusList;
}
/**
* 设置 状态0未完成1已完成
* @param statusList
*/
public void setStatusList(List<Integer> statusList){
this.statusList = statusList;
}
/**
* 获取 开始 客户id
* @return customerIdStart
*/
public Long getCustomerIdStart(){
return this.customerIdStart;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public void setCustomerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
}
/**
* 获取 结束 客户id
* @return $customerIdEnd
*/
public Long getCustomerIdEnd(){
return this.customerIdEnd;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public void setCustomerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
}
/**
* 获取 增加 客户id
* @return customerIdIncrement
*/
public Long getCustomerIdIncrement(){
return this.customerIdIncrement;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public void setCustomerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
}
/**
* 获取 客户id
* @return customerIdList
*/
public List<Long> getCustomerIdList(){
return this.customerIdList;
}
/**
* 设置 客户id
* @param customerIdList
*/
public void setCustomerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
}
/**
* 获取 客户真实名称
* @return custNameList
*/
public List<String> getCustNameList(){
return this.custNameList;
}
/**
* 设置 客户真实名称
* @param custNameList
*/
public void setCustNameList(List<String> custNameList){
this.custNameList = custNameList;
}
/**
* 获取 单位名称
* @return organizationList
*/
public List<String> getOrganizationList(){
return this.organizationList;
}
/**
* 设置 单位名称
* @param organizationList
*/
public void setOrganizationList(List<String> organizationList){
this.organizationList = organizationList;
}
/**
* 获取 联系电话
* @return contactTelphoneList
*/
public List<String> getContactTelphoneList(){
return this.contactTelphoneList;
}
/**
* 设置 联系电话
* @param contactTelphoneList
*/
public void setContactTelphoneList(List<String> contactTelphoneList){
this.contactTelphoneList = contactTelphoneList;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 获取 开始 修改时间
* @return beginTimeStart
*/
public String getBeginTimeStart(){
return this.beginTimeStart;
}
/**
* 设置 开始 修改时间
* @param beginTimeStart
*/
public void setBeginTimeStart(String beginTimeStart){
this.beginTimeStart = beginTimeStart;
}
/**
* 获取 结束 修改时间
* @return beginTimeEnd
*/
public String getBeginTimeEnd(){
return this.beginTimeEnd;
}
/**
* 设置 结束 修改时间
* @param beginTimeEnd
*/
public void setBeginTimeEnd(String beginTimeEnd){
this.beginTimeEnd = beginTimeEnd;
}
/**
* 获取 开始 修改时间
* @return finishTimeStart
*/
public String getFinishTimeStart(){
return this.finishTimeStart;
}
/**
* 设置 开始 修改时间
* @param finishTimeStart
*/
public void setFinishTimeStart(String finishTimeStart){
this.finishTimeStart = finishTimeStart;
}
/**
* 获取 结束 修改时间
* @return finishTimeEnd
*/
public String getFinishTimeEnd(){
return this.finishTimeEnd;
}
/**
* 设置 结束 修改时间
* @param finishTimeEnd
*/
public void setFinishTimeEnd(String finishTimeEnd){
this.finishTimeEnd = finishTimeEnd;
}
/**
* 获取 开始 评价
* @return evaluateStart
*/
public Integer getEvaluateStart(){
return this.evaluateStart;
}
/**
* 设置 开始 评价
* @param evaluateStart
*/
public void setEvaluateStart(Integer evaluateStart){
this.evaluateStart = evaluateStart;
}
/**
* 获取 结束 评价
* @return $evaluateEnd
*/
public Integer getEvaluateEnd(){
return this.evaluateEnd;
}
/**
* 设置 结束 评价
* @param evaluateEnd
*/
public void setEvaluateEnd(Integer evaluateEnd){
this.evaluateEnd = evaluateEnd;
}
/**
* 获取 增加 评价
* @return evaluateIncrement
*/
public Integer getEvaluateIncrement(){
return this.evaluateIncrement;
}
/**
* 设置 增加 评价
* @param evaluateIncrement
*/
public void setEvaluateIncrement(Integer evaluateIncrement){
this.evaluateIncrement = evaluateIncrement;
}
/**
* 获取 评价
* @return evaluateList
*/
public List<Integer> getEvaluateList(){
return this.evaluateList;
}
/**
* 设置 评价
* @param evaluateList
*/
public void setEvaluateList(List<Integer> evaluateList){
this.evaluateList = evaluateList;
}
/**
* 获取 开始 问答次数
* @return sumQAStart
*/
public Integer getSumQAStart(){
return this.sumQAStart;
}
/**
* 设置 开始 问答次数
* @param sumQAStart
*/
public void setSumQAStart(Integer sumQAStart){
this.sumQAStart = sumQAStart;
}
/**
* 获取 结束 问答次数
* @return $sumQAEnd
*/
public Integer getSumQAEnd(){
return this.sumQAEnd;
}
/**
* 设置 结束 问答次数
* @param sumQAEnd
*/
public void setSumQAEnd(Integer sumQAEnd){
this.sumQAEnd = sumQAEnd;
}
/**
* 获取 增加 问答次数
* @return sumQAIncrement
*/
public Integer getSumQAIncrement(){
return this.sumQAIncrement;
}
/**
* 设置 增加 问答次数
* @param sumQAIncrement
*/
public void setSumQAIncrement(Integer sumQAIncrement){
this.sumQAIncrement = sumQAIncrement;
}
/**
* 获取 问答次数
* @return sumQAList
*/
public List<Integer> getSumQAList(){
return this.sumQAList;
}
/**
* 设置 问答次数
* @param sumQAList
*/
public void setSumQAList(List<Integer> sumQAList){
this.sumQAList = sumQAList;
}
/**
* 设置 问答ID,主键,自增长
* @param id
*/
public QuestionQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 问答ID,主键,自增长
* @param idStart
*/
public QuestionQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 问答ID,主键,自增长
* @param idEnd
*/
public QuestionQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 问答ID,主键,自增长
* @param idIncrement
*/
public QuestionQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 问答ID,主键,自增长
* @param idList
*/
public QuestionQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 问题类型备用字段
* @param questionType
*/
public QuestionQuery questionType(Integer questionType){
setQuestionType(questionType);
return this;
}
/**
* 设置 开始 问题类型备用字段
* @param questionTypeStart
*/
public QuestionQuery questionTypeStart(Integer questionTypeStart){
this.questionTypeStart = questionTypeStart;
return this;
}
/**
* 设置 结束 问题类型备用字段
* @param questionTypeEnd
*/
public QuestionQuery questionTypeEnd(Integer questionTypeEnd){
this.questionTypeEnd = questionTypeEnd;
return this;
}
/**
* 设置 增加 问题类型备用字段
* @param questionTypeIncrement
*/
public QuestionQuery questionTypeIncrement(Integer questionTypeIncrement){
this.questionTypeIncrement = questionTypeIncrement;
return this;
}
/**
* 设置 问题类型备用字段
* @param questionTypeList
*/
public QuestionQuery questionTypeList(List<Integer> questionTypeList){
this.questionTypeList = questionTypeList;
return this;
}
/**
* 设置 状态0未完成1已完成
* @param status
*/
public QuestionQuery status(Integer status){
setStatus(status);
return this;
}
/**
* 设置 开始 状态0未完成1已完成
* @param statusStart
*/
public QuestionQuery statusStart(Integer statusStart){
this.statusStart = statusStart;
return this;
}
/**
* 设置 结束 状态0未完成1已完成
* @param statusEnd
*/
public QuestionQuery statusEnd(Integer statusEnd){
this.statusEnd = statusEnd;
return this;
}
/**
* 设置 增加 状态0未完成1已完成
* @param statusIncrement
*/
public QuestionQuery statusIncrement(Integer statusIncrement){
this.statusIncrement = statusIncrement;
return this;
}
/**
* 设置 状态0未完成1已完成
* @param statusList
*/
public QuestionQuery statusList(List<Integer> statusList){
this.statusList = statusList;
return this;
}
/**
* 设置 客户id
* @param customerId
*/
public QuestionQuery customerId(Long customerId){
setCustomerId(customerId);
return this;
}
/**
* 设置 开始 客户id
* @param customerIdStart
*/
public QuestionQuery customerIdStart(Long customerIdStart){
this.customerIdStart = customerIdStart;
return this;
}
/**
* 设置 结束 客户id
* @param customerIdEnd
*/
public QuestionQuery customerIdEnd(Long customerIdEnd){
this.customerIdEnd = customerIdEnd;
return this;
}
/**
* 设置 增加 客户id
* @param customerIdIncrement
*/
public QuestionQuery customerIdIncrement(Long customerIdIncrement){
this.customerIdIncrement = customerIdIncrement;
return this;
}
/**
* 设置 客户id
* @param customerIdList
*/
public QuestionQuery customerIdList(List<Long> customerIdList){
this.customerIdList = customerIdList;
return this;
}
/**
* 设置 客户真实名称
* @param custName
*/
public QuestionQuery custName(String custName){
setCustName(custName);
return this;
}
/**
* 设置 客户真实名称
* @param custNameList
*/
public QuestionQuery custNameList(List<String> custNameList){
this.custNameList = custNameList;
return this;
}
/**
* 设置 单位名称
* @param organization
*/
public QuestionQuery organization(String organization){
setOrganization(organization);
return this;
}
/**
* 设置 单位名称
* @param organizationList
*/
public QuestionQuery organizationList(List<String> organizationList){
this.organizationList = organizationList;
return this;
}
/**
* 设置 联系电话
* @param contactTelphone
*/
public QuestionQuery contactTelphone(String contactTelphone){
setContactTelphone(contactTelphone);
return this;
}
/**
* 设置 联系电话
* @param contactTelphoneList
*/
public QuestionQuery contactTelphoneList(List<String> contactTelphoneList){
this.contactTelphoneList = contactTelphoneList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public QuestionQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public QuestionQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 设置 评价
* @param evaluate
*/
public QuestionQuery evaluate(Integer evaluate){
setEvaluate(evaluate);
return this;
}
/**
* 设置 开始 评价
* @param evaluateStart
*/
public QuestionQuery evaluateStart(Integer evaluateStart){
this.evaluateStart = evaluateStart;
return this;
}
/**
* 设置 结束 评价
* @param evaluateEnd
*/
public QuestionQuery evaluateEnd(Integer evaluateEnd){
this.evaluateEnd = evaluateEnd;
return this;
}
/**
* 设置 增加 评价
* @param evaluateIncrement
*/
public QuestionQuery evaluateIncrement(Integer evaluateIncrement){
this.evaluateIncrement = evaluateIncrement;
return this;
}
/**
* 设置 评价
* @param evaluateList
*/
public QuestionQuery evaluateList(List<Integer> evaluateList){
this.evaluateList = evaluateList;
return this;
}
/**
* 设置 问答次数
* @param sumQA
*/
public QuestionQuery sumQA(Integer sumQA){
setSumQA(sumQA);
return this;
}
/**
* 设置 开始 问答次数
* @param sumQAStart
*/
public QuestionQuery sumQAStart(Integer sumQAStart){
this.sumQAStart = sumQAStart;
return this;
}
/**
* 设置 结束 问答次数
* @param sumQAEnd
*/
public QuestionQuery sumQAEnd(Integer sumQAEnd){
this.sumQAEnd = sumQAEnd;
return this;
}
/**
* 设置 增加 问答次数
* @param sumQAIncrement
*/
public QuestionQuery sumQAIncrement(Integer sumQAIncrement){
this.sumQAIncrement = sumQAIncrement;
return this;
}
/**
* 设置 问答次数
* @param sumQAList
*/
public QuestionQuery sumQAList(List<Integer> sumQAList){
this.sumQAList = sumQAList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<QuestionQuery> 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<QuestionQuery> 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<QuestionQuery> 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<QuestionQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.model;
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.question.model.vo.QuestionRecordVo;
/**
* 问答记录信息实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class QuestionRecordEntity extends QuestionRecordVo {
private static final long serialVersionUID = 1L;
/**
* 用户ID,主键,自增长
*/
private Long questionId;
/**
* 记录类型1提问2答复
*/
private Integer recordType;
/**
* 内容
*/
private String content;
/**
* 创建用户名称
*/
private String createUserName;
public QuestionRecordEntity(){}
/**
* 获取 用户ID,主键,自增长
* @return Long
*/
public Long getQuestionId(){
return questionId;
}
/**
* 设置 用户ID,主键,自增长
* @param questionId
*/
public void setQuestionId(Long questionId){
this.questionId = questionId;
}
/**
* 获取 记录类型1提问2答复
* @return Integer
*/
public Integer getRecordType(){
return recordType;
}
/**
* 设置 记录类型1提问2答复
* @param recordType
*/
public void setRecordType(Integer recordType){
this.recordType = recordType;
}
/**
* 获取 内容
* @return String
*/
public String getContent(){
return content;
}
/**
* 设置 内容
* @param content
*/
public void setContent(String content){
this.content = content;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof QuestionRecordEntity) {
QuestionRecordEntity tmp = (QuestionRecordEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",questionId:").append(getQuestionId());
sb.append(",recordType:").append(getRecordType());
sb.append(",content:").append(getContent());
sb.append(",createUserName:").append(getCreateUserName());
return sb.toString();
}
public void initAttrValue(){
this.questionId = null;
this.recordType = null;
this.content = "";
this.createUserName = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.model;
import java.util.List;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
/**
* 问答记录信息查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class QuestionRecordQuery extends QuestionRecordEntity {
/** 开始 记录ID,主键,自增长 */
private Long idStart;
/** 结束 记录ID,主键,自增长 */
private Long idEnd;
/** 增加 记录ID,主键,自增长 */
private Long idIncrement;
/** 记录ID,主键,自增长列表 */
private List <Long> idList;
/** 开始 用户ID,主键,自增长 */
private Long questionIdStart;
/** 结束 用户ID,主键,自增长 */
private Long questionIdEnd;
/** 增加 用户ID,主键,自增长 */
private Long questionIdIncrement;
/** 用户ID,主键,自增长列表 */
private List <Long> questionIdList;
/** 开始 记录类型1提问2答复 */
private Integer recordTypeStart;
/** 结束 记录类型1提问2答复 */
private Integer recordTypeEnd;
/** 增加 记录类型1提问2答复 */
private Integer recordTypeIncrement;
/** 记录类型1提问2答复列表 */
private List <Integer> recordTypeList;
/** 内容 */
private List<String> contentList;
/** 开始 提交时间 */
private String createTimeStart;
/** 结束 提交时间 */
private String createTimeEnd;
/** 创建用户名称 */
private List<String> createUserNameList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<QuestionRecordQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<QuestionRecordQuery> andConditionList;
public QuestionRecordQuery(){}
/**
* 获取 开始 记录ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 记录ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 记录ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 记录ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 记录ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 记录ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 记录ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 记录ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 开始 用户ID,主键,自增长
* @return questionIdStart
*/
public Long getQuestionIdStart(){
return this.questionIdStart;
}
/**
* 设置 开始 用户ID,主键,自增长
* @param questionIdStart
*/
public void setQuestionIdStart(Long questionIdStart){
this.questionIdStart = questionIdStart;
}
/**
* 获取 结束 用户ID,主键,自增长
* @return $questionIdEnd
*/
public Long getQuestionIdEnd(){
return this.questionIdEnd;
}
/**
* 设置 结束 用户ID,主键,自增长
* @param questionIdEnd
*/
public void setQuestionIdEnd(Long questionIdEnd){
this.questionIdEnd = questionIdEnd;
}
/**
* 获取 增加 用户ID,主键,自增长
* @return questionIdIncrement
*/
public Long getQuestionIdIncrement(){
return this.questionIdIncrement;
}
/**
* 设置 增加 用户ID,主键,自增长
* @param questionIdIncrement
*/
public void setQuestionIdIncrement(Long questionIdIncrement){
this.questionIdIncrement = questionIdIncrement;
}
/**
* 获取 用户ID,主键,自增长
* @return questionIdList
*/
public List<Long> getQuestionIdList(){
return this.questionIdList;
}
/**
* 设置 用户ID,主键,自增长
* @param questionIdList
*/
public void setQuestionIdList(List<Long> questionIdList){
this.questionIdList = questionIdList;
}
/**
* 获取 开始 记录类型1提问2答复
* @return recordTypeStart
*/
public Integer getRecordTypeStart(){
return this.recordTypeStart;
}
/**
* 设置 开始 记录类型1提问2答复
* @param recordTypeStart
*/
public void setRecordTypeStart(Integer recordTypeStart){
this.recordTypeStart = recordTypeStart;
}
/**
* 获取 结束 记录类型1提问2答复
* @return $recordTypeEnd
*/
public Integer getRecordTypeEnd(){
return this.recordTypeEnd;
}
/**
* 设置 结束 记录类型1提问2答复
* @param recordTypeEnd
*/
public void setRecordTypeEnd(Integer recordTypeEnd){
this.recordTypeEnd = recordTypeEnd;
}
/**
* 获取 增加 记录类型1提问2答复
* @return recordTypeIncrement
*/
public Integer getRecordTypeIncrement(){
return this.recordTypeIncrement;
}
/**
* 设置 增加 记录类型1提问2答复
* @param recordTypeIncrement
*/
public void setRecordTypeIncrement(Integer recordTypeIncrement){
this.recordTypeIncrement = recordTypeIncrement;
}
/**
* 获取 记录类型1提问2答复
* @return recordTypeList
*/
public List<Integer> getRecordTypeList(){
return this.recordTypeList;
}
/**
* 设置 记录类型1提问2答复
* @param recordTypeList
*/
public void setRecordTypeList(List<Integer> recordTypeList){
this.recordTypeList = recordTypeList;
}
/**
* 获取 内容
* @return contentList
*/
public List<String> getContentList(){
return this.contentList;
}
/**
* 设置 内容
* @param contentList
*/
public void setContentList(List<String> contentList){
this.contentList = contentList;
}
/**
* 获取 开始 提交时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 提交时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 提交时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 提交时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 设置 记录ID,主键,自增长
* @param id
*/
public QuestionRecordQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 记录ID,主键,自增长
* @param idStart
*/
public QuestionRecordQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 记录ID,主键,自增长
* @param idEnd
*/
public QuestionRecordQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 记录ID,主键,自增长
* @param idIncrement
*/
public QuestionRecordQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 记录ID,主键,自增长
* @param idList
*/
public QuestionRecordQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 用户ID,主键,自增长
* @param questionId
*/
public QuestionRecordQuery questionId(Long questionId){
setQuestionId(questionId);
return this;
}
/**
* 设置 开始 用户ID,主键,自增长
* @param questionIdStart
*/
public QuestionRecordQuery questionIdStart(Long questionIdStart){
this.questionIdStart = questionIdStart;
return this;
}
/**
* 设置 结束 用户ID,主键,自增长
* @param questionIdEnd
*/
public QuestionRecordQuery questionIdEnd(Long questionIdEnd){
this.questionIdEnd = questionIdEnd;
return this;
}
/**
* 设置 增加 用户ID,主键,自增长
* @param questionIdIncrement
*/
public QuestionRecordQuery questionIdIncrement(Long questionIdIncrement){
this.questionIdIncrement = questionIdIncrement;
return this;
}
/**
* 设置 用户ID,主键,自增长
* @param questionIdList
*/
public QuestionRecordQuery questionIdList(List<Long> questionIdList){
this.questionIdList = questionIdList;
return this;
}
/**
* 设置 记录类型1提问2答复
* @param recordType
*/
public QuestionRecordQuery recordType(Integer recordType){
setRecordType(recordType);
return this;
}
/**
* 设置 开始 记录类型1提问2答复
* @param recordTypeStart
*/
public QuestionRecordQuery recordTypeStart(Integer recordTypeStart){
this.recordTypeStart = recordTypeStart;
return this;
}
/**
* 设置 结束 记录类型1提问2答复
* @param recordTypeEnd
*/
public QuestionRecordQuery recordTypeEnd(Integer recordTypeEnd){
this.recordTypeEnd = recordTypeEnd;
return this;
}
/**
* 设置 增加 记录类型1提问2答复
* @param recordTypeIncrement
*/
public QuestionRecordQuery recordTypeIncrement(Integer recordTypeIncrement){
this.recordTypeIncrement = recordTypeIncrement;
return this;
}
/**
* 设置 记录类型1提问2答复
* @param recordTypeList
*/
public QuestionRecordQuery recordTypeList(List<Integer> recordTypeList){
this.recordTypeList = recordTypeList;
return this;
}
/**
* 设置 内容
* @param content
*/
public QuestionRecordQuery content(String content){
setContent(content);
return this;
}
/**
* 设置 内容
* @param contentList
*/
public QuestionRecordQuery contentList(List<String> contentList){
this.contentList = contentList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public QuestionRecordQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public QuestionRecordQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<QuestionRecordQuery> 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<QuestionRecordQuery> 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<QuestionRecordQuery> 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<QuestionRecordQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.model;
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.question.model.vo.QuestionReplyVo;
/**
* 问答自动回复实体对象
*
* @author zxfei
* @date 2022-06-29
*/
public class QuestionReplyEntity extends QuestionReplyVo {
private static final long serialVersionUID = 1L;
/**
* 问题关键字
*/
private String keywords;
/**
* 回复内容
*/
private String replyContent;
/**
* 创建用户名称
*/
private String createUserName;
public QuestionReplyEntity(){}
/**
* 获取 问题关键字
* @return String
*/
public String getKeywords(){
return keywords;
}
/**
* 设置 问题关键字
* @param keywords
*/
public void setKeywords(String keywords){
this.keywords = keywords;
}
/**
* 获取 回复内容
* @return String
*/
public String getReplyContent(){
return replyContent;
}
/**
* 设置 回复内容
* @param replyContent
*/
public void setReplyContent(String replyContent){
this.replyContent = replyContent;
}
/**
* 获取 创建用户名称
* @return String
*/
public String getCreateUserName(){
return createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof QuestionReplyEntity) {
QuestionReplyEntity tmp = (QuestionReplyEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",keywords:").append(getKeywords());
sb.append(",replyContent:").append(getReplyContent());
sb.append(",createUserName:").append(getCreateUserName());
return sb.toString();
}
public void initAttrValue(){
this.keywords = "";
this.replyContent = "";
this.createUserName = "";
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.model;
import java.util.List;
import com.mortals.xhx.module.question.model.QuestionReplyEntity;
/**
* 问答自动回复查询对象
*
* @author zxfei
* @date 2022-06-29
*/
public class QuestionReplyQuery extends QuestionReplyEntity {
/** 开始 回复ID,主键,自增长 */
private Long idStart;
/** 结束 回复ID,主键,自增长 */
private Long idEnd;
/** 增加 回复ID,主键,自增长 */
private Long idIncrement;
/** 回复ID,主键,自增长列表 */
private List <Long> idList;
/** 问题关键字 */
private List<String> keywordsList;
/** 回复内容 */
private List<String> replyContentList;
/** 开始 提交时间 */
private String createTimeStart;
/** 结束 提交时间 */
private String createTimeEnd;
/** 创建用户名称 */
private List<String> createUserNameList;
/** OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4) */
private List<QuestionReplyQuery> orConditionList;
/** AND条件集合,列表项之间是AND,项内容之间是OR,如:(list[0].1 or list[0].2) and (list[1].3 or list[1].4) */
private List<QuestionReplyQuery> andConditionList;
public QuestionReplyQuery(){}
/**
* 获取 开始 回复ID,主键,自增长
* @return idStart
*/
public Long getIdStart(){
return this.idStart;
}
/**
* 设置 开始 回复ID,主键,自增长
* @param idStart
*/
public void setIdStart(Long idStart){
this.idStart = idStart;
}
/**
* 获取 结束 回复ID,主键,自增长
* @return $idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 设置 结束 回复ID,主键,自增长
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
/**
* 获取 增加 回复ID,主键,自增长
* @return idIncrement
*/
public Long getIdIncrement(){
return this.idIncrement;
}
/**
* 设置 增加 回复ID,主键,自增长
* @param idIncrement
*/
public void setIdIncrement(Long idIncrement){
this.idIncrement = idIncrement;
}
/**
* 获取 回复ID,主键,自增长
* @return idList
*/
public List<Long> getIdList(){
return this.idList;
}
/**
* 设置 回复ID,主键,自增长
* @param idList
*/
public void setIdList(List<Long> idList){
this.idList = idList;
}
/**
* 获取 问题关键字
* @return keywordsList
*/
public List<String> getKeywordsList(){
return this.keywordsList;
}
/**
* 设置 问题关键字
* @param keywordsList
*/
public void setKeywordsList(List<String> keywordsList){
this.keywordsList = keywordsList;
}
/**
* 获取 回复内容
* @return replyContentList
*/
public List<String> getReplyContentList(){
return this.replyContentList;
}
/**
* 设置 回复内容
* @param replyContentList
*/
public void setReplyContentList(List<String> replyContentList){
this.replyContentList = replyContentList;
}
/**
* 获取 开始 提交时间
* @return createTimeStart
*/
public String getCreateTimeStart(){
return this.createTimeStart;
}
/**
* 设置 开始 提交时间
* @param createTimeStart
*/
public void setCreateTimeStart(String createTimeStart){
this.createTimeStart = createTimeStart;
}
/**
* 获取 结束 提交时间
* @return createTimeEnd
*/
public String getCreateTimeEnd(){
return this.createTimeEnd;
}
/**
* 设置 结束 提交时间
* @param createTimeEnd
*/
public void setCreateTimeEnd(String createTimeEnd){
this.createTimeEnd = createTimeEnd;
}
/**
* 获取 创建用户名称
* @return createUserNameList
*/
public List<String> getCreateUserNameList(){
return this.createUserNameList;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public void setCreateUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
}
/**
* 设置 回复ID,主键,自增长
* @param id
*/
public QuestionReplyQuery id(Long id){
setId(id);
return this;
}
/**
* 设置 开始 回复ID,主键,自增长
* @param idStart
*/
public QuestionReplyQuery idStart(Long idStart){
this.idStart = idStart;
return this;
}
/**
* 设置 结束 回复ID,主键,自增长
* @param idEnd
*/
public QuestionReplyQuery idEnd(Long idEnd){
this.idEnd = idEnd;
return this;
}
/**
* 设置 增加 回复ID,主键,自增长
* @param idIncrement
*/
public QuestionReplyQuery idIncrement(Long idIncrement){
this.idIncrement = idIncrement;
return this;
}
/**
* 设置 回复ID,主键,自增长
* @param idList
*/
public QuestionReplyQuery idList(List<Long> idList){
this.idList = idList;
return this;
}
/**
* 设置 问题关键字
* @param keywords
*/
public QuestionReplyQuery keywords(String keywords){
setKeywords(keywords);
return this;
}
/**
* 设置 问题关键字
* @param keywordsList
*/
public QuestionReplyQuery keywordsList(List<String> keywordsList){
this.keywordsList = keywordsList;
return this;
}
/**
* 设置 回复内容
* @param replyContent
*/
public QuestionReplyQuery replyContent(String replyContent){
setReplyContent(replyContent);
return this;
}
/**
* 设置 回复内容
* @param replyContentList
*/
public QuestionReplyQuery replyContentList(List<String> replyContentList){
this.replyContentList = replyContentList;
return this;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public QuestionReplyQuery createUserName(String createUserName){
setCreateUserName(createUserName);
return this;
}
/**
* 设置 创建用户名称
* @param createUserNameList
*/
public QuestionReplyQuery createUserNameList(List<String> createUserNameList){
this.createUserNameList = createUserNameList;
return this;
}
/**
* 获取 OR条件集合,列表项之间是OR,项内容之间是AND,如:(list[0].1 and list[0].2) or (list[1].3 and list[1].4)
* @return orConditionList
*/
public List<QuestionReplyQuery> 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<QuestionReplyQuery> 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<QuestionReplyQuery> 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<QuestionReplyQuery> andConditionList){
this.andConditionList = andConditionList;
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 问答记录信息视图对象
*
* @author zxfei
* @date 2022-06-28
*/
@Data
public class QuestionRecordVo extends BaseEntityLong {
/**
* 客户id
*/
private Long customerId;
/**
* 客户真实名称
*/
private String custName;
/**
* 单位名称
*/
private String organization;
/**
* 联系电话
*/
private String contactTelphone;
}
\ No newline at end of file
package com.mortals.xhx.module.question.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.question.model.QuestionReplyEntity;
import java.util.ArrayList;
import java.util.List;
/**
* 问答自动回复视图对象
*
* @author zxfei
* @date 2022-06-29
*/
public class QuestionReplyVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.question.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import lombok.Data;
/**
* 问答信息视图对象
*
* @author zxfei
* @date 2022-06-28
*/
@Data
public class QuestionVo extends BaseEntityLong {
/** 查询条件 */
private String query;
/** 开始时间 */
private String startTime;
/** 结束时间 */
private String endTime;
/** 内容 */
private String content;
}
\ No newline at end of file
package com.mortals.xhx.module.question.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
/**
* QuestionRecordService
*
* 问答记录信息 service接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface QuestionRecordService extends ICRUDService<QuestionRecordEntity,Long>{
/**
* 咨询
* @param entity
* @param context
* @return
*/
QuestionRecordEntity ask(QuestionRecordEntity entity, Context context) throws AppException;
/**
* 回复
* @param entity
* @param context
* @return
*/
QuestionRecordEntity answer(QuestionRecordEntity entity, Context context) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.question.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.question.model.QuestionReplyEntity;
/**
* QuestionReplyService
*
* 问答自动回复 service接口
*
* @author zxfei
* @date 2022-06-29
*/
public interface QuestionReplyService extends ICRUDService<QuestionReplyEntity,Long>{
/**
* 自动返回问题回复
* @param content
* @return
*/
String autoReplyQuestion(String content);
}
\ No newline at end of file
package com.mortals.xhx.module.question.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.question.model.QuestionEntity;
/**
* QuestionService
*
* 问答信息 service接口
*
* @author zxfei
* @date 2022-06-28
*/
public interface QuestionService extends ICRUDService<QuestionEntity,Long>{
/**
* 问题评价
* @param entity
* @param context
* @return
* @throws AppException
*/
QuestionEntity evaluate(QuestionEntity entity, Context context) throws AppException;
}
\ No newline at end of file
package com.mortals.xhx.module.question.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.xhx.common.code.QuestionRecordType;
import com.mortals.xhx.common.code.QuestionStatusEnum;
import com.mortals.xhx.common.utils.StringUtils;
import com.mortals.xhx.module.question.model.QuestionEntity;
import com.mortals.xhx.module.question.service.QuestionReplyService;
import com.mortals.xhx.module.question.service.QuestionService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.question.dao.QuestionRecordDao;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
import com.mortals.xhx.module.question.service.QuestionRecordService;
import java.util.Date;
/**
* QuestionRecordService
* 问答记录信息 service实现
*
* @author zxfei
* @date 2022-06-28
*/
@Service("questionRecordService")
public class QuestionRecordServiceImpl extends AbstractCRUDServiceImpl<QuestionRecordDao, QuestionRecordEntity, Long> implements QuestionRecordService {
@Autowired
private QuestionService questionService;
@Autowired
private QuestionReplyService questionReplyService;
@Override
protected QuestionRecordEntity findBefore(QuestionRecordEntity params, PageInfo pageInfo, Context context) throws AppException {
pageInfo.setPrePageResult(-1);
return super.findBefore(params, pageInfo, context);
}
@Override
public QuestionRecordEntity ask(QuestionRecordEntity entity, Context context) throws AppException {
entity.setRecordType(QuestionRecordType.QUESTION.getValue());
entity.setCreateUserName(entity.getCustName());
entity.setCreateTime(new Date());
if(entity.getQuestionId()==null){
QuestionEntity newQuestion = new QuestionEntity();
newQuestion.initAttrValue();
newQuestion.setBeginTime(new Date());
newQuestion.setCustomerId(entity.getCustomerId());
newQuestion.setCustName(entity.getCustName());
newQuestion.setContactTelphone(entity.getContactTelphone());
newQuestion.setOrganization(entity.getOrganization());
newQuestion.setCreateUserName(entity.getCustName());
newQuestion.setStatus(QuestionStatusEnum.NOT_FINISHED.getValue());
newQuestion = questionService.save(newQuestion,context);
entity.setQuestionId(newQuestion.getId());
this.dao.insert(entity);
}else {
QuestionEntity question = questionService.get(entity.getQuestionId());
if(question==null){
throw new AppException("问答不存在,请从新发起咨询");
}
this.dao.insert(entity);
}
String replyContent = questionReplyService.autoReplyQuestion(entity.getContent());
if(StringUtils.isNotEmpty(replyContent)){
QuestionRecordEntity recordEntity = new QuestionRecordEntity();
recordEntity.setQuestionId(entity.getQuestionId());
recordEntity.setContent(replyContent);
recordEntity.setRecordType(QuestionRecordType.ANSWER.getValue());
recordEntity.setCreateUserName("系统回复");
recordEntity.setCreateTime(new Date());
this.dao.insert(recordEntity);
}
return entity;
}
@Override
public QuestionRecordEntity answer(QuestionRecordEntity entity, Context context) throws AppException {
QuestionEntity question = questionService.get(entity.getQuestionId());
if(question==null){
throw new AppException("问答不存在,请从新选择问题");
}
entity.setRecordType(QuestionRecordType.ANSWER.getValue());
entity.setCreateUserName(entity.getCustName());
entity.setCreateTime(new Date());
this.dao.insert(entity);
return entity;
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.service.impl;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.question.dao.QuestionReplyDao;
import com.mortals.xhx.module.question.model.QuestionReplyEntity;
import com.mortals.xhx.module.question.service.QuestionReplyService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* QuestionReplyService
* 问答自动回复 service实现
*
* @author zxfei
* @date 2022-06-29
*/
@Service("questionReplyService")
public class QuestionReplyServiceImpl extends AbstractCRUDServiceImpl<QuestionReplyDao, QuestionReplyEntity, Long> implements QuestionReplyService {
@Override
public String autoReplyQuestion(String content) {
List<QuestionReplyEntity> all = this.dao.getList(new QuestionReplyEntity());
for(QuestionReplyEntity questionReplyEntity:all){
String keyWords = questionReplyEntity.getKeywords();
for(String keyWord:keyWords.split(";")){
if(content.contains(keyWord)){
return questionReplyEntity.getReplyContent();
}
}
}
return null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.common.code.EvaluateLevelEnum;
import com.mortals.xhx.module.question.dao.QuestionDao;
import com.mortals.xhx.module.question.model.QuestionEntity;
import com.mortals.xhx.module.question.model.QuestionQuery;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
import com.mortals.xhx.module.question.service.QuestionRecordService;
import com.mortals.xhx.module.question.service.QuestionService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* QuestionService
* 问答信息 service实现
*
* @author zxfei
* @date 2022-06-28
*/
@Service("questionService")
public class QuestionServiceImpl extends AbstractCRUDServiceImpl<QuestionDao, QuestionEntity, Long> implements QuestionService {
@Autowired
private QuestionRecordService questionRecordService;
@Override
protected QuestionEntity findBefore(QuestionEntity entity, PageInfo pageInfo, Context context) throws AppException {
QuestionQuery query = new QuestionQuery();
BeanUtils.copyProperties(entity,query);
if(StringUtils.isNotEmpty(entity.getQuery())){
StringBuffer condition = new StringBuffer("%");
condition.append(entity.getQuery()).append("%");
QuestionQuery condition1 = new QuestionQuery();
QuestionQuery condition2 = new QuestionQuery();
condition1.setContactTelphone(condition.toString());
condition2.setCustName(condition.toString());
List<QuestionQuery> orConditionList = new ArrayList<>();
orConditionList.add(condition1);
orConditionList.add(condition2);
query.setOrConditionList(orConditionList);
}
if(StringUtils.isNotEmpty(entity.getStartTime())){
query.setBeginTimeStart(entity.getStartTime());
}
if(StringUtils.isNotEmpty(entity.getEndTime())){
query.setBeginTimeEnd(entity.getEndTime());
}
return query;
}
@Override
protected void findAfter(QuestionEntity params, PageInfo pageInfo, Context context, List<QuestionEntity> list) throws AppException {
if(CollectionUtils.isNotEmpty(list)){
list.stream().forEach(item->{
QuestionRecordEntity query = new QuestionRecordEntity();
query.setQuestionId(item.getId());
List<QuestionRecordEntity> recordEntities = questionRecordService.find(query);
item.setSumQA(CollectionUtils.isNotEmpty(list)?recordEntities.size():0);
});
}
}
@Override
public QuestionEntity evaluate(QuestionEntity entity, Context context) throws AppException {
if(entity.getId()==null){
throw new AppException("问答不存在,请从新选择");
}
QuestionEntity question = this.get(entity.getId());
if(question==null){
throw new AppException("问答不存在,请从新选择");
}
if(entity.getEvaluate()==null){
entity.setEvaluate(EvaluateLevelEnum.LEVEL_5.getValue());
}
QuestionEntity update = new QuestionEntity();
update.setId(entity.getId());
update.setEvaluate(entity.getEvaluate());
return this.update(entity,context);
}
}
\ No newline at end of file
package com.mortals.xhx.module.question.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.RepeatSubmit;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.IUser;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.EvaluateLevelEnum;
import com.mortals.xhx.common.code.QuestionStatusEnum;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.module.customer.model.CustomerEntity;
import com.mortals.xhx.module.question.model.QuestionEntity;
import com.mortals.xhx.module.question.service.QuestionService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
*
* 问答信息
*
* @author zxfei
* @date 2022-06-28
*/
@RestController
@RequestMapping("question")
public class QuestionController extends BaseCRUDJsonBodyMappingController<QuestionService,QuestionEntity,Long> {
public QuestionController(){
super.setModuleDesc( "问答信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "status", IBaseEnum.getEnumMap(QuestionStatusEnum.class));
this.addDict(model, "evaluate", IBaseEnum.getEnumMap(EvaluateLevelEnum.class));
super.init(model, context);
}
@PostMapping({"evaluate"})
public String evaluate(@RequestBody QuestionEntity entity){
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "新增咨询" + this.getModuleDesc();
int code = 1;
try {
if(this.getCurUser()==null||this.getCurUser().getUserType()!= Constant.CUSTOMER_USER){
throw new AppException("非法用户,不可访问");
}
entity = this.service.update(entity,context);
model.put("entity", entity);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
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
package com.mortals.xhx.module.question.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.IUser;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.common.code.QuestionRecordType;
import com.mortals.xhx.common.key.Constant;
import com.mortals.xhx.module.customer.model.CustomerEntity;
import com.mortals.xhx.module.customer.service.CustomerService;
import com.mortals.xhx.module.question.model.QuestionEntity;
import com.mortals.xhx.module.question.model.QuestionRecordEntity;
import com.mortals.xhx.module.question.service.QuestionRecordService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
*
* 问答记录信息
*
* @author zxfei
* @date 2022-06-28
*/
@RestController
@RequestMapping("question/record")
public class QuestionRecordController extends BaseCRUDJsonBodyMappingController<QuestionRecordService,QuestionRecordEntity,Long> {
@Autowired
private CustomerService customerService;
public QuestionRecordController(){
super.setModuleDesc( "问答记录信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "recordType", IBaseEnum.getEnumMap(QuestionRecordType.class));
super.init(model, context);
}
@PostMapping({"ask"})
public String ask(@RequestBody QuestionRecordEntity entity) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "新增咨询" + this.getModuleDesc();
int code = 1;
try {
if(this.getCurUser()==null||this.getCurUser().getUserType()!= Constant.CUSTOMER_USER){
throw new AppException("非法用户,不可访问");
}
CustomerEntity customerEntity = customerService.get(this.getCurUser().getId());
entity.setCustomerId(this.getCurUser().getId());
entity.setCustName(customerEntity.getCustName());
entity.setContactTelphone(customerEntity.getContactTelphone());
entity.setOrganization(customerEntity.getOrganization());
entity = this.service.ask(entity,context);
model.put("entity", entity);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
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();
}
@PostMapping({"answer"})
public String answer(@RequestBody QuestionRecordEntity entity) {
Map<String, Object> model = new HashMap();
Context context = this.getContext();
String busiDesc = "新增回复" + this.getModuleDesc();
int code = 1;
try {
if(this.getCurUser()==null){
throw new AppException("用户未登录或登录失效,请重新登录");
}
entity.setCustName(this.getCurUser().getRealName());
entity = this.service.answer(entity,context);
model.put("entity", entity);
model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】 [id:" + entity.getId() + "]");
} catch (Exception var7) {
this.doException(this.request, busiDesc, model, var7);
model.put("entity", entity);
this.init(model, context);
code = this.saveException(entity, model, context, var7);
}
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
package com.mortals.xhx.module.question.web;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.question.model.QuestionReplyEntity;
import com.mortals.xhx.module.question.service.QuestionReplyService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
*
* 问答自动回复
*
* @author zxfei
* @date 2022-06-29
*/
@RestController
@RequestMapping("question/reply")
public class QuestionReplyController extends BaseCRUDJsonBodyMappingController<QuestionReplyService,QuestionReplyEntity,Long> {
public QuestionReplyController(){
super.setModuleDesc( "问答自动回复");
}
@Override
protected void init(Map<String, Object> model, Context context) {
super.init(model, context);
}
}
\ No newline at end of file
......@@ -17,6 +17,7 @@
<result property="sex" column="sex" />
<result property="mailbox" column="mailbox" />
<result property="job" column="job" />
<result property="avatar" column="avatar" />
<result property="customerSrc" column="customerSrc" />
<result property="status" column="status" />
<result property="createUserId" column="createUserId" />
......@@ -67,6 +68,9 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('job') or colPickMode == 1 and data.containsKey('job')))">
a.job,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('avatar') or colPickMode == 1 and data.containsKey('avatar')))">
a.avatar,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('customerSrc') or colPickMode == 1 and data.containsKey('customerSrc')))">
a.customerSrc,
</if>
......@@ -93,18 +97,18 @@
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="CustomerEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_customer
(loginName,password,memberLevel,custName,organization,contactTelphone,enterpriseConsultant,siteId,sex,mailbox,job,customerSrc,status,createUserId,createTime,updateTime,lastLoginTime,lastLoginAddress)
(loginName,password,memberLevel,custName,organization,contactTelphone,enterpriseConsultant,siteId,sex,mailbox,job,avatar,customerSrc,status,createUserId,createTime,updateTime,lastLoginTime,lastLoginAddress)
VALUES
(#{loginName},#{password},#{memberLevel},#{custName},#{organization},#{contactTelphone},#{enterpriseConsultant},#{siteId},#{sex},#{mailbox},#{job},#{customerSrc},#{status},#{createUserId},#{createTime},#{updateTime},#{lastLoginTime},#{lastLoginAddress})
(#{loginName},#{password},#{memberLevel},#{custName},#{organization},#{contactTelphone},#{enterpriseConsultant},#{siteId},#{sex},#{mailbox},#{job},#{avatar},#{customerSrc},#{status},#{createUserId},#{createTime},#{updateTime},#{lastLoginTime},#{lastLoginAddress})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_customer
(loginName,password,memberLevel,custName,organization,contactTelphone,enterpriseConsultant,siteId,sex,mailbox,job,customerSrc,status,createUserId,createTime,updateTime,lastLoginTime,lastLoginAddress)
(loginName,password,memberLevel,custName,organization,contactTelphone,enterpriseConsultant,siteId,sex,mailbox,job,avatar,customerSrc,status,createUserId,createTime,updateTime,lastLoginTime,lastLoginAddress)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.loginName},#{item.password},#{item.memberLevel},#{item.custName},#{item.organization},#{item.contactTelphone},#{item.enterpriseConsultant},#{item.siteId},#{item.sex},#{item.mailbox},#{item.job},#{item.customerSrc},#{item.status},#{item.createUserId},#{item.createTime},#{item.updateTime},#{item.lastLoginTime},#{item.lastLoginAddress})
(#{item.loginName},#{item.password},#{item.memberLevel},#{item.custName},#{item.organization},#{item.contactTelphone},#{item.enterpriseConsultant},#{item.siteId},#{item.sex},#{item.mailbox},#{item.job},#{item.avatar},#{item.customerSrc},#{item.status},#{item.createUserId},#{item.createTime},#{item.updateTime},#{item.lastLoginTime},#{item.lastLoginAddress})
</foreach>
</insert>
......@@ -156,6 +160,9 @@
<if test="(colPickMode==0 and data.containsKey('job')) or (colPickMode==1 and !data.containsKey('job'))">
a.job=#{data.job},
</if>
<if test="(colPickMode==0 and data.containsKey('avatar')) or (colPickMode==1 and !data.containsKey('avatar'))">
a.avatar=#{data.avatar},
</if>
<if test="(colPickMode==0 and data.containsKey('customerSrc')) or (colPickMode==1 and !data.containsKey('customerSrc'))">
a.customerSrc=#{data.customerSrc},
</if>
......@@ -290,6 +297,13 @@
</if>
</foreach>
</trim>
<trim prefix="avatar=(case" suffix="ELSE avatar end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('avatar')) or (colPickMode==1 and !item.containsKey('avatar'))">
when a.id=#{item.id} then #{item.avatar}
</if>
</foreach>
</trim>
<trim prefix="customerSrc=(case" suffix="ELSE customerSrc end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
......@@ -659,6 +673,21 @@
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('avatar')">
<if test="conditionParamRef.avatar != null and conditionParamRef.avatar != ''">
${_conditionType_} a.avatar like #{${_conditionParam_}.avatar}
</if>
<if test="conditionParamRef.avatar == null">
${_conditionType_} a.avatar is null
</if>
</if>
<if test="conditionParamRef.containsKey('avatarList')">
${_conditionType_} a.avatar in
<foreach collection="conditionParamRef.avatarList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('customerSrc')">
<if test="conditionParamRef.customerSrc != null ">
${_conditionType_} a.customerSrc = #{${_conditionParam_}.customerSrc}
......@@ -855,6 +884,11 @@
<if test='orderCol.job != null and "DESC".equalsIgnoreCase(orderCol.job)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('avatar')">
a.avatar
<if test='orderCol.avatar != null and "DESC".equalsIgnoreCase(orderCol.avatar)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('customerSrc')">
a.customerSrc
<if test='orderCol.customerSrc != null and "DESC".equalsIgnoreCase(orderCol.customerSrc)'>DESC</if>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.customer.dao.ibatis.CustomerWorkDesignDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="CustomerWorkDesignEntity" id="CustomerWorkDesignEntity-Map">
<id property="id" column="id" />
<result property="customerId" column="customerId" />
<result property="createTime" column="createTime" />
<result property="workDesignName" column="workDesignName" />
<result property="workDesignStatus" column="workDesignStatus" />
<result property="workDesignDesc" column="workDesignDesc" />
<result property="createTime" column="createTime" />
<result property="updateTime" column="updateTime" />
<result property="pictureIds" column="pictureIds" />
<result property="pictureSrcIds" column="pictureSrcIds" />
<result property="pictureBackgroundIds" column="pictureBackgroundIds" />
<result property="fontIds" column="fontIds" />
<result property="previewUrl" column="previewUrl" />
</resultMap>
......@@ -29,9 +30,6 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('customerId') or colPickMode == 1 and data.containsKey('customerId')))">
a.customerId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('workDesignName') or colPickMode == 1 and data.containsKey('workDesignName')))">
a.workDesignName,
</if>
......@@ -41,6 +39,9 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('workDesignDesc') or colPickMode == 1 and data.containsKey('workDesignDesc')))">
a.workDesignDesc,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime,
</if>
......@@ -56,23 +57,26 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('fontIds') or colPickMode == 1 and data.containsKey('fontIds')))">
a.fontIds,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('previewUrl') or colPickMode == 1 and data.containsKey('previewUrl')))">
a.previewUrl,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="CustomerWorkDesignEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_customer_work_design
(customerId,createTime,workDesignName,workDesignStatus,workDesignDesc,updateTime,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds)
(customerId,workDesignName,workDesignStatus,workDesignDesc,createTime,updateTime,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds,previewUrl)
VALUES
(#{customerId},#{createTime},#{workDesignName},#{workDesignStatus},#{workDesignDesc},#{updateTime},#{pictureIds},#{pictureSrcIds},#{pictureBackgroundIds},#{fontIds})
(#{customerId},#{workDesignName},#{workDesignStatus},#{workDesignDesc},#{createTime},#{updateTime},#{pictureIds},#{pictureSrcIds},#{pictureBackgroundIds},#{fontIds},#{previewUrl})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_customer_work_design
(customerId,createTime,workDesignName,workDesignStatus,workDesignDesc,updateTime,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds)
(customerId,workDesignName,workDesignStatus,workDesignDesc,createTime,updateTime,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds,previewUrl)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.customerId},#{item.createTime},#{item.workDesignName},#{item.workDesignStatus},#{item.workDesignDesc},#{item.updateTime},#{item.pictureIds},#{item.pictureSrcIds},#{item.pictureBackgroundIds},#{item.fontIds})
(#{item.customerId},#{item.workDesignName},#{item.workDesignStatus},#{item.workDesignDesc},#{item.createTime},#{item.updateTime},#{item.pictureIds},#{item.pictureSrcIds},#{item.pictureBackgroundIds},#{item.fontIds},#{item.previewUrl})
</foreach>
</insert>
......@@ -88,9 +92,6 @@
<if test="(colPickMode==0 and data.containsKey('customerIdIncrement')) or (colPickMode==1 and !data.containsKey('customerIdIncrement'))">
a.customerId=ifnull(a.customerId,0) + #{data.customerIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('workDesignName')) or (colPickMode==1 and !data.containsKey('workDesignName'))">
a.workDesignName=#{data.workDesignName},
</if>
......@@ -103,6 +104,9 @@
<if test="(colPickMode==0 and data.containsKey('workDesignDesc')) or (colPickMode==1 and !data.containsKey('workDesignDesc'))">
a.workDesignDesc=#{data.workDesignDesc},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.updateTime=#{data.updateTime},
</if>
......@@ -118,6 +122,9 @@
<if test="(colPickMode==0 and data.containsKey('fontIds')) or (colPickMode==1 and !data.containsKey('fontIds'))">
a.fontIds=#{data.fontIds},
</if>
<if test="(colPickMode==0 and data.containsKey('previewUrl')) or (colPickMode==1 and !data.containsKey('previewUrl'))">
a.previewUrl=#{data.previewUrl},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
......@@ -142,13 +149,6 @@
</choose>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="workDesignName=(case" suffix="ELSE workDesignName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('workDesignName')) or (colPickMode==1 and !item.containsKey('workDesignName'))">
......@@ -175,6 +175,13 @@
</if>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="updateTime=(case" suffix="ELSE updateTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
......@@ -210,6 +217,13 @@
</if>
</foreach>
</trim>
<trim prefix="previewUrl=(case" suffix="ELSE previewUrl end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('previewUrl')) or (colPickMode==1 and !item.containsKey('previewUrl'))">
when a.id=#{item.id} then #{item.previewUrl}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
......@@ -354,21 +368,6 @@
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('workDesignName')">
<if test="conditionParamRef.workDesignName != null and conditionParamRef.workDesignName != ''">
${_conditionType_} a.workDesignName like #{${_conditionParam_}.workDesignName}
......@@ -420,6 +419,21 @@
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
......@@ -494,6 +508,21 @@
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('previewUrl')">
<if test="conditionParamRef.previewUrl != null and conditionParamRef.previewUrl != ''">
${_conditionType_} a.previewUrl like #{${_conditionParam_}.previewUrl}
</if>
<if test="conditionParamRef.previewUrl == null">
${_conditionType_} a.previewUrl is null
</if>
</if>
<if test="conditionParamRef.containsKey('previewUrlList')">
${_conditionType_} a.previewUrl in
<foreach collection="conditionParamRef.previewUrlList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
......@@ -517,11 +546,6 @@
<if test='orderCol.customerId != null and "DESC".equalsIgnoreCase(orderCol.customerId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('workDesignName')">
a.workDesignName
<if test='orderCol.workDesignName != null and "DESC".equalsIgnoreCase(orderCol.workDesignName)'>DESC</if>
......@@ -537,6 +561,11 @@
<if test='orderCol.workDesignDesc != null and "DESC".equalsIgnoreCase(orderCol.workDesignDesc)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.updateTime
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
......@@ -562,6 +591,11 @@
<if test='orderCol.fontIds != null and "DESC".equalsIgnoreCase(orderCol.fontIds)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('previewUrl')">
a.previewUrl
<if test='orderCol.previewUrl != null and "DESC".equalsIgnoreCase(orderCol.previewUrl)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"mybatis-3-mapper.dtd">
"mybatis-3-mapper.dtd">
<mapper namespace="com.mortals.xhx.module.design.dao.ibatis.DesignMasterplateDaoImpl">
<!-- 字段和属性映射 -->
......@@ -13,11 +13,12 @@
<result property="createTime" column="createTime" />
<result property="masterplateDesc" column="masterplateDesc" />
<result property="masterplatePath" column="masterplatePath" />
<result property="masterplateUseNum" column="masterplateUseNum" />
<result property="pictureIds" column="pictureIds" />
<result property="pictureSrcIds" column="pictureSrcIds" />
<result property="pictureBackgroundIds" column="pictureBackgroundIds" />
<result property="fontIds" column="fontIds" />
<result property="masterplateUseNum" column="masterplateUseNum" />
<result property="previewUrl" column="previewUrl" />
</resultMap>
......@@ -49,9 +50,6 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('masterplatePath') or colPickMode == 1 and data.containsKey('masterplatePath')))">
a.masterplatePath,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('masterplateUseNum') or colPickMode == 1 and data.containsKey('masterplateUseNum')))">
a.masterplateUseNum,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('pictureIds') or colPickMode == 1 and data.containsKey('pictureIds')))">
a.pictureIds,
</if>
......@@ -64,23 +62,29 @@
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('fontIds') or colPickMode == 1 and data.containsKey('fontIds')))">
a.fontIds,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('masterplateUseNum') or colPickMode == 1 and data.containsKey('masterplateUseNum')))">
a.masterplateUseNum,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('previewUrl') or colPickMode == 1 and data.containsKey('previewUrl')))">
a.previewUrl,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="DesignMasterplateEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_design_masterplate
(masterplateName,masterplateCode,customerId,customerName,createTime,masterplateDesc,masterplatePath,masterplateUseNum,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds)
(masterplateName,masterplateCode,customerId,customerName,createTime,masterplateDesc,masterplatePath,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds,masterplateUseNum,previewUrl)
VALUES
(#{masterplateName},#{masterplateCode},#{customerId},#{customerName},#{createTime},#{masterplateDesc},#{masterplatePath},#{masterplateUseNum},#{pictureIds},#{pictureSrcIds},#{pictureBackgroundIds},#{fontIds})
(#{masterplateName},#{masterplateCode},#{customerId},#{customerName},#{createTime},#{masterplateDesc},#{masterplatePath},#{pictureIds},#{pictureSrcIds},#{pictureBackgroundIds},#{fontIds},#{masterplateUseNum},#{previewUrl})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_design_masterplate
(masterplateName,masterplateCode,customerId,customerName,createTime,masterplateDesc,masterplatePath,masterplateUseNum,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds)
(masterplateName,masterplateCode,customerId,customerName,createTime,masterplateDesc,masterplatePath,pictureIds,pictureSrcIds,pictureBackgroundIds,fontIds,masterplateUseNum,previewUrl)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.masterplateName},#{item.masterplateCode},#{item.customerId},#{item.customerName},#{item.createTime},#{item.masterplateDesc},#{item.masterplatePath},#{item.masterplateUseNum},#{item.pictureIds},#{item.pictureSrcIds},#{item.pictureBackgroundIds},#{item.fontIds})
(#{item.masterplateName},#{item.masterplateCode},#{item.customerId},#{item.customerName},#{item.createTime},#{item.masterplateDesc},#{item.masterplatePath},#{item.pictureIds},#{item.pictureSrcIds},#{item.pictureBackgroundIds},#{item.fontIds},#{item.masterplateUseNum},#{item.previewUrl})
</foreach>
</insert>
......@@ -117,12 +121,6 @@
<if test="(colPickMode==0 and data.containsKey('masterplatePath')) or (colPickMode==1 and !data.containsKey('masterplatePath'))">
a.masterplatePath=#{data.masterplatePath},
</if>
<if test="(colPickMode==0 and data.containsKey('masterplateUseNum')) or (colPickMode==1 and !data.containsKey('masterplateUseNum'))">
a.masterplateUseNum=#{data.masterplateUseNum},
</if>
<if test="(colPickMode==0 and data.containsKey('masterplateUseNumIncrement')) or (colPickMode==1 and !data.containsKey('masterplateUseNumIncrement'))">
a.masterplateUseNum=ifnull(a.masterplateUseNum,0) + #{data.masterplateUseNumIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('pictureIds')) or (colPickMode==1 and !data.containsKey('pictureIds'))">
a.pictureIds=#{data.pictureIds},
</if>
......@@ -135,6 +133,15 @@
<if test="(colPickMode==0 and data.containsKey('fontIds')) or (colPickMode==1 and !data.containsKey('fontIds'))">
a.fontIds=#{data.fontIds},
</if>
<if test="(colPickMode==0 and data.containsKey('masterplateUseNum')) or (colPickMode==1 and !data.containsKey('masterplateUseNum'))">
a.masterplateUseNum=#{data.masterplateUseNum},
</if>
<if test="(colPickMode==0 and data.containsKey('masterplateUseNumIncrement')) or (colPickMode==1 and !data.containsKey('masterplateUseNumIncrement'))">
a.masterplateUseNum=ifnull(a.masterplateUseNum,0) + #{data.masterplateUseNumIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('previewUrl')) or (colPickMode==1 and !data.containsKey('previewUrl'))">
a.previewUrl=#{data.previewUrl},
</if>
</trim>
<trim suffixOverrides="where" suffix="">
where
......@@ -206,18 +213,6 @@
</if>
</foreach>
</trim>
<trim prefix="masterplateUseNum=(case" suffix="ELSE masterplateUseNum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('masterplateUseNum')) or (colPickMode==1 and !item.containsKey('masterplateUseNum'))">
when a.id=#{item.id} then #{item.masterplateUseNum}
</when>
<when test="(colPickMode==0 and item.containsKey('masterplateUseNumIncrement')) or (colPickMode==1 and !item.containsKey('masterplateUseNumIncrement'))">
when a.id=#{item.id} then ifnull(a.masterplateUseNum,0) + #{item.masterplateUseNumIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="pictureIds=(case" suffix="ELSE pictureIds end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('pictureIds')) or (colPickMode==1 and !item.containsKey('pictureIds'))">
......@@ -246,6 +241,25 @@
</if>
</foreach>
</trim>
<trim prefix="masterplateUseNum=(case" suffix="ELSE masterplateUseNum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('masterplateUseNum')) or (colPickMode==1 and !item.containsKey('masterplateUseNum'))">
when a.id=#{item.id} then #{item.masterplateUseNum}
</when>
<when test="(colPickMode==0 and item.containsKey('masterplateUseNumIncrement')) or (colPickMode==1 and !item.containsKey('masterplateUseNumIncrement'))">
when a.id=#{item.id} then ifnull(a.masterplateUseNum,0) + #{item.masterplateUseNumIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="previewUrl=(case" suffix="ELSE previewUrl end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('previewUrl')) or (colPickMode==1 and !item.containsKey('previewUrl'))">
when a.id=#{item.id} then #{item.previewUrl}
</if>
</foreach>
</trim>
</trim>
where id in
<foreach collection="data.dataList" item="item" index="index" open="(" separator="," close=")">
......@@ -485,27 +499,6 @@
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('masterplateUseNum')">
<if test="conditionParamRef.masterplateUseNum != null ">
${_conditionType_} a.masterplateUseNum = #{${_conditionParam_}.masterplateUseNum}
</if>
<if test="conditionParamRef.masterplateUseNum == null">
${_conditionType_} a.masterplateUseNum is null
</if>
</if>
<if test="conditionParamRef.containsKey('masterplateUseNumList')">
${_conditionType_} a.masterplateUseNum in
<foreach collection="conditionParamRef.masterplateUseNumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('masterplateUseNumStart') and conditionParamRef.masterplateUseNumStart != null">
${_conditionType_} a.masterplateUseNum <![CDATA[ >= ]]> #{${_conditionParam_}.masterplateUseNumStart}
</if>
<if test="conditionParamRef.containsKey('masterplateUseNumEnd') and conditionParamRef.masterplateUseNumEnd != null">
${_conditionType_} a.masterplateUseNum <![CDATA[ <= ]]> #{${_conditionParam_}.masterplateUseNumEnd}
</if>
<if test="conditionParamRef.containsKey('pictureIds')">
<if test="conditionParamRef.pictureIds != null and conditionParamRef.pictureIds != ''">
......@@ -566,6 +559,42 @@
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('masterplateUseNum')">
<if test="conditionParamRef.masterplateUseNum != null ">
${_conditionType_} a.masterplateUseNum = #{${_conditionParam_}.masterplateUseNum}
</if>
<if test="conditionParamRef.masterplateUseNum == null">
${_conditionType_} a.masterplateUseNum is null
</if>
</if>
<if test="conditionParamRef.containsKey('masterplateUseNumList')">
${_conditionType_} a.masterplateUseNum in
<foreach collection="conditionParamRef.masterplateUseNumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('masterplateUseNumStart') and conditionParamRef.masterplateUseNumStart != null">
${_conditionType_} a.masterplateUseNum <![CDATA[ >= ]]> #{${_conditionParam_}.masterplateUseNumStart}
</if>
<if test="conditionParamRef.containsKey('masterplateUseNumEnd') and conditionParamRef.masterplateUseNumEnd != null">
${_conditionType_} a.masterplateUseNum <![CDATA[ <= ]]> #{${_conditionParam_}.masterplateUseNumEnd}
</if>
<if test="conditionParamRef.containsKey('previewUrl')">
<if test="conditionParamRef.previewUrl != null and conditionParamRef.previewUrl != ''">
${_conditionType_} a.previewUrl like #{${_conditionParam_}.previewUrl}
</if>
<if test="conditionParamRef.previewUrl == null">
${_conditionType_} a.previewUrl is null
</if>
</if>
<if test="conditionParamRef.containsKey('previewUrlList')">
${_conditionType_} a.previewUrl in
<foreach collection="conditionParamRef.previewUrlList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
</sql>
<sql id="_orderCols_">
<if test="orderColList != null and !orderColList.isEmpty()">
......@@ -619,11 +648,6 @@
<if test='orderCol.masterplatePath != null and "DESC".equalsIgnoreCase(orderCol.masterplatePath)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('masterplateUseNum')">
a.masterplateUseNum
<if test='orderCol.masterplateUseNum != null and "DESC".equalsIgnoreCase(orderCol.masterplateUseNum)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('pictureIds')">
a.pictureIds
<if test='orderCol.pictureIds != null and "DESC".equalsIgnoreCase(orderCol.pictureIds)'>DESC</if>
......@@ -644,6 +668,16 @@
<if test='orderCol.fontIds != null and "DESC".equalsIgnoreCase(orderCol.fontIds)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('masterplateUseNum')">
a.masterplateUseNum
<if test='orderCol.masterplateUseNum != null and "DESC".equalsIgnoreCase(orderCol.masterplateUseNum)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('previewUrl')">
a.previewUrl
<if test='orderCol.previewUrl != null and "DESC".equalsIgnoreCase(orderCol.previewUrl)'>DESC</if>
,
</if>
</trim>
</if>
</sql>
......
<?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.help.dao.ibatis.HelpEvaluateDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="HelpEvaluateEntity" id="HelpEvaluateEntity-Map">
<id property="id" column="id" />
<result property="helpId" column="helpId" />
<result property="customerId" column="customerId" />
<result property="custName" column="custName" />
<result property="organization" column="organization" />
<result property="contactTelphone" column="contactTelphone" />
<result property="evaluateType" column="evaluateType" />
<result property="evaluateTime" column="evaluateTime" />
</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('helpId') or colPickMode == 1 and data.containsKey('helpId')))">
a.helpId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('customerId') or colPickMode == 1 and data.containsKey('customerId')))">
a.customerId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('custName') or colPickMode == 1 and data.containsKey('custName')))">
a.custName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('organization') or colPickMode == 1 and data.containsKey('organization')))">
a.organization,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('contactTelphone') or colPickMode == 1 and data.containsKey('contactTelphone')))">
a.contactTelphone,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('evaluateType') or colPickMode == 1 and data.containsKey('evaluateType')))">
a.evaluateType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('evaluateTime') or colPickMode == 1 and data.containsKey('evaluateTime')))">
a.evaluateTime,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="HelpEvaluateEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_help_evaluate
(helpId,customerId,custName,organization,contactTelphone,evaluateType,evaluateTime)
VALUES
(#{helpId},#{customerId},#{custName},#{organization},#{contactTelphone},#{evaluateType},#{evaluateTime})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_help_evaluate
(helpId,customerId,custName,organization,contactTelphone,evaluateType,evaluateTime)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.helpId},#{item.customerId},#{item.custName},#{item.organization},#{item.contactTelphone},#{item.evaluateType},#{item.evaluateTime})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_help_evaluate as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('helpId')) or (colPickMode==1 and !data.containsKey('helpId'))">
a.helpId=#{data.helpId},
</if>
<if test="(colPickMode==0 and data.containsKey('helpIdIncrement')) or (colPickMode==1 and !data.containsKey('helpIdIncrement'))">
a.helpId=ifnull(a.helpId,0) + #{data.helpIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('customerId')) or (colPickMode==1 and !data.containsKey('customerId'))">
a.customerId=#{data.customerId},
</if>
<if test="(colPickMode==0 and data.containsKey('customerIdIncrement')) or (colPickMode==1 and !data.containsKey('customerIdIncrement'))">
a.customerId=ifnull(a.customerId,0) + #{data.customerIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('custName')) or (colPickMode==1 and !data.containsKey('custName'))">
a.custName=#{data.custName},
</if>
<if test="(colPickMode==0 and data.containsKey('organization')) or (colPickMode==1 and !data.containsKey('organization'))">
a.organization=#{data.organization},
</if>
<if test="(colPickMode==0 and data.containsKey('contactTelphone')) or (colPickMode==1 and !data.containsKey('contactTelphone'))">
a.contactTelphone=#{data.contactTelphone},
</if>
<if test="(colPickMode==0 and data.containsKey('evaluateType')) or (colPickMode==1 and !data.containsKey('evaluateType'))">
a.evaluateType=#{data.evaluateType},
</if>
<if test="(colPickMode==0 and data.containsKey('evaluateTypeIncrement')) or (colPickMode==1 and !data.containsKey('evaluateTypeIncrement'))">
a.evaluateType=ifnull(a.evaluateType,0) + #{data.evaluateTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('evaluateTime')) or (colPickMode==1 and !data.containsKey('evaluateTime'))">
a.evaluateTime=#{data.evaluateTime},
</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_help_evaluate as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="helpId=(case" suffix="ELSE helpId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('helpId')) or (colPickMode==1 and !item.containsKey('helpId'))">
when a.id=#{item.id} then #{item.helpId}
</when>
<when test="(colPickMode==0 and item.containsKey('helpIdIncrement')) or (colPickMode==1 and !item.containsKey('helpIdIncrement'))">
when a.id=#{item.id} then ifnull(a.helpId,0) + #{item.helpIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="customerId=(case" suffix="ELSE customerId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('customerId')) or (colPickMode==1 and !item.containsKey('customerId'))">
when a.id=#{item.id} then #{item.customerId}
</when>
<when test="(colPickMode==0 and item.containsKey('customerIdIncrement')) or (colPickMode==1 and !item.containsKey('customerIdIncrement'))">
when a.id=#{item.id} then ifnull(a.customerId,0) + #{item.customerIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="custName=(case" suffix="ELSE custName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('custName')) or (colPickMode==1 and !item.containsKey('custName'))">
when a.id=#{item.id} then #{item.custName}
</if>
</foreach>
</trim>
<trim prefix="organization=(case" suffix="ELSE organization end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('organization')) or (colPickMode==1 and !item.containsKey('organization'))">
when a.id=#{item.id} then #{item.organization}
</if>
</foreach>
</trim>
<trim prefix="contactTelphone=(case" suffix="ELSE contactTelphone end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('contactTelphone')) or (colPickMode==1 and !item.containsKey('contactTelphone'))">
when a.id=#{item.id} then #{item.contactTelphone}
</if>
</foreach>
</trim>
<trim prefix="evaluateType=(case" suffix="ELSE evaluateType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('evaluateType')) or (colPickMode==1 and !item.containsKey('evaluateType'))">
when a.id=#{item.id} then #{item.evaluateType}
</when>
<when test="(colPickMode==0 and item.containsKey('evaluateTypeIncrement')) or (colPickMode==1 and !item.containsKey('evaluateTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.evaluateType,0) + #{item.evaluateTypeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="evaluateTime=(case" suffix="ELSE evaluateTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('evaluateTime')) or (colPickMode==1 and !item.containsKey('evaluateTime'))">
when a.id=#{item.id} then #{item.evaluateTime}
</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="HelpEvaluateEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_help_evaluate as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_help_evaluate as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_help_evaluate where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_help_evaluate as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="HelpEvaluateEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_help_evaluate 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_help_evaluate 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('helpId')">
<if test="conditionParamRef.helpId != null ">
${_conditionType_} a.helpId = #{${_conditionParam_}.helpId}
</if>
<if test="conditionParamRef.helpId == null">
${_conditionType_} a.helpId is null
</if>
</if>
<if test="conditionParamRef.containsKey('helpIdList')">
${_conditionType_} a.helpId in
<foreach collection="conditionParamRef.helpIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('helpIdStart') and conditionParamRef.helpIdStart != null">
${_conditionType_} a.helpId <![CDATA[ >= ]]> #{${_conditionParam_}.helpIdStart}
</if>
<if test="conditionParamRef.containsKey('helpIdEnd') and conditionParamRef.helpIdEnd != null">
${_conditionType_} a.helpId <![CDATA[ <= ]]> #{${_conditionParam_}.helpIdEnd}
</if>
<if test="conditionParamRef.containsKey('customerId')">
<if test="conditionParamRef.customerId != null ">
${_conditionType_} a.customerId = #{${_conditionParam_}.customerId}
</if>
<if test="conditionParamRef.customerId == null">
${_conditionType_} a.customerId is null
</if>
</if>
<if test="conditionParamRef.containsKey('customerIdList')">
${_conditionType_} a.customerId in
<foreach collection="conditionParamRef.customerIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('customerIdStart') and conditionParamRef.customerIdStart != null">
${_conditionType_} a.customerId <![CDATA[ >= ]]> #{${_conditionParam_}.customerIdStart}
</if>
<if test="conditionParamRef.containsKey('customerIdEnd') and conditionParamRef.customerIdEnd != null">
${_conditionType_} a.customerId <![CDATA[ <= ]]> #{${_conditionParam_}.customerIdEnd}
</if>
<if test="conditionParamRef.containsKey('custName')">
<if test="conditionParamRef.custName != null and conditionParamRef.custName != ''">
${_conditionType_} a.custName like #{${_conditionParam_}.custName}
</if>
<if test="conditionParamRef.custName == null">
${_conditionType_} a.custName is null
</if>
</if>
<if test="conditionParamRef.containsKey('custNameList')">
${_conditionType_} a.custName in
<foreach collection="conditionParamRef.custNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('organization')">
<if test="conditionParamRef.organization != null and conditionParamRef.organization != ''">
${_conditionType_} a.organization like #{${_conditionParam_}.organization}
</if>
<if test="conditionParamRef.organization == null">
${_conditionType_} a.organization is null
</if>
</if>
<if test="conditionParamRef.containsKey('organizationList')">
${_conditionType_} a.organization in
<foreach collection="conditionParamRef.organizationList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('contactTelphone')">
<if test="conditionParamRef.contactTelphone != null and conditionParamRef.contactTelphone != ''">
${_conditionType_} a.contactTelphone like #{${_conditionParam_}.contactTelphone}
</if>
<if test="conditionParamRef.contactTelphone == null">
${_conditionType_} a.contactTelphone is null
</if>
</if>
<if test="conditionParamRef.containsKey('contactTelphoneList')">
${_conditionType_} a.contactTelphone in
<foreach collection="conditionParamRef.contactTelphoneList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('evaluateType')">
<if test="conditionParamRef.evaluateType != null ">
${_conditionType_} a.evaluateType = #{${_conditionParam_}.evaluateType}
</if>
<if test="conditionParamRef.evaluateType == null">
${_conditionType_} a.evaluateType is null
</if>
</if>
<if test="conditionParamRef.containsKey('evaluateTypeList')">
${_conditionType_} a.evaluateType in
<foreach collection="conditionParamRef.evaluateTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('evaluateTypeStart') and conditionParamRef.evaluateTypeStart != null">
${_conditionType_} a.evaluateType <![CDATA[ >= ]]> #{${_conditionParam_}.evaluateTypeStart}
</if>
<if test="conditionParamRef.containsKey('evaluateTypeEnd') and conditionParamRef.evaluateTypeEnd != null">
${_conditionType_} a.evaluateType <![CDATA[ <= ]]> #{${_conditionParam_}.evaluateTypeEnd}
</if>
<if test="conditionParamRef.containsKey('evaluateTime')">
<if test="conditionParamRef.evaluateTime != null ">
${_conditionType_} a.evaluateTime = #{${_conditionParam_}.evaluateTime}
</if>
<if test="conditionParamRef.evaluateTime == null">
${_conditionType_} a.evaluateTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('evaluateTimeStart') and conditionParamRef.evaluateTimeStart != null and conditionParamRef.evaluateTimeStart!=''">
${_conditionType_} a.evaluateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.evaluateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('evaluateTimeEnd') and conditionParamRef.evaluateTimeEnd != null and conditionParamRef.evaluateTimeEnd!=''">
${_conditionType_} a.evaluateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.evaluateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</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('helpId')">
a.helpId
<if test='orderCol.helpId != null and "DESC".equalsIgnoreCase(orderCol.helpId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('customerId')">
a.customerId
<if test='orderCol.customerId != null and "DESC".equalsIgnoreCase(orderCol.customerId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('custName')">
a.custName
<if test='orderCol.custName != null and "DESC".equalsIgnoreCase(orderCol.custName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('organization')">
a.organization
<if test='orderCol.organization != null and "DESC".equalsIgnoreCase(orderCol.organization)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('contactTelphone')">
a.contactTelphone
<if test='orderCol.contactTelphone != null and "DESC".equalsIgnoreCase(orderCol.contactTelphone)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('evaluateType')">
a.evaluateType
<if test='orderCol.evaluateType != null and "DESC".equalsIgnoreCase(orderCol.evaluateType)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('evaluateTime')">
a.evaluateTime
<if test='orderCol.evaluateTime != null and "DESC".equalsIgnoreCase(orderCol.evaluateTime)'>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.help.dao.ibatis.HelpDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="HelpEntity" id="HelpEntity-Map">
<id property="id" column="id" />
<result property="sortNum" column="sortNum" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="answerContent" column="answerContent" />
<result property="questionType" column="questionType" />
<result property="status" column="status" />
<result property="useful" column="useful" />
<result property="useless" column="useless" />
<result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" />
<result property="createUserName" column="createUserName" />
<result property="updateTime" column="updateTime" />
<result property="updateUserId" column="updateUserId" />
<result property="updateUserName" column="updateUserName" />
</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('sortNum') or colPickMode == 1 and data.containsKey('sortNum')))">
a.sortNum,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('title') or colPickMode == 1 and data.containsKey('title')))">
a.title,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))">
a.content,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('answerContent') or colPickMode == 1 and data.containsKey('answerContent')))">
a.answerContent,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('questionType') or colPickMode == 1 and data.containsKey('questionType')))">
a.questionType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('status') or colPickMode == 1 and data.containsKey('status')))">
a.status,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('useful') or colPickMode == 1 and data.containsKey('useful')))">
a.useful,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('useless') or colPickMode == 1 and data.containsKey('useless')))">
a.useless,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
a.createUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateTime') or colPickMode == 1 and data.containsKey('updateTime')))">
a.updateTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserId') or colPickMode == 1 and data.containsKey('updateUserId')))">
a.updateUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('updateUserName') or colPickMode == 1 and data.containsKey('updateUserName')))">
a.updateUserName,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="HelpEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_help
(sortNum,title,content,answerContent,questionType,status,useful,useless,createTime,createUserId,createUserName,updateTime,updateUserId,updateUserName)
VALUES
(#{sortNum},#{title},#{content},#{answerContent},#{questionType},#{status},#{useful},#{useless},#{createTime},#{createUserId},#{createUserName},#{updateTime},#{updateUserId},#{updateUserName})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_help
(sortNum,title,content,answerContent,questionType,status,useful,useless,createTime,createUserId,createUserName,updateTime,updateUserId,updateUserName)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.sortNum},#{item.title},#{item.content},#{item.answerContent},#{item.questionType},#{item.status},#{item.useful},#{item.useless},#{item.createTime},#{item.createUserId},#{item.createUserName},#{item.updateTime},#{item.updateUserId},#{item.updateUserName})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_help as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('sortNum')) or (colPickMode==1 and !data.containsKey('sortNum'))">
a.sortNum=#{data.sortNum},
</if>
<if test="(colPickMode==0 and data.containsKey('sortNumIncrement')) or (colPickMode==1 and !data.containsKey('sortNumIncrement'))">
a.sortNum=ifnull(a.sortNum,0) + #{data.sortNumIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('title')) or (colPickMode==1 and !data.containsKey('title'))">
a.title=#{data.title},
</if>
<if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
a.content=#{data.content},
</if>
<if test="(colPickMode==0 and data.containsKey('answerContent')) or (colPickMode==1 and !data.containsKey('answerContent'))">
a.answerContent=#{data.answerContent},
</if>
<if test="(colPickMode==0 and data.containsKey('questionType')) or (colPickMode==1 and !data.containsKey('questionType'))">
a.questionType=#{data.questionType},
</if>
<if test="(colPickMode==0 and data.containsKey('questionTypeIncrement')) or (colPickMode==1 and !data.containsKey('questionTypeIncrement'))">
a.questionType=ifnull(a.questionType,0) + #{data.questionTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('status')) or (colPickMode==1 and !data.containsKey('status'))">
a.status=#{data.status},
</if>
<if test="(colPickMode==0 and data.containsKey('statusIncrement')) or (colPickMode==1 and !data.containsKey('statusIncrement'))">
a.status=ifnull(a.status,0) + #{data.statusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('useful')) or (colPickMode==1 and !data.containsKey('useful'))">
a.useful=#{data.useful},
</if>
<if test="(colPickMode==0 and data.containsKey('usefulIncrement')) or (colPickMode==1 and !data.containsKey('usefulIncrement'))">
a.useful=ifnull(a.useful,0) + #{data.usefulIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('useless')) or (colPickMode==1 and !data.containsKey('useless'))">
a.useless=#{data.useless},
</if>
<if test="(colPickMode==0 and data.containsKey('uselessIncrement')) or (colPickMode==1 and !data.containsKey('uselessIncrement'))">
a.useless=ifnull(a.useless,0) + #{data.uselessIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
a.createUserId=#{data.createUserId},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</if>
<if test="(colPickMode==0 and data.containsKey('updateTime')) or (colPickMode==1 and !data.containsKey('updateTime'))">
a.updateTime=#{data.updateTime},
</if>
<if test="(colPickMode==0 and data.containsKey('updateUserId')) or (colPickMode==1 and !data.containsKey('updateUserId'))">
a.updateUserId=#{data.updateUserId},
</if>
<if test="(colPickMode==0 and data.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !data.containsKey('updateUserIdIncrement'))">
a.updateUserId=ifnull(a.updateUserId,0) + #{data.updateUserIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('updateUserName')) or (colPickMode==1 and !data.containsKey('updateUserName'))">
a.updateUserName=#{data.updateUserName},
</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_help as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="sortNum=(case" suffix="ELSE sortNum end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sortNum')) or (colPickMode==1 and !item.containsKey('sortNum'))">
when a.id=#{item.id} then #{item.sortNum}
</when>
<when test="(colPickMode==0 and item.containsKey('sortNumIncrement')) or (colPickMode==1 and !item.containsKey('sortNumIncrement'))">
when a.id=#{item.id} then ifnull(a.sortNum,0) + #{item.sortNumIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="title=(case" suffix="ELSE title end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('title')) or (colPickMode==1 and !item.containsKey('title'))">
when a.id=#{item.id} then #{item.title}
</if>
</foreach>
</trim>
<trim prefix="content=(case" suffix="ELSE content end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
when a.id=#{item.id} then #{item.content}
</if>
</foreach>
</trim>
<trim prefix="answerContent=(case" suffix="ELSE answerContent end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('answerContent')) or (colPickMode==1 and !item.containsKey('answerContent'))">
when a.id=#{item.id} then #{item.answerContent}
</if>
</foreach>
</trim>
<trim prefix="questionType=(case" suffix="ELSE questionType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('questionType')) or (colPickMode==1 and !item.containsKey('questionType'))">
when a.id=#{item.id} then #{item.questionType}
</when>
<when test="(colPickMode==0 and item.containsKey('questionTypeIncrement')) or (colPickMode==1 and !item.containsKey('questionTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.questionType,0) + #{item.questionTypeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="status=(case" suffix="ELSE status end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('status')) or (colPickMode==1 and !item.containsKey('status'))">
when a.id=#{item.id} then #{item.status}
</when>
<when test="(colPickMode==0 and item.containsKey('statusIncrement')) or (colPickMode==1 and !item.containsKey('statusIncrement'))">
when a.id=#{item.id} then ifnull(a.status,0) + #{item.statusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="useful=(case" suffix="ELSE useful end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('useful')) or (colPickMode==1 and !item.containsKey('useful'))">
when a.id=#{item.id} then #{item.useful}
</when>
<when test="(colPickMode==0 and item.containsKey('usefulIncrement')) or (colPickMode==1 and !item.containsKey('usefulIncrement'))">
when a.id=#{item.id} then ifnull(a.useful,0) + #{item.usefulIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="useless=(case" suffix="ELSE useless end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('useless')) or (colPickMode==1 and !item.containsKey('useless'))">
when a.id=#{item.id} then #{item.useless}
</when>
<when test="(colPickMode==0 and item.containsKey('uselessIncrement')) or (colPickMode==1 and !item.containsKey('uselessIncrement'))">
when a.id=#{item.id} then ifnull(a.useless,0) + #{item.uselessIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="createUserId=(case" suffix="ELSE createUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
when a.id=#{item.id} then #{item.createUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createUserName=(case" suffix="ELSE createUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUserName')) or (colPickMode==1 and !item.containsKey('createUserName'))">
when a.id=#{item.id} then #{item.createUserName}
</if>
</foreach>
</trim>
<trim prefix="updateTime=(case" suffix="ELSE updateTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateTime')) or (colPickMode==1 and !item.containsKey('updateTime'))">
when a.id=#{item.id} then #{item.updateTime}
</if>
</foreach>
</trim>
<trim prefix="updateUserId=(case" suffix="ELSE updateUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('updateUserId')) or (colPickMode==1 and !item.containsKey('updateUserId'))">
when a.id=#{item.id} then #{item.updateUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('updateUserIdIncrement')) or (colPickMode==1 and !item.containsKey('updateUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.updateUserId,0) + #{item.updateUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="updateUserName=(case" suffix="ELSE updateUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('updateUserName')) or (colPickMode==1 and !item.containsKey('updateUserName'))">
when a.id=#{item.id} then #{item.updateUserName}
</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="HelpEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_help as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_help as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_help where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_help as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="HelpEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_help 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_help 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('sortNum')">
<if test="conditionParamRef.sortNum != null ">
${_conditionType_} a.sortNum = #{${_conditionParam_}.sortNum}
</if>
<if test="conditionParamRef.sortNum == null">
${_conditionType_} a.sortNum is null
</if>
</if>
<if test="conditionParamRef.containsKey('sortNumList')">
${_conditionType_} a.sortNum in
<foreach collection="conditionParamRef.sortNumList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sortNumStart') and conditionParamRef.sortNumStart != null">
${_conditionType_} a.sortNum <![CDATA[ >= ]]> #{${_conditionParam_}.sortNumStart}
</if>
<if test="conditionParamRef.containsKey('sortNumEnd') and conditionParamRef.sortNumEnd != null">
${_conditionType_} a.sortNum <![CDATA[ <= ]]> #{${_conditionParam_}.sortNumEnd}
</if>
<if test="conditionParamRef.containsKey('title')">
<if test="conditionParamRef.title != null and conditionParamRef.title != ''">
${_conditionType_} a.title like #{${_conditionParam_}.title}
</if>
<if test="conditionParamRef.title == null">
${_conditionType_} a.title is null
</if>
</if>
<if test="conditionParamRef.containsKey('titleList')">
${_conditionType_} a.title in
<foreach collection="conditionParamRef.titleList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('content')">
<if test="conditionParamRef.content != null and conditionParamRef.content != ''">
${_conditionType_} a.content like #{${_conditionParam_}.content}
</if>
<if test="conditionParamRef.content == null">
${_conditionType_} a.content is null
</if>
</if>
<if test="conditionParamRef.containsKey('contentList')">
${_conditionType_} a.content in
<foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('answerContent')">
<if test="conditionParamRef.answerContent != null and conditionParamRef.answerContent != ''">
${_conditionType_} a.answerContent like #{${_conditionParam_}.answerContent}
</if>
<if test="conditionParamRef.answerContent == null">
${_conditionType_} a.answerContent is null
</if>
</if>
<if test="conditionParamRef.containsKey('answerContentList')">
${_conditionType_} a.answerContent in
<foreach collection="conditionParamRef.answerContentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('questionType')">
<if test="conditionParamRef.questionType != null ">
${_conditionType_} a.questionType = #{${_conditionParam_}.questionType}
</if>
<if test="conditionParamRef.questionType == null">
${_conditionType_} a.questionType is null
</if>
</if>
<if test="conditionParamRef.containsKey('questionTypeList')">
${_conditionType_} a.questionType in
<foreach collection="conditionParamRef.questionTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('questionTypeStart') and conditionParamRef.questionTypeStart != null">
${_conditionType_} a.questionType <![CDATA[ >= ]]> #{${_conditionParam_}.questionTypeStart}
</if>
<if test="conditionParamRef.containsKey('questionTypeEnd') and conditionParamRef.questionTypeEnd != null">
${_conditionType_} a.questionType <![CDATA[ <= ]]> #{${_conditionParam_}.questionTypeEnd}
</if>
<if test="conditionParamRef.containsKey('status')">
<if test="conditionParamRef.status != null ">
${_conditionType_} a.status = #{${_conditionParam_}.status}
</if>
<if test="conditionParamRef.status == null">
${_conditionType_} a.status is null
</if>
</if>
<if test="conditionParamRef.containsKey('statusList')">
${_conditionType_} a.status in
<foreach collection="conditionParamRef.statusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('statusStart') and conditionParamRef.statusStart != null">
${_conditionType_} a.status <![CDATA[ >= ]]> #{${_conditionParam_}.statusStart}
</if>
<if test="conditionParamRef.containsKey('statusEnd') and conditionParamRef.statusEnd != null">
${_conditionType_} a.status <![CDATA[ <= ]]> #{${_conditionParam_}.statusEnd}
</if>
<if test="conditionParamRef.containsKey('useful')">
<if test="conditionParamRef.useful != null ">
${_conditionType_} a.useful = #{${_conditionParam_}.useful}
</if>
<if test="conditionParamRef.useful == null">
${_conditionType_} a.useful is null
</if>
</if>
<if test="conditionParamRef.containsKey('usefulList')">
${_conditionType_} a.useful in
<foreach collection="conditionParamRef.usefulList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('usefulStart') and conditionParamRef.usefulStart != null">
${_conditionType_} a.useful <![CDATA[ >= ]]> #{${_conditionParam_}.usefulStart}
</if>
<if test="conditionParamRef.containsKey('usefulEnd') and conditionParamRef.usefulEnd != null">
${_conditionType_} a.useful <![CDATA[ <= ]]> #{${_conditionParam_}.usefulEnd}
</if>
<if test="conditionParamRef.containsKey('useless')">
<if test="conditionParamRef.useless != null ">
${_conditionType_} a.useless = #{${_conditionParam_}.useless}
</if>
<if test="conditionParamRef.useless == null">
${_conditionType_} a.useless is null
</if>
</if>
<if test="conditionParamRef.containsKey('uselessList')">
${_conditionType_} a.useless in
<foreach collection="conditionParamRef.uselessList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('uselessStart') and conditionParamRef.uselessStart != null">
${_conditionType_} a.useless <![CDATA[ >= ]]> #{${_conditionParam_}.uselessStart}
</if>
<if test="conditionParamRef.containsKey('uselessEnd') and conditionParamRef.uselessEnd != null">
${_conditionType_} a.useless <![CDATA[ <= ]]> #{${_conditionParam_}.uselessEnd}
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUserId')">
<if test="conditionParamRef.createUserId != null ">
${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
</if>
<if test="conditionParamRef.createUserId == null">
${_conditionType_} a.createUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserIdList')">
${_conditionType_} a.createUserId in
<foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
</if>
<if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
</if>
<if test="conditionParamRef.containsKey('createUserName')">
<if test="conditionParamRef.createUserName != null and conditionParamRef.createUserName != ''">
${_conditionType_} a.createUserName like #{${_conditionParam_}.createUserName}
</if>
<if test="conditionParamRef.createUserName == null">
${_conditionType_} a.createUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserNameList')">
${_conditionType_} a.createUserName in
<foreach collection="conditionParamRef.createUserNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('updateTime')">
<if test="conditionParamRef.updateTime != null ">
${_conditionType_} a.updateTime = #{${_conditionParam_}.updateTime}
</if>
<if test="conditionParamRef.updateTime == null">
${_conditionType_} a.updateTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateTimeStart') and conditionParamRef.updateTimeStart != null and conditionParamRef.updateTimeStart!=''">
${_conditionType_} a.updateTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateTimeEnd') and conditionParamRef.updateTimeEnd != null and conditionParamRef.updateTimeEnd!=''">
${_conditionType_} a.updateTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.updateTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('updateUserId')">
<if test="conditionParamRef.updateUserId != null ">
${_conditionType_} a.updateUserId = #{${_conditionParam_}.updateUserId}
</if>
<if test="conditionParamRef.updateUserId == null">
${_conditionType_} a.updateUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateUserIdList')">
${_conditionType_} a.updateUserId in
<foreach collection="conditionParamRef.updateUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('updateUserIdStart') and conditionParamRef.updateUserIdStart != null">
${_conditionType_} a.updateUserId <![CDATA[ >= ]]> #{${_conditionParam_}.updateUserIdStart}
</if>
<if test="conditionParamRef.containsKey('updateUserIdEnd') and conditionParamRef.updateUserIdEnd != null">
${_conditionType_} a.updateUserId <![CDATA[ <= ]]> #{${_conditionParam_}.updateUserIdEnd}
</if>
<if test="conditionParamRef.containsKey('updateUserName')">
<if test="conditionParamRef.updateUserName != null and conditionParamRef.updateUserName != ''">
${_conditionType_} a.updateUserName like #{${_conditionParam_}.updateUserName}
</if>
<if test="conditionParamRef.updateUserName == null">
${_conditionType_} a.updateUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('updateUserNameList')">
${_conditionType_} a.updateUserName in
<foreach collection="conditionParamRef.updateUserNameList" 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('sortNum')">
a.sortNum
<if test='orderCol.sortNum != null and "DESC".equalsIgnoreCase(orderCol.sortNum)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('title')">
a.title
<if test='orderCol.title != null and "DESC".equalsIgnoreCase(orderCol.title)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('content')">
a.content
<if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('answerContent')">
a.answerContent
<if test='orderCol.answerContent != null and "DESC".equalsIgnoreCase(orderCol.answerContent)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('questionType')">
a.questionType
<if test='orderCol.questionType != null and "DESC".equalsIgnoreCase(orderCol.questionType)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('status')">
a.status
<if test='orderCol.status != null and "DESC".equalsIgnoreCase(orderCol.status)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('useful')">
a.useful
<if test='orderCol.useful != null and "DESC".equalsIgnoreCase(orderCol.useful)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('useless')">
a.useless
<if test='orderCol.useless != null and "DESC".equalsIgnoreCase(orderCol.useless)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserId')">
a.createUserId
<if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test='orderCol.createUserName != null and "DESC".equalsIgnoreCase(orderCol.createUserName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.updateTime
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateUserId')">
a.updateUserId
<if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateUserName')">
a.updateUserName
<if test='orderCol.updateUserName != null and "DESC".equalsIgnoreCase(orderCol.updateUserName)'>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.message.dao.ibatis.MessageDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="MessageEntity" id="MessageEntity-Map">
<id property="id" column="id" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="sendMode" column="sendMode" />
<result property="scope" column="scope" />
<result property="sendStatus" column="sendStatus" />
<result property="sendTime" column="sendTime" />
<result property="createTime" column="createTime" />
<result property="createUserId" column="createUserId" />
<result property="createUserName" column="createUserName" />
<result property="messageType" column="messageType" />
</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('title') or colPickMode == 1 and data.containsKey('title')))">
a.title,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))">
a.content,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sendMode') or colPickMode == 1 and data.containsKey('sendMode')))">
a.sendMode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('scope') or colPickMode == 1 and data.containsKey('scope')))">
a.scope,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sendStatus') or colPickMode == 1 and data.containsKey('sendStatus')))">
a.sendStatus,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sendTime') or colPickMode == 1 and data.containsKey('sendTime')))">
a.sendTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserId') or colPickMode == 1 and data.containsKey('createUserId')))">
a.createUserId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('messageType') or colPickMode == 1 and data.containsKey('messageType')))">
a.messageType,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="MessageEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_message
(title,content,sendMode,scope,sendStatus,sendTime,createTime,createUserId,createUserName,messageType)
VALUES
(#{title},#{content},#{sendMode},#{scope},#{sendStatus},#{sendTime},#{createTime},#{createUserId},#{createUserName},#{messageType})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_message
(title,content,sendMode,scope,sendStatus,sendTime,createTime,createUserId,createUserName,messageType)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.title},#{item.content},#{item.sendMode},#{item.scope},#{item.sendStatus},#{item.sendTime},#{item.createTime},#{item.createUserId},#{item.createUserName},#{item.messageType})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_message as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('title')) or (colPickMode==1 and !data.containsKey('title'))">
a.title=#{data.title},
</if>
<if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
a.content=#{data.content},
</if>
<if test="(colPickMode==0 and data.containsKey('sendMode')) or (colPickMode==1 and !data.containsKey('sendMode'))">
a.sendMode=#{data.sendMode},
</if>
<if test="(colPickMode==0 and data.containsKey('sendModeIncrement')) or (colPickMode==1 and !data.containsKey('sendModeIncrement'))">
a.sendMode=ifnull(a.sendMode,0) + #{data.sendModeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('scope')) or (colPickMode==1 and !data.containsKey('scope'))">
a.scope=#{data.scope},
</if>
<if test="(colPickMode==0 and data.containsKey('scopeIncrement')) or (colPickMode==1 and !data.containsKey('scopeIncrement'))">
a.scope=ifnull(a.scope,0) + #{data.scopeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sendStatus')) or (colPickMode==1 and !data.containsKey('sendStatus'))">
a.sendStatus=#{data.sendStatus},
</if>
<if test="(colPickMode==0 and data.containsKey('sendStatusIncrement')) or (colPickMode==1 and !data.containsKey('sendStatusIncrement'))">
a.sendStatus=ifnull(a.sendStatus,0) + #{data.sendStatusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sendTime')) or (colPickMode==1 and !data.containsKey('sendTime'))">
a.sendTime=#{data.sendTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserId')) or (colPickMode==1 and !data.containsKey('createUserId'))">
a.createUserId=#{data.createUserId},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserIdIncrement')) or (colPickMode==1 and !data.containsKey('createUserIdIncrement'))">
a.createUserId=ifnull(a.createUserId,0) + #{data.createUserIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</if>
<if test="(colPickMode==0 and data.containsKey('messageType')) or (colPickMode==1 and !data.containsKey('messageType'))">
a.messageType=#{data.messageType},
</if>
<if test="(colPickMode==0 and data.containsKey('messageTypeIncrement')) or (colPickMode==1 and !data.containsKey('messageTypeIncrement'))">
a.messageType=ifnull(a.messageType,0) + #{data.messageTypeIncrement},
</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_message as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="title=(case" suffix="ELSE title end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('title')) or (colPickMode==1 and !item.containsKey('title'))">
when a.id=#{item.id} then #{item.title}
</if>
</foreach>
</trim>
<trim prefix="content=(case" suffix="ELSE content end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
when a.id=#{item.id} then #{item.content}
</if>
</foreach>
</trim>
<trim prefix="sendMode=(case" suffix="ELSE sendMode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sendMode')) or (colPickMode==1 and !item.containsKey('sendMode'))">
when a.id=#{item.id} then #{item.sendMode}
</when>
<when test="(colPickMode==0 and item.containsKey('sendModeIncrement')) or (colPickMode==1 and !item.containsKey('sendModeIncrement'))">
when a.id=#{item.id} then ifnull(a.sendMode,0) + #{item.sendModeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="scope=(case" suffix="ELSE scope end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('scope')) or (colPickMode==1 and !item.containsKey('scope'))">
when a.id=#{item.id} then #{item.scope}
</when>
<when test="(colPickMode==0 and item.containsKey('scopeIncrement')) or (colPickMode==1 and !item.containsKey('scopeIncrement'))">
when a.id=#{item.id} then ifnull(a.scope,0) + #{item.scopeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="sendStatus=(case" suffix="ELSE sendStatus end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sendStatus')) or (colPickMode==1 and !item.containsKey('sendStatus'))">
when a.id=#{item.id} then #{item.sendStatus}
</when>
<when test="(colPickMode==0 and item.containsKey('sendStatusIncrement')) or (colPickMode==1 and !item.containsKey('sendStatusIncrement'))">
when a.id=#{item.id} then ifnull(a.sendStatus,0) + #{item.sendStatusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="sendTime=(case" suffix="ELSE sendTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('sendTime')) or (colPickMode==1 and !item.containsKey('sendTime'))">
when a.id=#{item.id} then #{item.sendTime}
</if>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="createUserId=(case" suffix="ELSE createUserId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('createUserId')) or (colPickMode==1 and !item.containsKey('createUserId'))">
when a.id=#{item.id} then #{item.createUserId}
</when>
<when test="(colPickMode==0 and item.containsKey('createUserIdIncrement')) or (colPickMode==1 and !item.containsKey('createUserIdIncrement'))">
when a.id=#{item.id} then ifnull(a.createUserId,0) + #{item.createUserIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="createUserName=(case" suffix="ELSE createUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUserName')) or (colPickMode==1 and !item.containsKey('createUserName'))">
when a.id=#{item.id} then #{item.createUserName}
</if>
</foreach>
</trim>
<trim prefix="messageType=(case" suffix="ELSE messageType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('messageType')) or (colPickMode==1 and !item.containsKey('messageType'))">
when a.id=#{item.id} then #{item.messageType}
</when>
<when test="(colPickMode==0 and item.containsKey('messageTypeIncrement')) or (colPickMode==1 and !item.containsKey('messageTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.messageType,0) + #{item.messageTypeIncrement}
</when>
</choose>
</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="MessageEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_message as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_message as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_message where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_message as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="MessageEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_message 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_message 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('title')">
<if test="conditionParamRef.title != null and conditionParamRef.title != ''">
${_conditionType_} a.title like #{${_conditionParam_}.title}
</if>
<if test="conditionParamRef.title == null">
${_conditionType_} a.title is null
</if>
</if>
<if test="conditionParamRef.containsKey('titleList')">
${_conditionType_} a.title in
<foreach collection="conditionParamRef.titleList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('content')">
<if test="conditionParamRef.content != null and conditionParamRef.content != ''">
${_conditionType_} a.content like #{${_conditionParam_}.content}
</if>
<if test="conditionParamRef.content == null">
${_conditionType_} a.content is null
</if>
</if>
<if test="conditionParamRef.containsKey('contentList')">
${_conditionType_} a.content in
<foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sendMode')">
<if test="conditionParamRef.sendMode != null ">
${_conditionType_} a.sendMode = #{${_conditionParam_}.sendMode}
</if>
<if test="conditionParamRef.sendMode == null">
${_conditionType_} a.sendMode is null
</if>
</if>
<if test="conditionParamRef.containsKey('sendModeList')">
${_conditionType_} a.sendMode in
<foreach collection="conditionParamRef.sendModeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sendModeStart') and conditionParamRef.sendModeStart != null">
${_conditionType_} a.sendMode <![CDATA[ >= ]]> #{${_conditionParam_}.sendModeStart}
</if>
<if test="conditionParamRef.containsKey('sendModeEnd') and conditionParamRef.sendModeEnd != null">
${_conditionType_} a.sendMode <![CDATA[ <= ]]> #{${_conditionParam_}.sendModeEnd}
</if>
<if test="conditionParamRef.containsKey('scope')">
<if test="conditionParamRef.scope != null ">
${_conditionType_} a.scope = #{${_conditionParam_}.scope}
</if>
<if test="conditionParamRef.scope == null">
${_conditionType_} a.scope is null
</if>
</if>
<if test="conditionParamRef.containsKey('scopeList')">
${_conditionType_} a.scope in
<foreach collection="conditionParamRef.scopeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('scopeStart') and conditionParamRef.scopeStart != null">
${_conditionType_} a.scope <![CDATA[ >= ]]> #{${_conditionParam_}.scopeStart}
</if>
<if test="conditionParamRef.containsKey('scopeEnd') and conditionParamRef.scopeEnd != null">
${_conditionType_} a.scope <![CDATA[ <= ]]> #{${_conditionParam_}.scopeEnd}
</if>
<if test="conditionParamRef.containsKey('sendStatus')">
<if test="conditionParamRef.sendStatus != null ">
${_conditionType_} a.sendStatus = #{${_conditionParam_}.sendStatus}
</if>
<if test="conditionParamRef.sendStatus == null">
${_conditionType_} a.sendStatus is null
</if>
</if>
<if test="conditionParamRef.containsKey('sendStatusList')">
${_conditionType_} a.sendStatus in
<foreach collection="conditionParamRef.sendStatusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sendStatusStart') and conditionParamRef.sendStatusStart != null">
${_conditionType_} a.sendStatus <![CDATA[ >= ]]> #{${_conditionParam_}.sendStatusStart}
</if>
<if test="conditionParamRef.containsKey('sendStatusEnd') and conditionParamRef.sendStatusEnd != null">
${_conditionType_} a.sendStatus <![CDATA[ <= ]]> #{${_conditionParam_}.sendStatusEnd}
</if>
<if test="conditionParamRef.containsKey('sendTime')">
<if test="conditionParamRef.sendTime != null ">
${_conditionType_} a.sendTime = #{${_conditionParam_}.sendTime}
</if>
<if test="conditionParamRef.sendTime == null">
${_conditionType_} a.sendTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('sendTimeStart') and conditionParamRef.sendTimeStart != null and conditionParamRef.sendTimeStart!=''">
${_conditionType_} a.sendTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.sendTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('sendTimeEnd') and conditionParamRef.sendTimeEnd != null and conditionParamRef.sendTimeEnd!=''">
${_conditionType_} a.sendTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.sendTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUserId')">
<if test="conditionParamRef.createUserId != null ">
${_conditionType_} a.createUserId = #{${_conditionParam_}.createUserId}
</if>
<if test="conditionParamRef.createUserId == null">
${_conditionType_} a.createUserId is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserIdList')">
${_conditionType_} a.createUserId in
<foreach collection="conditionParamRef.createUserIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserIdStart') and conditionParamRef.createUserIdStart != null">
${_conditionType_} a.createUserId <![CDATA[ >= ]]> #{${_conditionParam_}.createUserIdStart}
</if>
<if test="conditionParamRef.containsKey('createUserIdEnd') and conditionParamRef.createUserIdEnd != null">
${_conditionType_} a.createUserId <![CDATA[ <= ]]> #{${_conditionParam_}.createUserIdEnd}
</if>
<if test="conditionParamRef.containsKey('createUserName')">
<if test="conditionParamRef.createUserName != null and conditionParamRef.createUserName != ''">
${_conditionType_} a.createUserName like #{${_conditionParam_}.createUserName}
</if>
<if test="conditionParamRef.createUserName == null">
${_conditionType_} a.createUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserNameList')">
${_conditionType_} a.createUserName in
<foreach collection="conditionParamRef.createUserNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('messageType')">
<if test="conditionParamRef.messageType != null ">
${_conditionType_} a.messageType = #{${_conditionParam_}.messageType}
</if>
<if test="conditionParamRef.messageType == null">
${_conditionType_} a.messageType is null
</if>
</if>
<if test="conditionParamRef.containsKey('messageTypeList')">
${_conditionType_} a.messageType in
<foreach collection="conditionParamRef.messageTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('messageTypeStart') and conditionParamRef.messageTypeStart != null">
${_conditionType_} a.messageType <![CDATA[ >= ]]> #{${_conditionParam_}.messageTypeStart}
</if>
<if test="conditionParamRef.containsKey('messageTypeEnd') and conditionParamRef.messageTypeEnd != null">
${_conditionType_} a.messageType <![CDATA[ <= ]]> #{${_conditionParam_}.messageTypeEnd}
</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('title')">
a.title
<if test='orderCol.title != null and "DESC".equalsIgnoreCase(orderCol.title)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('content')">
a.content
<if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sendMode')">
a.sendMode
<if test='orderCol.sendMode != null and "DESC".equalsIgnoreCase(orderCol.sendMode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('scope')">
a.scope
<if test='orderCol.scope != null and "DESC".equalsIgnoreCase(orderCol.scope)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sendStatus')">
a.sendStatus
<if test='orderCol.sendStatus != null and "DESC".equalsIgnoreCase(orderCol.sendStatus)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sendTime')">
a.sendTime
<if test='orderCol.sendTime != null and "DESC".equalsIgnoreCase(orderCol.sendTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserId')">
a.createUserId
<if test='orderCol.createUserId != null and "DESC".equalsIgnoreCase(orderCol.createUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test='orderCol.createUserName != null and "DESC".equalsIgnoreCase(orderCol.createUserName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('messageType')">
a.messageType
<if test='orderCol.messageType != null and "DESC".equalsIgnoreCase(orderCol.messageType)'>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.news.dao.ibatis.NewsDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="NewsEntity" id="NewsEntity-Map">
<id property="id" column="id" />
<result property="messageId" column="messageId" />
<result property="customerId" column="customerId" />
<result property="title" column="title" />
<result property="content" column="content" />
<result property="messageType" column="messageType" />
<result property="readStatus" column="readStatus" />
<result property="receiveTime" column="receiveTime" />
</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('messageId') or colPickMode == 1 and data.containsKey('messageId')))">
a.messageId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('customerId') or colPickMode == 1 and data.containsKey('customerId')))">
a.customerId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('title') or colPickMode == 1 and data.containsKey('title')))">
a.title,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))">
a.content,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('messageType') or colPickMode == 1 and data.containsKey('messageType')))">
a.messageType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('readStatus') or colPickMode == 1 and data.containsKey('readStatus')))">
a.readStatus,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('receiveTime') or colPickMode == 1 and data.containsKey('receiveTime')))">
a.receiveTime,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="NewsEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_news
(messageId,customerId,title,content,messageType,readStatus,receiveTime)
VALUES
(#{messageId},#{customerId},#{title},#{content},#{messageType},#{readStatus},#{receiveTime})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_news
(messageId,customerId,title,content,messageType,readStatus,receiveTime)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.messageId},#{item.customerId},#{item.title},#{item.content},#{item.messageType},#{item.readStatus},#{item.receiveTime})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_news as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('messageId')) or (colPickMode==1 and !data.containsKey('messageId'))">
a.messageId=#{data.messageId},
</if>
<if test="(colPickMode==0 and data.containsKey('messageIdIncrement')) or (colPickMode==1 and !data.containsKey('messageIdIncrement'))">
a.messageId=ifnull(a.messageId,0) + #{data.messageIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('customerId')) or (colPickMode==1 and !data.containsKey('customerId'))">
a.customerId=#{data.customerId},
</if>
<if test="(colPickMode==0 and data.containsKey('customerIdIncrement')) or (colPickMode==1 and !data.containsKey('customerIdIncrement'))">
a.customerId=ifnull(a.customerId,0) + #{data.customerIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('title')) or (colPickMode==1 and !data.containsKey('title'))">
a.title=#{data.title},
</if>
<if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
a.content=#{data.content},
</if>
<if test="(colPickMode==0 and data.containsKey('messageType')) or (colPickMode==1 and !data.containsKey('messageType'))">
a.messageType=#{data.messageType},
</if>
<if test="(colPickMode==0 and data.containsKey('messageTypeIncrement')) or (colPickMode==1 and !data.containsKey('messageTypeIncrement'))">
a.messageType=ifnull(a.messageType,0) + #{data.messageTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('readStatus')) or (colPickMode==1 and !data.containsKey('readStatus'))">
a.readStatus=#{data.readStatus},
</if>
<if test="(colPickMode==0 and data.containsKey('readStatusIncrement')) or (colPickMode==1 and !data.containsKey('readStatusIncrement'))">
a.readStatus=ifnull(a.readStatus,0) + #{data.readStatusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('receiveTime')) or (colPickMode==1 and !data.containsKey('receiveTime'))">
a.receiveTime=#{data.receiveTime},
</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_news as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="messageId=(case" suffix="ELSE messageId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('messageId')) or (colPickMode==1 and !item.containsKey('messageId'))">
when a.id=#{item.id} then #{item.messageId}
</when>
<when test="(colPickMode==0 and item.containsKey('messageIdIncrement')) or (colPickMode==1 and !item.containsKey('messageIdIncrement'))">
when a.id=#{item.id} then ifnull(a.messageId,0) + #{item.messageIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="customerId=(case" suffix="ELSE customerId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('customerId')) or (colPickMode==1 and !item.containsKey('customerId'))">
when a.id=#{item.id} then #{item.customerId}
</when>
<when test="(colPickMode==0 and item.containsKey('customerIdIncrement')) or (colPickMode==1 and !item.containsKey('customerIdIncrement'))">
when a.id=#{item.id} then ifnull(a.customerId,0) + #{item.customerIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="title=(case" suffix="ELSE title end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('title')) or (colPickMode==1 and !item.containsKey('title'))">
when a.id=#{item.id} then #{item.title}
</if>
</foreach>
</trim>
<trim prefix="content=(case" suffix="ELSE content end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
when a.id=#{item.id} then #{item.content}
</if>
</foreach>
</trim>
<trim prefix="messageType=(case" suffix="ELSE messageType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('messageType')) or (colPickMode==1 and !item.containsKey('messageType'))">
when a.id=#{item.id} then #{item.messageType}
</when>
<when test="(colPickMode==0 and item.containsKey('messageTypeIncrement')) or (colPickMode==1 and !item.containsKey('messageTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.messageType,0) + #{item.messageTypeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="readStatus=(case" suffix="ELSE readStatus end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('readStatus')) or (colPickMode==1 and !item.containsKey('readStatus'))">
when a.id=#{item.id} then #{item.readStatus}
</when>
<when test="(colPickMode==0 and item.containsKey('readStatusIncrement')) or (colPickMode==1 and !item.containsKey('readStatusIncrement'))">
when a.id=#{item.id} then ifnull(a.readStatus,0) + #{item.readStatusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="receiveTime=(case" suffix="ELSE receiveTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('receiveTime')) or (colPickMode==1 and !item.containsKey('receiveTime'))">
when a.id=#{item.id} then #{item.receiveTime}
</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="NewsEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_news as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_news as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_news where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_news as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="NewsEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_news 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_news 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('messageId')">
<if test="conditionParamRef.messageId != null ">
${_conditionType_} a.messageId = #{${_conditionParam_}.messageId}
</if>
<if test="conditionParamRef.messageId == null">
${_conditionType_} a.messageId is null
</if>
</if>
<if test="conditionParamRef.containsKey('messageIdList')">
${_conditionType_} a.messageId in
<foreach collection="conditionParamRef.messageIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('messageIdStart') and conditionParamRef.messageIdStart != null">
${_conditionType_} a.messageId <![CDATA[ >= ]]> #{${_conditionParam_}.messageIdStart}
</if>
<if test="conditionParamRef.containsKey('messageIdEnd') and conditionParamRef.messageIdEnd != null">
${_conditionType_} a.messageId <![CDATA[ <= ]]> #{${_conditionParam_}.messageIdEnd}
</if>
<if test="conditionParamRef.containsKey('customerId')">
<if test="conditionParamRef.customerId != null ">
${_conditionType_} a.customerId = #{${_conditionParam_}.customerId}
</if>
<if test="conditionParamRef.customerId == null">
${_conditionType_} a.customerId is null
</if>
</if>
<if test="conditionParamRef.containsKey('customerIdList')">
${_conditionType_} a.customerId in
<foreach collection="conditionParamRef.customerIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('customerIdStart') and conditionParamRef.customerIdStart != null">
${_conditionType_} a.customerId <![CDATA[ >= ]]> #{${_conditionParam_}.customerIdStart}
</if>
<if test="conditionParamRef.containsKey('customerIdEnd') and conditionParamRef.customerIdEnd != null">
${_conditionType_} a.customerId <![CDATA[ <= ]]> #{${_conditionParam_}.customerIdEnd}
</if>
<if test="conditionParamRef.containsKey('title')">
<if test="conditionParamRef.title != null and conditionParamRef.title != ''">
${_conditionType_} a.title like #{${_conditionParam_}.title}
</if>
<if test="conditionParamRef.title == null">
${_conditionType_} a.title is null
</if>
</if>
<if test="conditionParamRef.containsKey('titleList')">
${_conditionType_} a.title in
<foreach collection="conditionParamRef.titleList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('content')">
<if test="conditionParamRef.content != null and conditionParamRef.content != ''">
${_conditionType_} a.content like #{${_conditionParam_}.content}
</if>
<if test="conditionParamRef.content == null">
${_conditionType_} a.content is null
</if>
</if>
<if test="conditionParamRef.containsKey('contentList')">
${_conditionType_} a.content in
<foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('messageType')">
<if test="conditionParamRef.messageType != null ">
${_conditionType_} a.messageType = #{${_conditionParam_}.messageType}
</if>
<if test="conditionParamRef.messageType == null">
${_conditionType_} a.messageType is null
</if>
</if>
<if test="conditionParamRef.containsKey('messageTypeList')">
${_conditionType_} a.messageType in
<foreach collection="conditionParamRef.messageTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('messageTypeStart') and conditionParamRef.messageTypeStart != null">
${_conditionType_} a.messageType <![CDATA[ >= ]]> #{${_conditionParam_}.messageTypeStart}
</if>
<if test="conditionParamRef.containsKey('messageTypeEnd') and conditionParamRef.messageTypeEnd != null">
${_conditionType_} a.messageType <![CDATA[ <= ]]> #{${_conditionParam_}.messageTypeEnd}
</if>
<if test="conditionParamRef.containsKey('readStatus')">
<if test="conditionParamRef.readStatus != null ">
${_conditionType_} a.readStatus = #{${_conditionParam_}.readStatus}
</if>
<if test="conditionParamRef.readStatus == null">
${_conditionType_} a.readStatus is null
</if>
</if>
<if test="conditionParamRef.containsKey('readStatusList')">
${_conditionType_} a.readStatus in
<foreach collection="conditionParamRef.readStatusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('readStatusStart') and conditionParamRef.readStatusStart != null">
${_conditionType_} a.readStatus <![CDATA[ >= ]]> #{${_conditionParam_}.readStatusStart}
</if>
<if test="conditionParamRef.containsKey('readStatusEnd') and conditionParamRef.readStatusEnd != null">
${_conditionType_} a.readStatus <![CDATA[ <= ]]> #{${_conditionParam_}.readStatusEnd}
</if>
<if test="conditionParamRef.containsKey('receiveTime')">
<if test="conditionParamRef.receiveTime != null ">
${_conditionType_} a.receiveTime = #{${_conditionParam_}.receiveTime}
</if>
<if test="conditionParamRef.receiveTime == null">
${_conditionType_} a.receiveTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('receiveTimeStart') and conditionParamRef.receiveTimeStart != null and conditionParamRef.receiveTimeStart!=''">
${_conditionType_} a.receiveTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.receiveTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('receiveTimeEnd') and conditionParamRef.receiveTimeEnd != null and conditionParamRef.receiveTimeEnd!=''">
${_conditionType_} a.receiveTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.receiveTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</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('messageId')">
a.messageId
<if test='orderCol.messageId != null and "DESC".equalsIgnoreCase(orderCol.messageId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('customerId')">
a.customerId
<if test='orderCol.customerId != null and "DESC".equalsIgnoreCase(orderCol.customerId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('title')">
a.title
<if test='orderCol.title != null and "DESC".equalsIgnoreCase(orderCol.title)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('content')">
a.content
<if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('messageType')">
a.messageType
<if test='orderCol.messageType != null and "DESC".equalsIgnoreCase(orderCol.messageType)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('readStatus')">
a.readStatus
<if test='orderCol.readStatus != null and "DESC".equalsIgnoreCase(orderCol.readStatus)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('receiveTime')">
a.receiveTime
<if test='orderCol.receiveTime != null and "DESC".equalsIgnoreCase(orderCol.receiveTime)'>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.proposal.dao.ibatis.ProposalDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="ProposalEntity" id="ProposalEntity-Map">
<id property="id" column="id" />
<result property="content" column="content" />
<result property="screenshot" column="screenshot" />
<result property="customerId" column="customerId" />
<result property="custName" column="custName" />
<result property="createTime" column="createTime" />
<result property="replyStatus" column="replyStatus" />
<result property="replyContent" column="replyContent" />
<result property="replyTime" column="replyTime" />
<result property="sendMode" column="sendMode" />
<result property="sendStatus" column="sendStatus" />
<result property="contactTelphone" column="contactTelphone" />
</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('content') or colPickMode == 1 and data.containsKey('content')))">
a.content,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('screenshot') or colPickMode == 1 and data.containsKey('screenshot')))">
a.screenshot,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('customerId') or colPickMode == 1 and data.containsKey('customerId')))">
a.customerId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('custName') or colPickMode == 1 and data.containsKey('custName')))">
a.custName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('replyStatus') or colPickMode == 1 and data.containsKey('replyStatus')))">
a.replyStatus,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('replyContent') or colPickMode == 1 and data.containsKey('replyContent')))">
a.replyContent,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('replyTime') or colPickMode == 1 and data.containsKey('replyTime')))">
a.replyTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sendMode') or colPickMode == 1 and data.containsKey('sendMode')))">
a.sendMode,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sendStatus') or colPickMode == 1 and data.containsKey('sendStatus')))">
a.sendStatus,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('contactTelphone') or colPickMode == 1 and data.containsKey('contactTelphone')))">
a.contactTelphone,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="ProposalEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_proposal
(content,screenshot,customerId,custName,createTime,replyStatus,replyContent,replyTime,sendMode,sendStatus,contactTelphone)
VALUES
(#{content},#{screenshot},#{customerId},#{custName},#{createTime},#{replyStatus},#{replyContent},#{replyTime},#{sendMode},#{sendStatus},#{contactTelphone})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_proposal
(content,screenshot,customerId,custName,createTime,replyStatus,replyContent,replyTime,sendMode,sendStatus,contactTelphone)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.content},#{item.screenshot},#{item.customerId},#{item.custName},#{item.createTime},#{item.replyStatus},#{item.replyContent},#{item.replyTime},#{item.sendMode},#{item.sendStatus},#{item.contactTelphone})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_proposal as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
a.content=#{data.content},
</if>
<if test="(colPickMode==0 and data.containsKey('screenshot')) or (colPickMode==1 and !data.containsKey('screenshot'))">
a.screenshot=#{data.screenshot},
</if>
<if test="(colPickMode==0 and data.containsKey('customerId')) or (colPickMode==1 and !data.containsKey('customerId'))">
a.customerId=#{data.customerId},
</if>
<if test="(colPickMode==0 and data.containsKey('customerIdIncrement')) or (colPickMode==1 and !data.containsKey('customerIdIncrement'))">
a.customerId=ifnull(a.customerId,0) + #{data.customerIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('custName')) or (colPickMode==1 and !data.containsKey('custName'))">
a.custName=#{data.custName},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('replyStatus')) or (colPickMode==1 and !data.containsKey('replyStatus'))">
a.replyStatus=#{data.replyStatus},
</if>
<if test="(colPickMode==0 and data.containsKey('replyStatusIncrement')) or (colPickMode==1 and !data.containsKey('replyStatusIncrement'))">
a.replyStatus=ifnull(a.replyStatus,0) + #{data.replyStatusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('replyContent')) or (colPickMode==1 and !data.containsKey('replyContent'))">
a.replyContent=#{data.replyContent},
</if>
<if test="(colPickMode==0 and data.containsKey('replyTime')) or (colPickMode==1 and !data.containsKey('replyTime'))">
a.replyTime=#{data.replyTime},
</if>
<if test="(colPickMode==0 and data.containsKey('sendMode')) or (colPickMode==1 and !data.containsKey('sendMode'))">
a.sendMode=#{data.sendMode},
</if>
<if test="(colPickMode==0 and data.containsKey('sendModeIncrement')) or (colPickMode==1 and !data.containsKey('sendModeIncrement'))">
a.sendMode=ifnull(a.sendMode,0) + #{data.sendModeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sendStatus')) or (colPickMode==1 and !data.containsKey('sendStatus'))">
a.sendStatus=#{data.sendStatus},
</if>
<if test="(colPickMode==0 and data.containsKey('sendStatusIncrement')) or (colPickMode==1 and !data.containsKey('sendStatusIncrement'))">
a.sendStatus=ifnull(a.sendStatus,0) + #{data.sendStatusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('contactTelphone')) or (colPickMode==1 and !data.containsKey('contactTelphone'))">
a.contactTelphone=#{data.contactTelphone},
</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_proposal as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="content=(case" suffix="ELSE content end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
when a.id=#{item.id} then #{item.content}
</if>
</foreach>
</trim>
<trim prefix="screenshot=(case" suffix="ELSE screenshot end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('screenshot')) or (colPickMode==1 and !item.containsKey('screenshot'))">
when a.id=#{item.id} then #{item.screenshot}
</if>
</foreach>
</trim>
<trim prefix="customerId=(case" suffix="ELSE customerId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('customerId')) or (colPickMode==1 and !item.containsKey('customerId'))">
when a.id=#{item.id} then #{item.customerId}
</when>
<when test="(colPickMode==0 and item.containsKey('customerIdIncrement')) or (colPickMode==1 and !item.containsKey('customerIdIncrement'))">
when a.id=#{item.id} then ifnull(a.customerId,0) + #{item.customerIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="custName=(case" suffix="ELSE custName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('custName')) or (colPickMode==1 and !item.containsKey('custName'))">
when a.id=#{item.id} then #{item.custName}
</if>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="replyStatus=(case" suffix="ELSE replyStatus end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('replyStatus')) or (colPickMode==1 and !item.containsKey('replyStatus'))">
when a.id=#{item.id} then #{item.replyStatus}
</when>
<when test="(colPickMode==0 and item.containsKey('replyStatusIncrement')) or (colPickMode==1 and !item.containsKey('replyStatusIncrement'))">
when a.id=#{item.id} then ifnull(a.replyStatus,0) + #{item.replyStatusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="replyContent=(case" suffix="ELSE replyContent end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('replyContent')) or (colPickMode==1 and !item.containsKey('replyContent'))">
when a.id=#{item.id} then #{item.replyContent}
</if>
</foreach>
</trim>
<trim prefix="replyTime=(case" suffix="ELSE replyTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('replyTime')) or (colPickMode==1 and !item.containsKey('replyTime'))">
when a.id=#{item.id} then #{item.replyTime}
</if>
</foreach>
</trim>
<trim prefix="sendMode=(case" suffix="ELSE sendMode end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sendMode')) or (colPickMode==1 and !item.containsKey('sendMode'))">
when a.id=#{item.id} then #{item.sendMode}
</when>
<when test="(colPickMode==0 and item.containsKey('sendModeIncrement')) or (colPickMode==1 and !item.containsKey('sendModeIncrement'))">
when a.id=#{item.id} then ifnull(a.sendMode,0) + #{item.sendModeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="sendStatus=(case" suffix="ELSE sendStatus end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sendStatus')) or (colPickMode==1 and !item.containsKey('sendStatus'))">
when a.id=#{item.id} then #{item.sendStatus}
</when>
<when test="(colPickMode==0 and item.containsKey('sendStatusIncrement')) or (colPickMode==1 and !item.containsKey('sendStatusIncrement'))">
when a.id=#{item.id} then ifnull(a.sendStatus,0) + #{item.sendStatusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="contactTelphone=(case" suffix="ELSE contactTelphone end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('contactTelphone')) or (colPickMode==1 and !item.containsKey('contactTelphone'))">
when a.id=#{item.id} then #{item.contactTelphone}
</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="ProposalEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_proposal as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_proposal as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_proposal where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_proposal as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="ProposalEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_proposal 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_proposal 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('content')">
<if test="conditionParamRef.content != null and conditionParamRef.content != ''">
${_conditionType_} a.content like #{${_conditionParam_}.content}
</if>
<if test="conditionParamRef.content == null">
${_conditionType_} a.content is null
</if>
</if>
<if test="conditionParamRef.containsKey('contentList')">
${_conditionType_} a.content in
<foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('screenshot')">
<if test="conditionParamRef.screenshot != null and conditionParamRef.screenshot != ''">
${_conditionType_} a.screenshot like #{${_conditionParam_}.screenshot}
</if>
<if test="conditionParamRef.screenshot == null">
${_conditionType_} a.screenshot is null
</if>
</if>
<if test="conditionParamRef.containsKey('screenshotList')">
${_conditionType_} a.screenshot in
<foreach collection="conditionParamRef.screenshotList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('customerId')">
<if test="conditionParamRef.customerId != null ">
${_conditionType_} a.customerId = #{${_conditionParam_}.customerId}
</if>
<if test="conditionParamRef.customerId == null">
${_conditionType_} a.customerId is null
</if>
</if>
<if test="conditionParamRef.containsKey('customerIdList')">
${_conditionType_} a.customerId in
<foreach collection="conditionParamRef.customerIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('customerIdStart') and conditionParamRef.customerIdStart != null">
${_conditionType_} a.customerId <![CDATA[ >= ]]> #{${_conditionParam_}.customerIdStart}
</if>
<if test="conditionParamRef.containsKey('customerIdEnd') and conditionParamRef.customerIdEnd != null">
${_conditionType_} a.customerId <![CDATA[ <= ]]> #{${_conditionParam_}.customerIdEnd}
</if>
<if test="conditionParamRef.containsKey('custName')">
<if test="conditionParamRef.custName != null and conditionParamRef.custName != ''">
${_conditionType_} a.custName like #{${_conditionParam_}.custName}
</if>
<if test="conditionParamRef.custName == null">
${_conditionType_} a.custName is null
</if>
</if>
<if test="conditionParamRef.containsKey('custNameList')">
${_conditionType_} a.custName in
<foreach collection="conditionParamRef.custNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('replyStatus')">
<if test="conditionParamRef.replyStatus != null ">
${_conditionType_} a.replyStatus = #{${_conditionParam_}.replyStatus}
</if>
<if test="conditionParamRef.replyStatus == null">
${_conditionType_} a.replyStatus is null
</if>
</if>
<if test="conditionParamRef.containsKey('replyStatusList')">
${_conditionType_} a.replyStatus in
<foreach collection="conditionParamRef.replyStatusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('replyStatusStart') and conditionParamRef.replyStatusStart != null">
${_conditionType_} a.replyStatus <![CDATA[ >= ]]> #{${_conditionParam_}.replyStatusStart}
</if>
<if test="conditionParamRef.containsKey('replyStatusEnd') and conditionParamRef.replyStatusEnd != null">
${_conditionType_} a.replyStatus <![CDATA[ <= ]]> #{${_conditionParam_}.replyStatusEnd}
</if>
<if test="conditionParamRef.containsKey('replyContent')">
<if test="conditionParamRef.replyContent != null and conditionParamRef.replyContent != ''">
${_conditionType_} a.replyContent like #{${_conditionParam_}.replyContent}
</if>
<if test="conditionParamRef.replyContent == null">
${_conditionType_} a.replyContent is null
</if>
</if>
<if test="conditionParamRef.containsKey('replyContentList')">
${_conditionType_} a.replyContent in
<foreach collection="conditionParamRef.replyContentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('replyTime')">
<if test="conditionParamRef.replyTime != null ">
${_conditionType_} a.replyTime = #{${_conditionParam_}.replyTime}
</if>
<if test="conditionParamRef.replyTime == null">
${_conditionType_} a.replyTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('replyTimeStart') and conditionParamRef.replyTimeStart != null and conditionParamRef.replyTimeStart!=''">
${_conditionType_} a.replyTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.replyTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('replyTimeEnd') and conditionParamRef.replyTimeEnd != null and conditionParamRef.replyTimeEnd!=''">
${_conditionType_} a.replyTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.replyTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('sendMode')">
<if test="conditionParamRef.sendMode != null ">
${_conditionType_} a.sendMode = #{${_conditionParam_}.sendMode}
</if>
<if test="conditionParamRef.sendMode == null">
${_conditionType_} a.sendMode is null
</if>
</if>
<if test="conditionParamRef.containsKey('sendModeList')">
${_conditionType_} a.sendMode in
<foreach collection="conditionParamRef.sendModeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sendModeStart') and conditionParamRef.sendModeStart != null">
${_conditionType_} a.sendMode <![CDATA[ >= ]]> #{${_conditionParam_}.sendModeStart}
</if>
<if test="conditionParamRef.containsKey('sendModeEnd') and conditionParamRef.sendModeEnd != null">
${_conditionType_} a.sendMode <![CDATA[ <= ]]> #{${_conditionParam_}.sendModeEnd}
</if>
<if test="conditionParamRef.containsKey('sendStatus')">
<if test="conditionParamRef.sendStatus != null ">
${_conditionType_} a.sendStatus = #{${_conditionParam_}.sendStatus}
</if>
<if test="conditionParamRef.sendStatus == null">
${_conditionType_} a.sendStatus is null
</if>
</if>
<if test="conditionParamRef.containsKey('sendStatusList')">
${_conditionType_} a.sendStatus in
<foreach collection="conditionParamRef.sendStatusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sendStatusStart') and conditionParamRef.sendStatusStart != null">
${_conditionType_} a.sendStatus <![CDATA[ >= ]]> #{${_conditionParam_}.sendStatusStart}
</if>
<if test="conditionParamRef.containsKey('sendStatusEnd') and conditionParamRef.sendStatusEnd != null">
${_conditionType_} a.sendStatus <![CDATA[ <= ]]> #{${_conditionParam_}.sendStatusEnd}
</if>
<if test="conditionParamRef.containsKey('contactTelphone')">
<if test="conditionParamRef.contactTelphone != null and conditionParamRef.contactTelphone != ''">
${_conditionType_} a.contactTelphone like #{${_conditionParam_}.contactTelphone}
</if>
<if test="conditionParamRef.contactTelphone == null">
${_conditionType_} a.contactTelphone is null
</if>
</if>
<if test="conditionParamRef.containsKey('contactTelphoneList')">
${_conditionType_} a.contactTelphone in
<foreach collection="conditionParamRef.contactTelphoneList" 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('content')">
a.content
<if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('screenshot')">
a.screenshot
<if test='orderCol.screenshot != null and "DESC".equalsIgnoreCase(orderCol.screenshot)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('customerId')">
a.customerId
<if test='orderCol.customerId != null and "DESC".equalsIgnoreCase(orderCol.customerId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('custName')">
a.custName
<if test='orderCol.custName != null and "DESC".equalsIgnoreCase(orderCol.custName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('replyStatus')">
a.replyStatus
<if test='orderCol.replyStatus != null and "DESC".equalsIgnoreCase(orderCol.replyStatus)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('replyContent')">
a.replyContent
<if test='orderCol.replyContent != null and "DESC".equalsIgnoreCase(orderCol.replyContent)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('replyTime')">
a.replyTime
<if test='orderCol.replyTime != null and "DESC".equalsIgnoreCase(orderCol.replyTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sendMode')">
a.sendMode
<if test='orderCol.sendMode != null and "DESC".equalsIgnoreCase(orderCol.sendMode)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sendStatus')">
a.sendStatus
<if test='orderCol.sendStatus != null and "DESC".equalsIgnoreCase(orderCol.sendStatus)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('contactTelphone')">
a.contactTelphone
<if test='orderCol.contactTelphone != null and "DESC".equalsIgnoreCase(orderCol.contactTelphone)'>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.question.dao.ibatis.QuestionDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="QuestionEntity" id="QuestionEntity-Map">
<id property="id" column="id" />
<result property="questionType" column="questionType" />
<result property="status" column="status" />
<result property="customerId" column="customerId" />
<result property="custName" column="custName" />
<result property="organization" column="organization" />
<result property="contactTelphone" column="contactTelphone" />
<result property="createUserName" column="createUserName" />
<result property="beginTime" column="beginTime" />
<result property="finishTime" column="finishTime" />
<result property="evaluate" column="evaluate" />
<result property="sumQA" column="sumQA" />
</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('questionType') or colPickMode == 1 and data.containsKey('questionType')))">
a.questionType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('status') or colPickMode == 1 and data.containsKey('status')))">
a.status,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('customerId') or colPickMode == 1 and data.containsKey('customerId')))">
a.customerId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('custName') or colPickMode == 1 and data.containsKey('custName')))">
a.custName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('organization') or colPickMode == 1 and data.containsKey('organization')))">
a.organization,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('contactTelphone') or colPickMode == 1 and data.containsKey('contactTelphone')))">
a.contactTelphone,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('beginTime') or colPickMode == 1 and data.containsKey('beginTime')))">
a.beginTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('finishTime') or colPickMode == 1 and data.containsKey('finishTime')))">
a.finishTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('evaluate') or colPickMode == 1 and data.containsKey('evaluate')))">
a.evaluate,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('sumQA') or colPickMode == 1 and data.containsKey('sumQA')))">
a.sumQA,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="QuestionEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_question
(questionType,status,customerId,custName,organization,contactTelphone,createUserName,beginTime,finishTime,evaluate,sumQA)
VALUES
(#{questionType},#{status},#{customerId},#{custName},#{organization},#{contactTelphone},#{createUserName},#{beginTime},#{finishTime},#{evaluate},#{sumQA})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_question
(questionType,status,customerId,custName,organization,contactTelphone,createUserName,beginTime,finishTime,evaluate,sumQA)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.questionType},#{item.status},#{item.customerId},#{item.custName},#{item.organization},#{item.contactTelphone},#{item.createUserName},#{item.beginTime},#{item.finishTime},#{item.evaluate},#{item.sumQA})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_question as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('questionType')) or (colPickMode==1 and !data.containsKey('questionType'))">
a.questionType=#{data.questionType},
</if>
<if test="(colPickMode==0 and data.containsKey('questionTypeIncrement')) or (colPickMode==1 and !data.containsKey('questionTypeIncrement'))">
a.questionType=ifnull(a.questionType,0) + #{data.questionTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('status')) or (colPickMode==1 and !data.containsKey('status'))">
a.status=#{data.status},
</if>
<if test="(colPickMode==0 and data.containsKey('statusIncrement')) or (colPickMode==1 and !data.containsKey('statusIncrement'))">
a.status=ifnull(a.status,0) + #{data.statusIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('customerId')) or (colPickMode==1 and !data.containsKey('customerId'))">
a.customerId=#{data.customerId},
</if>
<if test="(colPickMode==0 and data.containsKey('customerIdIncrement')) or (colPickMode==1 and !data.containsKey('customerIdIncrement'))">
a.customerId=ifnull(a.customerId,0) + #{data.customerIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('custName')) or (colPickMode==1 and !data.containsKey('custName'))">
a.custName=#{data.custName},
</if>
<if test="(colPickMode==0 and data.containsKey('organization')) or (colPickMode==1 and !data.containsKey('organization'))">
a.organization=#{data.organization},
</if>
<if test="(colPickMode==0 and data.containsKey('contactTelphone')) or (colPickMode==1 and !data.containsKey('contactTelphone'))">
a.contactTelphone=#{data.contactTelphone},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</if>
<if test="(colPickMode==0 and data.containsKey('beginTime')) or (colPickMode==1 and !data.containsKey('beginTime'))">
a.beginTime=#{data.beginTime},
</if>
<if test="(colPickMode==0 and data.containsKey('finishTime')) or (colPickMode==1 and !data.containsKey('finishTime'))">
a.finishTime=#{data.finishTime},
</if>
<if test="(colPickMode==0 and data.containsKey('evaluate')) or (colPickMode==1 and !data.containsKey('evaluate'))">
a.evaluate=#{data.evaluate},
</if>
<if test="(colPickMode==0 and data.containsKey('evaluateIncrement')) or (colPickMode==1 and !data.containsKey('evaluateIncrement'))">
a.evaluate=ifnull(a.evaluate,0) + #{data.evaluateIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('sumQA')) or (colPickMode==1 and !data.containsKey('sumQA'))">
a.sumQA=#{data.sumQA},
</if>
<if test="(colPickMode==0 and data.containsKey('sumQAIncrement')) or (colPickMode==1 and !data.containsKey('sumQAIncrement'))">
a.sumQA=ifnull(a.sumQA,0) + #{data.sumQAIncrement},
</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_question as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="questionType=(case" suffix="ELSE questionType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('questionType')) or (colPickMode==1 and !item.containsKey('questionType'))">
when a.id=#{item.id} then #{item.questionType}
</when>
<when test="(colPickMode==0 and item.containsKey('questionTypeIncrement')) or (colPickMode==1 and !item.containsKey('questionTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.questionType,0) + #{item.questionTypeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="status=(case" suffix="ELSE status end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('status')) or (colPickMode==1 and !item.containsKey('status'))">
when a.id=#{item.id} then #{item.status}
</when>
<when test="(colPickMode==0 and item.containsKey('statusIncrement')) or (colPickMode==1 and !item.containsKey('statusIncrement'))">
when a.id=#{item.id} then ifnull(a.status,0) + #{item.statusIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="customerId=(case" suffix="ELSE customerId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('customerId')) or (colPickMode==1 and !item.containsKey('customerId'))">
when a.id=#{item.id} then #{item.customerId}
</when>
<when test="(colPickMode==0 and item.containsKey('customerIdIncrement')) or (colPickMode==1 and !item.containsKey('customerIdIncrement'))">
when a.id=#{item.id} then ifnull(a.customerId,0) + #{item.customerIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="custName=(case" suffix="ELSE custName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('custName')) or (colPickMode==1 and !item.containsKey('custName'))">
when a.id=#{item.id} then #{item.custName}
</if>
</foreach>
</trim>
<trim prefix="organization=(case" suffix="ELSE organization end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('organization')) or (colPickMode==1 and !item.containsKey('organization'))">
when a.id=#{item.id} then #{item.organization}
</if>
</foreach>
</trim>
<trim prefix="contactTelphone=(case" suffix="ELSE contactTelphone end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('contactTelphone')) or (colPickMode==1 and !item.containsKey('contactTelphone'))">
when a.id=#{item.id} then #{item.contactTelphone}
</if>
</foreach>
</trim>
<trim prefix="createUserName=(case" suffix="ELSE createUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUserName')) or (colPickMode==1 and !item.containsKey('createUserName'))">
when a.id=#{item.id} then #{item.createUserName}
</if>
</foreach>
</trim>
<trim prefix="beginTime=(case" suffix="ELSE beginTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('beginTime')) or (colPickMode==1 and !item.containsKey('beginTime'))">
when a.id=#{item.id} then #{item.beginTime}
</if>
</foreach>
</trim>
<trim prefix="finishTime=(case" suffix="ELSE finishTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('finishTime')) or (colPickMode==1 and !item.containsKey('finishTime'))">
when a.id=#{item.id} then #{item.finishTime}
</if>
</foreach>
</trim>
<trim prefix="evaluate=(case" suffix="ELSE evaluate end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('evaluate')) or (colPickMode==1 and !item.containsKey('evaluate'))">
when a.id=#{item.id} then #{item.evaluate}
</when>
<when test="(colPickMode==0 and item.containsKey('evaluateIncrement')) or (colPickMode==1 and !item.containsKey('evaluateIncrement'))">
when a.id=#{item.id} then ifnull(a.evaluate,0) + #{item.evaluateIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="sumQA=(case" suffix="ELSE sumQA end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('sumQA')) or (colPickMode==1 and !item.containsKey('sumQA'))">
when a.id=#{item.id} then #{item.sumQA}
</when>
<when test="(colPickMode==0 and item.containsKey('sumQAIncrement')) or (colPickMode==1 and !item.containsKey('sumQAIncrement'))">
when a.id=#{item.id} then ifnull(a.sumQA,0) + #{item.sumQAIncrement}
</when>
</choose>
</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="QuestionEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_question as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_question as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_question where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_question as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="QuestionEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_question 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_question 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('questionType')">
<if test="conditionParamRef.questionType != null ">
${_conditionType_} a.questionType = #{${_conditionParam_}.questionType}
</if>
<if test="conditionParamRef.questionType == null">
${_conditionType_} a.questionType is null
</if>
</if>
<if test="conditionParamRef.containsKey('questionTypeList')">
${_conditionType_} a.questionType in
<foreach collection="conditionParamRef.questionTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('questionTypeStart') and conditionParamRef.questionTypeStart != null">
${_conditionType_} a.questionType <![CDATA[ >= ]]> #{${_conditionParam_}.questionTypeStart}
</if>
<if test="conditionParamRef.containsKey('questionTypeEnd') and conditionParamRef.questionTypeEnd != null">
${_conditionType_} a.questionType <![CDATA[ <= ]]> #{${_conditionParam_}.questionTypeEnd}
</if>
<if test="conditionParamRef.containsKey('status')">
<if test="conditionParamRef.status != null ">
${_conditionType_} a.status = #{${_conditionParam_}.status}
</if>
<if test="conditionParamRef.status == null">
${_conditionType_} a.status is null
</if>
</if>
<if test="conditionParamRef.containsKey('statusList')">
${_conditionType_} a.status in
<foreach collection="conditionParamRef.statusList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('statusStart') and conditionParamRef.statusStart != null">
${_conditionType_} a.status <![CDATA[ >= ]]> #{${_conditionParam_}.statusStart}
</if>
<if test="conditionParamRef.containsKey('statusEnd') and conditionParamRef.statusEnd != null">
${_conditionType_} a.status <![CDATA[ <= ]]> #{${_conditionParam_}.statusEnd}
</if>
<if test="conditionParamRef.containsKey('customerId')">
<if test="conditionParamRef.customerId != null ">
${_conditionType_} a.customerId = #{${_conditionParam_}.customerId}
</if>
<if test="conditionParamRef.customerId == null">
${_conditionType_} a.customerId is null
</if>
</if>
<if test="conditionParamRef.containsKey('customerIdList')">
${_conditionType_} a.customerId in
<foreach collection="conditionParamRef.customerIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('customerIdStart') and conditionParamRef.customerIdStart != null">
${_conditionType_} a.customerId <![CDATA[ >= ]]> #{${_conditionParam_}.customerIdStart}
</if>
<if test="conditionParamRef.containsKey('customerIdEnd') and conditionParamRef.customerIdEnd != null">
${_conditionType_} a.customerId <![CDATA[ <= ]]> #{${_conditionParam_}.customerIdEnd}
</if>
<if test="conditionParamRef.containsKey('custName')">
<if test="conditionParamRef.custName != null and conditionParamRef.custName != ''">
${_conditionType_} a.custName like #{${_conditionParam_}.custName}
</if>
<if test="conditionParamRef.custName == null">
${_conditionType_} a.custName is null
</if>
</if>
<if test="conditionParamRef.containsKey('custNameList')">
${_conditionType_} a.custName in
<foreach collection="conditionParamRef.custNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('organization')">
<if test="conditionParamRef.organization != null and conditionParamRef.organization != ''">
${_conditionType_} a.organization like #{${_conditionParam_}.organization}
</if>
<if test="conditionParamRef.organization == null">
${_conditionType_} a.organization is null
</if>
</if>
<if test="conditionParamRef.containsKey('organizationList')">
${_conditionType_} a.organization in
<foreach collection="conditionParamRef.organizationList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('contactTelphone')">
<if test="conditionParamRef.contactTelphone != null and conditionParamRef.contactTelphone != ''">
${_conditionType_} a.contactTelphone like #{${_conditionParam_}.contactTelphone}
</if>
<if test="conditionParamRef.contactTelphone == null">
${_conditionType_} a.contactTelphone is null
</if>
</if>
<if test="conditionParamRef.containsKey('contactTelphoneList')">
${_conditionType_} a.contactTelphone in
<foreach collection="conditionParamRef.contactTelphoneList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createUserName')">
<if test="conditionParamRef.createUserName != null and conditionParamRef.createUserName != ''">
${_conditionType_} a.createUserName like #{${_conditionParam_}.createUserName}
</if>
<if test="conditionParamRef.createUserName == null">
${_conditionType_} a.createUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserNameList')">
${_conditionType_} a.createUserName in
<foreach collection="conditionParamRef.createUserNameList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('beginTime')">
<if test="conditionParamRef.beginTime != null ">
${_conditionType_} a.beginTime = #{${_conditionParam_}.beginTime}
</if>
<if test="conditionParamRef.beginTime == null">
${_conditionType_} a.beginTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('beginTimeStart') and conditionParamRef.beginTimeStart != null and conditionParamRef.beginTimeStart!=''">
${_conditionType_} a.beginTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.beginTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('beginTimeEnd') and conditionParamRef.beginTimeEnd != null and conditionParamRef.beginTimeEnd!=''">
${_conditionType_} a.beginTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.beginTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('finishTime')">
<if test="conditionParamRef.finishTime != null ">
${_conditionType_} a.finishTime = #{${_conditionParam_}.finishTime}
</if>
<if test="conditionParamRef.finishTime == null">
${_conditionType_} a.finishTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('finishTimeStart') and conditionParamRef.finishTimeStart != null and conditionParamRef.finishTimeStart!=''">
${_conditionType_} a.finishTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.finishTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('finishTimeEnd') and conditionParamRef.finishTimeEnd != null and conditionParamRef.finishTimeEnd!=''">
${_conditionType_} a.finishTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.finishTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('evaluate')">
<if test="conditionParamRef.evaluate != null ">
${_conditionType_} a.evaluate = #{${_conditionParam_}.evaluate}
</if>
<if test="conditionParamRef.evaluate == null">
${_conditionType_} a.evaluate is null
</if>
</if>
<if test="conditionParamRef.containsKey('evaluateList')">
${_conditionType_} a.evaluate in
<foreach collection="conditionParamRef.evaluateList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('evaluateStart') and conditionParamRef.evaluateStart != null">
${_conditionType_} a.evaluate <![CDATA[ >= ]]> #{${_conditionParam_}.evaluateStart}
</if>
<if test="conditionParamRef.containsKey('evaluateEnd') and conditionParamRef.evaluateEnd != null">
${_conditionType_} a.evaluate <![CDATA[ <= ]]> #{${_conditionParam_}.evaluateEnd}
</if>
<if test="conditionParamRef.containsKey('sumQA')">
<if test="conditionParamRef.sumQA != null ">
${_conditionType_} a.sumQA = #{${_conditionParam_}.sumQA}
</if>
<if test="conditionParamRef.sumQA == null">
${_conditionType_} a.sumQA is null
</if>
</if>
<if test="conditionParamRef.containsKey('sumQAList')">
${_conditionType_} a.sumQA in
<foreach collection="conditionParamRef.sumQAList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('sumQAStart') and conditionParamRef.sumQAStart != null">
${_conditionType_} a.sumQA <![CDATA[ >= ]]> #{${_conditionParam_}.sumQAStart}
</if>
<if test="conditionParamRef.containsKey('sumQAEnd') and conditionParamRef.sumQAEnd != null">
${_conditionType_} a.sumQA <![CDATA[ <= ]]> #{${_conditionParam_}.sumQAEnd}
</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('questionType')">
a.questionType
<if test='orderCol.questionType != null and "DESC".equalsIgnoreCase(orderCol.questionType)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('status')">
a.status
<if test='orderCol.status != null and "DESC".equalsIgnoreCase(orderCol.status)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('customerId')">
a.customerId
<if test='orderCol.customerId != null and "DESC".equalsIgnoreCase(orderCol.customerId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('custName')">
a.custName
<if test='orderCol.custName != null and "DESC".equalsIgnoreCase(orderCol.custName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('organization')">
a.organization
<if test='orderCol.organization != null and "DESC".equalsIgnoreCase(orderCol.organization)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('contactTelphone')">
a.contactTelphone
<if test='orderCol.contactTelphone != null and "DESC".equalsIgnoreCase(orderCol.contactTelphone)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test='orderCol.createUserName != null and "DESC".equalsIgnoreCase(orderCol.createUserName)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('beginTime')">
a.beginTime
<if test='orderCol.beginTime != null and "DESC".equalsIgnoreCase(orderCol.beginTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('finishTime')">
a.finishTime
<if test='orderCol.finishTime != null and "DESC".equalsIgnoreCase(orderCol.finishTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('evaluate')">
a.evaluate
<if test='orderCol.evaluate != null and "DESC".equalsIgnoreCase(orderCol.evaluate)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('sumQA')">
a.sumQA
<if test='orderCol.sumQA != null and "DESC".equalsIgnoreCase(orderCol.sumQA)'>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.question.dao.ibatis.QuestionRecordDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="QuestionRecordEntity" id="QuestionRecordEntity-Map">
<id property="id" column="id" />
<result property="questionId" column="questionId" />
<result property="recordType" column="recordType" />
<result property="content" column="content" />
<result property="createTime" column="createTime" />
<result property="createUserName" column="createUserName" />
</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('questionId') or colPickMode == 1 and data.containsKey('questionId')))">
a.questionId,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('recordType') or colPickMode == 1 and data.containsKey('recordType')))">
a.recordType,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('content') or colPickMode == 1 and data.containsKey('content')))">
a.content,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="QuestionRecordEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_question_record
(questionId,recordType,content,createTime,createUserName)
VALUES
(#{questionId},#{recordType},#{content},#{createTime},#{createUserName})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_question_record
(questionId,recordType,content,createTime,createUserName)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.questionId},#{item.recordType},#{item.content},#{item.createTime},#{item.createUserName})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_question_record as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('questionId')) or (colPickMode==1 and !data.containsKey('questionId'))">
a.questionId=#{data.questionId},
</if>
<if test="(colPickMode==0 and data.containsKey('questionIdIncrement')) or (colPickMode==1 and !data.containsKey('questionIdIncrement'))">
a.questionId=ifnull(a.questionId,0) + #{data.questionIdIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('recordType')) or (colPickMode==1 and !data.containsKey('recordType'))">
a.recordType=#{data.recordType},
</if>
<if test="(colPickMode==0 and data.containsKey('recordTypeIncrement')) or (colPickMode==1 and !data.containsKey('recordTypeIncrement'))">
a.recordType=ifnull(a.recordType,0) + #{data.recordTypeIncrement},
</if>
<if test="(colPickMode==0 and data.containsKey('content')) or (colPickMode==1 and !data.containsKey('content'))">
a.content=#{data.content},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</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_question_record as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="questionId=(case" suffix="ELSE questionId end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('questionId')) or (colPickMode==1 and !item.containsKey('questionId'))">
when a.id=#{item.id} then #{item.questionId}
</when>
<when test="(colPickMode==0 and item.containsKey('questionIdIncrement')) or (colPickMode==1 and !item.containsKey('questionIdIncrement'))">
when a.id=#{item.id} then ifnull(a.questionId,0) + #{item.questionIdIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="recordType=(case" suffix="ELSE recordType end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<choose>
<when test="(colPickMode==0 and item.containsKey('recordType')) or (colPickMode==1 and !item.containsKey('recordType'))">
when a.id=#{item.id} then #{item.recordType}
</when>
<when test="(colPickMode==0 and item.containsKey('recordTypeIncrement')) or (colPickMode==1 and !item.containsKey('recordTypeIncrement'))">
when a.id=#{item.id} then ifnull(a.recordType,0) + #{item.recordTypeIncrement}
</when>
</choose>
</foreach>
</trim>
<trim prefix="content=(case" suffix="ELSE content end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('content')) or (colPickMode==1 and !item.containsKey('content'))">
when a.id=#{item.id} then #{item.content}
</if>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="createUserName=(case" suffix="ELSE createUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUserName')) or (colPickMode==1 and !item.containsKey('createUserName'))">
when a.id=#{item.id} then #{item.createUserName}
</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="QuestionRecordEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_question_record as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_question_record as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_question_record where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_question_record as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="QuestionRecordEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_question_record 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_question_record 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('questionId')">
<if test="conditionParamRef.questionId != null ">
${_conditionType_} a.questionId = #{${_conditionParam_}.questionId}
</if>
<if test="conditionParamRef.questionId == null">
${_conditionType_} a.questionId is null
</if>
</if>
<if test="conditionParamRef.containsKey('questionIdList')">
${_conditionType_} a.questionId in
<foreach collection="conditionParamRef.questionIdList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('questionIdStart') and conditionParamRef.questionIdStart != null">
${_conditionType_} a.questionId <![CDATA[ >= ]]> #{${_conditionParam_}.questionIdStart}
</if>
<if test="conditionParamRef.containsKey('questionIdEnd') and conditionParamRef.questionIdEnd != null">
${_conditionType_} a.questionId <![CDATA[ <= ]]> #{${_conditionParam_}.questionIdEnd}
</if>
<if test="conditionParamRef.containsKey('recordType')">
<if test="conditionParamRef.recordType != null ">
${_conditionType_} a.recordType = #{${_conditionParam_}.recordType}
</if>
<if test="conditionParamRef.recordType == null">
${_conditionType_} a.recordType is null
</if>
</if>
<if test="conditionParamRef.containsKey('recordTypeList')">
${_conditionType_} a.recordType in
<foreach collection="conditionParamRef.recordTypeList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('recordTypeStart') and conditionParamRef.recordTypeStart != null">
${_conditionType_} a.recordType <![CDATA[ >= ]]> #{${_conditionParam_}.recordTypeStart}
</if>
<if test="conditionParamRef.containsKey('recordTypeEnd') and conditionParamRef.recordTypeEnd != null">
${_conditionType_} a.recordType <![CDATA[ <= ]]> #{${_conditionParam_}.recordTypeEnd}
</if>
<if test="conditionParamRef.containsKey('content')">
<if test="conditionParamRef.content != null and conditionParamRef.content != ''">
${_conditionType_} a.content like #{${_conditionParam_}.content}
</if>
<if test="conditionParamRef.content == null">
${_conditionType_} a.content is null
</if>
</if>
<if test="conditionParamRef.containsKey('contentList')">
${_conditionType_} a.content in
<foreach collection="conditionParamRef.contentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUserName')">
<if test="conditionParamRef.createUserName != null and conditionParamRef.createUserName != ''">
${_conditionType_} a.createUserName like #{${_conditionParam_}.createUserName}
</if>
<if test="conditionParamRef.createUserName == null">
${_conditionType_} a.createUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserNameList')">
${_conditionType_} a.createUserName in
<foreach collection="conditionParamRef.createUserNameList" 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('questionId')">
a.questionId
<if test='orderCol.questionId != null and "DESC".equalsIgnoreCase(orderCol.questionId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('recordType')">
a.recordType
<if test='orderCol.recordType != null and "DESC".equalsIgnoreCase(orderCol.recordType)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('content')">
a.content
<if test='orderCol.content != null and "DESC".equalsIgnoreCase(orderCol.content)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test='orderCol.createUserName != null and "DESC".equalsIgnoreCase(orderCol.createUserName)'>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.question.dao.ibatis.QuestionReplyDaoImpl">
<!-- 字段和属性映射 -->
<resultMap type="QuestionReplyEntity" id="QuestionReplyEntity-Map">
<id property="id" column="id" />
<result property="keywords" column="keywords" />
<result property="replyContent" column="replyContent" />
<result property="createTime" column="createTime" />
<result property="createUserName" column="createUserName" />
</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('keywords') or colPickMode == 1 and data.containsKey('keywords')))">
a.keywords,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('replyContent') or colPickMode == 1 and data.containsKey('replyContent')))">
a.replyContent,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createTime') or colPickMode == 1 and data.containsKey('createTime')))">
a.createTime,
</if>
<if test="(data == null) or (data != null and ( colPickMode == 0 and !data.containsKey('createUserName') or colPickMode == 1 and data.containsKey('createUserName')))">
a.createUserName,
</if>
</trim>
</sql>
<!-- 新增 区分主键自增加还是业务插入 -->
<insert id="insert" parameterType="QuestionReplyEntity" useGeneratedKeys="true" keyProperty="id">
insert into mortals_xhx_question_reply
(keywords,replyContent,createTime,createUserName)
VALUES
(#{keywords},#{replyContent},#{createTime},#{createUserName})
</insert>
<!-- 批量新增 -->
<insert id="insertBatch" parameterType="paramDto">
insert into mortals_xhx_question_reply
(keywords,replyContent,createTime,createUserName)
VALUES
<foreach collection="data.dataList" item="item" index="index" separator="," >
(#{item.keywords},#{item.replyContent},#{item.createTime},#{item.createUserName})
</foreach>
</insert>
<!-- 根据ParamDto更新 -->
<update id="update" parameterType="paramDto">
update mortals_xhx_question_reply as a
set
<trim suffixOverrides="," suffix="">
<if test="(colPickMode==0 and data.containsKey('keywords')) or (colPickMode==1 and !data.containsKey('keywords'))">
a.keywords=#{data.keywords},
</if>
<if test="(colPickMode==0 and data.containsKey('replyContent')) or (colPickMode==1 and !data.containsKey('replyContent'))">
a.replyContent=#{data.replyContent},
</if>
<if test="(colPickMode==0 and data.containsKey('createTime')) or (colPickMode==1 and !data.containsKey('createTime'))">
a.createTime=#{data.createTime},
</if>
<if test="(colPickMode==0 and data.containsKey('createUserName')) or (colPickMode==1 and !data.containsKey('createUserName'))">
a.createUserName=#{data.createUserName},
</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_question_reply as a
<trim prefix="set" suffixOverrides=",">
<trim prefix="keywords=(case" suffix="ELSE keywords end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('keywords')) or (colPickMode==1 and !item.containsKey('keywords'))">
when a.id=#{item.id} then #{item.keywords}
</if>
</foreach>
</trim>
<trim prefix="replyContent=(case" suffix="ELSE replyContent end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('replyContent')) or (colPickMode==1 and !item.containsKey('replyContent'))">
when a.id=#{item.id} then #{item.replyContent}
</if>
</foreach>
</trim>
<trim prefix="createTime=(case" suffix="ELSE createTime end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createTime')) or (colPickMode==1 and !item.containsKey('createTime'))">
when a.id=#{item.id} then #{item.createTime}
</if>
</foreach>
</trim>
<trim prefix="createUserName=(case" suffix="ELSE createUserName end),">
<foreach collection="data.dataList" item="item" index="index" separator="" >
<if test="(colPickMode==0 and item.containsKey('createUserName')) or (colPickMode==1 and !item.containsKey('createUserName'))">
when a.id=#{item.id} then #{item.createUserName}
</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="QuestionReplyEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_question_reply as a
where a.id=#{condition.id}
</select>
<!-- 根据主健删除 -->
<delete id="deleteByKey" parameterType="paramDto">
delete a.* from mortals_xhx_question_reply as a where a.id=#{condition.id}
</delete>
<!-- 根据主健删除一批,针对单一主健有效 -->
<delete id="deleteByKeys">
delete from mortals_xhx_question_reply where id in
<foreach collection="array" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<!-- 根据paramDto删除一批 -->
<delete id="deleteByMap" parameterType="paramDto">
delete a.* from mortals_xhx_question_reply as a
<trim suffixOverrides="where" suffix="">
where
<trim prefixOverrides="and" prefix="">
<include refid="_condition_"/>
</trim>
</trim>
</delete>
<!-- 获取列表 -->
<select id="getList" parameterType="paramDto" resultMap="QuestionReplyEntity-Map">
select <include refid="_columns"/>
from mortals_xhx_question_reply 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_question_reply 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')">
${_conditionType_} a.id in
<foreach collection="conditionParamRef.idList" 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('keywords')">
<if test="conditionParamRef.keywords != null and conditionParamRef.keywords != ''">
${_conditionType_} a.keywords like #{${_conditionParam_}.keywords}
</if>
<if test="conditionParamRef.keywords == null">
${_conditionType_} a.keywords is null
</if>
</if>
<if test="conditionParamRef.containsKey('keywordsList')">
${_conditionType_} a.keywords in
<foreach collection="conditionParamRef.keywordsList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('replyContent')">
<if test="conditionParamRef.replyContent != null and conditionParamRef.replyContent != ''">
${_conditionType_} a.replyContent like #{${_conditionParam_}.replyContent}
</if>
<if test="conditionParamRef.replyContent == null">
${_conditionType_} a.replyContent is null
</if>
</if>
<if test="conditionParamRef.containsKey('replyContentList')">
${_conditionType_} a.replyContent in
<foreach collection="conditionParamRef.replyContentList" open="(" close=")" index="index" item="item" separator=",">
#{item}
</foreach>
</if>
<if test="conditionParamRef.containsKey('createTime')">
<if test="conditionParamRef.createTime != null ">
${_conditionType_} a.createTime = #{${_conditionParam_}.createTime}
</if>
<if test="conditionParamRef.createTime == null">
${_conditionType_} a.createTime is null
</if>
</if>
<if test="conditionParamRef.containsKey('createTimeStart') and conditionParamRef.createTimeStart != null and conditionParamRef.createTimeStart!=''">
${_conditionType_} a.createTime <![CDATA[ >= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeStart},' 00:00:00'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createTimeEnd') and conditionParamRef.createTimeEnd != null and conditionParamRef.createTimeEnd!=''">
${_conditionType_} a.createTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{${_conditionParam_}.createTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s')
</if>
<if test="conditionParamRef.containsKey('createUserName')">
<if test="conditionParamRef.createUserName != null and conditionParamRef.createUserName != ''">
${_conditionType_} a.createUserName like #{${_conditionParam_}.createUserName}
</if>
<if test="conditionParamRef.createUserName == null">
${_conditionType_} a.createUserName is null
</if>
</if>
<if test="conditionParamRef.containsKey('createUserNameList')">
${_conditionType_} a.createUserName in
<foreach collection="conditionParamRef.createUserNameList" 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('keywords')">
a.keywords
<if test='orderCol.keywords != null and "DESC".equalsIgnoreCase(orderCol.keywords)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('replyContent')">
a.replyContent
<if test='orderCol.replyContent != null and "DESC".equalsIgnoreCase(orderCol.replyContent)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createTime')">
a.createTime
<if test='orderCol.createTime != null and "DESC".equalsIgnoreCase(orderCol.createTime)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('createUserName')">
a.createUserName
<if test='orderCol.createUserName != null and "DESC".equalsIgnoreCase(orderCol.createUserName)'>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
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