Compare commits

..

105 Commits

Author SHA1 Message Date
kuang.yife 278bf616af 百度线索新增设置 2024-07-11 00:54:19 +08:00
kuang.yife 60ab287cd2 百度线索新增设置 2024-06-04 09:21:20 +08:00
kuang.yife c661c14985 权限过滤问题 2024-05-29 14:16:30 +08:00
kuang.yife 057e19109a 运营角色增加,以及权限过滤 2024-05-29 13:44:51 +08:00
kuang.yife 5a2e981c41 调转调用顺序,优化 2024-02-23 11:55:50 +08:00
kuang.yife ce3a93b935 增加用户不喜欢列表功能 2024-02-18 15:51:28 +08:00
kuang.yife c22cce2106 添加用户微信账号 2024-02-06 00:29:08 +08:00
kuang.yife 183fc89a7f 解决接入skywalking的问题 2024-01-19 17:58:13 +08:00
kuang.yife cf5af4d630 fix bug 2024-01-19 15:16:07 +08:00
kuang.yife cfaae3c17b fix bug 2024-01-02 13:52:54 +08:00
kuang.yife 1ded29e34b 各种接口 2023-12-30 00:09:11 +08:00
kuang.yife 85d39c12a7 服务次数等等接口 2023-12-26 11:08:15 +08:00
kuang.yife 20879c29c4 排序,查询参数 2023-12-25 00:00:21 +08:00
kuang.yife 76f0a8fd61 单身证明/订单列表/批量通过+拒绝 2023-12-24 23:30:46 +08:00
kuang.yife 2ca59e4baa 单身团/代理团,bug修复 2023-12-22 09:23:19 +08:00
kuang.yife fa54ea9ddc 单身随机推荐10位 2023-12-20 09:42:08 +08:00
kuang.yife 77b3757348 按照状态排序 2023-12-18 17:20:25 +08:00
kuang.yife fa3e5d2c0b 单身推荐/新接口 2023-12-16 22:13:23 +08:00
kuang.yife cb966608f1 限制单手机号 2023-12-16 21:27:59 +08:00
kuang.yife 170fbc0688 环信接口/邀请注册 2023-12-16 21:07:08 +08:00
kuang.yife 265b64e9eb 环信接口 2023-12-16 16:11:52 +08:00
kuang.yife b41f845689 活动团创建 2023-12-16 15:42:50 +08:00
kuang.yife a5ffe4348e 活动团创建 2023-12-16 15:28:49 +08:00
kuang.yife 2a3e6bd6e7 代码生成器优化,增加api参数部分 2023-12-16 15:22:01 +08:00
kuang.yife 5579df31bb 支付流程结束,查询结果接口结束 2023-12-16 15:02:17 +08:00
kuang.yife 88062638de adapay回调,mybatis-plus雪花算法填充id的坑 2023-12-16 14:51:00 +08:00
kuang.yife e895e3d4bb 权限/合伙人信息,中版 2023-12-15 12:00:56 +08:00
kuang.yife 48fbaf151a 合伙人模块,初版 2023-12-15 11:42:17 +08:00
kuang.yife e01499c62e 准确提示代码生成器中,校验出的问题字段 2023-12-15 11:38:10 +08:00
kuang.yife e458b461eb 支付模型,中版 2023-12-15 10:31:18 +08:00
kuang.yife 8859a72a61 支付模型,初版 2023-12-14 18:47:20 +08:00
kuang.yife ff22f93d3d 去掉默认帐号密码 + 增加批量上传图片接口 2023-12-14 15:39:30 +08:00
kuang.yife 504603f6de 权限控制 2023-12-14 14:35:59 +08:00
kuang.yife 57132ca6cf 删除用户附件图片 2023-12-13 17:09:57 +08:00
kuang.yife 34663c01b8 关注模块 2023-12-13 15:25:57 +08:00
kuang.yife e0b7fb7086 状态审核 + 后台单身页面优化 2023-12-13 14:46:08 +08:00
kuang.yife 7fec6bd9b4 更新头像附件等 2023-12-13 11:24:47 +08:00
kuang.yife 22eca6bee6 age imgList 2023-12-12 18:43:12 +08:00
kuang.yife c3924dacb2 解决空指针问题 2023-12-11 20:49:06 +08:00
kuang.yife a50b9fcfcf 图片附件,注册密码,账号登陆 2023-12-11 14:29:52 +08:00
kuang.yife 489ddfff57 图片附件,注册密码,账号登陆 2023-12-11 14:28:09 +08:00
kuang.yife 9287270fdb oss文件上传接口 2023-12-10 14:45:48 +08:00
kuang.yife 09ad8e33fe 验证码登陆/密码登陆/短信发送 2023-12-10 14:17:38 +08:00
kuang.yife 5b9ea18698 登陆接口+统一返回的接口 2023-12-10 12:59:38 +08:00
kuang.yife f607e2b9fa 内嵌swagger改为城knife4j 2023-12-10 12:42:27 +08:00
kuang.yife 2e3eb80b2e 脚本修改 2023-12-09 18:51:33 +08:00
kuang.yife 2887c46fbc 单身信息补充,第一版本提交 2023-12-09 18:51:20 +08:00
kuang.yife 8bdf51f953 测试的类移除 2023-12-08 15:28:30 +08:00
kuang.yife edd2b2ed5a 删除无用的jar包 2023-12-08 15:28:09 +08:00
kuang.yife 5254251013 初始化版本-- 代码生成器重构 --mybatis升级为mybatis-plus 2023-12-07 18:11:10 +08:00
RuoYi a4c8026265 升级oshi到最新版本6.4.8 2023-12-05 11:36:30 +08:00
RuoYi 90022df5a6 升级commons.io到最新版本2.13.0 2023-12-05 11:36:12 +08:00
RuoYi 0699c2350a 添加新群号:174942938 2023-11-27 10:13:18 +08:00
RuoYi fd4fe83e9f 修复页签关闭后存在的跳转问题(I8JDIS) 2023-11-25 15:43:51 +08:00
RuoYi 4933ea6d2f 操作日志列表重置回第一页 2023-11-25 15:43:28 +08:00
RuoYi 07ddbfeabf 修复高频率定时任务不执行问题(I8IQSX) 2023-11-25 15:43:15 +08:00
RuoYi 8db4a059d9 若依 v4.7.8 2023-11-23 10:39:05 +08:00
RuoYi 11a59e7f77 update style 2023-11-22 15:12:00 +08:00
RuoYi f2f27c7ea3 升级jquery到最新版v3.7.1 2023-11-22 11:38:22 +08:00
RuoYi e3be485727 通用detail详细信息弹窗不显示按钮 2023-11-22 11:37:50 +08:00
RuoYi 752dd06cd9 升级druid到最新版本1.2.20 2023-11-22 11:08:46 +08:00
RuoYi a2d0fd7057 用户列表新增抽屉效果详细信息 2023-11-22 11:08:12 +08:00
RuoYi 09b41e8b24 用户列表新增抽屉效果详细信息 2023-11-22 09:20:42 +08:00
RuoYi 40835fa733 升级layui到最新版本v2.8.18 2023-11-22 09:13:45 +08:00
RuoYi b838533558 升级layer到最新版本v3.7.0 2023-11-22 09:06:35 +08:00
RuoYi 6994ee771c 角色列表显示数据权限 2023-11-21 22:23:29 +08:00
RuoYi 7be8b2fbe1 升级oshi到最新版本6.4.7 2023-11-20 12:09:11 +08:00
RuoYi 61bc1891c3 升级pagehelper到最新版1.4.7 2023-11-20 12:08:51 +08:00
RuoYi b7f015cd07 升级shiro到最新版本1.13.0 2023-11-20 12:08:30 +08:00
RuoYi d18cd2e662 重置密码鼠标按下显示密码 2023-11-20 12:07:39 +08:00
RuoYi 5f941c6b87 优化注释错误 2023-11-20 12:07:11 +08:00
RuoYi 7d91e58594 优化数字金额大写转换精度丢失问题 2023-11-10 16:29:24 +08:00
RuoYi d7f58f4128 升级oshi到最新版本6.4.6 2023-10-21 15:00:48 +08:00
RuoYi 52b9f43ea0 新增isScrollToTop页签切换滚动到顶部 2023-09-27 19:29:13 +08:00
RuoYi ff6845f5ce a标签#更换为javascript:; 2023-09-27 18:01:45 +08:00
RuoYi e4e2faa93b 修复用户管理跳转部门页签显示问题(I84PGJ) 2023-09-27 12:02:40 +08:00
RuoYi 8dd40158ec 操作日志列表新增IP地址查询 2023-09-26 09:19:30 +08:00
RuoYi 64e6ae4fe4 优化Tab页签切换,会滚动到页面顶部问题(I841ER) 2023-09-26 09:15:41 +08:00
RuoYi f05195d373 优化菜单管理类型为按钮状态可选(I7VZEJ) 2023-09-18 14:38:28 +08:00
RuoYi fbeacbb026 修复自定义字典样式不生效的问题 2023-09-14 17:46:28 +08:00
RuoYi 24d21eda23 修复横向菜单关闭最后一个页签状态问题(I7SVPK) 2023-09-14 10:31:10 +08:00
RuoYi 2cb417dab2 删除无用的传参 2023-09-01 09:40:26 +08:00
RuoYi 6c89c9896a 修复Excels导入时无法获取到dictType字典值问题(I7M4PW) 2023-08-21 15:59:06 +08:00
RuoYi 705e627908 Excel导入数据临时文件无法删除问题 2023-08-19 16:12:16 +08:00
RuoYi 049ca00930 升级oshi到最新版本6.4.4 2023-08-14 19:21:53 +08:00
RuoYi 43dd9ae664 Excel自定义数据处理器增加单元格/工作簿对象 2023-08-13 17:35:28 +08:00
RuoYi 8445d6a078 新增表格参数(数据值为空时显示的内容undefinedText) 2023-08-13 14:57:42 +08:00
RuoYi bf58ce6067 修复弹窗按钮启用禁用方法无效问题(I7L0WA) 2023-08-13 13:05:19 +08:00
RuoYi 364b471d2b 新增定时任务页去除状态选项(I7KU2E) 2023-08-13 11:35:27 +08:00
RuoYi c2deb14284 树表查询无数据时清除分页信息(I7OB0S) 2023-08-12 16:22:29 +08:00
RuoYi 2ebedeb5df 优化代码 2023-08-12 16:21:23 +08:00
RuoYi e4585f5dcb update maven-plugin 2023-08-12 16:20:33 +08:00
若依 62db29627a
!465 前端定时任务菜单中Cron表达式生成器中-日-选项中的--每小时--应为-每日
Merge pull request !465 from wpengsen/master
2023-08-12 08:09:42 +00:00
RuoYi b15106d139 升级shiro到最新版本1.12.0 2023-07-28 20:27:07 +08:00
wpengsen d7a2e80bf6 前端定时任务菜单中Cron表达式生成器中-日-选项中的--每小时--应为-每日 2023-07-20 10:30:21 +08:00
RuoYi e405becf9a 表格重置默认返回到第一页 2023-07-14 11:04:27 +08:00
RuoYi e8d8325ead 排序属性orderBy参数限制长度 2023-07-06 21:52:18 +08:00
RuoYi c21eb3507b 优化代码 2023-07-06 21:51:35 +08:00
RuoYi c92059d356 update sql 2023-07-06 21:49:52 +08:00
RuoYi b36ba5a16c 升级oshi到最新版本6.4.3 2023-06-29 19:36:45 +08:00
RuoYi cc74bde7be optimized code 2023-06-29 19:36:24 +08:00
RuoYi 7358a2027d 升级spring-boot到最新版本2.5.15 2023-06-23 16:25:39 +08:00
RuoYi 21ea871ada update application.yml 2023-06-23 16:24:41 +08:00
RuoYi 1207052749 修复表格行内编辑启用翻页记住选择无效问题(I72OMA) 2023-05-19 10:26:15 +08:00
RuoYi 6f8a388e8e 升级x-editable到最新版本1.5.3 2023-05-19 10:25:55 +08:00
33 changed files with 387 additions and 88 deletions

