Commit 599b0627 authored by 赵啸非's avatar 赵啸非

皮肤修改模板同步添加属性

parent 6ca0cbe2
...@@ -21,4 +21,7 @@ public class MatterVo extends BaseEntityLong { ...@@ -21,4 +21,7 @@ public class MatterVo extends BaseEntityLong {
*/ */
private List <String> eventTypeShowNotList; private List <String> eventTypeShowNotList;
} }
\ No newline at end of file
...@@ -27,6 +27,7 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> { ...@@ -27,6 +27,7 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> {
MatterDao getDao(); MatterDao getDao();
/** /**
* 添加业务到站点 * 添加业务到站点
* *
...@@ -66,6 +67,7 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> { ...@@ -66,6 +67,7 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> {
/** /**
* 查找差集子项 * 查找差集子项
*
* @param matterQuery * @param matterQuery
* @param pageInfo * @param pageInfo
* @param context * @param context
...@@ -75,4 +77,14 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> { ...@@ -75,4 +77,14 @@ public interface MatterService extends ICRUDService<MatterEntity, Long> {
Result<MatterEntity> findSubList(MatterEntity matterQuery, PageInfo pageInfo, Context context) throws AppException; Result<MatterEntity> findSubList(MatterEntity matterQuery, PageInfo pageInfo, Context context) throws AppException;
Result<MatterInfo> findMicroList(MatterQuery matterQuery, PageInfo pageInfo, Context context) throws AppException; Result<MatterInfo> findMicroList(MatterQuery matterQuery, PageInfo pageInfo, Context context) throws AppException;
/**
* 生成事项文本
* @param context
* @return
*/
Rest<Void> genMatterTxt(MatterQuery matterQuery,Context context);
Rest<Void> genMatterMarkdown(MatterQuery matterQuery,Context context);
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.service.impl; package com.mortals.xhx.module.matter.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.PageUtil; import cn.hutool.core.util.PageUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.setting.Setting; import cn.hutool.setting.Setting;
...@@ -315,6 +316,11 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter ...@@ -315,6 +316,11 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
return matterInfoResult; return matterInfoResult;
} }
/**
* @param context
* @return
*/
@Override @Override
public void syncMatter(String areaCode, Context context) { public void syncMatter(String areaCode, Context context) {
...@@ -1033,7 +1039,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter ...@@ -1033,7 +1039,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
while (reCount < MAX_RETRY_COUNT) { while (reCount < MAX_RETRY_COUNT) {
try { try {
if (ObjectUtils.isEmpty(matterEntity.getUrl())) { if (ObjectUtils.isEmpty(matterEntity.getUrl())) {
// bool = true; // bool = true;
msg = "事项url不能为空!"; msg = "事项url不能为空!";
break; break;
//return Rest.fail("事项url不能为空!"); //return Rest.fail("事项url不能为空!");
...@@ -1063,11 +1069,11 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter ...@@ -1063,11 +1069,11 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
if (matterEditionLocal >= matterEditionRemote) { if (matterEditionLocal >= matterEditionRemote) {
//bool = true; //bool = true;
msg = "本地事项版本大于等于远端,不需要更新!!"; msg = "本地事项版本大于等于远端,不需要更新!!";
// break; // break;
// return Rest.fail("本地事项版本大于等于远端,不需要更新!"); // return Rest.fail("本地事项版本大于等于远端,不需要更新!");
} }
// log.info("更新详细事项==>{},id===>{},localVersion===>{},newVersion==>{}", matterEntity.getMatterName(),matterEntity.getId(),matterEntity.getMatterEdition(), matterEditionRemote); // log.info("更新详细事项==>{},id===>{},localVersion===>{},newVersion==>{}", matterEntity.getMatterName(),matterEntity.getId(),matterEntity.getMatterEdition(), matterEditionRemote);
//更新部门信息 //更新部门信息
DeptEntity extCache = deptService.getExtCache(matterEntity.getDeptCode()); DeptEntity extCache = deptService.getExtCache(matterEntity.getDeptCode());
matterEntity.setDeptName(extCache == null ? "" : extCache.getName()); matterEntity.setDeptName(extCache == null ? "" : extCache.getName());
...@@ -1099,7 +1105,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter ...@@ -1099,7 +1105,7 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
//更新事项更新标志 //更新事项更新标志
matterEntity.setHaveGetMatterInfo("true"); matterEntity.setHaveGetMatterInfo("true");
matterEntity.setMatterEdition(matterEditionRemote+""); matterEntity.setMatterEdition(matterEditionRemote + "");
return Rest.ok("更新详细成功!"); return Rest.ok("更新详细成功!");
...@@ -1393,4 +1399,309 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter ...@@ -1393,4 +1399,309 @@ public class MatterServiceImpl extends AbstractCRUDServiceImpl<MatterDao, Matter
} }
@Override
public Rest<Void> genMatterTxt(MatterQuery matterQuery, Context context) {
List<String> strList = new ArrayList<>();
List<MatterEntity> mattersList = this.find(matterQuery);
for (MatterEntity matterEntity : mattersList) {
if (ObjectUtils.isEmpty(matterEntity.getUrl())) {
continue;
}
StringBuilder sb = new StringBuilder();
int reCount = 0;
while (reCount < MAX_RETRY_COUNT) {
try {
Document dom = Jsoup.connect(matterEntity.getUrl())
.ignoreContentType(true)
.ignoreHttpErrors(true)
.timeout(60 * 1000).get();
// sb.append(matterEntity.getMatterName()).append("\n");
//基本属性
sb.append(matterEntity.getMatterName()).append("-基本信息,");
Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
StringBuilder sb1 = new StringBuilder();
for (Map.Entry<String, String> entry : baseInfoMap.entrySet()) {
if(sb1.length()>360){
sb.append(sb1);
sb.append("\n");
sb1 = new StringBuilder();
sb.append(matterEntity.getMatterName()).append("-基本信息,");
}
sb1.append(entry.getKey()).append(" ").append(entry.getValue());
}
sb.append(sb1);
sb.append("\n");
//更新材料属性
sb.append(matterEntity.getMatterName()).append("-申请材料,");
List<Map<String, Object>> sqclList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom);
for (Map<String, Object> sqclMap : sqclList) {
Map<String, String> baseinfoMap = (HashMap<String, String>) sqclMap.get("baseinfo");
for (Map.Entry<String, String> entry : baseinfoMap.entrySet()) {
if(!"材料名称".equals(entry.getKey())){
continue;
}
sb.append(entry.getKey()).append(" ").append(entry.getValue());
}
/* List<MatterDatumFileEntity> datumFileEntities = (List<MatterDatumFileEntity>) sqclMap.get("blankList");
for (MatterDatumFileEntity datumFileEntity : datumFileEntities) {
sb.append("材料名称").append(" ").append(datumFileEntity.getFileName());
sb.append("材料地址").append(" ").append(datumFileEntity.getFileUrl());
}*/
}
//更新受理条件
sb.append("\n");
sb.append(matterEntity.getMatterName()).append("-受理条件,");
Map<String, String> sltjMap = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom);
String sltjStr = sltjMap.getOrDefault("sltj", " ");
sb.append(sltjStr);
//更新办理流程
sb.append("\n");
sb.append(matterEntity.getMatterName()).append("-办理流程,");
List<Map<String, Object>> bllcMapList = MatterDetailHtmlParseUtil.getbllcMapByHtml(dom);
for (Map<String, Object> bllcMap : bllcMapList) {
for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
sb.append(entry.getKey()).append(" ").append(entry.getValue());
}
}
//更新收费标准
sb.append("\n");
sb.append(matterEntity.getMatterName()).append("-收费标准,");
Map<String, String> sfbzMap = MatterDetailHtmlParseUtil.getSfbzMapByHtml(dom);
String sfbzStr = sfbzMap.getOrDefault("sfbz", " ");
sb.append(sfbzStr);
sb.append("\n");
//设定依据
/* sb.append(matterEntity.getMatterName()).append("-设定依据,");
List<Map<String, Object>> sdyjMapList = MatterDetailHtmlParseUtil.getSdyjMapByHtml(dom);
StringBuilder sb2 = new StringBuilder();
for (Map<String, Object> bllcMap : sdyjMapList) {
for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
if(sb2.length()>360){
sb.append(sb2);
sb.append("\n");
sb2 = new StringBuilder();
sb.append(matterEntity.getMatterName()).append("-设定依据,");
}
sb2.append(entry.getKey()).append(" ").append(entry.getValue());
}
}
sb.append(sb2);*/
//中介服务
sb.append("\n");
sb.append(matterEntity.getMatterName()).append("-中介服务,");
Map<String, String> zjfwMap = MatterDetailHtmlParseUtil.getZjfwMapByHtml(dom);
for (Map.Entry<String, String> entry : zjfwMap.entrySet()) {
sb.append(entry.getKey()).append(" ").append(entry.getValue());
}
//常见问题
sb.append("\n");
sb.append(matterEntity.getMatterName()).append("-常见问题,");
StringBuilder sb3 = new StringBuilder();
List<Map<String, Object>> cjwtMapList = MatterDetailHtmlParseUtil.getCjwtMapByHtml(dom);
for (Map<String, Object> bllcMap : cjwtMapList) {
for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
if(sb3.length()>360){
sb.append(sb3);
sb.append("\n");
sb3 = new StringBuilder();
sb.append(matterEntity.getMatterName()).append("-常见问题,");
}
sb3.append(entry.getKey()).append(" ").append(entry.getValue());
}
}
sb.append(sb3);
strList.add(sb.toString());
log.info("事项名称:{}",matterEntity.getMatterName());
break;
} catch (Exception e) {
log.error("异常", e);
reCount++;
try {
Thread.sleep(2000);
} catch (InterruptedException ie) {
}
}
}
}
//todo 实时爬取后组合
String path = "E:\\temp.csv";
FileUtil.writeUtf8Lines(strList,path);
return Rest.ok();
}
@Override
public Rest<Void> genMatterMarkdown(MatterQuery matterQuery, Context context) {
List<String> strList = new ArrayList<>();
List<MatterEntity> mattersList = this.find(matterQuery);
for (MatterEntity matterEntity : mattersList) {
if (ObjectUtils.isEmpty(matterEntity.getUrl())) {
continue;
}
StringBuilder sb = new StringBuilder();
int reCount = 0;
while (reCount < MAX_RETRY_COUNT) {
try {
Document dom = Jsoup.connect(matterEntity.getUrl())
.ignoreContentType(true)
.ignoreHttpErrors(true)
.timeout(60 * 1000).get();
//基本属性
sb.append("# "+matterEntity.getMatterName()+"\n");
sb.append("\n");
sb.append("## 基本信息\n");
Map<String, String> baseInfoMap = MatterDetailHtmlParseUtil.getbaseInfoMapByHtml(dom);
for (Map.Entry<String, String> entry : baseInfoMap.entrySet()) {
sb.append(entry.getKey()).append(" ").append(entry.getValue());
sb.append("\n");
}
sb.append("\n");
//更新材料属性
sb.append("## 申请材料\n");
List<Map<String, Object>> sqclList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom);
for (Map<String, Object> sqclMap : sqclList) {
Map<String, String> baseinfoMap = (HashMap<String, String>) sqclMap.get("baseinfo");
for (Map.Entry<String, String> entry : baseinfoMap.entrySet()) {
if("要求提供材料的依据".equals(entry.getKey())) continue;
sb.append(entry.getKey()).append(" ").append(entry.getValue());
sb.append("\n");
}
}
//更新受理条件
sb.append("\n");
sb.append("## 受理条件\n");
Map<String, String> sltjMap = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom);
String sltjStr = sltjMap.getOrDefault("sltj", " ");
sb.append(sltjStr);
//更新办理流程
sb.append("\n");
sb.append("## 办理流程\n");
List<Map<String, Object>> bllcMapList = MatterDetailHtmlParseUtil.getbllcMapByHtml(dom);
for (Map<String, Object> bllcMap : bllcMapList) {
for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
if("sort".equals(entry.getKey())){
sb.append("流程").append(":").append(entry.getValue());
}else{
sb.append(entry.getKey()).append(" ").append(entry.getValue());
}
sb.append("\n");
}
}
//更新收费标准
sb.append("\n");
sb.append("## 收费标准\n");
Map<String, String> sfbzMap = MatterDetailHtmlParseUtil.getSfbzMapByHtml(dom);
String sfbzStr = sfbzMap.getOrDefault("sfbz", " ");
sb.append(sfbzStr);
//设定依据
/* sb.append(matterEntity.getMatterName()).append("-设定依据,");
List<Map<String, Object>> sdyjMapList = MatterDetailHtmlParseUtil.getSdyjMapByHtml(dom);
StringBuilder sb2 = new StringBuilder();
for (Map<String, Object> bllcMap : sdyjMapList) {
for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
if(sb2.length()>360){
sb.append(sb2);
sb.append("\n");
sb2 = new StringBuilder();
sb.append(matterEntity.getMatterName()).append("-设定依据,");
}
sb2.append(entry.getKey()).append(" ").append(entry.getValue());
}
}
sb.append(sb2);*/
//中介服务
sb.append("\n");
sb.append("## 中介服务\n");
Map<String, String> zjfwMap = MatterDetailHtmlParseUtil.getZjfwMapByHtml(dom);
if(zjfwMap.size()>0){
for (Map.Entry<String, String> entry : zjfwMap.entrySet()) {
sb.append(entry.getKey()).append(" ").append(entry.getValue());
}
}else{
sb.append("无\n");
}
//常见问题
sb.append("\n");
sb.append("## 常见问题\n");
List<Map<String, Object>> cjwtMapList = MatterDetailHtmlParseUtil.getCjwtMapByHtml(dom);
for (Map<String, Object> bllcMap : cjwtMapList) {
for (Map.Entry<String, Object> entry : bllcMap.entrySet()) {
sb.append(entry.getKey()).append(" ").append(entry.getValue());
sb.append("\n");
}
}
strList.add(sb.toString());
log.info("事项名称:{}",matterEntity.getMatterName());
break;
} catch (Exception e) {
log.error("异常", e);
reCount++;
try {
Thread.sleep(2000);
} catch (InterruptedException ie) {
}
}
}
}
String path = "E:\\gov.md";
FileUtil.writeUtf8Lines(strList,path);
return Rest.ok();
}
public static void main(String[] args) {
/*
ArrayList<MatterEntity> matterEntities = new ArrayList<>();
MatterEntity matterEntity = new MatterEntity();
matterEntity.initAttrValue();
matterEntities.add(matterEntity);
String path = "E:\\1.txt";
FileUtil.writeUtf8Lines(matterEntities, path);
*/
StringBuilder sb = new StringBuilder();
sb.append("问:小区经业主大会续聘(或选聘)物业服务企业的,物业服务合同备案对召开会议时间是否有要求? 答:有。根据《四川省业主大会和业主委员会指导规则》相关要求,业主委员会应当自提议确定之日起,将业主大会会议拟表决事项在物业管理区域内显著位置公示并告知相关的居民(村民)委员会,公示期不少于15日。\n" +
"住宅专项维修资金交存-基本信息,是否支持全省就近办理 否是否支持物流快递 否业务办理项编码 11510821008501563R451201700100301认证等级需求 实名认证名称 操作承诺办结时限 1个工作日基本编码 512017001003计划生效日期 无法定办结时限 1个工作日实施主体编码 11510821008501563R网办地址 点击访问服务对象 自然人咨询方式 咨询电话:0825-5428572;事项状态 在用办理时间 星期一至星期五 上午:08:30-12:00 下午:14:00-17:30 备注:法定节假日除外;实施主体性质 受委托组织是否进驻政务大厅 是村居社区名称 无权力来源 上级下放村居社区代码 无法定时限办结说明 自受理之日起,在法定期限内办结行使层级 县级到办事现场次数 0住宅专项维修资金交存-基本信息,网办类型 全程网办实施主体 蓬溪县住房和城乡建设局是否网办 是监督投诉方式 投诉电话:0825-12345;事项类型 公共服务行使方式 依申请行使承诺时限办结说明 自受理之日起,在承诺期限内办结是否支持全省就近取件 否是否支持预约办理 否事项版本 19联办机构 无办件类型 即办件通办范围 无是否支持上门收取申请材料 否是否支持自助终端办理 否数量限制 无办理形式 窗口办理、网上办理乡镇街道名称 无是否支持网上支付 否委托部门 蓬溪县住房保障和房屋管理局乡镇街道代码 无是否收费 否网上办理深度 互联网咨询、互联网收件、互联网预审、互联网受理、互联网办理、互联网办理结果信息反馈实施编码 11510821008501563R4512017001003特别程序 必须到现场原因 无住宅专项维修资金交存-基本信息,办理地点 四川省-遂宁市-蓬溪县-蜀北中路街道-108号,详细地址:蓬溪县住房保障和房屋管理局三楼办公室;计划取消日期 无\n" +
"住宅专项维修资金交存-申请材料,材料名称 公有住房买卖合同材料名称 身份证明材料材料名称 商品房买卖合同\n" +
"住宅专项维修资金交存-受理条件,四川省行政区域内商品住宅、售后公有住房住宅专项维修资金(以下称维修资金)的交存、使用、管理和监督,拟申请住宅专项维修资金交存。\n" +
"住宅专项维修资金交存-办理流程,转外时限 0个工作日sort 1办理流程 受理办理流程说明 1.申请:申请人到政务服务中心综合 窗口提交申请材料;2.受理:窗口工作人员收到申请材料当场或者规定工作日内作出受理或不予受理决定。材料不齐全或不符合法定形式的,办理机关应在规定工作日内一次性告知申请人需要补正的全部内容,对不属于受理范围的,出具不予受理通知书;3.审查:办理人员对申请人提交的材料进行审查,提出初步审查意见;4.决定:办理机关负责人依据审查意见签署审批结果。对予批准办理的,由办理机关向申请人核发办理结果,不予批准的,由办理机关书面通知申请人并说明理由,并告知申请人对结果有异议的,可依法申请行政复议或者提起行政诉讼;5.制证:制证部门完成制证;6.颁发和送达:申请人凭个人身份证明(有效的身份证、临时居住证、户口簿等)和受理通知书到申办窗口领取办理结果。办理时长 0个工作日转外时限 0个工作日sort 2办理流程 办结办理时长 0个工作日\n" +
"住宅专项维修资金交存-收费标准,该事项无收费标准!\n" +
"住宅专项维修资金交存-设定依据,法规类型 部门规章条例 第六条条款内容 下列物业的业主应当按照本办法的规定交存住宅专项维修资金: (一)住宅,但一个业主所有且与其他物业不具有共用部位、共用设施设备的除外; (二)住宅小区内的非住宅或者住宅小区外与单幢住宅结构相连的非住宅。 前款所列物业属于出售公有住房的,售房单位应当按照本办法的规定交存住宅专项维修资金。法律法规名称 住宅专项维修资金管理办法sort 1法规类型 地方法规条例 第六十九条条款内容 住宅物业和住宅区内的非住宅物业出售时,物业出售人和买受人应当按照国家和省的规定交存专项维修资金。法律法规名称 四川省物业管理条例sort 2");
System.out.println(sb.length());
}
} }
\ No newline at end of file
...@@ -9,12 +9,14 @@ import com.mortals.framework.model.Context; ...@@ -9,12 +9,14 @@ import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.model.Result; import com.mortals.framework.model.Result;
import com.mortals.framework.util.DataUtil; import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.ThreadPool;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
import com.mortals.xhx.base.framework.config.InterceptorConfig; import com.mortals.xhx.base.framework.config.InterceptorConfig;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.JointInfoShowEnum; import com.mortals.xhx.common.code.JointInfoShowEnum;
import com.mortals.xhx.module.matter.model.MatterEntity; import com.mortals.xhx.module.matter.model.MatterEntity;
import com.mortals.xhx.module.matter.model.MatterQuery;
import com.mortals.xhx.module.matter.service.MatterService; import com.mortals.xhx.module.matter.service.MatterService;
import com.mortals.xhx.module.site.model.SiteThemeQuery; import com.mortals.xhx.module.site.model.SiteThemeQuery;
import com.mortals.xhx.module.site.service.SiteThemeService; import com.mortals.xhx.module.site.service.SiteThemeService;
...@@ -50,6 +52,8 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe ...@@ -50,6 +52,8 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
private InterceptorConfig interceptorConfig; private InterceptorConfig interceptorConfig;
@Autowired @Autowired
private SiteThemeService siteThemeService; private SiteThemeService siteThemeService;
@Autowired
private MatterService matterService;
public MatterController() { public MatterController() {
super.setModuleDesc("基础事项"); super.setModuleDesc("基础事项");
...@@ -189,4 +193,64 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe ...@@ -189,4 +193,64 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
return ret; return ret;
} }
@PostMapping(value = "genMatterTxt")
@UnAuth
public Rest<Object> genMatterTxt(@RequestBody MatterQuery query) {
Rest<Object> ret = new Rest<>();
Map<String, Object> model = new HashMap<>();
Context context = this.getContext();
String busiDesc = "生成文本" + this.getModuleDesc();
int code = VALUE_RESULT_SUCCESS;
try {
/* Runnable runnable = new Runnable() {
*//**
*
*//*
@Override
public void run() {
matterService.genMatterTxt(query, getContext());
}
};
ThreadPool.getInstance().execute(runnable);*/
this.service.genMatterTxt(query, getContext());
model.put(MESSAGE_INFO, busiDesc + "成功");
} catch (Exception e) {
code = VALUE_RESULT_FAILURE;
this.doException(request, busiDesc, model, e);
}
ret.setCode(code);
ret.setData(model);
ret.setMsg(model.get(MESSAGE_INFO) == null ? "" : model.remove(MESSAGE_INFO).toString());
return ret;
}
@PostMapping(value = "genMatterMarkdown")
@UnAuth
public Rest<Object> genMatterMarkdown(@RequestBody MatterQuery query) {
Rest<Object> ret = new Rest<>();
Map<String, Object> model = new HashMap<>();
Context context = this.getContext();
String busiDesc = "生成文本" + this.getModuleDesc();
int code = VALUE_RESULT_SUCCESS;
try {
this.service.genMatterMarkdown(query, getContext());
model.put(MESSAGE_INFO, busiDesc + "成功");
} catch (Exception e) {
code = VALUE_RESULT_FAILURE;
this.doException(request, busiDesc, model, e);
}
ret.setCode(code);
ret.setData(model);
ret.setMsg(model.get(MESSAGE_INFO) == null ? "" : model.remove(MESSAGE_INFO).toString());
return ret;
}
} }
\ No newline at end of file
package com.mortals.xhx.module.skin.service.impl; package com.mortals.xhx.module.skin.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.common.utils.BeanUtil;
import com.mortals.xhx.module.skin.model.SkinFieldQuery;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl; import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.xhx.module.skin.dao.SkinFieldDao; import com.mortals.xhx.module.skin.dao.SkinFieldDao;
import com.mortals.xhx.module.skin.model.SkinFieldEntity; import com.mortals.xhx.module.skin.model.SkinFieldEntity;
import com.mortals.xhx.module.skin.service.SkinFieldService; import com.mortals.xhx.module.skin.service.SkinFieldService;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* SkinFieldService * SkinFieldService
* 皮肤属性字段配置 service实现 * 皮肤属性字段配置 service实现
* *
* @author zxfei * @author zxfei
* @date 2022-05-24 * @date 2022-05-24
*/ */
@Service("skinFieldService") @Service("skinFieldService")
public class SkinFieldServiceImpl extends AbstractCRUDServiceImpl<SkinFieldDao, SkinFieldEntity, Long> implements SkinFieldService { public class SkinFieldServiceImpl extends AbstractCRUDServiceImpl<SkinFieldDao, SkinFieldEntity, Long> implements SkinFieldService {
/**
* @param entity
* @param context
* @throws AppException
*/
@Override
protected void updateAfter(SkinFieldEntity entity, Context context) throws AppException {
super.updateAfter(entity, context);
if (0L == entity.getSkinId()) {
//更新模板属性 所有引用了当前模板的属性
SkinFieldQuery skinFieldQuery = new SkinFieldQuery();
skinFieldQuery.setTemplateId(entity.getTemplateId());
skinFieldQuery.setFieldCode(entity.getFieldCode());
List<SkinFieldEntity> updateList = this.find(skinFieldQuery, context).stream()
.filter(f -> f.getSkinId() != 0L)
.map(item -> {
item.setFieldName(entity.getFieldName());
item.setFieldType(entity.getFieldType());
item.setFieldOrderNo(entity.getFieldOrderNo());
item.setEnabled(entity.getEnabled());
return item;
})
.collect(Collectors.toList());
if (!ObjectUtils.isEmpty(updateList)) {
this.update(updateList, context);
}
}
}
/**
* @param entity
* @param context
* @throws AppException
*/
@Override
protected void saveAfter(SkinFieldEntity entity, Context context) throws AppException {
super.saveAfter(entity, context);
if (0L == entity.getSkinId()) {
//新增模板属性
SkinFieldQuery skinFieldQuery = new SkinFieldQuery();
skinFieldQuery.setTemplateId(entity.getTemplateId());
skinFieldQuery.setFieldCode(entity.getFieldCode());
//重复提交
Map<Long, Set<String>> collect = this.find(skinFieldQuery, context).stream().collect(Collectors.groupingBy(x -> x.getSkinId(), Collectors.mapping(y -> y.getFieldCode(), Collectors.toSet())));
for (Map.Entry<Long, Set<String>> entry : collect.entrySet()) {
Long key = entry.getKey();
if (key == 0L) continue;
if (entity.getFieldCode().equals(entry.getValue())) continue;
//新增属性
SkinFieldEntity target = new SkinFieldEntity();
BeanUtils.copyProperties(target, entity, BeanUtil.getNullPropertyNames(entity));
target.setSkinId(key);
this.save(target, context);
}
}
}
} }
\ No newline at end of file
...@@ -41,6 +41,25 @@ public class SkinTemplateServiceImpl extends AbstractCRUDServiceImpl<SkinTemplat ...@@ -41,6 +41,25 @@ public class SkinTemplateServiceImpl extends AbstractCRUDServiceImpl<SkinTemplat
}); });
super.findAfter(params, pageInfo, context, list); super.findAfter(params, pageInfo, context, list);
}
/**
* @param entity
* @param context
* @throws AppException
*/
@Override
protected void updateBefore(SkinTemplateEntity entity, Context context) throws AppException {
super.updateBefore(entity, context);
//更新前判断字段是否更新,如果更新则同步更新已有的模板属性
/* SkinTemplateEntity localEntity = this.get(entity.getId(), context);
if(!ObjectUtils.isEmpty(localEntity)){
}*/
} }
@Override @Override
...@@ -56,8 +75,7 @@ public class SkinTemplateServiceImpl extends AbstractCRUDServiceImpl<SkinTemplat ...@@ -56,8 +75,7 @@ public class SkinTemplateServiceImpl extends AbstractCRUDServiceImpl<SkinTemplat
} }
private void saveSkinFields(SkinTemplateEntity entity, Context context) { private void saveSkinFields(SkinTemplateEntity entity, Context context) {
//查找模板id,与皮肤绑定
//查找模板id,与皮肤肯定
Long[] ids = skinFieldService.find(new SkinFieldQuery().skinId(0L).templateId(entity.getId())).stream().map(item -> item.getId()).toArray(Long[]::new); Long[] ids = skinFieldService.find(new SkinFieldQuery().skinId(0L).templateId(entity.getId())).stream().map(item -> item.getId()).toArray(Long[]::new);
if (!ObjectUtils.isEmpty(ids)) { if (!ObjectUtils.isEmpty(ids)) {
skinFieldService.remove(ids, context); skinFieldService.remove(ids, context);
......
...@@ -25,6 +25,21 @@ Content-Type: application/json ...@@ -25,6 +25,21 @@ Content-Type: application/json
} }
###生成文本
POST {{baseUrl}}/matter/genMatterTxt
Content-Type: application/json
{}
###生成文本1
POST {{baseUrl}}/matter/genMatterMarkdown
Content-Type: application/json
{}
###基础事项列表 ###基础事项列表
POST {{baseUrl}}/site/matter/list POST {{baseUrl}}/site/matter/list
Content-Type: application/json Content-Type: application/json
......
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