Commit d81b0487 by tang

增加反馈管理模块

parent f6dfb323
/**
* Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
*/
package com.thinkgem.jeesite.modules.youka.dao;
import com.thinkgem.jeesite.common.persistence.CrudDao;
import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.youka.entity.YoukaFeedback;
/**
* 单表生成DAO接口
* @author tangting
* @version 2018-06-20
*/
@MyBatisDao
public interface YoukaFeedbackDao extends CrudDao<YoukaFeedback> {
}
\ No newline at end of file
/**
* Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
*/
package com.thinkgem.jeesite.modules.youka.entity;
import org.hibernate.validator.constraints.Length;
import com.thinkgem.jeesite.common.persistence.DataEntity;
/**
* 单表生成Entity
* @author tangting
* @version 2018-06-20
*/
public class YoukaFeedback extends DataEntity<YoukaFeedback> {
private static final long serialVersionUID = 1L;
private String code; // 唯一编码
private String userCode; // 反馈人code
private String feedback; // 反馈意见
public YoukaFeedback() {
super();
}
public YoukaFeedback(String id){
super(id);
}
@Length(min=0, max=64, message="唯一编码长度必须介于 0 和 64 之间")
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Length(min=0, max=64, message="反馈人code长度必须介于 0 和 64 之间")
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getFeedback() {
return feedback;
}
public void setFeedback(String feedback) {
this.feedback = feedback;
}
}
\ No newline at end of file
/**
* Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
*/
package com.thinkgem.jeesite.modules.youka.service;
import java.util.List;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.thinkgem.jeesite.common.persistence.Page;
import com.thinkgem.jeesite.common.service.CrudService;
import com.thinkgem.jeesite.modules.youka.entity.YoukaFeedback;
import com.thinkgem.jeesite.modules.youka.dao.YoukaFeedbackDao;
/**
* 单表生成Service
* @author tangting
* @version 2018-06-20
*/
@Service
@Transactional(readOnly = true)
public class YoukaFeedbackService extends CrudService<YoukaFeedbackDao, YoukaFeedback> {
public YoukaFeedback get(String id) {
return super.get(id);
}
public List<YoukaFeedback> findList(YoukaFeedback youkaFeedback) {
return super.findList(youkaFeedback);
}
public Page<YoukaFeedback> findPage(Page<YoukaFeedback> page, YoukaFeedback youkaFeedback) {
Page<YoukaFeedback> pages = super.findPage(page, youkaFeedback);
return pages;
}
@Transactional(readOnly = false)
public void save(YoukaFeedback youkaFeedback) {
super.save(youkaFeedback);
}
@Transactional(readOnly = false)
public void delete(YoukaFeedback youkaFeedback) {
super.delete(youkaFeedback);
}
}
\ No newline at end of file
/**
* Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
*/
package com.thinkgem.jeesite.modules.youka.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.thinkgem.jeesite.common.config.Global;
import com.thinkgem.jeesite.common.persistence.Page;
import com.thinkgem.jeesite.common.web.BaseController;
import com.thinkgem.jeesite.common.utils.StringUtils;
import com.thinkgem.jeesite.modules.youka.entity.YoukaFeedback;
import com.thinkgem.jeesite.modules.youka.service.YoukaFeedbackService;
/**
* 单表生成Controller
* @author tangting
* @version 2018-06-20
*/
@Controller
@RequestMapping(value = "${adminPath}/youka/feedback")
public class YoukaFeedbackController extends BaseController {
@Autowired
private YoukaFeedbackService youkaFeedbackService;
@ModelAttribute
public YoukaFeedback get(@RequestParam(required=false) String id) {
YoukaFeedback entity = null;
if (StringUtils.isNotBlank(id)){
entity = youkaFeedbackService.get(id);
}
if (entity == null){
entity = new YoukaFeedback();
}
return entity;
}
@RequiresPermissions("youka:feedback:view")
@RequestMapping(value = {"list", ""})
public String list(YoukaFeedback youkaFeedback, HttpServletRequest request, HttpServletResponse response, Model model) {
Page<YoukaFeedback> page = youkaFeedbackService.findPage(new Page<YoukaFeedback>(request, response), youkaFeedback);
model.addAttribute("page", page);
return "modules/youka/feedback/feedbackList";
}
@RequiresPermissions("youka:feedback:view")
@RequestMapping(value = "form")
public String form(YoukaFeedback youkaFeedback, Model model) {
model.addAttribute("youkaFeedback", youkaFeedback);
return "modules/youka/feedback/feedbackForm";
}
@RequiresPermissions("youka:feedback:edit")
@RequestMapping(value = "save")
public String save(YoukaFeedback youkaFeedback, Model model, RedirectAttributes redirectAttributes) {
if (!beanValidator(model, youkaFeedback)){
return form(youkaFeedback, model);
}
youkaFeedbackService.save(youkaFeedback);
addMessage(redirectAttributes, "保存单表成功");
return "redirect:"+Global.getAdminPath()+"/youka/feedback/?repage";
}
@RequiresPermissions("youka:feedback:edit")
@RequestMapping(value = "delete")
public String delete(YoukaFeedback youkaFeedback, RedirectAttributes redirectAttributes) {
youkaFeedbackService.delete(youkaFeedback);
addMessage(redirectAttributes, "删除该条反馈成功");
return "redirect:"+Global.getAdminPath()+"/youka/feedback/?repage";
}
}
\ No newline at end of file
<?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="com.thinkgem.jeesite.modules.youka.dao.YoukaFeedbackDao">
<sql id="youkaFeedbackColumns">
a.id AS "id",
a.code AS "code",
a.user_code AS "userCode",
a.feedback AS "feedback",
a.create_date AS "createDate",
a.create_by AS "createBy.id",
a.update_date AS "updateDate",
a.update_by AS "updateBy.id"
</sql>
<sql id="youkaFeedbackJoins">
</sql>
<select id="get" resultType="YoukaFeedback">
SELECT
<include refid="youkaFeedbackColumns"/>
FROM youka_feedback a
<include refid="youkaFeedbackJoins"/>
WHERE a.id = #{id}
</select>
<select id="findList" resultType="YoukaFeedback">
SELECT
a.id AS "id",
b.nickname AS "code",
a.user_code AS "userCode",
a.feedback AS "feedback",
a.create_date AS "createDate",
a.create_by AS "createBy.id",
a.update_date AS "updateDate",
a.update_by AS "updateBy.id"
FROM youka_feedback a
LEFT JOIN youka_users b ON a.user_code = b.code
<where>
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.update_date DESC
</otherwise>
</choose>
</select>
<select id="findAllList" resultType="YoukaFeedback">
SELECT
<include refid="youkaFeedbackColumns"/>
FROM youka_feedback a
<include refid="youkaFeedbackJoins"/>
<where>
</where>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY a.update_date DESC
</otherwise>
</choose>
</select>
<insert id="insert">
INSERT INTO youka_feedback(
id,
code,
user_code,
feedback,
create_date,
create_by,
update_date,
update_by
) VALUES (
#{id},
#{code},
#{userCode},
#{feedback},
#{createDate},
#{createBy.id},
#{updateDate},
#{updateBy.id}
)
</insert>
<update id="update">
UPDATE youka_feedback SET
code = #{code},
user_code = #{userCode},
feedback = #{feedback},
update_date = #{updateDate},
update_by = #{updateBy.id}
WHERE id = #{id}
</update>
<update id="delete">
DELETE FROM youka_feedback
WHERE id = #{id}
</update>
</mapper>
\ No newline at end of file
...@@ -126,17 +126,17 @@ activiti.form.server.url= ...@@ -126,17 +126,17 @@ activiti.form.server.url=
#\u5de5\u7a0b\u8def\u5f84\uff0c\u5728\u4ee3\u7801\u751f\u6210\u65f6\u83b7\u53d6\u4e0d\u5230\u5de5\u7a0b\u8def\u5f84\u65f6\uff0c\u53ef\u518d\u6b64\u6307\u5b9a\u7edd\u5bf9\u8def\u5f84\u3002 #\u5de5\u7a0b\u8def\u5f84\uff0c\u5728\u4ee3\u7801\u751f\u6210\u65f6\u83b7\u53d6\u4e0d\u5230\u5de5\u7a0b\u8def\u5f84\u65f6\uff0c\u53ef\u518d\u6b64\u6307\u5b9a\u7edd\u5bf9\u8def\u5f84\u3002
#projectPath=D\:\\workspace\\jeesite #projectPath=D\:\\workspace\\jeesite
#路径前缀 #路径前缀
sys.pre.url=http://localhost:8080/ sys.pre.url=http://localhost:8080/
#sys.pre.url=http://youka-api-zhennan-test.router.default.svc.cluster.local/ #sys.pre.url=http://youka-api-zhennan-test.router.default.svc.cluster.local/
#图片文件保存地址 #图片文件保存地址
image.save.url=D:/youka/images/ image.save.url=D:/youka/images/
#image.save.url=/tomcat/webapps/ROOT/youka/image/ #image.save.url=/tomcat/webapps/ROOT/youka/image/
#图片返回路径 #图片返回路径
image.return.url=youka/image/ image.return.url=youka/image/
## jfen 对应通道C-HL2 ## jfen 对应通道C-HL2
pay.jfen.merchant_id = 100532502198424 pay.jfen.merchant_id = 100532502198424
pay.jfen.merchant.key = 260a7539-6a2b-410d-aeec-9897ccee92a1 pay.jfen.merchant.key = 260a7539-6a2b-410d-aeec-9897ccee92a1
pay.jfen.merchant.secret = 9ad18861-24b3-4904-a2c3-c4401f6f60f3 pay.jfen.merchant.secret = 9ad18861-24b3-4904-a2c3-c4401f6f60f3
\ No newline at end of file
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html>
<head>
<title>反馈管理</title>
<meta name="decorator" content="default"/>
<script type="text/javascript">
$(document).ready(function() {
});
function page(n,s){
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").submit();
return false;
}
</script>
</head>
<body>
<ul class="nav nav-tabs">
<li class="active"><a href="${ctx}/youka/feedback/list">反馈列表</a></li>
</ul>
<form:form id="searchForm" modelAttribute="youkaFeedback" action="${ctx}/youka/feedback/" method="post" class="breadcrumb form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback=" page();"/>
</form:form>
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed">
<thead>
<tr>
<th>反馈人</th>
<th>内容</th>
<th>时间</th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="youkaFeedback">
<tr>
<td>
${youkaFeedback.code}
</td>
<td>
${youkaFeedback.feedback}
</td>
<td>
<fmt:formatDate value="${youkaFeedback.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="pagination">${page}</div>
</body>
</html>
\ 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