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

Merge remote-tracking branch 'origin/master'

parents 9012ac6b a4b7a172
...@@ -207,6 +207,7 @@ export default { ...@@ -207,6 +207,7 @@ export default {
}, },
data() { data() {
return { return {
loading: false,
labelCol: { span: 6 }, labelCol: { span: 6 },
wrapperCol: { span: 14 }, wrapperCol: { span: 14 },
siteInfo: { siteInfo: {
...@@ -303,10 +304,12 @@ export default { ...@@ -303,10 +304,12 @@ export default {
async handleOk() { async handleOk() {
this.$refs.formData.validate(async (valid) => { this.$refs.formData.validate(async (valid) => {
if (valid) { if (valid) {
this.loading = true;
let res = await addWindow({ let res = await addWindow({
...this.form, ...this.form,
...this.siteInfo, ...this.siteInfo,
}); });
this.loading = false;
let { code, msg } = res.data; let { code, msg } = res.data;
if (code === 1) { if (code === 1) {
this.$message.success(msg); this.$message.success(msg);
......
...@@ -209,6 +209,9 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -209,6 +209,9 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
*/ */
@Override @Override
public Claims parseToken(String token) { public Claims parseToken(String token) {
return Jwts.parser() return Jwts.parser()
.setSigningKey(Base64.getEncoder().encodeToString(secret.getBytes())) .setSigningKey(Base64.getEncoder().encodeToString(secret.getBytes()))
.parseClaimsJws(token) .parseClaimsJws(token)
...@@ -245,4 +248,11 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -245,4 +248,11 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
private String getTokenKey(String uuid) { private String getTokenKey(String uuid) {
return SysConstains.LOGIN_TOKEN_KEY + uuid; return SysConstains.LOGIN_TOKEN_KEY + uuid;
} }
public static void main(String[] args) {
// boolean signed = Jwts.parser().isSigned("123");
boolean signed = Jwts.parser().isSigned("eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJuaW5naGFvLm5ldCIsImV4cCI6IjE0Mzg5NTU0NDUiLCJuYW1lIjoid2FuZ2hhbyIsImFkbWluIjp0cnVlfQ.SwyHTEx_RQppr97g4J5lKXtabJecpejuef8AqKYMAJc");
System.out.println(signed);
}
} }
...@@ -35,7 +35,6 @@ import com.mortals.xhx.common.code.SourceType; ...@@ -35,7 +35,6 @@ import com.mortals.xhx.common.code.SourceType;
public class ResourceController extends BaseCRUDJsonBodyMappingController<ResourceService,ResourceEntity,Long> { public class ResourceController extends BaseCRUDJsonBodyMappingController<ResourceService,ResourceEntity,Long> {
public ResourceController(){ public ResourceController(){
super.setFormClass(ResourceForm.class);
super.setModuleDesc("资源信息"); super.setModuleDesc("资源信息");
} }
......
/**
* 文件:ResourceForm.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.resource.web;
import com.mortals.framework.web.BaseCRUDFormLong;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import com.mortals.xhx.base.system.resource.model.ResourceQuery;
/**
* <p>Title: 资源信息</p>
* <p>Description: ResourceForm </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class ResourceForm extends BaseCRUDFormLong<ResourceEntity> {
private ResourceEntity entity = new ResourceEntity();
private ResourceQuery query = new ResourceQuery();
public ResourceForm(){
}
@Override
public ResourceEntity getEntity() {
return entity;
}
public void setEntity(ResourceEntity entity) {
this.entity = entity;
}
@Override
public ResourceQuery getQuery() {
return query;
}
public void setQuery(ResourceQuery query) {
this.query = query;
}
}
\ No newline at end of file
package com.mortals.xhx.common.utils; package com.mortals.xhx.common.utils;
import cn.hutool.core.util.ReUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.mortals.xhx.common.code.FiletypeEnum; import com.mortals.xhx.common.code.FiletypeEnum;
import com.mortals.xhx.common.code.SourceEnum; import com.mortals.xhx.common.code.SourceEnum;
import com.mortals.xhx.module.matter.model.MatterDatumFileEntity; import com.mortals.xhx.module.matter.model.MatterDatumFileEntity;
...@@ -146,7 +149,23 @@ public class MatterDetailHtmlParseUtil { ...@@ -146,7 +149,23 @@ public class MatterDetailHtmlParseUtil {
fileEntity.setSource(SourceEnum.政务网.getValue()); fileEntity.setSource(SourceEnum.政务网.getValue());
fileEntity.setFiletype(FiletypeEnum.空白表格.getValue()); fileEntity.setFiletype(FiletypeEnum.空白表格.getValue());
fileEntity.setFileName(prenode.text().trim()); fileEntity.setFileName(prenode.text().trim());
fileEntity.setFileUrl(node.firstChild().attr("href").trim());
String onclickStr = node.firstChild().attr("onclick").trim();
List<String> allGroup = ReUtil.findAllGroup1("'(.*?)'", onclickStr);
if (!ObjectUtils.isEmpty(allGroup)) {
String encryUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=" + allGroup.get(0);
String resp = HttpUtil.get(encryUrl);
JSONObject obj = JSON.parseObject(resp);
String code = obj.getString("code");
String data = obj.getString("data");
if ("0".equals(code)) {
fileEntity.setFileUrl(data);
}
}
// fileEntity.setFileUrl(node.firstChild().attr("href").trim());
datumFileEntities.add(fileEntity); datumFileEntities.add(fileEntity);
} }
} }
...@@ -168,7 +187,22 @@ public class MatterDetailHtmlParseUtil { ...@@ -168,7 +187,22 @@ public class MatterDetailHtmlParseUtil {
fileEntity.setSource(SourceEnum.政务网.getValue()); fileEntity.setSource(SourceEnum.政务网.getValue());
fileEntity.setFiletype(FiletypeEnum.示例样表.getValue()); fileEntity.setFiletype(FiletypeEnum.示例样表.getValue());
fileEntity.setFileName(prenode.text().trim()); fileEntity.setFileName(prenode.text().trim());
fileEntity.setFileUrl(node.firstChild().attr("href").trim());
String onclickStr = node.firstChild().attr("onclick").trim();
List<String> allGroup = ReUtil.findAllGroup1("'(.*?)'", onclickStr);
if (!ObjectUtils.isEmpty(allGroup)) {
String encryUrl = "http://www.sczwfw.gov.cn/jiq/interface/item/annex/encryptUrl?id=" + allGroup.get(0);
String resp = HttpUtil.get(encryUrl);
JSONObject obj = JSON.parseObject(resp);
String code = obj.getString("code");
String data = obj.getString("data");
if ("0".equals(code)) {
fileEntity.setFileUrl(data);
}
}
// fileEntity.setFileUrl(node.firstChild().attr("href").trim());
datumSampleFileEntities.add(fileEntity); datumSampleFileEntities.add(fileEntity);
} }
map.put("sampleList", datumSampleFileEntities); map.put("sampleList", datumSampleFileEntities);
...@@ -478,6 +512,7 @@ public class MatterDetailHtmlParseUtil { ...@@ -478,6 +512,7 @@ public class MatterDetailHtmlParseUtil {
}); });
List<Map<String, Object>> mapList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom); List<Map<String, Object>> mapList = MatterDetailHtmlParseUtil.getsqclInfoMapByHtml(dom);
System.out.println("==============材料==============");
System.out.println(JSON.toJSONString(mapList)); System.out.println(JSON.toJSONString(mapList));
Map<String, String> sltjMapByHtml = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom); Map<String, String> sltjMapByHtml = MatterDetailHtmlParseUtil.getSltjMapByHtml(dom);
......
...@@ -247,7 +247,7 @@ public class MatterHtmlParseUtil { ...@@ -247,7 +247,7 @@ public class MatterHtmlParseUtil {
params.put("taskType", ""); params.put("taskType", "");
Rest<List<MatterEntity>> rest = MatterHtmlParseUtil.getMatterList(params, url); Rest<List<MatterEntity>> rest = MatterHtmlParseUtil.getMatterList(params, url);
System.out.println(rest.getData().size());*/ System.out.println(rest.getData().size());
/* HashMap<String, String> params = new HashMap<>(); /* HashMap<String, String> params = new HashMap<>();
......
...@@ -84,7 +84,7 @@ public class SyncGovMatterDetailThread implements Runnable { ...@@ -84,7 +84,7 @@ public class SyncGovMatterDetailThread implements Runnable {
List<MatterEntity> matterEntityList = matterService.find(new MatterQuery().areaCode(siteEntity.getAreaCode()).source(SourceEnum.政务网.getValue())); List<MatterEntity> matterEntityList = matterService.find(new MatterQuery().areaCode(siteEntity.getAreaCode()).source(SourceEnum.政务网.getValue()));
log.info("查询事项列表结束"); log.info("查询事项列表结束");
List<MatterEntity> unSyncDetailMatterList = matterEntityList.stream() List<MatterEntity> unSyncDetailMatterList = matterEntityList.stream()
.filter(f -> f.getHaveGetMatterInfo().equalsIgnoreCase("false")) // .filter(f -> f.getHaveGetMatterInfo().equalsIgnoreCase("false"))
.collect(Collectors.toList()); .collect(Collectors.toList());
//查询站点事项相关 //查询站点事项相关
......
...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.app.web; ...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.app.web;
import cn.hutool.core.net.url.UrlBuilder; import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.Rest; import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
...@@ -69,6 +70,16 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService, ...@@ -69,6 +70,16 @@ public class AppController extends BaseCRUDJsonBodyMappingController<AppService,
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(AppEntity query) {
return super.list(query);
}
/** /**
* @param query * @param query
* @param model * @param model
......
...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.area.web; ...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.area.web;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
...@@ -49,6 +50,26 @@ public class AreaController extends BaseCRUDJsonBodyMappingController<AreaServic ...@@ -49,6 +50,26 @@ public class AreaController extends BaseCRUDJsonBodyMappingController<AreaServic
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(AreaEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
/** /**
* 获取站点下拉树列表 * 获取站点下拉树列表
*/ */
......
package com.mortals.xhx.module.business.web; package com.mortals.xhx.module.business.web;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
...@@ -49,6 +51,15 @@ public class BusinessController extends BaseCRUDJsonBodyMappingController<Busine ...@@ -49,6 +51,15 @@ public class BusinessController extends BaseCRUDJsonBodyMappingController<Busine
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(BusinessEntity query) {
return super.list(query);
}
@Override @Override
protected void doListBefore(BusinessEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(BusinessEntity query, Map<String, Object> model, Context context) throws AppException {
......
package com.mortals.xhx.module.business.web; package com.mortals.xhx.module.business.web;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
...@@ -47,6 +49,15 @@ public class BusinessMatterController extends BaseCRUDJsonBodyMappingController< ...@@ -47,6 +49,15 @@ public class BusinessMatterController extends BaseCRUDJsonBodyMappingController<
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(BusinessMatterEntity query) {
return super.list(query);
}
@PostMapping(value = "businesslist") @PostMapping(value = "businesslist")
public String getListByBusiness(@RequestBody BusinessMatterQuery query) { public String getListByBusiness(@RequestBody BusinessMatterQuery query) {
......
...@@ -52,10 +52,30 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic ...@@ -52,10 +52,30 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic
super.setModuleDesc("部门"); super.setModuleDesc("部门");
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(DeptEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
@Override @Override
protected void doListBefore(DeptEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(DeptEntity query, Map<String, Object> model, Context context) throws AppException {
if(ObjectUtils.isEmpty(query.getIdList())){ if (ObjectUtils.isEmpty(query.getIdList())) {
if (ObjectUtils.isEmpty(query.getOrderColList())) { if (ObjectUtils.isEmpty(query.getOrderColList())) {
query.setOrderColList(new ArrayList<OrderCol>() { query.setOrderColList(new ArrayList<OrderCol>() {
{ {
...@@ -66,7 +86,7 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic ...@@ -66,7 +86,7 @@ public class DeptController extends BaseCRUDJsonBodyMappingController<DeptServic
} else { } else {
query.getOrderColList().add(new OrderCol("a.createTime", OrderCol.DESCENDING)); query.getOrderColList().add(new OrderCol("a.createTime", OrderCol.DESCENDING));
} }
}else{ } else {
} }
if (!ObjectUtils.isEmpty(query.getFilter()) && YesNoEnum.YES.getValue() == query.getFilter()) { if (!ObjectUtils.isEmpty(query.getFilter()) && YesNoEnum.YES.getValue() == query.getFilter()) {
......
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -35,4 +37,13 @@ public class MatterAcceptController extends BaseCRUDJsonBodyMappingController<Ma ...@@ -35,4 +37,13 @@ public class MatterAcceptController extends BaseCRUDJsonBodyMappingController<Ma
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterAcceptEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -35,4 +37,13 @@ public class MatterChargesController extends BaseCRUDJsonBodyMappingController<M ...@@ -35,4 +37,13 @@ public class MatterChargesController extends BaseCRUDJsonBodyMappingController<M
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterChargesEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
...@@ -132,6 +132,25 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe ...@@ -132,6 +132,25 @@ public class MatterController extends BaseCRUDJsonBodyMappingController<MatterSe
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
/** /**
* 添加事项到站点 * 添加事项到站点
......
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
...@@ -52,6 +54,15 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat ...@@ -52,6 +54,15 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterDatumEntity query) {
return super.list(query);
}
@Override @Override
protected int viewAfter(Long id, Map<String, Object> model, MatterDatumEntity entity, Context context) throws AppException { protected int viewAfter(Long id, Map<String, Object> model, MatterDatumEntity entity, Context context) throws AppException {
...@@ -60,6 +71,21 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat ...@@ -60,6 +71,21 @@ public class MatterDatumController extends BaseCRUDJsonBodyMappingController<Mat
return super.viewAfter(id, model, entity, context); return super.viewAfter(id, model, entity, context);
} }
/**
* @param id
* @param model
* @param entity
* @param context
* @return
* @throws AppException
*/
@Override
protected int infoAfter(Long id, Map<String, Object> model, MatterDatumEntity entity, Context context) throws AppException {
List<MatterDatumFileEntity> matterDatumFileEntities = matterDatumFileService.find(new MatterDatumFileQuery().datumId(entity.getId()));
entity.setDatumFileList(matterDatumFileEntities);
return super.infoAfter(id, model, entity, context);
}
/** /**
* @param query * @param query
* @param model * @param model
......
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -11,8 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -11,8 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Map; import java.util.Map;
/** /**
*
* 材料附件 * 材料附件
* *
* @author zxfei * @author zxfei
...@@ -20,20 +22,29 @@ import java.util.Map; ...@@ -20,20 +22,29 @@ import java.util.Map;
*/ */
@RestController @RestController
@RequestMapping("matter/datum/file") @RequestMapping("matter/datum/file")
public class MatterDatumFileController extends BaseCRUDJsonBodyMappingController<MatterDatumFileService,MatterDatumFileEntity,Long> { public class MatterDatumFileController extends BaseCRUDJsonBodyMappingController<MatterDatumFileService, MatterDatumFileEntity, Long> {
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
public MatterDatumFileController(){ public MatterDatumFileController() {
super.setModuleDesc( "材料附件"); super.setModuleDesc("材料附件");
} }
@Override @Override
protected void init( Map<String, Object> model, Context context) { protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "filetype", paramService.getParamBySecondOrganize("MatterDatumFile","filetype")); this.addDict(model, "filetype", paramService.getParamBySecondOrganize("MatterDatumFile", "filetype"));
this.addDict(model, "source", paramService.getParamBySecondOrganize("MatterDatumFile","source")); this.addDict(model, "source", paramService.getParamBySecondOrganize("MatterDatumFile", "source"));
super.init( model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterDatumFileEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -35,5 +37,13 @@ public class MatterFlowlimitController extends BaseCRUDJsonBodyMappingController ...@@ -35,5 +37,13 @@ public class MatterFlowlimitController extends BaseCRUDJsonBodyMappingController
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterFlowlimitEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -35,4 +37,13 @@ public class MatterIntermediaryController extends BaseCRUDJsonBodyMappingControl ...@@ -35,4 +37,13 @@ public class MatterIntermediaryController extends BaseCRUDJsonBodyMappingControl
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterIntermediaryEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -35,5 +37,13 @@ public class MatterQuestionController extends BaseCRUDJsonBodyMappingController< ...@@ -35,5 +37,13 @@ public class MatterQuestionController extends BaseCRUDJsonBodyMappingController<
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterQuestionEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.matter.web; package com.mortals.xhx.module.matter.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -36,4 +38,13 @@ public class MatterSetbaseController extends BaseCRUDJsonBodyMappingController<M ...@@ -36,4 +38,13 @@ public class MatterSetbaseController extends BaseCRUDJsonBodyMappingController<M
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(MatterSetbaseEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.site.web; package com.mortals.xhx.module.site.web;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
...@@ -56,6 +58,15 @@ public class SiteBusinessController extends BaseCRUDJsonBodyMappingController<Si ...@@ -56,6 +58,15 @@ public class SiteBusinessController extends BaseCRUDJsonBodyMappingController<Si
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SiteBusinessEntity query) {
return super.list(query);
}
@PostMapping("list/exclude") @PostMapping("list/exclude")
public String excludeList(SiteBusinessEntity query) { public String excludeList(SiteBusinessEntity query) {
......
...@@ -88,6 +88,25 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic ...@@ -88,6 +88,25 @@ public class SiteController extends BaseCRUDJsonBodyMappingController<SiteServic
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SiteEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
/** /**
* 构建站点树 * 构建站点树
......
...@@ -60,6 +60,26 @@ public class SiteHallController extends BaseCRUDJsonBodyMappingController<SiteHa ...@@ -60,6 +60,26 @@ public class SiteHallController extends BaseCRUDJsonBodyMappingController<SiteHa
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SiteHallEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
/** /**
* 根据大厅查询所属业务 * 根据大厅查询所属业务
*/ */
......
package com.mortals.xhx.module.site.web; package com.mortals.xhx.module.site.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol; import com.mortals.framework.model.OrderCol;
...@@ -34,6 +36,16 @@ public class SiteMatterController extends BaseCRUDJsonBodyMappingController<Site ...@@ -34,6 +36,16 @@ public class SiteMatterController extends BaseCRUDJsonBodyMappingController<Site
super.setModuleDesc("站点事项"); super.setModuleDesc("站点事项");
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SiteMatterEntity query) {
return super.list(query);
}
/** /**
* @param query * @param query
* @param model * @param model
......
package com.mortals.xhx.module.site.web; package com.mortals.xhx.module.site.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -46,4 +48,13 @@ public class SiteThemeController extends BaseCRUDJsonBodyMappingController<SiteT ...@@ -46,4 +48,13 @@ public class SiteThemeController extends BaseCRUDJsonBodyMappingController<SiteT
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SiteThemeEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
package com.mortals.xhx.module.site.web; package com.mortals.xhx.module.site.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -47,5 +49,13 @@ public class SiteThemeMatterController extends BaseCRUDJsonBodyMappingController ...@@ -47,5 +49,13 @@ public class SiteThemeMatterController extends BaseCRUDJsonBodyMappingController
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SiteThemeMatterEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
...@@ -5,7 +5,9 @@ import cn.hutool.core.net.url.UrlBuilder; ...@@ -5,7 +5,9 @@ import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.util.DataUtil; import com.mortals.framework.util.DataUtil;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
...@@ -73,6 +75,26 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa ...@@ -73,6 +75,26 @@ public class SkinBaseController extends BaseCRUDJsonBodyMappingController<SkinBa
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SkinBaseEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
@Override @Override
protected void doListBefore(SkinBaseEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(SkinBaseEntity query, Map<String, Object> model, Context context) throws AppException {
......
package com.mortals.xhx.module.sms.web; package com.mortals.xhx.module.sms.web;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -36,4 +38,23 @@ public class SmsSetController extends BaseCRUDJsonBodyMappingController<SmsSetSe ...@@ -36,4 +38,23 @@ public class SmsSetController extends BaseCRUDJsonBodyMappingController<SmsSetSe
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(SmsSetEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
} }
\ No newline at end of file
...@@ -31,6 +31,7 @@ public class WindowEntity extends WindowVo { ...@@ -31,6 +31,7 @@ public class WindowEntity extends WindowVo {
/** /**
* 部门名称 * 部门名称
*/ */
@Excel(name = "部门名称")
private String deptName; private String deptName;
/** /**
* 窗口名称 * 窗口名称
......
...@@ -3,6 +3,7 @@ import com.mortals.framework.exception.AppException; ...@@ -3,6 +3,7 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; 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.service.ICRUDCacheService;
import com.mortals.framework.service.ICRUDService; import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.matter.model.MatterEntity; import com.mortals.xhx.module.matter.model.MatterEntity;
import com.mortals.xhx.module.window.model.WindowHallEntity; import com.mortals.xhx.module.window.model.WindowHallEntity;
...@@ -15,7 +16,7 @@ import com.mortals.xhx.module.window.dao.WindowHallDao; ...@@ -15,7 +16,7 @@ import com.mortals.xhx.module.window.dao.WindowHallDao;
* @author zxfei * @author zxfei
* @date 2023-04-25 * @date 2023-04-25
*/ */
public interface WindowHallService extends ICRUDService<WindowHallEntity,Long>{ public interface WindowHallService extends ICRUDCacheService<WindowHallEntity,Long> {
WindowHallDao getDao(); WindowHallDao getDao();
......
...@@ -52,9 +52,12 @@ public class WindowBusinessServiceImpl extends AbstractCRUDServiceImpl<WindowBus ...@@ -52,9 +52,12 @@ public class WindowBusinessServiceImpl extends AbstractCRUDServiceImpl<WindowBus
@Override @Override
protected void findAfter(WindowBusinessEntity entity, PageInfo pageInfo, Context context, List<WindowBusinessEntity> list) throws AppException { protected void findAfter(WindowBusinessEntity entity, PageInfo pageInfo, Context context, List<WindowBusinessEntity> list) throws AppException {
Map<Long, WindowEntity> collect = windowService.findToMap(new WindowQuery(), context);
Map<Long, WindowHallEntity> windowHallEntityMap = windowHallService.find(new WindowHallQuery(), context).parallelStream().collect(Collectors.toMap(x -> x.getWindowId(), Function.identity())); Map<Long, WindowEntity> collect = windowService.getCacheList().stream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
//Map<Long, WindowEntity> collect = windowService.findToMap(new WindowQuery(), context);
Map<Long, WindowHallEntity> windowHallEntityMap = windowHallService.getCacheList().stream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
//Map<Long, WindowHallEntity> windowHallEntityMap = windowHallService.find(new WindowHallQuery(), context).parallelStream().collect(Collectors.toMap(x -> x.getWindowId(), Function.identity()));
Iterator iterator = list.iterator(); Iterator iterator = list.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
WindowBusinessEntity item = (WindowBusinessEntity) iterator.next(); WindowBusinessEntity item = (WindowBusinessEntity) iterator.next();
...@@ -67,7 +70,7 @@ public class WindowBusinessServiceImpl extends AbstractCRUDServiceImpl<WindowBus ...@@ -67,7 +70,7 @@ public class WindowBusinessServiceImpl extends AbstractCRUDServiceImpl<WindowBus
if (!ObjectUtils.isEmpty(windowHallEntity)) { if (!ObjectUtils.isEmpty(windowHallEntity)) {
item.setHallId(windowHallEntity.getHallId()); item.setHallId(windowHallEntity.getHallId());
item.setHallName(windowHallEntity.getHallName()); item.setHallName(windowHallEntity.getHallName());
}else { } else {
//log.info("windowhallEntity is null windowId:{}",item.getWindowId()); //log.info("windowhallEntity is null windowId:{}",item.getWindowId());
} }
} else { } else {
......
...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.window.service.impl; ...@@ -2,6 +2,7 @@ package com.mortals.xhx.module.window.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.mortals.framework.model.PageInfo; import com.mortals.framework.model.PageInfo;
import com.mortals.framework.service.impl.AbstractCRUDCacheServiceImpl;
import com.mortals.xhx.module.window.model.WindowEntity; import com.mortals.xhx.module.window.model.WindowEntity;
import com.mortals.xhx.module.window.model.WindowQuery; import com.mortals.xhx.module.window.model.WindowQuery;
import com.mortals.xhx.module.window.service.WindowService; import com.mortals.xhx.module.window.service.WindowService;
...@@ -27,7 +28,7 @@ import java.util.stream.Collectors; ...@@ -27,7 +28,7 @@ import java.util.stream.Collectors;
* @date 2023-04-25 * @date 2023-04-25
*/ */
@Service("windowHallService") @Service("windowHallService")
public class WindowHallServiceImpl extends AbstractCRUDServiceImpl<WindowHallDao, WindowHallEntity, Long> implements WindowHallService { public class WindowHallServiceImpl extends AbstractCRUDCacheServiceImpl<WindowHallDao, WindowHallEntity, Long> implements WindowHallService {
@Autowired @Autowired
private WindowService windowService; private WindowService windowService;
...@@ -41,8 +42,14 @@ public class WindowHallServiceImpl extends AbstractCRUDServiceImpl<WindowHallDao ...@@ -41,8 +42,14 @@ public class WindowHallServiceImpl extends AbstractCRUDServiceImpl<WindowHallDao
*/ */
@Override @Override
protected void findAfter(WindowHallEntity params, PageInfo pageInfo, Context context, List<WindowHallEntity> list) throws AppException { protected void findAfter(WindowHallEntity params, PageInfo pageInfo, Context context, List<WindowHallEntity> list) throws AppException {
super.findAfter(params, pageInfo, context, list);
List<Long> collect = list.stream().map(i -> i.getWindowId()).distinct().collect(Collectors.toList()); Map<Long, WindowEntity> collectWin = windowService.getCacheList().stream().collect(Collectors.toMap(x -> x.getId(), y -> y, (o, n) -> n));
list.forEach(item -> {
WindowEntity windowEntity = collectWin.get(item.getWindowId());
item.setFromnum(windowEntity == null ? "" : windowEntity.getFromnum());
});
/* List<Long> collect = list.stream().map(i -> i.getWindowId()).distinct().collect(Collectors.toList());
if (!ObjectUtils.isEmpty(collect)) { if (!ObjectUtils.isEmpty(collect)) {
WindowQuery windowQuery = new WindowQuery(); WindowQuery windowQuery = new WindowQuery();
windowQuery.setIdList(collect); windowQuery.setIdList(collect);
...@@ -51,6 +58,6 @@ public class WindowHallServiceImpl extends AbstractCRUDServiceImpl<WindowHallDao ...@@ -51,6 +58,6 @@ public class WindowHallServiceImpl extends AbstractCRUDServiceImpl<WindowHallDao
WindowEntity windowEntity = collectWin.get(item.getWindowId()); WindowEntity windowEntity = collectWin.get(item.getWindowId());
item.setFromnum(windowEntity == null ? "" : windowEntity.getFromnum()); item.setFromnum(windowEntity == null ? "" : windowEntity.getFromnum());
}); });
} }*/
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.window.web; package com.mortals.xhx.module.window.web;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.common.Rest;
import com.mortals.framework.util.DataUtil; import com.mortals.framework.util.DataUtil;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
...@@ -34,6 +36,13 @@ public class WindowBusinessController extends BaseCRUDJsonBodyMappingController< ...@@ -34,6 +36,13 @@ public class WindowBusinessController extends BaseCRUDJsonBodyMappingController<
super.setModuleDesc("窗口业务"); super.setModuleDesc("窗口业务");
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(WindowBusinessEntity query) {
return super.list(query);
}
} }
\ No newline at end of file
...@@ -12,6 +12,7 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; ...@@ -12,6 +12,7 @@ import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.framework.web.BasePhpCRUDJsonMappingController; import com.mortals.framework.web.BasePhpCRUDJsonMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.dept.model.DeptEntity; import com.mortals.xhx.module.dept.model.DeptEntity;
import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.service.DeptService; import com.mortals.xhx.module.dept.service.DeptService;
import com.mortals.xhx.module.matter.model.MatterEntity; import com.mortals.xhx.module.matter.model.MatterEntity;
import com.mortals.xhx.module.site.model.SiteEntity; import com.mortals.xhx.module.site.model.SiteEntity;
...@@ -28,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -28,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -76,6 +78,25 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe ...@@ -76,6 +78,25 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(WindowEntity query) {
return super.list(query);
}
/**
* @param id
* @return
*/
@Override
@UnAuth
public String info(Long id) {
return super.info(id);
}
/** /**
* 添加业务到窗口 * 添加业务到窗口
...@@ -186,6 +207,27 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe ...@@ -186,6 +207,27 @@ public class WindowController extends BaseCRUDJsonBodyMappingController<WindowSe
if (!ObjectUtils.isEmpty(deptEntity)) { if (!ObjectUtils.isEmpty(deptEntity)) {
windowEntity.setDeptId(deptEntity.getId()); windowEntity.setDeptId(deptEntity.getId());
windowEntity.setDeptName(deptEntity.getName()); windowEntity.setDeptName(deptEntity.getName());
}else {
//判断是否填入了部门名称
if(!ObjectUtils.isEmpty(windowEntity.getDeptName())){
//根据部门名称与站点 更新窗口
DeptQuery deptQuery = new DeptQuery();
deptQuery.setName(windowEntity.getDeptName());
deptQuery.setSiteId(DataUtil.converStr2Long(siteId,0L));
deptEntity = deptService.selectOne(deptQuery);
if(!ObjectUtils.isEmpty(deptEntity)){
windowEntity.setDeptId(deptEntity.getId());
windowEntity.setDeptName(deptEntity.getName());
}
}
}
}
//siteId为空 或deptId为空 则删除 不导入
Iterator<WindowEntity> iterator = list.iterator();
while (iterator.hasNext()) {
WindowEntity next = iterator.next();
if(ObjectUtils.isEmpty(next.getSiteId())||ObjectUtils.isEmpty(next.getDeptId())){
iterator.remove();
} }
} }
} }
......
...@@ -2,7 +2,9 @@ package com.mortals.xhx.module.window.web; ...@@ -2,7 +2,9 @@ package com.mortals.xhx.module.window.web;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.ap.GlobalSysInfo; import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.model.OrderCol; import com.mortals.framework.model.OrderCol;
...@@ -45,6 +47,15 @@ public class WindowMatterController extends BaseCRUDJsonBodyMappingController<Wi ...@@ -45,6 +47,15 @@ public class WindowMatterController extends BaseCRUDJsonBodyMappingController<Wi
super.setModuleDesc("窗口事项"); super.setModuleDesc("窗口事项");
} }
/**
* @param query
* @return
*/
@Override
@UnAuth
public Rest<Object> list(WindowMatterEntity query) {
return super.list(query);
}
@Override @Override
protected void doListBefore(WindowMatterEntity query, Map<String, Object> model, Context context) throws AppException { protected void doListBefore(WindowMatterEntity query, Map<String, Object> model, Context context) throws AppException {
......
...@@ -69,6 +69,14 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman ...@@ -69,6 +69,14 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
super.init(model, context); super.init(model, context);
} }
/**
* @param query
* @return
*/
@PostMapping(value = "interList")
public Rest<Object> interList(@RequestBody WorkmanEntity query) {
return super.list(query);
}
/** /**
* *
...@@ -118,6 +126,8 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman ...@@ -118,6 +126,8 @@ public class WorkmanController extends BaseCRUDJsonBodyMappingController<Workman
} }
@PostMapping(value = "doImportPic") @PostMapping(value = "doImportPic")
public String doImportPic(@RequestBody WorkmanEntity query) { public String doImportPic(@RequestBody WorkmanEntity query) {
JSONObject ret = new JSONObject(); JSONObject ret = new JSONObject();
......
...@@ -57,6 +57,42 @@ ...@@ -57,6 +57,42 @@
</if>--> </if>-->
</trim> </trim>
</trim> </trim>
<if test="(orderColList == null or orderColList.isEmpty()) and orderCol != null and !orderCol.isEmpty()">
order by
CASE
WHEN fieldType = 'date' THEN STR_TO_DATE(fieldValue, '%Y-%m-%d')
ELSE NULL
END
<trim prefix="," 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('appId')">
a.appId
<if test='orderCol.appId != null and "DESC".equalsIgnoreCase(orderCol.appId)'>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('updateUserId')">
a.updateUserId
<if test='orderCol.updateUserId != null and "DESC".equalsIgnoreCase(orderCol.updateUserId)'>DESC</if>
,
</if>
<if test="orderCol.containsKey('updateTime')">
a.updateTime
<if test='orderCol.updateTime != null and "DESC".equalsIgnoreCase(orderCol.updateTime)'>DESC</if>
,
</if>
</trim>
</if>
</select> </select>
<!-- 条件映射 --> <!-- 条件映射 -->
......
...@@ -38,6 +38,7 @@ ...@@ -38,6 +38,7 @@
<result property="datumId" column="datumId" /> <result property="datumId" column="datumId" />
<result property="fileName" column="fileName" /> <result property="fileName" column="fileName" />
<result property="fileUrl" column="fileUrl" /> <result property="fileUrl" column="fileUrl" />
<result property="localFileUrl" column="localFileUrl" />
<result property="filetype" column="filetype" /> <result property="filetype" column="filetype" />
<result property="source" column="source" /> <result property="source" column="source" />
<result property="createTime" column="createTime" /> <result property="createTime" column="createTime" />
...@@ -133,7 +134,7 @@ ...@@ -133,7 +134,7 @@
<!-- 子表所有列 --> <!-- 子表所有列 -->
<sql id="_columns_sub"> <sql id="_columns_sub">
<trim suffixOverrides="," suffix=""> <trim suffixOverrides="," suffix="">
b.id,b.datumId,b.fileName,b.fileUrl,b.filetype,b.source,b.createTime,b.createUserId,b.updateTime,b.materialName, b.id,b.datumId,b.fileName,b.fileUrl,b.localFileUrl,b.filetype,b.source,b.createTime,b.createUserId,b.updateTime,b.materialName,
</trim> </trim>
</sql> </sql>
<!-- 新增 区分主键自增加还是业务插入 --> <!-- 新增 区分主键自增加还是业务插入 -->
......
...@@ -18,15 +18,6 @@ POST {{baseUrl}}/app/dataset/list ...@@ -18,15 +18,6 @@ POST {{baseUrl}}/app/dataset/list
Content-Type: application/json Content-Type: application/json
{ {
"siteId": 1,
"appId": 79,
"orConditionList": [ {
"fieldCode":"year",
"fieldValue":"2022"
},{
"fieldCode":"yOrm",
"fieldValue":"0"
}],
"page": 1, "page": 1,
"size": 10 "size": 10
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
POST {{baseUrl}}/dept/list POST {{baseUrl}}/dept/list
Content-Type: application/json Content-Type: application/json
{"siteId":1,"page":"1","size":"-1","orderColList":[{"colName":"sort","sortKind":"asc"}]} {}
###部门列表1 ###部门列表1
......
...@@ -4,11 +4,6 @@ POST {{baseUrl}}/holiday/list ...@@ -4,11 +4,6 @@ POST {{baseUrl}}/holiday/list
Content-Type: application/json Content-Type: application/json
{ {
"siteId":9033 ,
"name":"adqb9k" ,
"year":1996 ,
"page":1,
"size":10
} }
......
...@@ -124,7 +124,7 @@ client.global.set("Matter_id", JSON.parse(response.body).data.id); ...@@ -124,7 +124,7 @@ client.global.set("Matter_id", JSON.parse(response.body).data.id);
%} %}
###基础事项查看 ###基础事项查看
GET {{baseUrl}}/matter/info?id=39654 GET {{baseUrl}}/matter/info?id=34081
Accept: application/json Accept: application/json
###基础事项编辑 ###基础事项编辑
......
...@@ -4,9 +4,6 @@ POST {{baseUrl}}/matter/datum/list ...@@ -4,9 +4,6 @@ POST {{baseUrl}}/matter/datum/list
Content-Type: application/json Content-Type: application/json
{ {
"matterId":3227 ,
"matterName":"r4s0v4" ,
"materialName":"b2fx5n" ,
"page":1, "page":1,
"size":10 "size":10
} }
...@@ -60,7 +57,7 @@ client.global.set("MatterDatum_id", JSON.parse(response.body).data.id); ...@@ -60,7 +57,7 @@ client.global.set("MatterDatum_id", JSON.parse(response.body).data.id);
%} %}
###事项申请材料查看 ###事项申请材料查看
GET {{baseUrl}}/matter/datum/info?id={{MatterDatum_id}} GET {{baseUrl}}/matter/datum/info?id=53092
Accept: application/json Accept: application/json
###事项申请材料编辑 ###事项申请材料编辑
......
...@@ -18,8 +18,9 @@ POST {{baseUrl}}/site/hall/list ...@@ -18,8 +18,9 @@ POST {{baseUrl}}/site/hall/list
Content-Type: application/json Content-Type: application/json
{ {
"page":1, "siteId": 1,
"size":11 "page": 1,
"size": -1
} }
......
...@@ -3,11 +3,7 @@ ...@@ -3,11 +3,7 @@
POST {{baseUrl}}/window/business/list POST {{baseUrl}}/window/business/list
Content-Type: application/json Content-Type: application/json
{ {"windowIdList":["77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99"],"size":-1}
"page":1,
"size":10
}
###窗口业务更新与保存 ###窗口业务更新与保存
POST {{baseUrl}}/window/business/save POST {{baseUrl}}/window/business/save
......
...@@ -19,8 +19,7 @@ Content-Type: application/json ...@@ -19,8 +19,7 @@ Content-Type: application/json
{ {
"page":1, "page":1,
"size":-1, "size":-1
"hallId": 11
} }
......
...@@ -13,11 +13,7 @@ POST {{baseUrl}}/workman/list ...@@ -13,11 +13,7 @@ POST {{baseUrl}}/workman/list
Content-Type: application/json Content-Type: application/json
{ {
"page":1, }
"size":10,
"andConditionList":[{"name":"%张三%","number":"%123%","deptName":"%123%","windowName":"%123%"}]
}
###工作人员更新与保存 ###工作人员更新与保存
......
...@@ -28,7 +28,7 @@ public interface IApiAreaFeign extends IFeign { ...@@ -28,7 +28,7 @@ public interface IApiAreaFeign extends IFeign {
* @param query * @param query
* @return * @return
*/ */
@PostMapping(value = "/area/list") @PostMapping(value = "/area/interlist")
String list(@RequestBody AreaEntity query); String list(@RequestBody AreaEntity query);
...@@ -38,7 +38,7 @@ public interface IApiAreaFeign extends IFeign { ...@@ -38,7 +38,7 @@ public interface IApiAreaFeign extends IFeign {
* @param id * @param id
* @return * @return
*/ */
@GetMapping(value = "/area/info") @GetMapping(value = "/area/interinfo")
String viewAreaInfo(@RequestParam(value = "id") Long id); String viewAreaInfo(@RequestParam(value = "id") Long id);
......
...@@ -26,7 +26,7 @@ public interface IDeviceFeign extends IFeign { ...@@ -26,7 +26,7 @@ public interface IDeviceFeign extends IFeign {
* @param devicePdu * @param devicePdu
* @return * @return
*/ */
@PostMapping(value = "/device/list") @PostMapping(value = "/device/interlist")
Rest<RespData<List<DevicePdu>>> list(@RequestBody DevicePdu devicePdu); Rest<RespData<List<DevicePdu>>> list(@RequestBody DevicePdu devicePdu);
...@@ -36,7 +36,7 @@ public interface IDeviceFeign extends IFeign { ...@@ -36,7 +36,7 @@ public interface IDeviceFeign extends IFeign {
* @param id * @param id
* @return * @return
*/ */
@GetMapping(value = "/device/info") @GetMapping(value = "/device/interinfo")
Rest<DevicePdu> info(@RequestParam(value = "id") Long id); Rest<DevicePdu> info(@RequestParam(value = "id") Long id);
/** /**
......
...@@ -22,7 +22,7 @@ public interface IProductFeign extends IFeign { ...@@ -22,7 +22,7 @@ public interface IProductFeign extends IFeign {
* @param productPdu * @param productPdu
* @return * @return
*/ */
@PostMapping(value = "/product/list") @PostMapping(value = "/product/interlist")
Rest<RespData<List<ProductPdu>>> list(@RequestBody ProductPdu productPdu); Rest<RespData<List<ProductPdu>>> list(@RequestBody ProductPdu productPdu);
} }
......
...@@ -29,7 +29,7 @@ public interface IUserFeign extends IFeign { ...@@ -29,7 +29,7 @@ public interface IUserFeign extends IFeign {
* @param userPdu * @param userPdu
* @return * @return
*/ */
@PostMapping(value = "/user/list") @PostMapping(value = "/user/interlist")
Rest<RespData<List<UserPdu>>> list(@RequestBody UserPdu userPdu); Rest<RespData<List<UserPdu>>> list(@RequestBody UserPdu userPdu);
...@@ -39,7 +39,7 @@ public interface IUserFeign extends IFeign { ...@@ -39,7 +39,7 @@ public interface IUserFeign extends IFeign {
* @param id * @param id
* @return * @return
*/ */
@GetMapping(value = "/user/info") @GetMapping(value = "/user/interinfo")
Rest<UserPdu> info(@RequestParam(value = "id") Long id); Rest<UserPdu> info(@RequestParam(value = "id") Long id);
/** /**
......
package com.mortals.xhx.module.area.model; package com.mortals.xhx.module.area.model;
import cn.hutool.core.date.DateUtil;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -70,4 +73,30 @@ public class AreaTreeSelect implements Serializable { ...@@ -70,4 +73,30 @@ public class AreaTreeSelect implements Serializable {
} }
public static void main(String[] args) {
int year = 2023; // 目标年份
int week = 42; // 目标周数
int dayOfWeek = 2; // 目标星期几 (1 表示星期日,2 表示星期一,以此类推)
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.DAY_OF_WEEK, dayOfWeek);
int targetYear = calendar.get(Calendar.YEAR);
int targetMonth = calendar.get(Calendar.MONTH) + 1; // 月份是从 0 开始计数的,所以需要 +1
int targetDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("目标日期:" + targetYear + "-" + targetMonth + "-" + targetDay);
String 年_月_日 = DateUtil.format(new Date(), "年 月 日");
System.out.println(年_月_日);
}
} }
\ No newline at end of file
...@@ -20,3 +20,7 @@ export function changePassword(params) { ...@@ -20,3 +20,7 @@ export function changePassword(params) {
export function editPassword(params) { export function editPassword(params) {
return http.post(`${baseURL}/zwfw/user/reset/password`, params); return http.post(`${baseURL}/zwfw/user/reset/password`, params);
} }
// 密码过期修改密码
export function changeForgotPassword(params) {
return http.post(`${baseURL}/zwfw/user/forgot/password`, params);
}
...@@ -59,7 +59,7 @@ axios.interceptors.response.use( ...@@ -59,7 +59,7 @@ axios.interceptors.response.use(
message.error({ message.error({
content: msg, content: msg,
maxCount: 1, maxCount: 1,
duration: 1, duration: 2,
}); });
store.commit("user/reset"); store.commit("user/reset");
router.push("/"); router.push("/");
......
...@@ -26,8 +26,8 @@ ...@@ -26,8 +26,8 @@
</a-table> </a-table>
</div> </div>
</template> </template>
<script> <script>
import { mapState } from "vuex"; import { mapState } from "vuex";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { export2Excel } from "@/utils/js/exportExcel"; import { export2Excel } from "@/utils/js/exportExcel";
...@@ -293,11 +293,10 @@ export default { ...@@ -293,11 +293,10 @@ export default {
}, },
// 格式化时间 // 格式化时间
dateFormat(val) { dateFormat(val) {
return this.$moment(val).format("YYYY-MM-DD HH:mm:ss"); return this.$moment.unix(val).format("YYYY-MM-DD HH:mm:ss");
}, },
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped></style>
</style>
\ No newline at end of file
...@@ -30,13 +30,21 @@ ...@@ -30,13 +30,21 @@
</a-table> </a-table>
</div> </div>
</template> </template>
<script> <script>
import { mapState } from "vuex"; import { mapState } from "vuex";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
import { export2Excel } from "@/utils/js/exportExcel"; import { export2Excel } from "@/utils/js/exportExcel";
import { getOtherList } from "@/api/dataAdmin"; import { getOtherList } from "@/api/dataAdmin";
const tHeader = ["操作人身份", "操作类型", "箱号", "取件柜名称", "操作时间"]; // 导出的表头名信息 const tHeader = ["操作人身份", "操作类型", "箱号", "取件柜名称", "操作时间"]; // 导出的表头名信息
const operationTypeList = {
1: "存件",
2: "取件",
3: "锁定",
4: "开箱",
5: "清箱",
6: "解锁",
};
const filterVal = [ const filterVal = [
"userType", "userType",
"operationType", "operationType",
...@@ -95,6 +103,7 @@ export default { ...@@ -95,6 +103,7 @@ export default {
}, },
]; ];
return { return {
operationTypeList,
baseurl: process.env.VUE_APP_API_PHP_URL, baseurl: process.env.VUE_APP_API_PHP_URL,
siteId: storage.get(2, "siteId"), siteId: storage.get(2, "siteId"),
columns, columns,
...@@ -278,6 +287,5 @@ export default { ...@@ -278,6 +287,5 @@ export default {
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped></style>
</style>
\ No newline at end of file
...@@ -188,6 +188,10 @@ export default { ...@@ -188,6 +188,10 @@ export default {
} else { } else {
this.censusList = []; this.censusList = [];
this.active = "CensusType_1"; this.active = "CensusType_1";
if (this.$route.path != "/home/dataManagement") {
console.log(1);
this.$router.push("/home/dataManagement");
}
} }
} }
}, },
......
...@@ -5,102 +5,262 @@ ...@@ -5,102 +5,262 @@
<p class="slogan-text slogan-text-1 mb-12">长江第一城</p> <p class="slogan-text slogan-text-1 mb-12">长江第一城</p>
<p class="slogan-text slogan-text-2">巴蜀醉宜宾</p> <p class="slogan-text slogan-text-2">巴蜀醉宜宾</p>
</div> </div>
<div class="login-box"> <div class="w-[490px] h-[660px]">
<img class="w-[74px] mb-[20px]" src="@/assets/images/logo.png" /> <div class="swiper mySwiper">
<p class="login-text text-[40px] mb-[20px]">欢迎登录!</p> <div class="swiper-wrapper">
<p class="login-text text-[32px] mb-[30px]"> <div class="swiper-slide">
{{ sysName }} <!-- 登录框 -->
</p> <div class="login-box">
<a-form-model <img
:model="form" class="w-[74px] mb-[20px]"
ref="form" src="@/assets/images/logo.png"
:rules="rules" />
:label-col="labelCol" <p class="login-text text-[40px] mb-[20px]">欢迎登录!</p>
:wrapper-col="wrapperCol" <p class="login-text text-[32px] mb-[30px]">
> {{ sysName }}
<a-form-model-item prop="loginName"> </p>
<a-input <a-form-model
placeholder="请输入用户名" :model="form"
v-model="form.loginName" ref="form"
@pressEnter="handleSubmit" :rules="rules"
> :label-col="labelCol"
<img slot="prefix" src="@/assets/images/icon-user.png" /> :wrapper-col="wrapperCol"
<img >
slot="suffix" <a-form-model-item prop="loginName">
v-show="form.loginName" <a-input
class="cursor-pointer" placeholder="请输入用户名"
@click="form.loginName = ''" v-model="form.loginName"
src="@/assets/images/icon-close.png" @pressEnter="handleSubmit"
/> >
</a-input> <img slot="prefix" src="@/assets/images/icon-user.png" />
</a-form-model-item> <img
<a-form-model-item prop="password"> slot="suffix"
<a-input v-show="form.loginName"
placeholder="请输入密码" class="cursor-pointer"
:type="iptType" @click="form.loginName = ''"
v-model="form.password" src="@/assets/images/icon-close.png"
@pressEnter="handleSubmit" />
> </a-input>
<img slot="prefix" src="@/assets/images/icon-user.png" /> </a-form-model-item>
<template slot="suffix"> <a-form-model-item prop="password">
<a-space> <a-input
<img placeholder="请输入密码"
v-show="form.password" :type="TypeForm.iptType"
class="cursor-pointer" v-model="form.password"
@click="form.password = ''" @pressEnter="handleSubmit"
src="@/assets/images/icon-close.png" >
/> <img slot="prefix" src="@/assets/images/icon-user.png" />
<i <template slot="suffix">
v-if="iptType == 'password'" <a-space>
class="iconfont icon-hidden cursor-pointer" <img
@click="iptType = 'text'" v-show="form.password"
></i> class="cursor-pointer"
<i @click="form.password = ''"
v-else src="@/assets/images/icon-close.png"
class="iconfont icon-show cursor-pointer" />
@click="iptType = 'password'" <i
></i> v-if="TypeForm.iptType == 'password'"
</a-space> class="iconfont icon-hidden cursor-pointer"
</template> @click="TypeForm.iptType = 'text'"
</a-input> ></i>
</a-form-model-item> <i
<a-form-model-item class="code" prop="securityCode"> v-else
<a-input class="iconfont icon-show cursor-pointer"
placeholder="请输入验证码" @click="TypeForm.iptType = 'password'"
v-model="form.securityCode" ></i>
@pressEnter="handleSubmit" </a-space>
> </template>
<img </a-input>
slot="suffix" </a-form-model-item>
v-show="form.securityCode" <a-form-model-item class="code" prop="securityCode">
class="cursor-pointer" <a-input
@click="form.securityCode = ''" placeholder="请输入验证码"
src="@/assets/images/icon-close.png" v-model="form.securityCode"
/> @pressEnter="handleSubmit"
</a-input> >
<div class="code-box"> <img
<img :src="imgCode" @click="createCode" /> slot="suffix"
v-show="form.securityCode"
class="cursor-pointer"
@click="form.securityCode = ''"
src="@/assets/images/icon-close.png"
/>
</a-input>
<div class="code-box">
<img :src="imgCode" @click="createCode" />
</div>
</a-form-model-item>
<a-form-model-item>
<a-button
:loading="loading"
class="login-btn"
@click="handleSubmit"
>登录</a-button
>
</a-form-model-item>
</a-form-model>
</div>
</div> </div>
</a-form-model-item> <div class="swiper-slide">
<a-form-model-item> <!-- 修改密码框 -->
<a-button :loading="loading" class="login-btn" @click="handleSubmit" <div class="revamp-box">
>登录</a-button <img
> class="w-[74px] mb-[20px]"
</a-form-model-item> src="@/assets/images/logo.png"
</a-form-model> />
<p class="login-text text-[40px] mb-[20px]">请修改密码</p>
<p class="login-text text-[32px] mb-[30px]">
密码有效期为三个月
</p>
<a-form-model
:model="changePwdForm"
ref="changePwdForm"
:rules="PwdFormRules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<a-form-model-item prop="loginName">
<a-input
placeholder="请输入用户名"
v-model="changePwdForm.loginName"
@pressEnter="changePwd"
>
<img slot="prefix" src="@/assets/images/icon-user.png" />
<img
slot="suffix"
v-show="changePwdForm.loginName"
class="cursor-pointer"
@click="changePwdForm.loginName = ''"
src="@/assets/images/icon-close.png"
/>
</a-input>
</a-form-model-item>
<a-form-model-item prop="oldPwd">
<a-input
placeholder="请输入原密码"
:type="TypeForm.oldType"
v-model="changePwdForm.oldPwd"
@pressEnter="changePwd"
>
<img slot="prefix" src="@/assets/images/icon-user.png" />
<template slot="suffix">
<a-space>
<img
v-show="changePwdForm.oldPwd"
class="cursor-pointer"
@click="changePwdForm.oldPwd = ''"
src="@/assets/images/icon-close.png"
/>
<i
v-if="TypeForm.oldType == 'password'"
class="iconfont icon-hidden cursor-pointer"
@click="TypeForm.oldType = 'text'"
></i>
<i
v-else
class="iconfont icon-show cursor-pointer"
@click="TypeForm.oldType = 'password'"
></i>
</a-space>
</template>
</a-input>
</a-form-model-item>
<a-form-model-item prop="newPwd">
<a-input
placeholder="请输入新密码"
:type="TypeForm.newType"
v-model="changePwdForm.newPwd"
@pressEnter="changePwd"
>
<img slot="prefix" src="@/assets/images/icon-user.png" />
<template slot="suffix">
<a-space>
<img
v-show="changePwdForm.newPwd"
class="cursor-pointer"
@click="changePwdForm.newPwd = ''"
src="@/assets/images/icon-close.png"
/>
<i
v-if="TypeForm.newType == 'password'"
class="iconfont icon-hidden cursor-pointer"
@click="TypeForm.newType = 'text'"
></i>
<i
v-else
class="iconfont icon-show cursor-pointer"
@click="TypeForm.newType = 'password'"
></i>
</a-space>
</template>
</a-input>
</a-form-model-item>
<a-form-model-item prop="newPwdAgain">
<a-input
placeholder="请再次输入新密码"
:type="TypeForm.newAgainType"
v-model="changePwdForm.newPwdAgain"
@pressEnter="changePwd"
>
<img slot="prefix" src="@/assets/images/icon-user.png" />
<template slot="suffix">
<a-space>
<img
v-show="changePwdForm.newPwdAgain"
class="cursor-pointer"
@click="changePwdForm.newPwdAgain = ''"
src="@/assets/images/icon-close.png"
/>
<i
v-if="TypeForm.newAgainType == 'password'"
class="iconfont icon-hidden cursor-pointer"
@click="TypeForm.newAgainType = 'text'"
></i>
<i
v-else
class="iconfont icon-show cursor-pointer"
@click="TypeForm.newAgainType = 'password'"
></i>
</a-space>
</template>
</a-input>
</a-form-model-item>
<a-form-model-item>
<a-button
:loading="changeloading"
class="login-btn"
@click="changePwd"
>确认</a-button
>
</a-form-model-item>
</a-form-model>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { LoginInterface } from "@/api/user.js"; import Swiper from "swiper";
import { LoginInterface, changeForgotPassword } from "@/api/user.js";
import { mapMutations, mapState } from "vuex"; import { mapMutations, mapState } from "vuex";
import { changeAccount } from "@/utils/js/validate"; import { changeAccount, changePassWord } from "@/utils/js/validate";
import { encrypt } from "@/utils"; import { encrypt } from "@/utils";
import storage from "@/utils/js/Storage"; import storage from "@/utils/js/Storage";
export default { export default {
data() { data() {
const changePwdAgain = (rule, value, callback) => {
if (!value) {
callback(new Error("请再次输入密码"));
} else if (value !== this.changePwdForm.newPwd) {
callback(new Error("两次密码输入不一致"));
} else {
callback();
}
};
return { return {
sysName: process.env.VUE_APP_systemName, sysName: process.env.VUE_APP_systemName,
labelCol: { span: 0 }, labelCol: { span: 0 },
...@@ -108,7 +268,13 @@ export default { ...@@ -108,7 +268,13 @@ export default {
api: process.env.VUE_APP_API_BASE_URL, api: process.env.VUE_APP_API_BASE_URL,
loading: false, loading: false,
imgCode: "", imgCode: "",
iptType: "password", changeloading: false,
TypeForm: {
iptType: "password", // 登录密码输入框切换
oldType: "password", // 原密码输入框切换
newType: "password", // 新密码输入框切换
newAgainType: "password", // 再次输入新密码输入框切换
},
form: { form: {
loginName: "", loginName: "",
password: "", password: "",
...@@ -116,6 +282,12 @@ export default { ...@@ -116,6 +282,12 @@ export default {
mark: "", mark: "",
type: 2, type: 2,
}, },
changePwdForm: {
loginName: "",
oldPwd: "", // 原密码
newPwd: "", // 新密码
newPwdAgain: "", // 新密码
},
rules: { rules: {
loginName: [ loginName: [
{ required: true, validator: changeAccount, trigger: "blur" }, { required: true, validator: changeAccount, trigger: "blur" },
...@@ -125,6 +297,20 @@ export default { ...@@ -125,6 +297,20 @@ export default {
{ required: true, message: "请输入验证码", trigger: "blur" }, { required: true, message: "请输入验证码", trigger: "blur" },
], ],
}, },
PwdFormRules: {
loginName: [
{ required: true, validator: changeAccount, trigger: "blur" },
],
oldPwd: [
{ required: true, validator: changePassWord, trigger: "blur" },
],
newPwd: [
{ required: true, validator: changePassWord, trigger: "blur" },
],
newPwdAgain: [
{ required: true, validator: changePwdAgain, trigger: "blur" },
],
},
}; };
}, },
computed: { computed: {
...@@ -136,8 +322,38 @@ export default { ...@@ -136,8 +322,38 @@ export default {
} }
this.createCode(); this.createCode();
}, },
mounted() {
this.initSwiper();
},
methods: { methods: {
...mapMutations("user", ["set_token", "SET_USERDATA", "set_siteList"]), ...mapMutations("user", ["set_token", "SET_USERDATA", "set_siteList"]),
initSwiper() {
this.mySwiper = new Swiper(".mySwiper", {
effect: "cube", // 方块动画
speed: 1000, // 时长
// simulateTouch: false, //是否允许鼠标滑动切换
grabCursor: false, // 手形鼠标
cubeEffect: {
shadow: false, // 取消盒子阴影
slideShadows: false, // 取消子项拖动时候的阴影
// shadowOffset: 20,
// shadowScale: 0.94,
},
on: {
slideChange: () => {
// 初始化密码框类型
Object.assign(this.TypeForm, this.$options.data().TypeForm);
this.loading = false;
this.changeloading = false;
this.$refs.changePwdForm.resetFields();
this.$refs.form.resetFields();
this.createCode();
},
},
});
this.mySwiper.init();
},
// 获取验证码 // 获取验证码
createCode() { createCode() {
// 加时间戳印记用于刷新gif // 加时间戳印记用于刷新gif
...@@ -155,7 +371,7 @@ export default { ...@@ -155,7 +371,7 @@ export default {
loginName: encrypt(this.form.loginName), loginName: encrypt(this.form.loginName),
password: encrypt(this.form.password), password: encrypt(this.form.password),
}); });
let { code, data } = res; let { code, data, msg } = res;
if (code == 1) { if (code == 1) {
let { siteList, user, token } = data; let { siteList, user, token } = data;
this.set_token(token); this.set_token(token);
...@@ -168,13 +384,42 @@ export default { ...@@ -168,13 +384,42 @@ export default {
setTimeout(() => { setTimeout(() => {
this.$router.push("/home"); this.$router.push("/home");
}, 20); }, 20);
} else if (code == 99998) {
this.$message.error(msg);
setTimeout(() => {
this.mySwiper.slideTo(1);
}, 500);
} else { } else {
this.$message.error(msg);
this.createCode(); this.createCode();
} }
this.loading = false; this.loading = false;
} }
}); });
}, },
// 修改密码
changePwd() {
this.$refs.changePwdForm.validate(async (valid) => {
if (valid) {
this.changeloading = true;
let obj = {
loginName: this.changePwdForm.loginName,
oldPwd: encrypt(this.changePwdForm.oldPwd),
newPwd: encrypt(this.changePwdForm.newPwd),
};
let res = await changeForgotPassword(obj);
this.changeloading = false;
let { msg, code } = res;
if (code == 1) {
this.$message.success(msg);
setTimeout(() => {
this.mySwiper.slideTo(0);
}, 500);
}
}
});
},
}, },
}; };
</script> </script>
...@@ -243,9 +488,14 @@ export default { ...@@ -243,9 +488,14 @@ export default {
margin-left: 1em; margin-left: 1em;
animation: var(--time) printText var(--time) steps(5) both; animation: var(--time) printText var(--time) steps(5) both;
} }
.login-box { .swiper {
width: 490px; width: 100%;
height: 660px; height: 100%;
}
.login-box,
.revamp-box {
width: 100%;
height: 100%;
padding: 60px 34px; padding: 60px 34px;
background: url("@/assets/images/login_box_bg.png") center; background: url("@/assets/images/login_box_bg.png") center;
background-size: 100% 100%; background-size: 100% 100%;
...@@ -324,4 +574,4 @@ export default { ...@@ -324,4 +574,4 @@ export default {
color: #ffffff; color: #ffffff;
} }
} }
</style> </style>
\ No newline at end of file
...@@ -102,8 +102,8 @@ project_ui_deploy() { ...@@ -102,8 +102,8 @@ project_ui_deploy() {
main() { main() {
echo "后台服务部署" echo "后台服务部署"
project_deploy project_deploy
echo "前端服务部署" #echo "前端服务部署"
project_ui_deploy #project_ui_deploy
exit ${RETVAL} exit ${RETVAL}
} }
......
...@@ -76,6 +76,11 @@ public class AuthTokenServiceImpl implements IAuthTokenService { ...@@ -76,6 +76,11 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
String token = getToken(request); String token = getToken(request);
if (StringUtils.isNotEmpty(token)) { if (StringUtils.isNotEmpty(token)) {
try { try {
boolean signed = Jwts.parser().isSigned(token);
if (!signed) {
log.error("token非法!=>{}", token);
return null;
}
Claims claims = parseToken(token); Claims claims = parseToken(token);
String uuid = (String) claims.get(SysConstains.LOGIN_USER_KEY); String uuid = (String) claims.get(SysConstains.LOGIN_USER_KEY);
String userKey = getTokenKey(uuid); String userKey = getTokenKey(uuid);
......
/**
* 文件:ResourceDao.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.resource.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import java.util.List;
/**
* <p>Title: 资源信息</p>
* <p>Description: ResourceDao DAO接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface ResourceDao extends ICRUDDao<ResourceEntity,Long> {
List<ResourceEntity> getListByUserId(Long userId);
List<ResourceEntity> getAll(int userType);
}
\ No newline at end of file
/**
* 文件:ResourceDaoImpl.java 版本:1.0.0 日期: Copyright &reg; All right reserved.
*/
package com.mortals.xhx.base.system.resource.dao.ibatis;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import com.mortals.framework.model.ParamDto;
import com.mortals.xhx.base.system.resource.dao.ResourceDao;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* Title: 资源信息
* </p>
* <p>
* Description: ResourceDaoImpl DAO接口
* </p>
* <p>
* Copyright: Copyright &reg;
* </p>
* <p>
* Company:
* </p>
* @author
* @version 1.0.0
*/
@Repository("resourceDao")
public class ResourceDaoImpl extends BaseCRUDDaoMybatis<ResourceEntity, Long> implements ResourceDao {
@Override
public List<ResourceEntity> getListByUserId(Long userId) {
ParamDto param = new ParamDto();
param.getCondition().put("userId", userId);
return getSqlSession().selectList(getSqlId("getListByUserId"), param);
}
@Override
public List<ResourceEntity> getAll(final int userType) {
return getSqlSession().selectList(getSqlId("getAllByUserType"), new HashMap<String, Object>() {
{
put("userType", userType);
}
});
}
}
\ No newline at end of file
/**
* 文件:ResourceEntity.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.resource.model;
import com.mortals.framework.model.BaseEntityLong;
import java.util.Date;
/**
* <p>Title: 资源信息</p>
* <p>Description: ResourceEntity </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class ResourceEntity extends BaseEntityLong{
private static final long serialVersionUID = 1547777703340L;
/** 名称 */
private String name;
/** 连接地址,多个地址以逗号分隔 */
private String url;
/** 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3 */
private Integer authType;
/** 资源类型,0:系统资源,1:开放资源,默认0 */
private Integer sourceType;
/** 创建时间 */
private Date createTime;
/** 创建用户 */
private Long createUserId;
/** 创建用户名称 */
private String createUserName;
/** 用户类型,0:系统用户 1:代理商用户 2:品牌商用户 */
private Integer userType;
public ResourceEntity(){
}
/**
* 获取 名称
* @return name
*/
public String getName(){
return this.name;
}
/**
* 设置 名称
* @param name
*/
public void setName(String name){
this.name = name;
}
/**
* 获取 连接地址,多个地址以逗号分隔
* @return url
*/
public String getUrl(){
return this.url;
}
/**
* 设置 连接地址,多个地址以逗号分隔
* @param url
*/
public void setUrl(String url){
this.url = url;
}
/**
* 获取 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @return authType
*/
public Integer getAuthType(){
return this.authType;
}
/**
* 设置 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @param authType
*/
public void setAuthType(Integer authType){
this.authType = authType;
}
/**
* 获取 资源类型,0:系统资源,1:开放资源,默认0
* @return sourceType
*/
public Integer getSourceType(){
return this.sourceType;
}
/**
* 设置 资源类型,0:系统资源,1:开放资源,默认0
* @param sourceType
*/
public void setSourceType(Integer sourceType){
this.sourceType = sourceType;
}
/**
* 获取 创建时间
* @return createTime
*/
public Date getCreateTime(){
return this.createTime;
}
/**
* 设置 创建时间
* @param createTime
*/
public void setCreateTime(Date createTime){
this.createTime = createTime;
}
/**
* 获取 创建用户
* @return createUserId
*/
public Long getCreateUserId(){
return this.createUserId;
}
/**
* 设置 创建用户
* @param createUserId
*/
public void setCreateUserId(Long createUserId){
this.createUserId = createUserId;
}
/**
* 获取 创建用户名称
* @return createUserName
*/
public String getCreateUserName(){
return this.createUserName;
}
/**
* 设置 创建用户名称
* @param createUserName
*/
public void setCreateUserName(String createUserName){
this.createUserName = createUserName;
}
/**
* 获取 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @return userType
*/
public Integer getUserType(){
return this.userType;
}
/**
* 设置 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @param userType
*/
public void setUserType(Integer userType){
this.userType = userType;
}
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (obj instanceof ResourceEntity) {
ResourceEntity tmp = (ResourceEntity) obj;
if (this.getId().longValue() == tmp.getId().longValue()) {
return true;
}
}
return false;
}
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append("id:").append(getId())
.append(",name:").append(getName())
.append(",url:").append(getUrl())
.append(",authType:").append(getAuthType())
.append(",sourceType:").append(getSourceType())
.append(",createTime:").append(getCreateTime())
.append(",createUserId:").append(getCreateUserId())
.append(",createUserName:").append(getCreateUserName())
.append(",userType:").append(getUserType());
return sb.toString();
}
public void initAttrValue(){
this.name = null;
this.url = null;
this.authType = 3;
this.sourceType = 0;
this.createTime = null;
this.createUserId = null;
this.createUserName = null;
this.userType = null;
}
}
\ No newline at end of file
/**
* 文件:ResourceQuery.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.resource.model;
import java.util.List;
/**
* <p>Title: 资源信息</p>
* <p>Description: ResourceQuery </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public class ResourceQuery extends ResourceEntity {
private static final long serialVersionUID = 1547777703341L;
/** 开始 菜单ID,主键,自增长 */
private Long idStart;
/** 结束 菜单ID,主键,自增长 */
private Long idEnd;
/** 增加 菜单ID,主键,自增长 */
private Long idIncrement;
/** 菜单ID,主键,自增长 */
private List<Long> idList;
/** 名称 */
private List<String> nameList;
/** 连接地址,多个地址以逗号分隔 */
private List<String> urlList;
/** 开始 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3 */
private Integer authTypeStart;
/** 结束 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3 */
private Integer authTypeEnd;
/** 增加 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3 */
private Integer authTypeIncrement;
/** 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3 */
private List<Integer> authTypeList;
/** 开始 资源类型,0:系统资源,1:开放资源,默认0 */
private Integer sourceTypeStart;
/** 结束 资源类型,0:系统资源,1:开放资源,默认0 */
private Integer sourceTypeEnd;
/** 增加 资源类型,0:系统资源,1:开放资源,默认0 */
private Integer sourceTypeIncrement;
/** 资源类型,0:系统资源,1:开放资源,默认0 */
private List<Integer> sourceTypeList;
/** 开始 创建时间 */
private String createTimeStart;
/** 结束 创建时间 */
private String createTimeEnd;
/** 开始 创建用户 */
private Long createUserIdStart;
/** 结束 创建用户 */
private Long createUserIdEnd;
/** 增加 创建用户 */
private Long createUserIdIncrement;
/** 创建用户 */
private List<Long> createUserIdList;
/** 创建用户名称 */
private List<String> createUserNameList;
/** 开始 用户类型,0:系统用户 1:代理商用户 2:品牌商用户 */
private Integer userTypeStart;
/** 结束 用户类型,0:系统用户 1:代理商用户 2:品牌商用户 */
private Integer userTypeEnd;
/** 增加 用户类型,0:系统用户 1:代理商用户 2:品牌商用户 */
private Integer userTypeIncrement;
/** 用户类型,0:系统用户 1:代理商用户 2:品牌商用户 */
private List<Integer> userTypeList;
public ResourceQuery(){
}
/**
* 获取 开始 菜单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 nameList
*/
public List<String> getNameList(){
return this.nameList;
}
/**
* 设置 名称
* @param nameList
*/
public void setNameList(List<String> nameList){
this.nameList = nameList;
}
/**
* 获取 连接地址,多个地址以逗号分隔
* @return urlList
*/
public List<String> getUrlList(){
return this.urlList;
}
/**
* 设置 连接地址,多个地址以逗号分隔
* @param urlList
*/
public void setUrlList(List<String> urlList){
this.urlList = urlList;
}
/**
* 获取 开始 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @return authTypeStart
*/
public Integer getAuthTypeStart(){
return this.authTypeStart;
}
/**
* 设置 开始 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @param authTypeStart
*/
public void setAuthTypeStart(Integer authTypeStart){
this.authTypeStart = authTypeStart;
}
/**
* 获取 结束 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @return authTypeEnd
*/
public Integer getAuthTypeEnd(){
return this.authTypeEnd;
}
/**
* 设置 结束 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @param authTypeEnd
*/
public void setAuthTypeEnd(Integer authTypeEnd){
this.authTypeEnd = authTypeEnd;
}
/**
* 获取 增加 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @return authTypeIncrement
*/
public Integer getAuthTypeIncrement(){
return this.authTypeIncrement;
}
/**
* 设置 增加 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @param authTypeIncrement
*/
public void setAuthTypeIncrement(Integer authTypeIncrement){
this.authTypeIncrement = authTypeIncrement;
}
/**
* 获取 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @return authTypeList
*/
public List<Integer> getAuthTypeList(){
return this.authTypeList;
}
/**
* 设置 权限类型,0:无限制,1:无需登录查看,2:需要登录查看,3:需要角色权限查看,默认3
* @param authTypeList
*/
public void setAuthTypeList(List<Integer> authTypeList){
this.authTypeList = authTypeList;
}
/**
* 获取 开始 资源类型,0:系统资源,1:开放资源,默认0
* @return sourceTypeStart
*/
public Integer getSourceTypeStart(){
return this.sourceTypeStart;
}
/**
* 设置 开始 资源类型,0:系统资源,1:开放资源,默认0
* @param sourceTypeStart
*/
public void setSourceTypeStart(Integer sourceTypeStart){
this.sourceTypeStart = sourceTypeStart;
}
/**
* 获取 结束 资源类型,0:系统资源,1:开放资源,默认0
* @return sourceTypeEnd
*/
public Integer getSourceTypeEnd(){
return this.sourceTypeEnd;
}
/**
* 设置 结束 资源类型,0:系统资源,1:开放资源,默认0
* @param sourceTypeEnd
*/
public void setSourceTypeEnd(Integer sourceTypeEnd){
this.sourceTypeEnd = sourceTypeEnd;
}
/**
* 获取 增加 资源类型,0:系统资源,1:开放资源,默认0
* @return sourceTypeIncrement
*/
public Integer getSourceTypeIncrement(){
return this.sourceTypeIncrement;
}
/**
* 设置 增加 资源类型,0:系统资源,1:开放资源,默认0
* @param sourceTypeIncrement
*/
public void setSourceTypeIncrement(Integer sourceTypeIncrement){
this.sourceTypeIncrement = sourceTypeIncrement;
}
/**
* 获取 资源类型,0:系统资源,1:开放资源,默认0
* @return sourceTypeList
*/
public List<Integer> getSourceTypeList(){
return this.sourceTypeList;
}
/**
* 设置 资源类型,0:系统资源,1:开放资源,默认0
* @param sourceTypeList
*/
public void setSourceTypeList(List<Integer> sourceTypeList){
this.sourceTypeList = sourceTypeList;
}
/**
* 获取 开始 创建时间
* @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;
}
/**
* 获取 开始 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @return userTypeStart
*/
public Integer getUserTypeStart(){
return this.userTypeStart;
}
/**
* 设置 开始 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @param userTypeStart
*/
public void setUserTypeStart(Integer userTypeStart){
this.userTypeStart = userTypeStart;
}
/**
* 获取 结束 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @return userTypeEnd
*/
public Integer getUserTypeEnd(){
return this.userTypeEnd;
}
/**
* 设置 结束 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @param userTypeEnd
*/
public void setUserTypeEnd(Integer userTypeEnd){
this.userTypeEnd = userTypeEnd;
}
/**
* 获取 增加 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @return userTypeIncrement
*/
public Integer getUserTypeIncrement(){
return this.userTypeIncrement;
}
/**
* 设置 增加 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @param userTypeIncrement
*/
public void setUserTypeIncrement(Integer userTypeIncrement){
this.userTypeIncrement = userTypeIncrement;
}
/**
* 获取 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @return userTypeList
*/
public List<Integer> getUserTypeList(){
return this.userTypeList;
}
/**
* 设置 用户类型,0:系统用户 1:代理商用户 2:品牌商用户
* @param userTypeList
*/
public void setUserTypeList(List<Integer> userTypeList){
this.userTypeList = userTypeList;
}
}
\ No newline at end of file
/**
* 文件:ResourceService.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.resource.service;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import java.util.List;
import java.util.Set;
/**
* <p>Title: 资源信息</p>
* <p>Description: ResourceService service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
public interface ResourceService extends ICRUDService<ResourceEntity,Long> {
/**
* 查询所有可用资源
* @return
* @throws AppException
*/
List<ResourceEntity> findAllEnable() throws AppException;
/**
* 根据用户查询可用资源
* @param userId
* @return
* @throws AppException
*/
List<ResourceEntity> findListByUserId(Long userId) throws AppException;
/**
* 查询用户可用资源
* @param userId
* @return 字符串,多个以逗号分隔
* @throws AppException
*/
String findUrlByUserId(Long userId) throws AppException;
/**
* 查询用户用资源集合
* @param userId
* @return
* @throws AppException
*/
Set<String> findUrlSetByUserId(Long userId) throws AppException;
/**
* 获取所有资源,不分页
* @return
* @param userType
*/
List<ResourceEntity> findAll(int userType);
}
\ No newline at end of file
/**
* 文件:ResourceServiceImpl.java
* 版本:1.0.0
* 日期:
* Copyright &reg;
* All right reserved.
*/
package com.mortals.xhx.base.system.resource.service.impl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.util.DataUtil;
import com.mortals.framework.util.StringUtils;
import com.mortals.xhx.base.system.resource.dao.ResourceDao;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import com.mortals.xhx.base.system.resource.model.ResourceQuery;
import com.mortals.xhx.base.system.resource.service.ResourceService;
import com.mortals.xhx.common.key.RedisKey;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static com.mortals.xhx.common.utils.MenuEncodeUtil.generateMenuUrlCode;
/**
* <p>Title: 资源信息</p>
* <p>Description: ResourceServiceImpl service接口 </p>
* <p>Copyright: Copyright &reg; </p>
* <p>Company: </p>
* @author
* @version 1.0.0
*/
@Service("resourceService")
public class ResourceServiceImpl extends AbstractCRUDServiceImpl<ResourceDao,ResourceEntity,Long> implements ResourceService {
@Autowired
private ICacheService cacheService;
@Override
public List<ResourceEntity> findAllEnable() throws AppException {
ResourceQuery params = new ResourceQuery();
return dao.getList(params);
}
@Override
public List<ResourceEntity> findListByUserId(Long userId) throws AppException {
return dao.getListByUserId(userId);
}
@Override
public String findUrlByUserId(Long userId) throws AppException {
Set<String> urls = this.findUrlSetByUserId(userId);
return StringUtils.converArray2Str(urls.toArray(new String[urls.size()]));
}
@Override
public Set<String> findUrlSetByUserId(Long userId) throws AppException {
Set<String> urls = new HashSet<>();
List<ResourceEntity> resList = this.findListByUserId(userId);
for (ResourceEntity res : resList) {
String url = res.getUrl();
if (StringUtils.isEmpty(url)) {
continue;
}
url = url.replaceAll(",", ",");
urls.addAll(StringUtils.converStr2Set(url));
}
return urls;
}
@Override
public List<ResourceEntity> findAll(int userType) {
return dao.getAll(userType);
}
@Override
protected void updateAfter(ResourceEntity entity, Context context) throws AppException {
updateUserMenuUrlCache();
}
@Override
protected void saveAfter(ResourceEntity entity, Context context) throws AppException {
updateUserMenuUrlCache();
}
private void updateUserMenuUrlCache() {
//更新用户菜单
Set<String> hkeys = cacheService.hkeys(RedisKey.KEY_USER_MENU_CACHE);
for (String userId : hkeys) {
Set<String> urls = this.findUrlSetByUserId(DataUtil.converStr2Long(userId,0L));
String menuUrlCode = generateMenuUrlCode(urls);
cacheService.hset(RedisKey.KEY_USER_MENU_CACHE, userId,menuUrlCode);
}
}
}
\ No newline at end of file
package com.mortals.xhx.base.system.resource.web;
import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.common.IBaseEnum;
import com.mortals.framework.common.code.UserType;
import com.mortals.framework.model.Context;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.resource.model.ResourceEntity;
import com.mortals.xhx.base.system.resource.service.ResourceService;
import com.mortals.xhx.common.code.AuthType;
import com.mortals.xhx.common.code.SourceType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* 资源信息
*
* @author: zxfei
* @date: 2022/5/7 15:27
*/
@Slf4j
@RestController
@RequestMapping("resource")
public class ResourceController extends BaseCRUDJsonBodyMappingController<ResourceService,ResourceEntity,Long> {
public ResourceController(){
super.setModuleDesc("资源信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
Map<String, Object> statsus = new HashMap<String, Object>();
statsus.put("authType", AuthType.getEnumMap());
statsus.put("sourceType", SourceType.getEnumMap());
if (getCurUser().isAdmin()) {
statsus.put("userType", IBaseEnum.getEnumMap(UserType.class));
} else {
statsus.put("userType", UserType.findByValue(getCurUser().getUserType()));
}
model.put(KEY_RESULT_DICT, statsus);
}
/**
* 获取所有资源
*
* @return
*/
@PostMapping("allResources")
public String allResources(int userType) {
JSONObject ret = new JSONObject();
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "所有的customer以及user");
ret.put(KEY_RESULT_DATA, service.findAll(userType));
return ret.toJSONString();
}
}
\ No newline at end of file
...@@ -10,4 +10,9 @@ public class RedisKey { ...@@ -10,4 +10,9 @@ public class RedisKey {
*/ */
public static final String KEY_MENU_CACHE = "iot:base:MenuCacheKey:"; public static final String KEY_MENU_CACHE = "iot:base:MenuCacheKey:";
public static final String KEY_USER_MENU_CACHE = "user:menu";
public static final String KEY_BURY_POINT_CACHE = "bury:point";
} }
package com.mortals.xhx.common.utils;
import com.mortals.framework.ap.GlobalSysInfo;
import com.mortals.framework.ap.SysConstains;
import com.mortals.framework.util.AESUtil;
import lombok.extern.slf4j.Slf4j;
import java.util.Set;
@Slf4j
public class MenuEncodeUtil {
public static String generateMenuUrlCode(Set<String> urls) {
try {
String securityKey = GlobalSysInfo.getPropertyValue(SysConstains.PROP_COOKIE_SECURITY_KEY);
StringBuilder sb = new StringBuilder();
if (urls != null && urls.size() > 0) {
for (String url : urls) {
int index = url.hashCode() & (Integer.MAX_VALUE - 1);
sb.append(index).append(",");
}
}
String menuUrl = sb.toString();
return AESUtil.encrypt(menuUrl, securityKey);
} catch (Throwable e) {
log.error("编码异常",e);
return null;
}
}
}
package com.mortals.xhx.daemon.applicationservice;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.springcloud.service.IApplicationStartedService;
import com.mortals.xhx.module.page.model.pdu.BuryPointPdu;
import com.mortals.xhx.module.page.service.PageAccessDepthService;
import com.mortals.xhx.module.page.service.PageAccessService;
import com.mortals.xhx.module.page.service.PageEventService;
import com.mortals.xhx.module.page.service.PageRouteService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import static com.mortals.xhx.common.key.RedisKey.KEY_BURY_POINT_CACHE;
@Component
@Slf4j
public class ComsumerBurySaveService implements IApplicationStartedService {
protected Boolean stopped = false;
@Autowired
private ICacheService cacheService;
@Autowired
private PageAccessService pageAccessService;
@Autowired
private PageAccessDepthService pageAccessDepthService;
@Autowired
private PageEventService pageEventService;
@Autowired
private PageRouteService pageRouteService;
@Override
public void start() {
Thread sendThread = new Thread(new Runnable() {
@Override
public void run() {
int waitTime = 10;
while (!stopped) {
try {
BuryPointPdu pdu = cacheService.lpop(KEY_BURY_POINT_CACHE, BuryPointPdu.class);
if(!ObjectUtils.isEmpty(pdu)){
pageAccessService.saveByPdu(pdu);
pageAccessDepthService.saveByPdu(pdu);
pageEventService.saveByPdu(pdu);
pageRouteService.saveByPdu(pdu);
}
try {
Thread.sleep(waitTime);
} catch (InterruptedException e2) {
}
} catch (Exception e) {
log.error("异常", e);
try {
Thread.sleep(waitTime);
} catch (InterruptedException e2) {
}
}
}
}
});
sendThread.start();
}
@Override
public void stop() {
log.info("停止服务..");
this.stopped = true;
}
@Override
public int getOrder() {
return 50;
}
}
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context; import com.mortals.framework.model.Context;
import com.mortals.framework.service.ICacheService;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
import com.mortals.framework.web.BaseJsonBodyController; import com.mortals.framework.web.BaseJsonBodyController;
import com.mortals.xhx.module.page.model.PageInfoEntity; import com.mortals.xhx.module.page.model.PageInfoEntity;
...@@ -22,6 +23,8 @@ import java.util.HashMap; ...@@ -22,6 +23,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.mortals.xhx.common.key.RedisKey.KEY_BURY_POINT_CACHE;
/** /**
* 页面埋点 * 页面埋点
*/ */
...@@ -39,24 +42,26 @@ public class BuryPointController extends BaseJsonBodyController { ...@@ -39,24 +42,26 @@ public class BuryPointController extends BaseJsonBodyController {
private PageRouteService pageRouteService; private PageRouteService pageRouteService;
@Autowired @Autowired
private PageInfoService pageInfoService; private PageInfoService pageInfoService;
@Autowired
private ICacheService cacheService;
@PostMapping({"save"}) @PostMapping({"save"})
@UnAuth @UnAuth
public String save(@RequestBody BuryPointPdu pdu) { public String save(@RequestBody BuryPointPdu pdu) {
Map<String, Object> model = new HashMap(); Map<String, Object> model = new HashMap();
Context context = this.getContext();
int code = 1; int code = 1;
String busiDesc = "保存页面数据埋点信息"; String busiDesc = "保存页面数据埋点信息";
try { try {
validData(pdu); validData(pdu);
pageAccessService.saveByPdu(pdu); cacheService.lpush(KEY_BURY_POINT_CACHE,pdu);
pageAccessDepthService.saveByPdu(pdu); // pageAccessService.saveByPdu(pdu);
pageEventService.saveByPdu(pdu); // pageAccessDepthService.saveByPdu(pdu);
pageRouteService.saveByPdu(pdu); // pageEventService.saveByPdu(pdu);
// pageRouteService.saveByPdu(pdu);
model.put("message_info", busiDesc + "成功"); model.put("message_info", busiDesc + "成功");
this.recordSysLog(this.request, busiDesc + " 【成功】"); this.recordSysLog(this.request, busiDesc + " 【成功】");
} catch (Exception var7) { } catch (Exception e) {
this.doException(this.request, busiDesc, model, var7); this.doException(this.request, busiDesc, model, e);
code = -1; code = -1;
} }
model.put("entity", pdu); model.put("entity", pdu);
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
<property name="showSql" value="MySql" /> <property name="showSql" value="MySql" />
</plugin> </plugin>
<plugin interceptor="com.mortals.framework.thirty.mybatis.LogInterceptor"> <plugin interceptor="com.mortals.framework.thirty.mybatis.LogInterceptor">
<property name="enableExecutorTime" value="true" />
<property name="showSql" value="false" />
</plugin> </plugin>
</plugins> </plugins>
</configuration> </configuration>
\ 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