View File

@ -8,15 +8,21 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.security.Md5Utils;
import com.ruoyi.system.domain.ClewPhone;
import com.ruoyi.system.domain.CompanyApp;
import com.ruoyi.system.domain.OppoCheck;
import com.ruoyi.system.service.IClewPhoneService;
import com.ruoyi.system.service.ICompanyAppService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.web.core.config.GlobalLogHelper;
import lombok.extern.slf4j.Slf4j;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
@ -63,6 +69,9 @@ public class ClewController extends BaseController
@Autowired
private IClewPhoneService clewPhoneService;
@Autowired
private ICompanyAppService companyAppService;
@RequiresPermissions("system:clew:view")
@GetMapping()
public String clew(ModelMap modelMap)
@ -84,6 +93,11 @@ public class ClewController extends BaseController
if(!"admin".equals(getSysUser().getLoginName())){
clew.setSaleId(getSysUser().getUserId());
}
long isSubAdmin = getSysUser().getRoles().stream().filter(x->x.getRoleKey().equals("subAdmin")).count();
if(isSubAdmin > 0 && !"admin".equals(getSysUser().getLoginName())){
clew.setSaleId(null);
clew.setRemark("baidu");
}
List<Clew> list = clewService.selectClewList(clew);
list.forEach(model->{
if(model.getSaleId() != null){
@ -92,6 +106,14 @@ public class ClewController extends BaseController
model.setSaleName(user.getUserName());
}
}
if(model.getSourceApp() != null){
CompanyApp param = new CompanyApp();
param.setCompanyId(model.getSourceApp());
List<CompanyApp> result = companyAppService.selectCompanyAppList(param);
model.setSourceAppName(result.get(0).getAppName());
}else {
model.setSourceAppName("黑猫APP");
}
});
return getDataTable(list);
}
@ -152,6 +174,7 @@ public class ClewController extends BaseController
List<ClewPhone> clewPhoneList = clewPhoneService.selectClewPhoneList(model);
clewPhoneList.forEach(x->{
x.setStatus("1");
x.setSourceApp(clew.getSourceApp());
clewPhoneService.updateClewPhone(x);
});
// 调用oppo的统计接口
@ -182,11 +205,42 @@ public class ClewController extends BaseController
String notice = "VIVO"+ (long)((Math.random()+1) * 10000000);
String url = "https://marketing-api.vivo.com.cn/openapi/v1/advertiser/behavior/upload?access_token="+token+"&timestamp="+timeStamp+"&nonce="+notice;
String content = "{\"dataList\":[{\"cvTime\":"+timeStamp+",\"cvType\":\"PAY\",\"userId\":\""+ clew.getOaid() +"\",\"userIdType\":\"OAID\"}],\"pkgName\":\"com.yinliu.loan\",\"srcId\":\"ds-202310270565\",\"srcType\":\"app\"}";
if(clew.getSourceApp() != null && clew.getSourceApp() == 2L){
content = "{\"dataList\":[{\"cvTime\":"+timeStamp+",\"cvType\":\"PAY\",\"userId\":\""+ clew.getOaid() +"\",\"userIdType\":\"OAID\"}],\"pkgName\":\"com.zh.gdyq\",\"srcId\":\"ds-202404185034\",\"srcType\":\"app\"}";
}
Map<String, String> headerMap = new HashMap<>();
headerMap.put("Content-Type", "application/json");
log.info("请求{}的属性{}", url, content);
String s = HttpUtils.sendPost(url, content, headerMap);
log.info("请求{}的响应{}", url, s);
}else if("xiaomi".equalsIgnoreCase(clew.getRemark())){
log.info("oaid : {}, imei:{}", clew.getOaid(), clew.getImei());
// String imei = clew.getImei();
String oaid = clew.getOaid();
// String ua = "Dalvik/2.1.0 (Linux; U; Android 11; M2012K11AC Build/RKQ1.200826.002)";
String clientIp = "58.49.150.163";
long convTime = System.currentTimeMillis();
String convType = "APP_PAY";
long appId = 1545362;
int customerId = 445972;
String singKey = "FkqMqeKVbCaeSGBI";
String encryptKey = "IIUWoEaMXlzctOqk";
if(clew.getSourceApp() != null && clew.getSourceApp() == 2L){
customerId = 593022;
appId = 1585622;
singKey = "lNebrbVaMMubMqUr";
encryptKey = "hZdCGTMvrOAdVeUq";
}
GlobalLogHelper.UploadInfo uploadInfo = GlobalLogHelper.UploadInfo.builder()
// .imei(imei)
.oaid(oaid)
// .ua(ua)
.clientIp(clientIp)
.convTime(convTime).convType(convType)
.appId(appId).customerId(customerId).signKey(singKey).encryptKey(encryptKey).build().genInfo();
log.info("请求xiaomi的属性{}", uploadInfo.getFinalUrl());
String s = HttpUtils.sendGet(uploadInfo.getFinalUrl());
log.info("请求xiaomi的响应{}", s);
}
}catch (Exception e){
e.printStackTrace();
@ -274,6 +328,11 @@ public class ClewController extends BaseController
@ResponseBody
public AjaxResult changeUser(Clew clew)
{
Clew sourceClew = clewService.selectClewById(clew.getId());
if(!ObjectUtil.equals(sourceClew.getSaleId(), 1L)){
clew.setAssignTimes("02");
}
clew.setUpdateTime(DateUtils.getNowDate());
return toAjax(clewService.updateClew(clew));
}
@ -292,6 +351,11 @@ public class ClewController extends BaseController
if(StringUtils.isEmpty(clew.getIds())){
return AjaxResult.error("请选择线索!");
}
Clew sourceClew = clewService.selectClewById(Long.parseLong(clew.getIds().split(",")[0]));
if(!ObjectUtil.equals(sourceClew.getSaleId(), 1L)){
clew.setAssignTimes("02");
}
clew.setUpdateTime(DateUtils.getNowDate());
clew.setIdList(Arrays.stream(clew.getIds().split(",")).map(Long::parseLong).collect(Collectors.toList()));
return toAjax(clewService.updateBatchClew(clew));
}

