新增动态表单上报、详情、列表、分页功能
This commit is contained in:
parent
6c22b06250
commit
1ffa72f336
@ -1,5 +1,20 @@
|
||||
package ink.wgink.module.form.controller.api.report;
|
||||
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.exceptions.ParamsException;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.form.service.report.IFormReportService;
|
||||
import ink.wgink.pojo.ListPage;
|
||||
import ink.wgink.pojo.result.SuccessResult;
|
||||
import ink.wgink.pojo.result.SuccessResultList;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: FormReportController
|
||||
* @Description: 表单上报
|
||||
@ -7,5 +22,59 @@ package ink.wgink.module.form.controller.api.report;
|
||||
* @Date: 2022/3/10 7:29 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public class FormReportController {
|
||||
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "表单")
|
||||
@RestController
|
||||
@RequestMapping(ISystemConstant.API_PREFIX + "/form-report")
|
||||
public class FormReportController extends DefaultBaseController {
|
||||
|
||||
@Autowired
|
||||
private IFormReportService formReportService;
|
||||
|
||||
@PostMapping("save/code/{formCode}/version/{formVersion}")
|
||||
public SuccessResult save(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @RequestBody Map<String, Object> params) {
|
||||
checkParams(params);
|
||||
formReportService.save(formCode, formVersion, params);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@DeleteMapping("remove/code/{formCode}/version/{formVersion}/uids/{uids}")
|
||||
public SuccessResult remove(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uids") String uids) {
|
||||
formReportService.remove(formCode, formVersion, Arrays.asList(uids.split("\\_")));
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@PutMapping("update/code/{formCode}/version/{formVersion}/uid/{uid}")
|
||||
public SuccessResult update(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uid") String uid, @RequestBody Map<String, Object> params) {
|
||||
checkParams(params);
|
||||
formReportService.update(uid, params);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@GetMapping("get/code/{formCode}/version/{formVersion}/uid/{uid}")
|
||||
public Map<String, Object> get(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uid") String uid) {
|
||||
return formReportService.get(formCode, formVersion, uid);
|
||||
}
|
||||
|
||||
@GetMapping("list/code/{formCode}/version/{formVersion}")
|
||||
public List<Map<String, Object>> list(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
||||
Map<String, Object> params = requestParams();
|
||||
return formReportService.list(formCode, formVersion, params);
|
||||
}
|
||||
|
||||
@GetMapping("listpage/code/{formCode}/version/{formVersion}")
|
||||
public SuccessResultList<List<Map<String, Object>>> listPage(@PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, ListPage page) {
|
||||
Map<String, Object> params = requestParams();
|
||||
page.setParams(params);
|
||||
return formReportService.listPage(formCode, formVersion, page);
|
||||
}
|
||||
|
||||
private void checkParams(Map<String, Object> body) {
|
||||
if (body.isEmpty()) {
|
||||
throw new ParamsException("提交内容不能为空");
|
||||
}
|
||||
for (Map.Entry<String, Object> kv : body.entrySet()) {
|
||||
String key = kv.getKey();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,58 @@
|
||||
package ink.wgink.module.form.controller.app.route.report;
|
||||
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.module.form.service.report.IFormReportRouteService;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
/**
|
||||
* @ClassName: FormReportRouteController
|
||||
* @Description: 表单上报
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/3/10 7:29 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Api(tags = ISystemConstant.API_TAGS_APP_ROUTE_PREFIX + "表单")
|
||||
@Controller
|
||||
@RequestMapping(ISystemConstant.APP_ROUTE_PREFIX + "/form-report")
|
||||
public class FormReportAppRouteController {
|
||||
|
||||
@Autowired
|
||||
private IFormReportRouteService formReportService;
|
||||
|
||||
@GetMapping("save/code/{formCode}/version/{formVersion}")
|
||||
public void get(@PathVariable("formCode") String formCode,
|
||||
@PathVariable("formVersion") Integer formVersion,
|
||||
HttpSession httpSession,
|
||||
HttpServletRequest httpServletRequest,
|
||||
HttpServletResponse httpServletResponse) {
|
||||
formReportService.appSave(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
@GetMapping("update/code/{formCode}/version/{formVersion}")
|
||||
public void update(@PathVariable("formCode") String formCode,
|
||||
@PathVariable("formVersion") Integer formVersion,
|
||||
HttpSession httpSession,
|
||||
HttpServletRequest httpServletRequest,
|
||||
HttpServletResponse httpServletResponse) {
|
||||
formReportService.appUpdate(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
@GetMapping("show/code/{formCode}/version/{formVersion}")
|
||||
public void show(@PathVariable("formCode") String formCode,
|
||||
@PathVariable("formVersion") Integer formVersion,
|
||||
HttpSession httpSession,
|
||||
HttpServletRequest httpServletRequest,
|
||||
HttpServletResponse httpServletResponse) {
|
||||
formReportService.appShow(formCode, formVersion, httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package ink.wgink.module.form.dao.formreport;
|
||||
|
||||
import ink.wgink.exceptions.RemoveException;
|
||||
import ink.wgink.exceptions.SaveException;
|
||||
import ink.wgink.exceptions.SearchException;
|
||||
import ink.wgink.exceptions.UpdateException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: IFormReportDao
|
||||
* @Description: 表单上报
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/3/14 8:27 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Repository
|
||||
public interface IFormReportDao {
|
||||
|
||||
void save(Map<String, Object> params) throws SaveException;
|
||||
|
||||
void remove(Map<String, Object> params) throws RemoveException;
|
||||
|
||||
void update(Map<String, Object> params) throws UpdateException;
|
||||
|
||||
Map<String, Object> get(Map<String, Object> params) throws SearchException;
|
||||
|
||||
List<Map<String, Object>> list(Map<String, Object> queryParams) throws SearchException;
|
||||
|
||||
}
|
@ -46,4 +46,36 @@ public interface IFormReportRouteService {
|
||||
*/
|
||||
void show(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse);
|
||||
|
||||
/**
|
||||
* APP新增页面
|
||||
*
|
||||
* @param formCode
|
||||
* @param formVersion
|
||||
* @param httpSession
|
||||
* @param httpServletRequest
|
||||
* @param httpServletResponse
|
||||
*/
|
||||
void appSave(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse);
|
||||
|
||||
/**
|
||||
* APP修改页面
|
||||
*
|
||||
* @param formCode
|
||||
* @param formVersion
|
||||
* @param httpSession
|
||||
* @param httpServletRequest
|
||||
* @param httpServletResponse
|
||||
*/
|
||||
void appUpdate(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse);
|
||||
|
||||
/**
|
||||
* APP详情页面
|
||||
*
|
||||
* @param formCode
|
||||
* @param formVersion
|
||||
* @param httpSession
|
||||
* @param httpServletRequest
|
||||
* @param httpServletResponse
|
||||
*/
|
||||
void appShow(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse);
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
package ink.wgink.module.form.service.report;
|
||||
|
||||
import ink.wgink.pojo.ListPage;
|
||||
import ink.wgink.pojo.result.SuccessResultList;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: IFormReportService
|
||||
* @Description: 表单上报
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/3/14 5:30 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface IFormReportService {
|
||||
|
||||
void save(String formCode, Integer formVersion, Map<String, Object> params);
|
||||
|
||||
void remove(String formCode, Integer formVersion, List<String> uids);
|
||||
|
||||
void update(String uid, Map<String, Object> params);
|
||||
|
||||
Map<String, Object> get(String formCode, Integer formVersion, String uid);
|
||||
|
||||
List<Map<String, Object>> list(String formCode, Integer formVersion, Map<String, Object> params);
|
||||
|
||||
SuccessResultList<List<Map<String, Object>>> listPage(String formCode, Integer formVersion, ListPage page);
|
||||
|
||||
}
|
@ -41,23 +41,79 @@ public class FormReportRouteServiceImpl extends DefaultBaseService implements IF
|
||||
|
||||
@Override
|
||||
public void save(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||
FormPO formPO = getFormPO(formCode, formVersion);
|
||||
if (formPO == null) {
|
||||
httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value());
|
||||
return;
|
||||
}
|
||||
if (!StringUtils.equals(formPO.getFormStatus(), FormStatusEnum.ACTIVE.getValue())) {
|
||||
LOG.error("表单 {} 未激活", formCode);
|
||||
httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value());
|
||||
Map<String, Object> modal = getModal(formPO);
|
||||
showPage(modal, formCode, formPO.getSavePageCode(), httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
FormPO formPO = getFormPO(formCode, formVersion);
|
||||
if (formPO == null) {
|
||||
return;
|
||||
}
|
||||
Map<String, Object> modal = getModal(formPO);
|
||||
showPage(modal, formCode, formPO.getUpdatePageCode(), httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
FormPO formPO = getFormPO(formCode, formVersion);
|
||||
if (formPO == null) {
|
||||
return;
|
||||
}
|
||||
Map<String, Object> modal = getModal(formPO);
|
||||
showPage(modal, formCode, formPO.getShowPageCode(), httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appSave(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
FormPO formPO = getFormPO(formCode, formVersion);
|
||||
if (formPO == null) {
|
||||
return;
|
||||
}
|
||||
Map<String, Object> modal = getModal(formPO);
|
||||
showPage(modal, formCode, formPO.getAppSavePageCode(), httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appUpdate(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
FormPO formPO = getFormPO(formCode, formVersion);
|
||||
if (formPO == null) {
|
||||
return;
|
||||
}
|
||||
Map<String, Object> modal = getModal(formPO);
|
||||
showPage(modal, formCode, formPO.getAppUpdatePageCode(), httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appShow(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
FormPO formPO = getFormPO(formCode, formVersion);
|
||||
if (formPO == null) {
|
||||
return;
|
||||
}
|
||||
Map<String, Object> modal = getModal(formPO);
|
||||
showPage(modal, formCode, formPO.getAppShowPageCode(), httpSession, httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示页面
|
||||
*
|
||||
* @param modal
|
||||
* @param formCode
|
||||
* @param pageCode
|
||||
* @param httpSession
|
||||
* @param httpServletRequest
|
||||
* @param httpServletResponse
|
||||
*/
|
||||
private void showPage(Map<String, Object> modal, String formCode, String pageCode, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
httpServletResponse.setContentType("text/html; charset=" + ISystemConstant.CHARSET_UTF8);
|
||||
try {
|
||||
Template template = getTemplate(formCode, formPO.getSavePageCode());
|
||||
Template template = getTemplate(formCode, pageCode);
|
||||
PrintWriter out = httpServletResponse.getWriter();
|
||||
Map<String, Object> modal = getHashMap(2);
|
||||
modal.put("contextPath", httpServletRequest.getContextPath() + "/");
|
||||
modal.put("formName", formPO.getFormName());
|
||||
template.process(modal, out);
|
||||
} catch (IOException e) {
|
||||
httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value());
|
||||
@ -67,14 +123,39 @@ public class FormReportRouteServiceImpl extends DefaultBaseService implements IF
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
|
||||
/**
|
||||
* 获取模型
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> getModal(FormPO formPO) {
|
||||
Map<String, Object> modal = getHashMap(10);
|
||||
modal.put("contextPath", httpServletRequest.getContextPath() + "/");
|
||||
modal.put("formName", formPO.getFormName());
|
||||
modal.put("formCode", formPO.getFormCode());
|
||||
modal.put("formVersion", formPO.getFormVersion());
|
||||
return modal;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show(String formCode, Integer formVersion, HttpSession httpSession, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
|
||||
|
||||
/**
|
||||
* 获取表单
|
||||
*
|
||||
* @param formCode
|
||||
* @param formVersion
|
||||
* @return
|
||||
*/
|
||||
private FormPO getFormPO(String formCode, Integer formVersion) {
|
||||
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||
if (formPO == null) {
|
||||
httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value());
|
||||
return null;
|
||||
}
|
||||
if (!StringUtils.equals(formPO.getFormStatus(), FormStatusEnum.ACTIVE.getValue())) {
|
||||
LOG.error("表单 {} 未激活", formCode);
|
||||
httpServletResponse.setStatus(HttpStatus.NOT_FOUND.value());
|
||||
return null;
|
||||
}
|
||||
return formPO;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,190 @@
|
||||
package ink.wgink.module.form.service.report.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import ink.wgink.common.base.DefaultBaseService;
|
||||
import ink.wgink.module.form.dao.formreport.IFormReportDao;
|
||||
import ink.wgink.module.form.service.report.IFormReportService;
|
||||
import ink.wgink.pojo.ListPage;
|
||||
import ink.wgink.pojo.result.SuccessResultList;
|
||||
import ink.wgink.util.UUIDUtil;
|
||||
import ink.wgink.util.date.DateUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: FormReportServiceImpl
|
||||
* @Description: 表单上报
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/3/14 5:30 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Service
|
||||
public class FormReportServiceImpl extends DefaultBaseService implements IFormReportService {
|
||||
|
||||
@Autowired
|
||||
private IFormReportDao formReportDao;
|
||||
|
||||
@Override
|
||||
public void save(String formCode, Integer formVersion, Map<String, Object> params) {
|
||||
List<String> inserts = new ArrayList<>();
|
||||
List<Object> values = new ArrayList<>();
|
||||
inserts.add("uid");
|
||||
values.add(UUIDUtil.getUUID());
|
||||
for (Map.Entry<String, Object> kv : params.entrySet()) {
|
||||
inserts.add(kv.getKey());
|
||||
values.add(kv.getValue());
|
||||
}
|
||||
String datetime = DateUtil.getTime();
|
||||
String userId = securityComponent.getCurrentUser().getUserId();
|
||||
inserts.add("gmt_create");
|
||||
values.add(datetime);
|
||||
inserts.add("creator");
|
||||
values.add(userId);
|
||||
inserts.add("gmt_modified");
|
||||
values.add(datetime);
|
||||
inserts.add("modifier");
|
||||
values.add(userId);
|
||||
inserts.add("is_delete");
|
||||
values.add(0);
|
||||
|
||||
Map<String, Object> insertParams = getHashMap((params.size() + 5) * 2);
|
||||
insertParams.put("formCode", formCode);
|
||||
insertParams.put("formVersion", formVersion);
|
||||
insertParams.put("inserts", inserts);
|
||||
insertParams.put("values", values);
|
||||
formReportDao.save(insertParams);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(String formCode, Integer formVersion, List<String> uids) {
|
||||
Map<String, Object> params = getHashMap(10);
|
||||
params.put("formCode", formCode);
|
||||
params.put("formVersion", formVersion);
|
||||
params.put("uids", uids);
|
||||
setUpdateInfo(params);
|
||||
|
||||
formReportDao.remove(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(String uid, Map<String, Object> params) {
|
||||
List<Object[]> kvList = new ArrayList<>();
|
||||
for (Map.Entry<String, Object> kv : params.entrySet()) {
|
||||
Object[] kvArray = new Object[]{kv.getKey(), kv.getValue()};
|
||||
kvList.add(kvArray);
|
||||
}
|
||||
kvList.add(new Object[]{"gmt_modified", DateUtil.getTime()});
|
||||
kvList.add(new Object[]{"modifier", securityComponent.getCurrentUser().getUserId()});
|
||||
|
||||
Map<String, Object> updateParams = getHashMap((params.size() + 3) * 2);
|
||||
updateParams.put("uid", uid);
|
||||
updateParams.put("kvList", kvList);
|
||||
|
||||
formReportDao.update(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> get(String formCode, Integer formVersion, String uid) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("uid", uid);
|
||||
params.put("formCode", formCode);
|
||||
params.put("formVersion", formVersion);
|
||||
return formReportDao.get(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> list(String formCode, Integer formVersion, Map<String, Object> params) {
|
||||
List<String> queryList = conditionList(params);
|
||||
Map<String, Object> queryParams = getHashMap(6);
|
||||
queryParams.put("formCode", formCode);
|
||||
queryParams.put("formVersion", formVersion);
|
||||
queryParams.put("queryList", queryList);
|
||||
return formReportDao.list(queryParams);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResultList<List<Map<String, Object>>> listPage(String formCode, Integer formVersion, ListPage page) {
|
||||
List<String> queryList = conditionList(page.getParams());
|
||||
Map<String, Object> queryParams = getHashMap(6);
|
||||
queryParams.put("formCode", formCode);
|
||||
queryParams.put("formVersion", formVersion);
|
||||
queryParams.put("queryList", queryList);
|
||||
|
||||
PageHelper.startPage(page.getPage(), page.getRows());
|
||||
List<Map<String, Object>> mapList = formReportDao.list(queryParams);
|
||||
PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
|
||||
return new SuccessResultList<>(mapList, pageInfo.getPageNum(), pageInfo.getTotal());
|
||||
}
|
||||
|
||||
/**
|
||||
* 条件列表
|
||||
*
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
private List<String> conditionList(Map<String, Object> params) {
|
||||
// 清除条件中的默认字段
|
||||
params.remove("requestUri");
|
||||
params.remove("requestHost");
|
||||
params.remove("requestPort");
|
||||
params.remove("keywords");
|
||||
params.remove("showLevel");
|
||||
params.remove("page");
|
||||
params.remove("rows");
|
||||
params.remove("is_delete");
|
||||
|
||||
List<String> queryList = new ArrayList<>();
|
||||
for (Map.Entry<String, Object> kv : params.entrySet()) {
|
||||
String condition = getCondition(kv.getKey(), kv.getValue());
|
||||
if (StringUtils.isBlank(condition)) {
|
||||
continue;
|
||||
}
|
||||
queryList.add(condition);
|
||||
}
|
||||
return queryList;
|
||||
}
|
||||
|
||||
private String getCondition(String key, Object value) {
|
||||
String conditionSQL;
|
||||
if (value == null) {
|
||||
return null;
|
||||
}
|
||||
String valueStr = "" + value;
|
||||
if (StringUtils.isBlank(valueStr)) {
|
||||
return null;
|
||||
}
|
||||
if (StringUtils.startsWith(valueStr, "*") && StringUtils.endsWith(valueStr, "*")) {
|
||||
// key LIKE '%keyword%'
|
||||
conditionSQL = key + " LIKE '%" + valueStr.substring(1, valueStr.length() - 1) + "%'";
|
||||
} else if (StringUtils.startsWith(valueStr, "*")) {
|
||||
// key LIKE '%keyword'
|
||||
conditionSQL = key + " LIKE '%" + valueStr.substring(1) + "'";
|
||||
} else if (StringUtils.endsWith(valueStr, "*")) {
|
||||
// key LIKE 'keyword%'
|
||||
conditionSQL = key + " LIKE '" + valueStr.substring(0, valueStr.length() - 1) + "%'";
|
||||
} else if (StringUtils.startsWith(valueStr, "lt;")) {
|
||||
// key < 'value'
|
||||
conditionSQL = key + " < '" + valueStr.substring(3) + "'";
|
||||
} else if (StringUtils.endsWith(valueStr, "gt;")) {
|
||||
// key > 'value'
|
||||
conditionSQL = key + " > '" + valueStr.substring(3) + "'";
|
||||
} else if (StringUtils.startsWith(valueStr, "le;")) {
|
||||
// key <= 'value'
|
||||
conditionSQL = key + " <= '" + valueStr.substring(3) + "'";
|
||||
} else if (StringUtils.endsWith(valueStr, "ge;")) {
|
||||
// key >= 'value'
|
||||
conditionSQL = key + " >= '" + valueStr.substring(3) + "'";
|
||||
} else if (StringUtils.endsWith(valueStr, "ne;")) {
|
||||
conditionSQL = key + " <> '" + valueStr.substring(3) + "'";
|
||||
} else {
|
||||
conditionSQL = key + " = '" + valueStr + "'";
|
||||
}
|
||||
return conditionSQL;
|
||||
}
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="ink.wgink.module.form.dao.formreport.IFormReportDao">
|
||||
|
||||
<!-- 新增 -->
|
||||
<insert id="save" parameterType="map">
|
||||
INSERT INTO df_${formCode}_v${formVersion}(
|
||||
<foreach collection="inserts" index="index" open="" separator="," close="">
|
||||
${inserts[index]}
|
||||
</foreach>
|
||||
) VALUES(
|
||||
<foreach collection="values" index="index" open="" separator="," close="">
|
||||
#{values[${index}]}
|
||||
</foreach>
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 删除表单 -->
|
||||
<update id="remove" parameterType="map">
|
||||
UPDATE
|
||||
df_${formCode}_v${formVersion}
|
||||
SET
|
||||
is_delete = 1,
|
||||
modifier = #{modifier},
|
||||
gmt_modified = #{gmtModified}
|
||||
WHERE
|
||||
uid IN
|
||||
<foreach collection="uids" index="index" open="(" separator="," close=")">
|
||||
#{uids[${index}]}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 更新表单 -->
|
||||
<update id="update" parameterType="map">
|
||||
UPDATE
|
||||
df_${formCode}_v${formVersion}
|
||||
SET
|
||||
<foreach collection="kvList" index="index" open="" separator="," close="">
|
||||
${kvList[${index}][0]} = #{kvList[${index}][1]}
|
||||
</foreach>
|
||||
WHERE
|
||||
uid = #{uid}
|
||||
</update>
|
||||
|
||||
<!-- 详情 -->
|
||||
<select id="get" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
df_${formCode}_v${formVersion}
|
||||
WHERE
|
||||
is_delete = 0
|
||||
AND
|
||||
uid = #{uid}
|
||||
</select>
|
||||
|
||||
<!-- 列表 -->
|
||||
<select id="list" parameterType="map" resultType="map">
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
df_${formCode}_v${formVersion}
|
||||
WHERE
|
||||
is_delete = 0
|
||||
<trim prefix="AND">
|
||||
<foreach collection="queryList" item="item" index="index" open="" separator="AND" close="">
|
||||
${item}
|
||||
</foreach>
|
||||
</trim>
|
||||
</select>
|
||||
|
||||
</mapper>
|
@ -15,13 +15,13 @@ layui.define(['jquery', 'formUtils', 'formField'], function (exports) {
|
||||
}
|
||||
var _html = '<div id="{0}" class="layui-form-item layui-row grid {2}" data-id="{0}" data-tag="{1}" data-index="{3}">'.format(json.id, json.tag, selected ? 'active' : '', json.index);
|
||||
|
||||
var colClass = 'layui-col-md6';
|
||||
var colClass = 'layui-col-md6 layui-col-xs6';
|
||||
if (json.columns.length == 3) {
|
||||
colClass = 'layui-col-md4';
|
||||
colClass = 'layui-col-md4 layui-col-xs4';
|
||||
} else if (json.columns.length == 4) {
|
||||
colClass = 'layui-col-md3';
|
||||
colClass = 'layui-col-md3 layui-col-xs3';
|
||||
} else if (json.columns.length == 6) {
|
||||
colClass = 'layui-col-md2';
|
||||
colClass = 'layui-col-md2 layui-col-xs2';
|
||||
}
|
||||
for (var i = 0; i < json.columns.length; i++) {
|
||||
_html += '<div id="{3}_column_{0}" class="{2} widget-col-list column{0}" data-index="{0}" data-parentindex="{1}">'.format(i, json.index, colClass, json.id);
|
||||
|
@ -1214,75 +1214,9 @@ layui.config({
|
||||
options.data[newIndex] = oldData;
|
||||
options.data[oldIndex] = newData;
|
||||
}
|
||||
//导出数据
|
||||
$('.exportJson').on('click', function () {
|
||||
document.getElementById('generate-code-view').value = JSON.stringify(options.data, null, 4);
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: 'JSON 数据导出',
|
||||
id: 'Lay_layer_htmlcodeview',
|
||||
content: $('.htmlcodeview'),
|
||||
area: ['800px', '640px'],
|
||||
shade: false,
|
||||
resize: false,
|
||||
success: function (layero, index) {
|
||||
},
|
||||
end: function () {
|
||||
$('.htmlcodeview').css("display", "none")
|
||||
}
|
||||
});
|
||||
});
|
||||
//导入数据
|
||||
$('.importJson').on('click', function () {
|
||||
document.getElementById('import-json-code').value = JSON.stringify(options.data, null, 4);
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: 'JSON模板数据导入',
|
||||
id: 'Lay_layer_importjsoncodeview',
|
||||
content: $('.importjsoncodeview'),
|
||||
area: ['800px', '640px'],
|
||||
shade: false,
|
||||
resize: false,
|
||||
success: function (layero, index) {
|
||||
},
|
||||
end: function () {
|
||||
$('.importjsoncodeview').css("display", "none")
|
||||
}
|
||||
});
|
||||
});
|
||||
$('.aboutForm').on('click', function () {
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '关于 Layui表单设计器',
|
||||
id: 'Lay_layer_aboutusview',
|
||||
content: $('.aboutusview'),
|
||||
area: ['800px', '640px'],
|
||||
shade: false,
|
||||
resize: false,
|
||||
success: function (layero, index) {
|
||||
},
|
||||
end: function () {
|
||||
}
|
||||
});
|
||||
});
|
||||
$('#copy-html-code').on('click', function () {
|
||||
var Url2 = document.getElementById("generate-code-view");
|
||||
Url2.select(); // 选择对象
|
||||
document.execCommand("Copy"); // 执行
|
||||
layer.msg('复制成功');
|
||||
});
|
||||
$('#import-json-code').on('click', function () {
|
||||
var _value = document.getElementById("import-json-code-view").value;
|
||||
options.data = JSON.parse(_value);
|
||||
that.renderForm();
|
||||
layer.closeAll();
|
||||
layer.msg('导入成功');
|
||||
});
|
||||
|
||||
// 生成HTML代码
|
||||
function getSavePageCode() {
|
||||
var _htmlelem = $('<div style="height:100%;width:100%;"></div>');
|
||||
that.generateHtml(options.data, _htmlelem);
|
||||
function getSavePageCode(_htmlelem) {
|
||||
options.htmlCode.script = '';
|
||||
|
||||
var tabsize = 4;
|
||||
@ -1308,6 +1242,8 @@ layui.config({
|
||||
' </form>' +
|
||||
' </div>',
|
||||
' </div>',
|
||||
' <input type="hidden" id="formCode" value="${formCode}">',
|
||||
' <input type="hidden" id="formVersion" value="${formVersion}">',
|
||||
'</div>',
|
||||
].join('');
|
||||
TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000);
|
||||
@ -1420,9 +1356,7 @@ layui.config({
|
||||
}
|
||||
|
||||
// 生成HTML代码
|
||||
function getUpdatePageCode() {
|
||||
var _htmlelem = $('<div style="height:100%;width:100%;"></div>');
|
||||
that.generateHtml(options.data, _htmlelem);
|
||||
function getUpdatePageCode(_htmlelem) {
|
||||
options.htmlCode.script = '';
|
||||
|
||||
var tabsize = 4;
|
||||
@ -1448,6 +1382,8 @@ layui.config({
|
||||
' </form>' +
|
||||
' </div>',
|
||||
' </div>',
|
||||
' <input type="hidden" id="formCode" value="${formCode}">',
|
||||
' <input type="hidden" id="formVersion" value="${formVersion}">',
|
||||
'</div>',
|
||||
].join('');
|
||||
TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000);
|
||||
@ -1560,9 +1496,7 @@ layui.config({
|
||||
}
|
||||
|
||||
// 生成HTML代码
|
||||
function getShowPageCode() {
|
||||
var _htmlelem = $('<div style="height:100%;width:100%;"></div>');
|
||||
that.generateHtml(options.data, _htmlelem);
|
||||
function getShowPageCode(_htmlelem) {
|
||||
options.htmlCode.script = '';
|
||||
|
||||
var tabsize = 4;
|
||||
@ -1588,6 +1522,8 @@ layui.config({
|
||||
' </form>' +
|
||||
' </div>',
|
||||
' </div>',
|
||||
' <input type="hidden" id="formCode" value="${formCode}">',
|
||||
' <input type="hidden" id="formVersion" value="${formVersion}">',
|
||||
'</div>',
|
||||
].join('');
|
||||
TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000);
|
||||
@ -1700,9 +1636,7 @@ layui.config({
|
||||
}
|
||||
|
||||
// 生成HTML代码
|
||||
function getAppSavePageCode() {
|
||||
var _htmlelem = $('<div style="height:100%;width:100%;"></div>');
|
||||
that.generateHtml(options.data, _htmlelem);
|
||||
function getAppSavePageCode(_htmlelem) {
|
||||
options.htmlCode.script = '';
|
||||
|
||||
var tabsize = 4;
|
||||
@ -1728,6 +1662,8 @@ layui.config({
|
||||
' </form>' +
|
||||
' </div>',
|
||||
' </div>',
|
||||
' <input type="hidden" id="formCode" value="${formCode}">',
|
||||
' <input type="hidden" id="formVersion" value="${formVersion}">',
|
||||
'</div>',
|
||||
].join('');
|
||||
TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000);
|
||||
@ -1840,9 +1776,7 @@ layui.config({
|
||||
}
|
||||
|
||||
// 生成HTML代码
|
||||
function getAppUpdatePageCode() {
|
||||
var _htmlelem = $('<div style="height:100%;width:100%;"></div>');
|
||||
that.generateHtml(options.data, _htmlelem);
|
||||
function getAppUpdatePageCode(_htmlelem) {
|
||||
options.htmlCode.script = '';
|
||||
|
||||
var tabsize = 4;
|
||||
@ -1868,6 +1802,8 @@ layui.config({
|
||||
' </form>' +
|
||||
' </div>',
|
||||
' </div>',
|
||||
' <input type="hidden" id="formCode" value="${formCode}">',
|
||||
' <input type="hidden" id="formVersion" value="${formVersion}">',
|
||||
'</div>',
|
||||
].join('');
|
||||
TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000);
|
||||
@ -1980,9 +1916,7 @@ layui.config({
|
||||
}
|
||||
|
||||
// 生成HTML代码
|
||||
function getAppShowPageCode() {
|
||||
var _htmlelem = $('<div style="height:100%;width:100%;"></div>');
|
||||
that.generateHtml(options.data, _htmlelem);
|
||||
function getAppShowPageCode(_htmlelem) {
|
||||
options.htmlCode.script = '';
|
||||
|
||||
var tabsize = 4;
|
||||
@ -2008,6 +1942,8 @@ layui.config({
|
||||
' </form>' +
|
||||
' </div>',
|
||||
' </div>',
|
||||
' <input type="hidden" id="formCode" value="${formCode}">',
|
||||
' <input type="hidden" id="formVersion" value="${formVersion}">',
|
||||
'</div>',
|
||||
].join('');
|
||||
TP_FORM_CODE = style_html(TP_FORM_CODE, tabsize, tabchar, 2000);
|
||||
@ -2119,39 +2055,6 @@ layui.config({
|
||||
return TP_HTML_CODE;
|
||||
}
|
||||
|
||||
$('.generateCode').on('click', function () {
|
||||
//构件 html
|
||||
var TP_HTML_CODE = getSavePageCode();
|
||||
document.getElementById('generate-code-view').value = TP_HTML_CODE;
|
||||
console.log($('#generate-code-view').val());
|
||||
});
|
||||
$('#preview').on('click', function () {
|
||||
window.localStorage.setItem('layui_form_json', JSON.stringify(options.data));
|
||||
layer.confirm('请选择你要预览页面的方式?', {
|
||||
btn: ['弹窗', '新页面'] //按钮
|
||||
}, function () {
|
||||
//iframe窗
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '表单预览',
|
||||
btn: ['关闭'], //可以无限个按钮
|
||||
btn1: function (index, layero) {
|
||||
layer.close(index);
|
||||
},
|
||||
closeBtn: 1, //不显示关闭按钮
|
||||
shade: [0],
|
||||
area: ['100%', '100%'],
|
||||
offset: 'auto', //右下角弹出
|
||||
anim: 2,
|
||||
content: ['./preview.html', 'yes'], //iframe的url,no代表不显示滚动条
|
||||
end: function () { //此处用于演示
|
||||
//加载结束
|
||||
}
|
||||
});
|
||||
}, function () {
|
||||
window.open("./preview.html");
|
||||
});
|
||||
});
|
||||
$('#save').on('click', function () {
|
||||
var formName = $('#formName').val();
|
||||
if (!formName) {
|
||||
@ -2168,12 +2071,16 @@ layui.config({
|
||||
top.dialog.msg('请添加组件');
|
||||
return;
|
||||
}
|
||||
var savePageCode = getSavePageCode();
|
||||
var updatePageCode = getUpdatePageCode();
|
||||
var showPageCode = getShowPageCode();
|
||||
var appSavePageCode = getAppSavePageCode();
|
||||
var appUpdatePageCode = getAppUpdatePageCode();
|
||||
var appShowPageCode = getAppShowPageCode();
|
||||
|
||||
var _htmlelem = $('<div id="app" style="height:100%;width:100%;"></div>');
|
||||
that.generateHtml(options.data, _htmlelem);
|
||||
|
||||
var savePageCode = getSavePageCode(_htmlelem);
|
||||
var updatePageCode = getUpdatePageCode(_htmlelem);
|
||||
var showPageCode = getShowPageCode(_htmlelem);
|
||||
var appSavePageCode = getAppSavePageCode(_htmlelem);
|
||||
var appUpdatePageCode = getAppUpdatePageCode(_htmlelem);
|
||||
var appShowPageCode = getAppShowPageCode(_htmlelem);
|
||||
|
||||
top.dialog.confirm(top.dataMessage.commit, function (index) {
|
||||
top.dialog.close(index);
|
||||
@ -2238,9 +2145,7 @@ layui.config({
|
||||
//获取当前的 DOM 对象
|
||||
if (item2.list.length > 0) {
|
||||
var elem2 = $('#' + item.id + '_column_' + index2);
|
||||
if (item2.list.length > 0) {
|
||||
that.renderComponents(item2.list, elem2);
|
||||
}
|
||||
that.renderComponents(item2.list, elem2);
|
||||
}
|
||||
});
|
||||
} else if (item.tag === 'slider') {
|
||||
@ -2266,17 +2171,9 @@ layui.config({
|
||||
Class.prototype.generateHtml = function (jsondata, elem) {
|
||||
var that = this,
|
||||
options = that.config;
|
||||
elem.append($('#formDesignerForm').clone(false));
|
||||
$.each(jsondata, function (index, item) {
|
||||
elem.append(that.components[item.tag].render(item, true));
|
||||
if (item.tag === 'grid') {
|
||||
$.each(item.columns, function (index2, item2) {
|
||||
//获取当前的 DOM 对象
|
||||
var elem2 = $('#' + item.id + '_column_' + index2);
|
||||
if (item2.list.length > 0) {
|
||||
that.generateHtml(item2.list, elem2);
|
||||
}
|
||||
});
|
||||
} else if (item.tag === 'slider') {
|
||||
if (item.tag === 'slider') {
|
||||
//定义初始值
|
||||
options.htmlCode.script += ['slider.render({', , 'elem: "#' + item.tag + item.id + '" ,', 'value: ' + item.defaultValue + ',', 'min: ' + item.minValue + ',', 'max: ' + item.maxValue + ',', 'step: ' + item.stepValue + ',', 'input:' + item.isInput + ',', 'change: function(value){', '$("#' + item.id + '").find("input[name="' + item.id + '"]").val(value);', ' }', '});'].join('');
|
||||
} else if (item.tag === 'date') {
|
||||
|
Loading…
Reference in New Issue
Block a user