浏览代码

供应商落地页V1.1.1

kaick 1 年之前
父节点
当前提交
e04b0ed1c7

+ 25 - 12
src/main/java/com/caimei/modules/bulkpurchase/web/CmRefundsProductController.java

@@ -564,12 +564,20 @@ public class CmRefundsProductController extends BaseController {
     public String toRecturnRecordByOrderID(CmReturnedPurchase cmReturnedPurchase, String from, HttpServletRequest request, HttpServletResponse response, Model model) {
         try {
             NewOrder newOrder = newOrderService.get(cmReturnedPurchase.getOrderID().toString());
-            //过滤子订单
-            List<NewShopOrder>  newShopOrders= newOrder.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
-            newOrder.setNewShopOrders(newShopOrders);
-            cmReturnedPurchase.setOrderType(Integer.valueOf(newOrder.getOrderType()));
-            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+           if(null!= cmReturnedPurchase.getShopOrderID()){
+               //过滤子订单
+               List<NewShopOrder>  newShopOrders= newOrder.getNewShopOrders().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
+               newOrder.setNewShopOrders(newShopOrders);
+               cmReturnedPurchase.setOrderType(Integer.valueOf(newOrder.getOrderType()));
+            }
 
+            List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
+            for (CmReturnedPurchase returnedPurchase : dataList) {
+                if (null != cmReturnedPurchase.getShopOrderID()) {
+                    List<ShopOrderReturned> shopOrderReturneds = returnedPurchase.getShopOrderReturnedList().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
+                    returnedPurchase.setShopOrderReturnedList(shopOrderReturneds);
+                }
+            }
             Double returnedPurchaseFee = 0D;    //退款(退货)总金额
             Double refundFee = 0D;  //退款总额(给买家)
             for (CmReturnedPurchase bean : dataList) {
@@ -612,16 +620,21 @@ public class CmRefundsProductController extends BaseController {
     public String toRecturnRecord(CmReturnedPurchase cmReturnedPurchase, HttpServletRequest request, HttpServletResponse response, Model model) {
         try {
             NewOrder order = newOrderService.get(cmReturnedPurchase.getOrderID().toString());
-            //过滤子订单
-            List<NewShopOrder>  newShopOrders= order.getNewShopOrders().stream().filter(s ->
-                    s.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID()) )
-                    .collect(Collectors.toList());
-            order.setNewShopOrders(newShopOrders);
+            if (null != cmReturnedPurchase.getShopOrderID()) {
+                //过滤子订单
+                List<NewShopOrder> newShopOrders = order.getNewShopOrders().stream().filter(s ->
+                        s.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID()))
+                        .collect(Collectors.toList());
+                order.setNewShopOrders(newShopOrders);
+            }
+
             cmReturnedPurchase.setOrderType(Integer.valueOf(order.getOrderType()));
             List<CmReturnedPurchase> dataList = cmReturnedPurchaseService.getReturnedPurchaseList(cmReturnedPurchase);
             for (CmReturnedPurchase returnedPurchase : dataList) {
-                List<ShopOrderReturned> shopOrderReturneds = returnedPurchase.getShopOrderReturnedList().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
-                returnedPurchase.setShopOrderReturnedList(shopOrderReturneds);
+                if (null != cmReturnedPurchase.getShopOrderID()) {
+                    List<ShopOrderReturned> shopOrderReturneds = returnedPurchase.getShopOrderReturnedList().stream().filter(newShopOrder -> newShopOrder.getShopOrderID().equals(cmReturnedPurchase.getShopOrderID())).collect(Collectors.toList());
+                    returnedPurchase.setShopOrderReturnedList(shopOrderReturneds);
+                }
             }
 
             BpClause bpClause = new BpClause();

+ 71 - 0
src/main/java/com/caimei/modules/landing/domain/CmQuestionnaire.java

@@ -0,0 +1,71 @@
+package com.caimei.modules.landing.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import java.io.Serializable;
+
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.apache.ibatis.type.Alias;
+
+/**
+ * 用户需求调查对象 cm_questionnaire
+ *
+ * @author Kaick
+ * @date 2023-07-13
+ */
+//@Accessors(chain  = true )
+@Data
+@Alias("CmQuestionnaire")
+public class CmQuestionnaire extends DataEntity<CmQuestionnaire> implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 用户需求ID */
+    private String id;
+
+    /** 分类:1 供应商解决方案 */
+    private String type;
+
+    /** 用户ID,为空游客 */
+    private Integer userId;
+
+    /** 用户姓名 */
+    private String userName;
+
+    /** 公司名称 */
+    private String corporateName;
+
+    /** 手机号 */
+    private String mobile;
+
+    /** 解决方案版本 */
+    private Integer level;
+
+    /** 感兴趣内容 */
+    private String content;
+
+    /** 状态:1待处理,2已处理 */
+    private Integer status;
+
+    /** 删除状态:0已删除 1正常 */
+    private String delFlag;
+
+    /** 修改时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /** 备注 */
+    private String remark;
+
+}
+

+ 105 - 0
src/main/java/com/caimei/modules/landing/mapper/CmQuestionnaireMapper.java

@@ -0,0 +1,105 @@
+package com.caimei.modules.landing.mapper;
+
+import java.util.List;
+
+import com.caimei.modules.landing.domain.CmQuestionnaire;
+import com.thinkgem.jeesite.common.persistence.CrudDao;
+import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 用户需求调查Mapper接口
+ *
+ * @author Kaick
+ * @date 2023-07-13
+ */
+@MyBatisDao
+public interface CmQuestionnaireMapper extends CrudDao<CmQuestionnaire>
+{
+    /**
+     * 查询用户需求调查
+     *
+     * @param id 用户需求调查主键
+     * @return 用户需求调查
+     */
+    public CmQuestionnaire getCmQuestionnaireById(String id);
+
+    /**
+     * 查询用户需求调查Id
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return String
+     */
+    public String getById(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 查询用户需求调查Ids
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return List<String>
+     */
+    public List<String> getByIds(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 查询用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查集合
+     */
+    public CmQuestionnaire getByCmQuestionnaire(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 查询用户需求调查列表
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查集合
+     */
+    public List<CmQuestionnaire> getCmQuestionnaireList(CmQuestionnaire cmQuestionnaire);
+    /**
+     * 查询用户需求调查记录总数
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查Integer
+     */
+    public int getCmQuestionnaireCount(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 新增用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    public int addCmQuestionnaire(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 修改用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    public int updateCmQuestionnaire(CmQuestionnaire cmQuestionnaire);
+
+    /**
+     * 删除用户需求调查
+     *
+     * @param id 用户需求调查主键
+     * @return 结果
+     */
+    public int delCmQuestionnaireById(String id);
+
+    /**
+     * 批量删除用户需求调查
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int delCmQuestionnaireByIds(@Param("ids") String[] ids);
+
+    /**
+     * 修改批量删除用户需求调查
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int updateDelCmQuestionnaireByIds(@Param("ids") String[] ids,@Param("delFlag") Integer delFlag);
+}

+ 157 - 0
src/main/java/com/caimei/modules/landing/service/CmQuestionnaireService.java

@@ -0,0 +1,157 @@
+package com.caimei.modules.landing.service;
+
+import java.util.Date;
+import java.util.List;
+
+import com.caimei.modules.landing.domain.CmBrandLanding;
+import com.caimei.modules.landing.domain.CmQuestionnaire;
+import com.caimei.modules.landing.mapper.CmBrandLandingMapper;
+import com.caimei.modules.landing.mapper.CmQuestionnaireMapper;
+import com.thinkgem.jeesite.common.service.CrudService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 用户需求调查Service业务层处理
+ *
+ * @author Kaick
+ * @date 2023-07-13
+ */
+@Service
+public class CmQuestionnaireService extends CrudService<CmQuestionnaireMapper, CmQuestionnaire> {
+    @Autowired
+    private CmQuestionnaireMapper cmQuestionnaireMapper;
+
+    /**
+     * 查询用户需求调查
+     *
+     * @param id 用户需求调查主键
+     * @return 用户需求调查
+     */
+    public CmQuestionnaire getCmQuestionnaireById(String id) {
+        return cmQuestionnaireMapper.getCmQuestionnaireById(id);
+    }
+
+    /**
+     * 查询用户需求调查Id
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return String
+     */
+    public String getById(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getById(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查Ids
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return List<String>
+     */
+    public List<String> getByIds(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getByIds(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查
+     */
+    public CmQuestionnaire getByCmQuestionnaire(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getByCmQuestionnaire(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查列表
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查
+     */
+    public List<CmQuestionnaire> getCmQuestionnaireList(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getCmQuestionnaireList(cmQuestionnaire);
+    }
+
+    /**
+     * 查询用户需求调查记录总数
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 用户需求调查
+     */
+    public int getCmQuestionnaireCount(CmQuestionnaire cmQuestionnaire) {
+        return cmQuestionnaireMapper.getCmQuestionnaireCount(cmQuestionnaire);
+    }
+
+    /**
+     * 新增用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    public int addCmQuestionnaire(CmQuestionnaire cmQuestionnaire) {
+        cmQuestionnaire.setCreateTime(new Date());
+        return cmQuestionnaireMapper.addCmQuestionnaire(cmQuestionnaire);
+    }
+
+    /**
+     * 修改用户需求调查
+     *
+     * @param cmQuestionnaire 用户需求调查
+     * @return 结果
+     */
+    @Transactional(readOnly = false)
+    public int updateCmQuestionnaire(CmQuestionnaire cmQuestionnaire) {
+        cmQuestionnaire.setUpdateTime(new Date());
+        return cmQuestionnaireMapper.updateCmQuestionnaire(cmQuestionnaire);
+    }
+
+    /**
+     * 批量删除用户需求调查
+     *
+     * @param ids 需要删除的用户需求调查主键
+     * @return 结果
+     */
+    public int delCmQuestionnaireByIds(String[] ids) {
+        return cmQuestionnaireMapper.updateDelCmQuestionnaireByIds(ids, 1);
+        //return cmQuestionnaireMapper.delCmQuestionnaireByIds(ids);
+    }
+
+    /**
+     * 删除用户需求调查信息
+     *
+     * @param id 用户需求调查主键
+     * @return 结果
+     */
+    public int delCmQuestionnaireById(String id) {
+        CmQuestionnaire cmQuestionnaire = new CmQuestionnaire();
+        cmQuestionnaire.setId(id);
+        cmQuestionnaire.setDelFlag("1");
+        return cmQuestionnaireMapper.updateCmQuestionnaire(cmQuestionnaire);
+        //return cmQuestionnaireMapper.delCmQuestionnaireById(id);
+    }
+
+    /**
+     * 批量新增用户需求调查
+     *
+     * @param cmQuestionnaireList 用户需求调查列表
+     * @return 结果
+     */
+    public void batchAddCmQuestionnaire(List<CmQuestionnaire> cmQuestionnaireList) {
+        for (CmQuestionnaire cmQuestionnaire : cmQuestionnaireList) {
+            cmQuestionnaireMapper.addCmQuestionnaire(cmQuestionnaire);
+        }
+    }
+
+    /**
+     * 批量修改用户需求调查
+     *
+     * @param cmQuestionnaireList 用户需求调查列表
+     * @return 结果
+     */
+    public void batchUpdateCmQuestionnaire(List<CmQuestionnaire> cmQuestionnaireList) {
+        for (CmQuestionnaire cmQuestionnaire : cmQuestionnaireList) {
+            cmQuestionnaireMapper.updateCmQuestionnaire(cmQuestionnaire);
+        }
+    }
+}

+ 132 - 0
src/main/java/com/caimei/modules/landing/web/CmQuestionnaireController.java

@@ -0,0 +1,132 @@
+package com.caimei.modules.landing.web;
+
+import com.caimei.constants.common.RedisKeyUtil;
+import com.caimei.dfs.image.beens.ImageUploadInfo;
+import com.caimei.modules.common.utils.UploadUtils;
+import com.caimei.modules.landing.domain.CmBrandFiles;
+import com.caimei.modules.landing.domain.CmBrandLanding;
+import com.caimei.modules.landing.domain.CmQuestionnaire;
+import com.caimei.modules.landing.service.CmBrandLandingService;
+import com.caimei.modules.landing.service.CmQuestionnaireService;
+import com.caimei.modules.opensearch.GenerateUtils;
+import com.caimei.modules.sys.utils.UploadImageUtils;
+import com.caimei.redis.RedisService;
+import com.caimei.vo.JsonModel;
+import com.google.common.collect.Maps;
+import com.thinkgem.jeesite.common.config.Global;
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.utils.Encodes;
+import com.thinkgem.jeesite.common.utils.StringUtils;
+import com.thinkgem.jeesite.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * 功能描述: 用户需求CmQuestionnaireController
+ * @auther: Kaick
+ * @date: 2023/7/13 16:15
+ */
+
+@Controller
+@RequestMapping("${adminPath}/cmQuestionnaire")
+public class CmQuestionnaireController extends BaseController {
+    @Autowired
+    private CmQuestionnaireService cmQuestionnaireService;
+
+    /**
+     * 查询用户需求列表
+     */
+    @RequestMapping(value = {"list", ""})
+    public String list(CmQuestionnaire cmQuestionnaire, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<CmQuestionnaire> page = cmQuestionnaireService.findPage(new Page<CmQuestionnaire>(request, response), cmQuestionnaire);
+        model.addAttribute("page", page);
+        return "modules/landing/cmQuestionnaireList";
+    }
+
+
+    /**
+     * 获取用户需求详细信息
+     */
+    @RequestMapping(value = "form")
+    public String form(CmQuestionnaire cmQuestionnaire, Model model) {
+        CmQuestionnaire cmQuestionnaireById = cmQuestionnaireService.getCmQuestionnaireById(cmQuestionnaire.getId());
+        model.addAttribute("cmQuestionnaire", cmQuestionnaireById);
+        return "modules/landing/cmQuestionnaireGet";
+    }
+
+    /**
+     * 新增修改用户需求
+     */
+    @RequestMapping(value = "save")
+    public String save(CmQuestionnaire cmQuestionnaire, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) {
+        if (StringUtils.isBlank(cmQuestionnaire.getId())) {
+            cmQuestionnaire.setCreateTime(new Date());
+            cmQuestionnaireService.addCmQuestionnaire(cmQuestionnaire);
+            if (cmQuestionnaire.getType().equals("1")) {
+                addMessage(redirectAttributes, "保存用户需求成功");
+            }
+        } else {
+            cmQuestionnaire.setUpdateTime(new Date());
+            cmQuestionnaireService.updateCmQuestionnaire(cmQuestionnaire);
+            if (cmQuestionnaire.getType().equals("1")) {
+                addMessage(redirectAttributes, "修改用户需求成功");
+            }
+        }
+        return "redirect:" + Global.getAdminPath() + "/cmBrandLanding/list?type=" + cmQuestionnaire.getType();
+    }
+
+    /**
+     * 删除用户需求
+     */
+    @RequestMapping(value = "del/{type}/{ids}")
+    public String delete(@PathVariable String[] ids, @PathVariable() Integer type, RedirectAttributes redirectAttributes) {
+        cmQuestionnaireService.delCmQuestionnaireByIds(ids);
+        if (type == 1) {
+            addMessage(redirectAttributes, "删除用户需求成功");
+        }
+        return "redirect:" + Global.getAdminPath() + "/cmBrandLanding/list?type=" + type;
+    }
+
+    /**
+     * 功能描述:修改用户需求状态
+     *
+     * @param cmQuestionnaire
+     * @param request
+     * @param response
+     * @return [cmQuestionnaire, request, response]
+     * @auther: Kaick
+     * @date: 2023/7/13 16:14
+     */
+    @ResponseBody
+    @RequestMapping(value = "updateStatus")
+    public Map<String, Object> updateEnabledStatus(CmQuestionnaire cmQuestionnaire, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            //封装数据
+            CmQuestionnaire cmQuestionnaireFrom = new CmQuestionnaire();
+            cmQuestionnaireFrom.setId(cmQuestionnaire.getId());
+            cmQuestionnaireFrom.setStatus(cmQuestionnaire.getStatus());
+            cmQuestionnaireService.updateCmQuestionnaire(cmQuestionnaireFrom);
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        return map;
+    }
+}

+ 373 - 0
src/main/resources/mappings/modules/landing/CmQuestionnaireMapper.xml

@@ -0,0 +1,373 @@
+<?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.caimei.modules.landing.mapper.CmQuestionnaireMapper">
+
+    <resultMap type="com.caimei.modules.landing.domain.CmQuestionnaire" id="CmQuestionnaireResult">
+        <result property="id"    column="id"    />
+        <result property="type"    column="type"    />
+        <result property="userId"    column="userId"    />
+        <result property="userName"    column="userName"    />
+        <result property="corporateName"    column="corporateName"    />
+        <result property="mobile"    column="mobile"    />
+        <result property="level"    column="level"    />
+        <result property="content"    column="content"    />
+        <result property="status"    column="status"    />
+        <result property="delFlag"    column="delFlag"    />
+        <result property="updateTime"    column="updateTime"    />
+        <result property="createTime"    column="createTime"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectCmQuestionnaireVo">
+        select
+            cm_questionnaire.id,
+            cm_questionnaire.type,
+            cm_questionnaire.userId,
+            cm_questionnaire.userName,
+            cm_questionnaire.corporateName,
+            cm_questionnaire.mobile,
+            cm_questionnaire.level,
+            cm_questionnaire.content,
+            cm_questionnaire.status,
+            cm_questionnaire.delFlag,
+            cm_questionnaire.updateTime,
+            cm_questionnaire.createTime,
+            cm_questionnaire.remark
+    </sql>
+
+    <select id="getByCmQuestionnaire" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''"> and cm_questionnaire.type = #{type}</if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        order by cm_questionnaire.createTime desc
+        limit 0,1
+    </select>
+
+    <select id="getCmQuestionnaireList" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        order by cm_questionnaire.createTime desc
+    </select>
+
+    <select id="findList" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        order by cm_questionnaire.createTime desc
+    </select>
+    <select id="getCmQuestionnaireCount" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultType="int">
+        select count(1)
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+    </select>
+
+    <select id="getCmQuestionnaireById" parameterType="String" resultMap="CmQuestionnaireResult">
+        <include refid="selectCmQuestionnaireVo"/>
+        from cm_questionnaire AS cm_questionnaire
+        where  cm_questionnaire.delFlag = 0 and cm_questionnaire.id = #{id}
+    </select>
+
+    <select id="getByIds" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        select id
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+    </select>
+    <select id="getById" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" resultMap="CmQuestionnaireResult">
+        select id
+        from cm_questionnaire AS cm_questionnaire
+        <where>  cm_questionnaire.delFlag = 0
+            <if test="id != null  and id != ''">
+                and cm_questionnaire.id
+                <if test="id.toUpperCase().indexOf('=')==-1">
+                    = #{id}
+                </if>
+                <if test="id.toUpperCase().indexOf('=')!=-1">
+                    <if test="id.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="id.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="idIn" collection="id.substring(id.toUpperCase().indexOf('=')+1,id.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{idIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="type != null  and type != ''">
+                and cm_questionnaire.type
+                <if test="type.toUpperCase().indexOf('=')==-1">
+                    = #{type}
+                </if>
+                <if test="type.toUpperCase().indexOf('=')!=-1">
+                    <if test="type.toUpperCase().indexOf('NOT')!=-1"> not </if>
+                    <if test="type.toUpperCase().indexOf('IN')!=-1"> in </if>
+                    <foreach item="typeIn" collection="type.substring(type.toUpperCase().indexOf('=')+1,type.length()).trim().split(',')" open="(" separator="," close=")">
+                        #{typeIn}
+                    </foreach>
+                </if>
+            </if>
+            <if test="userId != null "> and cm_questionnaire.userId = #{userId}</if>
+            <if test="userName != null  and userName != ''"> and cm_questionnaire.userName like concat('%', #{userName}, '%')</if>
+            <if test="corporateName != null  and corporateName != ''"> and cm_questionnaire.corporateName like concat('%', #{corporateName}, '%')</if>
+            <if test="mobile != null  and mobile != ''"> and cm_questionnaire.mobile = #{mobile}</if>
+            <if test="level != null "> and cm_questionnaire.level = #{level}</if>
+            <if test="content != null  and content != ''"> and cm_questionnaire.content = #{content}</if>
+            <if test="status != null "> and cm_questionnaire.status = #{status}</if>
+            <if test="delFlag != null "> and cm_questionnaire.delFlag = #{delFlag}</if>
+            <if test="updateTime != null "> and cm_questionnaire.updateTime = #{updateTime}</if>
+            <if test="createTime != null "> and cm_questionnaire.createTime = #{createTime}</if>
+        </where>
+        group by cm_questionnaire.id
+        limit 0,1
+    </select>
+
+    <insert id="addCmQuestionnaire" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire" useGeneratedKeys="true" keyProperty="id">
+        insert into cm_questionnaire
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null andid != ''">id,</if>
+            <if test="type != null and type != ''">type,</if>
+            <if test="userId != null">userId,</if>
+            <if test="userName != null and userName != ''">userName,</if>
+            <if test="corporateName != null and corporateName != ''">corporateName,</if>
+            <if test="mobile != null and mobile != ''">mobile,</if>
+            <if test="level != null">level,</if>
+            <if test="content != null and content != ''">content,</if>
+            <if test="status != null">status,</if>
+            <if test="delFlag != null">delFlag,</if>
+            <if test="updateTime != null">updateTime,</if>
+            <if test="createTime != null">createTime,</if>
+            <if test="remark != null and remark != ''">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null andid != ''">#{id},</if>
+            <if test="type != null and type != ''">#{type},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="userName != null and userName != ''">#{userName},</if>
+            <if test="corporateName != null and corporateName != ''">#{corporateName},</if>
+            <if test="mobile != null and mobile != ''">#{mobile},</if>
+            <if test="level != null">#{level},</if>
+            <if test="content != null and content != ''">#{content},</if>
+            <if test="status != null">#{status},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null and remark != ''">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCmQuestionnaire" parameterType="com.caimei.modules.landing.domain.CmQuestionnaire">
+        update cm_questionnaire
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="type != null and type != ''">type = #{type},</if>
+            <if test="userId != null">userId = #{userId},</if>
+            <if test="userName != null and userName != ''">userName = #{userName},</if>
+            <if test="corporateName != null and corporateName != ''">corporateName = #{corporateName},</if>
+            <if test="mobile != null and mobile != ''">mobile = #{mobile},</if>
+            <if test="level != null">level = #{level},</if>
+            <if test="content != null and content != ''">content = #{content},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="delFlag != null">delFlag = #{delFlag},</if>
+            <if test="updateTime != null">updateTime = #{updateTime},</if>
+            <if test="createTime != null">createTime = #{createTime},</if>
+            <if test="remark != null and remark != ''">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <update id="updateDelCmQuestionnaireByIds" parameterType="String">
+        update cm_questionnaire set delFlag=#{delFlag} where id in
+        <foreach item="id" collection="ids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <delete id="delCmQuestionnaireById" parameterType="String">
+        delete
+        from cm_questionnaire where id = #{id}
+    </delete>
+
+    <delete id="delCmQuestionnaireByIds" parameterType="String">
+        delete from cm_questionnaire where id in
+        <foreach item="id" collection="ids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 55 - 54
src/main/resources/mappings/modules/sys/DictDao.xml

@@ -1,92 +1,93 @@
 <?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.sys.dao.DictDao">
-    
+
 	<select id="get" resultType="Dict">
-		SELECT 
-			* 
-		FROM sys_dict 
+		SELECT
+			*
+		FROM sys_dict
 		WHERE id = #{id}
 	</select>
-	
+
 	<select id="findList" resultType="Dict">
-		SELECT 
-			* 
-		FROM sys_dict 
-		WHERE del_flag = #{DEL_FLAG_NORMAL} 
+		SELECT
+			*
+		FROM sys_dict
+		WHERE del_flag = #{DEL_FLAG_NORMAL}
 		<if test="type != null and type != ''">
 			AND type = #{type}
 		</if>
 		<if test="description != null and description != ''">
-			AND description LIKE 
+			AND  (type LIKE concat('%',#{description},'%') or description LIKE
 					<if test="dbName == 'oracle'">'%'||#{description}||'%'</if>
 					<if test="dbName == 'mssql'">'%'+#{description}+'%'</if>
 					<if test="dbName == 'mysql'">CONCAT('%', #{description}, '%')</if>
+			    )
 		</if>
 		ORDER BY type, sort, update_date DESC
 	</select>
-	
+
 	<select id="findAllList" resultType="Dict">
-		SELECT 
-			* 
-		FROM sys_dict 
-		WHERE del_flag = #{DEL_FLAG_NORMAL} 
+		SELECT
+			*
+		FROM sys_dict
+		WHERE del_flag = #{DEL_FLAG_NORMAL}
 		ORDER BY type, sort, update_date DESC
 	</select>
-	
+
 	<select id="findTypeList" resultType="string">
-		SELECT 
-			type 
-		FROM sys_dict 
-		WHERE del_flag = #{DEL_FLAG_NORMAL} 
+		SELECT
+			type
+		FROM sys_dict
+		WHERE del_flag = #{DEL_FLAG_NORMAL}
 		GROUP BY type
 		ORDER BY type
 	</select>
-	
+
 	<insert id="insert" parameterType="dict"  keyProperty="id" useGeneratedKeys="true">
 		INSERT INTO sys_dict(
-			value, 
-			label, 
-			type, 
-			description, 
-			sort, 
-			create_by, 
-			create_date, 
-			update_by, 
-			update_date, 
-			remarks, 
+			value,
+			label,
+			type,
+			description,
+			sort,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
 			del_flag
 		) VALUES (
-			#{value}, 
-			#{label}, 
-			#{type}, 
-			#{description}, 
-			#{sort}, 
-			#{createBy.id}, 
-			#{createDate}, 
-			#{updateBy.id}, 
-			#{updateDate}, 
-			#{remarks}, 
+			#{value},
+			#{label},
+			#{type},
+			#{description},
+			#{sort},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
 			#{delFlag}
 		)
 	</insert>
-	
+
 	<update id="update">
-		UPDATE sys_dict SET 
-			value = #{value}, 
-			label = #{label}, 
-			type = #{type}, 
-			description = #{description}, 
-			sort = #{sort}, 
-			update_by = #{updateBy.id}, 
-			update_date = #{updateDate}, 
+		UPDATE sys_dict SET
+			value = #{value},
+			label = #{label},
+			type = #{type},
+			description = #{description},
+			sort = #{sort},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
 			remarks = #{remarks}
 		WHERE id = #{id}
 	</update>
-	
+
 	<update id="delete">
-		DELETE FROM sys_dict 
+		DELETE FROM sys_dict
 		WHERE id = #{id}
 	</update>
-	
-</mapper>
+
+</mapper>

+ 97 - 0
src/main/webapp/WEB-INF/views/modules/landing/cmQuestionnaireGet.jsp

@@ -0,0 +1,97 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+	<title>用户需求管理</title>
+	<meta name="decorator" content="default"/>
+</head>
+<body>
+<ul class="nav nav-tabs">
+	<li><a href="${ctx}/cmQuestionnaire/list?type=${cmQuestionnaire.type}">用户需求列表</a></li>
+	<li class="active"><a href="${ctx}/cmQuestionnaire/form?id=${cmQuestionnaire.id}">查看用户需求</a></li>
+</ul>
+<br/>
+<form:form id="inputForm" modelAttribute="cmQuestionnaire" method="post"
+		   class="form-horizontal">
+	<form:hidden path="id"/>
+	<form:hidden path="type"/>
+	<div>
+		<div class="control-group">
+			<label class="control-label">用户姓名:</label>
+			<div class="controls"><span>
+					${cmQuestionnaire.userName}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">公司名称:</label>
+			<div class="controls"><span>
+					${cmQuestionnaire.corporateName}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">手机号:</label>
+			<div class="controls"><span>
+					${cmQuestionnaire.mobile}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">选择版本:</label>
+			<div class="controls"><span>
+					${fns:getDictLabel(cmQuestionnaire.level, 'cm_questionnaire_level', '')}
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">感兴趣的内容:</label>
+			<div class="controls"><span>
+						<c:forEach items="${cmQuestionnaire.content.split(',')}" var="dict">
+							${fns:getDictLabel(dict, 'cm_questionnaire_content', '')}
+							<br/>
+						</c:forEach>
+			</span></div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">处理状态:</label>
+			<div class="controls"><span>
+					${fns:getDictLabel(cmQuestionnaire.status, 'cm_questionnaire_status', '')}
+			</span></div>
+		</div>
+	</div>
+	<div class="form-actions">
+		<input  class="btn btn-primary" type="button"  onclick="updateStatus(${cmQuestionnaire.id},${cmQuestionnaire.status})" value="${cmQuestionnaire.status==1?"置为已处理":"置为待处理"}"/>
+		<a href="javascript: void(0)"
+		  ></a>
+		<input id="btnCancel" class="btn" type="button" value="返回" onclick="history.go(-1)"/>
+	</div>
+</form:form>
+<script type="text/javascript">
+	$(document).ready(function () {
+
+	});
+
+	// 修改stauus
+	function updateStatus(id, staus) {
+		staus = staus == 1 ? 2 : 1;
+		$.ajax({
+			url: "${ctx}/cmQuestionnaire/updateStatus?id="+id+"&status="+staus,
+			// data: {id, staus},
+			type: "get",
+			processData: false,
+			contentType: false,
+			dataType: "json",
+			success: function (res) {
+				if (res.success) {
+					$.jBox.tip('上传成功', 'info');
+					history.go(-1);
+				} else {
+					$.jBox.tip(res.msg, 'error');
+				}
+			},
+			error: function (json) {
+				$.jBox.tip(res.msg, 'error');
+			}
+		});
+
+	}
+</script>
+</body>
+</html>

+ 154 - 0
src/main/webapp/WEB-INF/views/modules/landing/cmQuestionnaireList.jsp

@@ -0,0 +1,154 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+	<title>用户需求管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table th {
+			text-align: center;
+		}
+
+		.table td {
+			text-align: center;
+		}
+
+		.two{
+			table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */
+		}
+
+		.item {
+			word-break:keep-all;/* 不换行 */
+			white-space:nowrap;/* 不换行 */
+			overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */
+			text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用*/
+		}
+	</style>
+
+</head>
+<body>
+<ul class="nav nav-tabs">
+	<li class="active"><a href="${ctx}/cmQuestionnaire/list?type=${cmQuestionnaire.type}">用户需求列表</a></li>
+</ul>
+<form:form id="searchForm" modelAttribute="cmQuestionnaire" action="${ctx}/cmQuestionnaire/list" 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}"/>
+	<form:hidden path="type" value="${cmQuestionnaire.type}"/>
+	<div class="ul-form">
+		<label>用户名称:</label>
+		<form:input path="userName" htmlEscape="false" maxlength="30" class="input-medium"/>
+		<label>公司名称:</label>
+		<form:input path="corporateName" htmlEscape="false" maxlength="15" class="input-medium"/>
+		<label>手机号:</label>
+		<form:input path="mobile" htmlEscape="false" maxlength="11" class="input-medium"/>
+		<label>选择版本:</label>
+
+		<form:select path="level" class="input-xlarge " style="width:150px">
+			<form:option value="" label="请选择"/>
+			<form:options items="${fns:getDictList('cm_questionnaire_level')}" itemLabel="label" itemValue="value"
+						  htmlEscape="false"/>
+		</form:select>
+		<label>处理状态:</label>
+		<form:select path="status" class="input-medium " style="width:150px">
+			<form:option value="" label="请选择"/>
+			<form:options items="${fns:getDictList('cm_questionnaire_status')}" itemLabel="label" itemValue="value"
+						  htmlEscape="false"/>
+		</form:select>
+		<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+		<div class="clearfix"></div>
+	</div>
+</form:form>
+<sys:message content="${message}"/>
+<table id="contentTable" class="table table-striped table-bordered table-condensed two">
+	<thead>
+	<tr>
+		<th>ID</th>
+		<th>用户名称</th>
+		<th>公司名称</th>
+		<th>手机号</th>
+		<th>选择版本</th>
+		<th>感兴趣内容</th>
+		<th>处理状态</th>
+		<th>提交时间</th>
+		<th>操作</th>
+	</tr>
+	</thead>
+	<tbody>
+	<c:forEach items="${page.list}" var="cmQuestionnaire">
+		<tr>
+			<td>
+					${cmQuestionnaire.id}
+			</td>
+			<td>
+					${cmQuestionnaire.userName}
+			</td>
+			<td>
+					${cmQuestionnaire.corporateName}
+			</td>
+			<td>
+					${cmQuestionnaire.mobile}
+			</td>
+			<td>
+					${fns:getDictLabel(cmQuestionnaire.level, 'cm_questionnaire_level', '')}
+			</td>
+			<td class="item">
+					<c:forEach items="${cmQuestionnaire.content.split(',')}" var="dict">
+						${fns:getDictLabel(dict, 'cm_questionnaire_content', '')}
+					</c:forEach>
+			</td>
+			<td>
+				<span style="color:${cmQuestionnaire.status==1?'red':'#0bbbee'} ">${fns:getDictLabel(cmQuestionnaire.status, 'cm_questionnaire_status', '')}</span>
+			</td>
+			<td>
+				<fmt:formatDate value="${cmQuestionnaire.createTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
+			</td>
+			<td>
+				<a href="${ctx}/cmQuestionnaire/form?id=${cmQuestionnaire.id}">查看资料</a>
+				<a href="javascript: void(0)"
+				   onclick="updateStatus(${cmQuestionnaire.id},${cmQuestionnaire.status})">${cmQuestionnaire.status==1?"置为已处理":"置为待处理"}</a>
+			</td>
+		</tr>
+	</c:forEach>
+	</tbody>
+</table>
+<div class="pagination">${page}</div>
+<script type="text/javascript">
+	$(document).ready(function () {
+
+	});
+
+	function page(n, s) {
+		$("#pageNo").val(n);
+		$("#pageSize").val(s);
+		$("#searchForm").submit();
+		return false;
+	}
+
+	// 修改stauus
+	function updateStatus(id, staus) {
+		staus = staus == 1 ? 2 : 1;
+		$.ajax({
+			url: "${ctx}/cmQuestionnaire/updateStatus?id="+id+"&status="+staus,
+			// data: {id, staus},
+			type: "get",
+			processData: false,
+			contentType: false,
+			dataType: "json",
+			success: function (res) {
+				if (res.success) {
+					$.jBox.tip('上传成功', 'info');
+					history.go(0);
+				} else {
+					$.jBox.tip(res.msg, 'error');
+				}
+			},
+			error: function (json) {
+				$.jBox.tip(res.msg, 'error');
+			}
+		});
+
+	}
+</script>
+</body>
+</html>