View File

@ -7,11 +7,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.ClewImg;
@ -58,9 +54,14 @@ public class ClewImgController extends BaseController
@GetMapping("/app/list")
@ResponseBody
public AjaxResult getAppList()
public AjaxResult getAppList(@RequestParam(value = "sourceApp", required = false) Long sourceApp)
{
List<ClewImg> list = clewImgService.selectClewImgList(new ClewImg());
if(sourceApp == null){
sourceApp = 1L;
}
ClewImg param = new ClewImg();
param.setSourceApp(sourceApp);
List<ClewImg> list = clewImgService.selectClewImgList(param);
List<String> imgList = list.stream().map(ClewImg::getImgUrl).collect(Collectors.toList());
return AjaxResult.success(imgList);
}

View File

@ -5,11 +5,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.ClewMaterial;
@ -56,9 +52,12 @@ public class ClewMaterialController extends BaseController
@PostMapping("/app/list")
@ResponseBody
public TableDataInfo appList(ClewMaterial clewMaterial)
public TableDataInfo appList(@RequestParam(value = "sourceApp", required = false) Long sourceApp, ClewMaterial clewMaterial)
{
startPage();
if(sourceApp == null){
clewMaterial.setSourceApp(1L);
}
List<ClewMaterial> list = clewMaterialService.selectClewMaterialList(clewMaterial);
return getDataTable(list);
}

View File

@ -51,6 +51,13 @@ public class ClewPhoneController extends BaseController
{
startPage();
List<ClewPhone> list = clewPhoneService.selectClewPhoneList(clewPhone);
list.forEach(model->{
if(model.getSourceApp() != null && model.getSourceApp() == 2L){
model.setSourceAppName("大象处理逾期");
}else {
model.setSourceAppName("黑猫搞定逾期");
}
});
return getDataTable(list);
}

View File

@ -5,11 +5,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.ClewVideo;
@ -56,9 +52,14 @@ public class ClewVideoController extends BaseController
@GetMapping("/app/list")
@ResponseBody
public AjaxResult getAppList()
public AjaxResult getAppList(@RequestParam(value = "sourceApp", required = false) Long sourceApp)
{
List<ClewVideo> list = clewVideoService.selectClewVideoList(new ClewVideo());
if(sourceApp == null){
sourceApp = 1L;
}
ClewVideo param = new ClewVideo();
param.setSourceApp(sourceApp);
List<ClewVideo> list = clewVideoService.selectClewVideoList(param);
return AjaxResult.success(list);
}

View File

@ -13,7 +13,6 @@ import com.ruoyi.common.utils.ExceptionUtil;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.security.Md5Utils;
import com.ruoyi.common.utils.uuid.UUID;
import com.ruoyi.system.domain.ClewPhone;
import com.ruoyi.system.domain.NoticeRequest;
import com.ruoyi.system.domain.OppoCheck;
@ -23,10 +22,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
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.ResponseBody;
import org.springframework.web.bind.annotation.*;
import java.security.GeneralSecurityException;
import java.security.Key;
import javax.crypto.Cipher;
@ -61,6 +58,34 @@ public class NoticeController {
return AjaxResult.success("注销成功!");
}
@GetMapping("/exposure")
@ResponseBody
public AjaxResult exposure(){
return AjaxResult.success("曝光成功!");
}
@GetMapping("/click")
@ResponseBody
public AjaxResult click(){
return AjaxResult.success("点击成功!");
}
@GetMapping("/download")
@ResponseBody
public AjaxResult download(){
return AjaxResult.success("下载成功!");
}
@GetMapping("/install")
@ResponseBody
public AjaxResult install(){
return AjaxResult.success("安装成功!");
}
@PostMapping("/getLocation")
@ResponseBody
public AjaxResult getLocationByLot(@RequestBody JSONObject jsonObject){
@ -102,6 +127,27 @@ public class NoticeController {
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
log.info("发送给{}短信响应为{}", request.getPhone(), sendSmsResponse);
CacheUtils.put(request.getPhone(), code);
// 请求次数入库
try {
ClewPhone param = new ClewPhone();
param.setPhone(request.getPhone());
List<ClewPhone> clewPhones = clewPhoneService.selectClewPhoneList(param);
if(CollectionUtils.isEmpty(clewPhones)){
ClewPhone model = new ClewPhone();
model.setPhone(request.getPhone());
model.setCreateTime(new Date());
model.setRemark(request.getFrom());
if(StringUtils.isNotEmpty(request.getSourceApp())){
model.setSourceApp(Long.valueOf(request.getSourceApp()));
}else {
model.setSourceApp(1L);
}
clewPhoneService.insertClewPhone(model);
}
}catch (Exception e){
e.printStackTrace();
log.error("手机号入库失败!,原因:{}", e.getMessage());
}
// 调用oppo的统计接口
try {
if("oppo".equalsIgnoreCase(request.getFrom())){
@ -136,20 +182,27 @@ public class NoticeController {
String s = HttpUtils.sendPost(url, content, headerMap);
log.info("请求{}的响应{}", url, s);
}else if("xiaomi".equalsIgnoreCase(request.getFrom())){
log.info("oaid : {}, imei:{}", request.getOaid(), request.getImei());
String imei = request.getImei();
String oaid = request.getOaid();
String ua = "Dalvik/2.1.0 (Linux; U; Android 11; M2012K11AC Build/RKQ1.200826.002)";
String clientIp = "127.0.0.1";
// String ua = "Dalvik/2.1.0 (Linux; U; Android 11; M2012K11AC Build/RKQ1.200826.002)";
String clientIp = "58.49.150.163";
long convTime = System.currentTimeMillis();
String convType = "APP_PAY_NEW";
String convType = "APP_REGISTER";
int customerId = 445972;
long appId = 1545362;
int customerId = 1545362;
String singKey = "IIUWoEaMXlzctOqk";
String encryptKey = "FkqMqeKVbCaeSGBI";
String singKey = "rEQNdyVQxHlayYzw";
String encryptKey = "RPeKBIdybnbMAVlK";
if(request.getSourceApp() != null && "2".equals(request.getSourceApp())){
customerId = 593022;
appId = 1585622;
singKey = "WJzbmmPPufjyKESi";
encryptKey = "sTrlawivcqdHzUDB";
}
GlobalLogHelper.UploadInfo uploadInfo = GlobalLogHelper.UploadInfo.builder()
.imei(imei)
// .imei(imei)
.oaid(oaid)
.ua(ua)
// .ua(ua)
.clientIp(clientIp)
.convTime(convTime).convType(convType)
.appId(appId).customerId(customerId).signKey(singKey).encryptKey(encryptKey).build().genInfo();
@ -163,22 +216,6 @@ public class NoticeController {
e.printStackTrace();
log.error("回调oppo报错:{}", e.getMessage());
}
// 请求次数入库
try {
ClewPhone param = new ClewPhone();
param.setPhone(request.getPhone());
List<ClewPhone> clewPhones = clewPhoneService.selectClewPhoneList(param);
if(CollectionUtils.isEmpty(clewPhones)){
ClewPhone model = new ClewPhone();
model.setPhone(request.getPhone());
model.setCreateTime(new Date());
model.setRemark(request.getFrom());
clewPhoneService.insertClewPhone(model);
}
}catch (Exception e){
e.printStackTrace();
log.error("手机号入库失败!,原因:{}", e.getMessage());
}
}catch (Exception e){
log.error("给 {} 发送短信失败 {}", request.getPhone(), ExceptionUtil.getExceptionMessage(e));

View File

@ -1,6 +1,6 @@
package com.ruoyi.web.core.config;
import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import cn.hutool.core.codec.Base64;
import lombok.Builder;
import lombok.Data;
import lombok.SneakyThrows;
@ -46,7 +46,7 @@ public class GlobalLogHelper {
private String signature;
private final static String HOST = "http://trail.e.mi.com";
private final static String PATH = "/global/test";
private final static String PATH = "/global/log";
@SneakyThrows
public UploadInfo genInfo() {

View File

@ -16,7 +16,7 @@ ruoyi:
# 开发环境配置
server:
# 服务器的HTTP端口默认为80
port: 8001
port: 19002
servlet:
# 应用的访问路径
context-path: /

View File

@ -10,19 +10,19 @@
<div class="form-group">
<label class="col-sm-3 control-label is-required">广告主:</label>
<div class="col-sm-8">
<input name="company" class="form-control" type="text" required>
<input name="company" class="form-control" type="text" value="1" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">销售:</label>
<div class="col-sm-8">
<input name="saleId" class="form-control" type="text" required>
<input name="saleId" class="form-control" type="text" value="1" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">信息流:</label>
<div class="col-sm-8">
<input name="infoFlow" class="form-control" type="text" required>
<input name="infoFlow" class="form-control" type="text" value="0" readonly>
</div>
</div>
<div class="form-group">
@ -40,6 +40,12 @@
<input name="wxName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">姓名:</label>
<div class="col-sm-8">
<input name="customerName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">手机号:</label>
<div class="col-sm-8">
@ -55,7 +61,7 @@
<div class="form-group">
<label class="col-sm-3 control-label">App来源</label>
<div class="col-sm-8">
<input name="sourceApp" class="form-control" type="text">
<input name="sourceApp" class="form-control" value="8" type="text" readonly>
</div>
</div>
<div class="form-group">
@ -124,12 +130,6 @@
<input name="cityName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">姓名:</label>
<div class="col-sm-8">
<input name="customerName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">方便接电话时间:</label>
<div class="col-sm-8">
@ -148,7 +148,7 @@
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input name="remark" class="form-control" type="text">
<input name="remark" class="form-control" value="baidu" type="text" readonly>
</div>
</div>
</form>

View File

@ -28,17 +28,49 @@
</select>
</li>
<li>
状态:<select name="searchStatus" th:with="type=${@dict.getType('follow_status')}">
加微:<select name="isAddWx" th:with="type=${@dict.getType('is_add_wx')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
有效:<select name="isEffective" th:with="type=${@dict.getType('is_effective')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
意向:<select name="isPlan" th:with="type=${@dict.getType('is_plan')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
成交:<select name="isDeal" th:with="type=${@dict.getType('is_deal')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
来源应用:<select name="sourceApp">
<option value="">所有</option>
<option value="1">黑猫搞定逾期</option>
<option value="2">大象债务处理</option>
<option value="8">百度来源</option>
</select>
</li>
<li class="select-time">
<label>创建时间: </label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
</li>
<li class="select-time">
<label>分配时间: </label>
<input type="text" class="time-input" id="updateStartTime" placeholder="开始时间" name="params[updateStartTime]"/>
<span>-</span>
<input type="text" class="time-input" id="updateEndTime" placeholder="结束时间" name="params[updateEndTime]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
@ -80,6 +112,7 @@
var isPlan = [[${@dict.getType('is_plan')}]];
var isDeal = [[${@dict.getType('is_deal')}]];
var customerStatus = [[${@dict.getType('customer_status')}]];
var assignStatus = [[${@dict.getType('assign_status')}]];
var prefix = ctx + "system/clew";
@ -99,14 +132,17 @@
title: '主键',
visible: false
},
{
field: 'sourceAppName',
title: '来源App'
},
{
field: 'phone',
title: '手机号'
},
{
field: 'customerName',
title: '姓名',
visible: false
title: '姓名'
},
{
field: 'wxName',
@ -115,7 +151,8 @@
},
{
field: 'debtType',
title: '债务类型'
title: '债务类型',
visible: false
},
{
field: 'debtMoney',
@ -129,10 +166,25 @@
field: 'customerRemark',
title: '客户情况备注'
},
{
field: 'twoCustomerRemark',
title: '二次跟进情况'
},
{
field: 'createTime',
title: '创建时间'
},
{
field: 'updateTime',
title: '分配时间'
},
{
field: 'assignTimes',
title: '二次分配',
formatter: function(value, row, index) {
return $.table.selectDictLabel(assignStatus, value);
}
},
{
field: 'sourceType',
title: '推广来源',
@ -208,15 +260,18 @@
},
{
field: 'cityName',
title: '城市'
title: '城市',
visible: false
},
{
field: 'contactTime',
title: '方便接电话时间'
title: '方便接电话时间',
visible: false
},
{
field: 'otherPhone',
title: '其他联系方式'
title: '其他联系方式',
visible: false
},
{
field: 'company',

View File

@ -23,6 +23,12 @@
<input name="wxName" th:field="*{wxName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">姓名:</label>
<div class="col-sm-8">
<input name="customerName" th:field="*{customerName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">手机号:</label>
<div class="col-sm-8">
@ -100,12 +106,6 @@
<input name="cityName" th:field="*{cityName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">姓名:</label>
<div class="col-sm-8">
<input name="customerName" th:field="*{customerName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">方便接电话时间:</label>
<div class="col-sm-8">
@ -127,6 +127,12 @@
<input name="remark" th:field="*{customerRemark}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户二次情况备注:</label>
<div class="col-sm-8">
<input name="twoCustomerRemark" th:field="*{twoCustomerRemark}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">

View File

@ -14,6 +14,12 @@
<input type="file" name="imgUrlImg" id="imgUrlImg" multiple class="file" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">来源app</label>
<div class="col-sm-8">
<input name="sourceApp" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">

View File

@ -13,6 +13,12 @@
<input name="imgUrl" th:field="*{imgUrl}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">来源APP</label>
<div class="col-sm-8">
<input name="sourceApp" th:field="*{sourceApp}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">

View File

@ -68,6 +68,10 @@
field: 'imgUrl',
title: '图片链接'
},
{
field: 'sourceApp',
title: '来源APP'
},
{
field: 'remark',
title: '备注'

View File

@ -46,6 +46,12 @@
<input name="applyNum" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">来源App</label>
<div class="col-sm-8">
<input name="sourceApp" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">线索提交内容:</label>
<div class="col-sm-8">

View File

@ -38,6 +38,12 @@
<input name="applyNum" th:field="*{applyNum}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">来源APP</label>
<div class="col-sm-8">
<input name="sourceApp" th:field="*{sourceApp}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">线索提交内容:</label>
<div class="col-sm-8">

View File

@ -104,6 +104,10 @@
field: 'clewContent',
title: '线索提交内容'
},
{
field: 'sourceApp',
title: '来源APP'
},
{
title: '操作',
align: 'center',

View File

@ -20,6 +20,12 @@
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
来源应用:<select name="sourceApp">
<option value="">所有</option>
<option value="1">黑猫搞定逾期</option>
<option value="2">大象债务处理</option>
</select>
<li class="select-time">
<label>创建时间: </label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
@ -78,6 +84,10 @@
title: '主键',
visible: false
},
{
field: 'sourceAppName',
title: '来源App'
},
{
field: 'phone',
title: '手机号'

View File

@ -33,6 +33,12 @@
<input name="videoShowDate" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">来源APP</label>
<div class="col-sm-8">
<input name="sourceApp" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">

View File

@ -19,6 +19,12 @@
<input name="videoTitle" th:field="*{videoTitle}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">来源APP</label>
<div class="col-sm-8">
<input name="sourceApp" th:field="*{sourceApp}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示时间:</label>
<div class="col-sm-8">

View File

@ -88,6 +88,10 @@
field: 'videoShowDate',
title: '显示时间'
},
{
field: 'sourceApp',
title: '来源APP'
},
{
field: 'remark',
title: '备注'

View File

@ -69,6 +69,9 @@ public class Clew extends BaseEntity
@Excel(name = "App来源")
private Long sourceApp;
@Excel(name = "来源APP名称")
private String sourceAppName;
/** 微信号 */
@Excel(name = "微信号")
private String wxAccount;
@ -121,6 +124,8 @@ public class Clew extends BaseEntity
@Excel(name = "姓名")
private String customerName;
private String assignTimes;
/** 方便接电话时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "方便接电话时间", width = 30, dateFormat = "yyyy-MM-dd")
@ -133,6 +138,9 @@ public class Clew extends BaseEntity
@Excel(name = "客户情况备注")
private String customerRemark;
@Excel(name = "客户二次情况备注")
private String twoCustomerRemark;
private String searchStatus;
private String imei;

View File

@ -22,5 +22,7 @@ public class ClewImg extends BaseEntity
@Excel(name = "图片链接")
private String imgUrl;
private Long sourceApp;
}

View File

@ -45,4 +45,6 @@ public class ClewMaterial extends BaseEntity
@Excel(name = "线索提交内容")
private String clewContent;
private Long sourceApp;
}

View File

@ -27,4 +27,10 @@ public class ClewPhone extends BaseEntity
private String status;
private Long sourceApp;
@Excel(name = "来源APP名称")
private String sourceAppName;
}

View File

@ -33,4 +33,6 @@ public class ClewVideo extends BaseEntity
@Excel(name = "显示时间")
private String videoShowDate;
private Long sourceApp;
}

View File

@ -27,4 +27,7 @@ public class NoticeRequest {
private String oaid;
private String from;
private String sourceApp;
}

View File

@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
import java.util.List;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.http.HttpUtils;
@ -12,6 +13,7 @@ import com.ruoyi.system.mapper.ClewMapper;
import com.ruoyi.system.domain.Clew;
import com.ruoyi.system.service.IClewService;
import com.ruoyi.common.core.text.Convert;
import org.springframework.util.ObjectUtils;
/**
* 线索Service业务层处理
@ -65,10 +67,16 @@ public class ClewServiceImpl implements IClewService
smsContent.put("uid", "12347");
smsContent.put("pwd", "wJgzaC0u");
smsContent.put("mobile", "18580868339");
if(clew.getSourceApp() != null && clew.getSourceApp() == 2L){
smsContent.put("content", "你有一条来自大象,新线索生成,客户电话:" + clew.getPhone() + "(请注意及时跟进)");
}else {
smsContent.put("content", "你有一条来自黑猫,新线索生成,客户电话:" + clew.getPhone() + "(请注意及时跟进)");
}
if(!ObjectUtil.equals(clew.getSourceApp(), 8L)){
log.info("请求傲众短信入参:{}", smsContent.toJSONString());
String s = HttpUtils.sendPost("http://www.aozhongyun.com/Admin/index.php/Message/send", smsContent.toJSONString());
log.info("请求傲众短信url:{}, 响应:{}", "http://www.aozhongyun.com/Admin/index.php/Message/send", s);
}
}catch (Exception e){
log.error("请求傲众短信url:{}, 报错:{}","http://www.aozhongyun.com/Admin/index.php/Message/send", e.getMessage());
}
@ -85,14 +93,12 @@ public class ClewServiceImpl implements IClewService
@Override
public int updateClew(Clew clew)
{
clew.setUpdateTime(DateUtils.getNowDate());
return clewMapper.updateClew(clew);
}
@Override
public int updateBatchClew(Clew clew)
{
clew.setUpdateTime(DateUtils.getNowDate());
return clewMapper.updateBatchClew(clew);
}

View File

@ -7,6 +7,7 @@
<resultMap type="ClewImg" id="ClewImgResult">
<result property="id" column="id" />
<result property="imgUrl" column="img_url" />
<result property="sourceApp" column="source_app" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
@ -15,13 +16,14 @@
</resultMap>
<sql id="selectClewImgVo">
select id, img_url, create_time, create_by, update_time, update_by, remark from clew_img
select id, img_url, source_app, create_time, create_by, update_time, update_by, remark from clew_img
</sql>
<select id="selectClewImgList" parameterType="ClewImg" resultMap="ClewImgResult">
<include refid="selectClewImgVo"/>
<where>
<if test="imgUrl != null and imgUrl != ''"> and img_url = #{imgUrl}</if>
<if test="sourceApp != null"> and source_app = #{sourceApp}</if>
</where>
</select>
@ -34,6 +36,7 @@
insert into clew_img
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="imgUrl != null">img_url,</if>
<if test="sourceApp != null">source_app,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
@ -42,6 +45,7 @@
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="imgUrl != null">#{imgUrl},</if>
<if test="sourceApp != null">#{sourceApp},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
@ -54,6 +58,7 @@
update clew_img
<trim prefix="SET" suffixOverrides=",">
<if test="imgUrl != null">img_url = #{imgUrl},</if>
<if test="sourceApp != null">source_app = #{sourceApp},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>

View File

@ -37,6 +37,8 @@
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="customerRemark" column="customer_remark" />
<result property="twoCustomerRemark" column="two_customer_remark"/>
<result property="assignTimes" column="assign_times" />
</resultMap>
<sql id="selectClewVo">
@ -45,7 +47,7 @@
source_app, wx_account, customer_status, customer_level, touch_qrcode,
contact_number, is_touch, is_add_wx, is_effective, is_plan, is_deal,
province_name, city_name, customer_name, contact_time, other_phone,
create_time, create_by, update_by, update_time, remark, customer_remark from clew
create_time, create_by, update_by, update_time, remark, customer_remark,two_customer_remark,assign_times from clew
</sql>
<select id="selectClewList" parameterType="Clew" resultMap="ClewResult">
@ -89,14 +91,30 @@
<if test="searchStatus == '04'">
and is_deal = '1'
</if>
<if test="searchStatus == '05'">
and is_add_wx != '1'
</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
<if test="params.updateStartTime != null and params.updateStartTime != ''"><!-- 开始时间检索 -->
AND date_format(update_time,'%y%m%d') &gt;= date_format(#{params.updateStartTime},'%y%m%d')
</if>
<if test="params.updateEndTime != null and params.updateEndTime != ''"><!-- 结束时间检索 -->
AND date_format(update_time,'%y%m%d') &lt;= date_format(#{params.updateEndTime},'%y%m%d')
</if>
</where>
<choose>
<when test="saleId != null ">
order by update_time desc
</when>
<otherwise>
order by create_time desc
</otherwise>
</choose>
</select>
<select id="selectClewById" parameterType="Long" resultMap="ClewResult">
@ -206,6 +224,8 @@
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="customerRemark != null">customer_remark = #{customerRemark},</if>
<if test="twoCustomerRemark != null">two_customer_remark = #{twoCustomerRemark},</if>
<if test="assignTimes != null">assign_times = #{assignTimes},</if>
</trim>
where id = #{id}
</update>
@ -214,6 +234,8 @@
update clew
<trim prefix="SET" suffixOverrides=",">
<if test="saleId != null">sale_id = #{saleId},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="assignTimes != null">assign_times = #{assignTimes},</if>
</trim>
<where>
<if test="idList != null and idList.size() > 0">

View File

@ -13,6 +13,7 @@
<result property="detail" column="detail" />
<result property="applyNum" column="apply_num" />
<result property="clewContent" column="clew_content" />
<result property="sourceApp" column="source_app" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
@ -20,7 +21,7 @@
</resultMap>
<sql id="selectClewMaterialVo">
select id, title, img_url, video_img, labels, detail, apply_num, clew_content, create_by, create_time, update_by, update_time from clew_material
select id, title, img_url, video_img, labels, detail, apply_num, clew_content, source_app, create_by, create_time, update_by, update_time from clew_material
</sql>
<select id="selectClewMaterialList" parameterType="ClewMaterial" resultMap="ClewMaterialResult">
@ -32,6 +33,7 @@
<if test="labels != null and labels != ''"> and labels = #{labels}</if>
<if test="applyNum != null and applyNum != ''"> and apply_num = #{applyNum}</if>
<if test="clewContent != null and clewContent != ''"> and clew_content = #{clewContent}</if>
<if test="sourceApp != null "> and source_app = #{sourceApp}</if>
</where>
</select>
@ -50,6 +52,7 @@
<if test="detail != null">detail,</if>
<if test="applyNum != null">apply_num,</if>
<if test="clewContent != null">clew_content,</if>
<if test="sourceApp != null">source_app,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
@ -63,6 +66,7 @@
<if test="detail != null">#{detail},</if>
<if test="applyNum != null">#{applyNum},</if>
<if test="clewContent != null">#{clewContent},</if>
<if test="sourceApp != null">#{sourceApp},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
@ -80,6 +84,7 @@
<if test="detail != null">detail = #{detail},</if>
<if test="applyNum != null">apply_num = #{applyNum},</if>
<if test="clewContent != null">clew_content = #{clewContent},</if>
<if test="sourceApp != null">source_app = #{sourceApp},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>

View File

@ -7,6 +7,7 @@
<resultMap type="ClewPhone" id="ClewPhoneResult">
<result property="id" column="id" />
<result property="phone" column="phone" />
<result property="sourceApp" column="source_app" />
<result property="status" column="status" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
@ -16,13 +17,14 @@
</resultMap>
<sql id="selectClewPhoneVo">
select id, phone,status, create_time, create_by, update_by, update_time, remark from clew_phone
select id, phone,status,source_app, create_time, create_by, update_by, update_time, remark from clew_phone
</sql>
<select id="selectClewPhoneList" parameterType="ClewPhone" resultMap="ClewPhoneResult">
<include refid="selectClewPhoneVo"/>
<where>
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
<if test="sourceApp != null"> and source_app = #{sourceApp}</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
@ -45,6 +47,7 @@
insert into clew_phone
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="phone != null">phone,</if>
<if test="sourceApp != null">source_app,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
@ -53,6 +56,7 @@
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="phone != null">#{phone},</if>
<if test="sourceApp != null">#{sourceApp},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
@ -65,6 +69,7 @@
update clew_phone
<trim prefix="SET" suffixOverrides=",">
<if test="phone != null">phone = #{phone},</if>
<if test="sourceApp != null">source_app = #{sourceApp},</if>
<if test="status != null">status = #{status},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>

View File

@ -10,6 +10,7 @@
<result property="videoImg" column="video_img" />
<result property="videoTitle" column="video_title" />
<result property="videoShowDate" column="video_show_date" />
<result property="sourceApp" column="source_app" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
<result property="updateTime" column="update_time" />
@ -18,13 +19,14 @@
</resultMap>
<sql id="selectClewVideoVo">
select id, video_url, video_img, video_title, video_show_date, create_time, create_by, update_time, update_by, remark from clew_video
select id, video_url, video_img, video_title, video_show_date,source_app, create_time, create_by, update_time, update_by, remark from clew_video
</sql>
<select id="selectClewVideoList" parameterType="ClewVideo" resultMap="ClewVideoResult">
<include refid="selectClewVideoVo"/>
<where>
<if test="videoUrl != null and videoUrl != ''"> and video_url = #{videoUrl}</if>
<if test="sourceApp != null"> and source_app = #{sourceApp}</if>
<if test="videoTitle != null and videoTitle != ''"> and video_title = #{videoTitle}</if>
<if test="videoShowDate != null and videoShowDate != ''"> and video_show_date = #{videoShowDate}</if>
</where>
@ -42,6 +44,7 @@
<if test="videoImg != null">video_img,</if>
<if test="videoTitle != null">video_title,</if>
<if test="videoShowDate != null">video_show_date,</if>
<if test="sourceApp != null">source_app,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateTime != null">update_time,</if>
@ -53,6 +56,7 @@
<if test="videoImg != null">#{videoImg},</if>
<if test="videoTitle != null">#{videoTitle},</if>
<if test="videoShowDate != null">#{videoShowDate},</if>
<if test="sourceApp != null">#{sourceApp},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateTime != null">#{updateTime},</if>
@ -68,6 +72,7 @@
<if test="videoImg != null">video_img = #{videoImg},</if>
<if test="videoTitle != null">video_title = #{videoTitle},</if>
<if test="videoShowDate != null">video_show_date = #{videoShowDate},</if>
<if test="sourceApp != null">source_app = #{sourceApp},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>