chengcm 6 years ago
parent
commit
f82b46c583
100 changed files with 5125 additions and 465 deletions
  1. 11 11
      pom.xml
  2. 88 1
      src/main/java/com/agent/action/WxInterface/WxLoginController.java
  3. 82 0
      src/main/java/com/agent/action/agreement/AgreementController.java
  4. 73 15
      src/main/java/com/agent/action/audit/AuditController.java
  5. 198 59
      src/main/java/com/agent/action/audit/AuditDetailController.java
  6. 80 0
      src/main/java/com/agent/action/certification/CertificationController.java
  7. 186 0
      src/main/java/com/agent/action/playbill/PlaybillController.java
  8. 33 0
      src/main/java/com/agent/action/shop/ShopController.java
  9. 94 0
      src/main/java/com/agent/action/upload/uploadImgController.java
  10. 12 0
      src/main/java/com/agent/action/usermanage/UserManageController.java
  11. 59 0
      src/main/java/com/agent/model/agreement/bean/Agreement.java
  12. 20 0
      src/main/java/com/agent/model/agreement/bpo/AgreementBpo.java
  13. 63 0
      src/main/java/com/agent/model/agreement/dao/AgreementDao.java
  14. 27 0
      src/main/java/com/agent/model/agreement/dao/PresentConvert/PresentBeanConvert.java
  15. 19 0
      src/main/java/com/agent/model/agreement/dao/mapper/AgreementMapper.java
  16. 20 0
      src/main/java/com/agent/model/agreement/service/AgreementService.java
  17. 60 1
      src/main/java/com/agent/model/audit/bean/DisplaceAuditBean.java
  18. 3 0
      src/main/java/com/agent/model/audit/bpo/DisplaceAuditBpo.java
  19. 22 4
      src/main/java/com/agent/model/audit/dao/DisplaceAuditDao.java
  20. 4 0
      src/main/java/com/agent/model/audit/dao/convert/DisplaceAuditBeanConvert.java
  21. 4 0
      src/main/java/com/agent/model/audit/service/DisplaceAuditService.java
  22. 92 0
      src/main/java/com/agent/model/certification/bean/Explain.java
  23. 22 0
      src/main/java/com/agent/model/certification/bpo/ExplainBpo.java
  24. 73 0
      src/main/java/com/agent/model/certification/dao/ExplainDao.java
  25. 31 0
      src/main/java/com/agent/model/certification/dao/PresentConvert/PresentBeanConvert.java
  26. 21 0
      src/main/java/com/agent/model/certification/dao/mapper/ExplainMapper.java
  27. 23 0
      src/main/java/com/agent/model/certification/service/ExplainService.java
  28. 28 0
      src/main/java/com/agent/model/digger/bean/DiggerBean.java
  29. 32 4
      src/main/java/com/agent/model/digger/dao/DiggerBeanDao.java
  30. 3 0
      src/main/java/com/agent/model/digger/dao/convert/DiggerBeanConvert.java
  31. 87 0
      src/main/java/com/agent/model/playbill/bean/Playbill.java
  32. 34 0
      src/main/java/com/agent/model/playbill/bpo/PlaybillBpo.java
  33. 132 0
      src/main/java/com/agent/model/playbill/dao/PlaybillDao.java
  34. 29 0
      src/main/java/com/agent/model/playbill/dao/PresentConvert/PresentBeanConvert.java
  35. 22 0
      src/main/java/com/agent/model/playbill/dao/mapper/PlaybillMapper.java
  36. 34 0
      src/main/java/com/agent/model/playbill/service/PlaybillService.java
  37. 40 1
      src/main/java/com/agent/model/sale/bean/SalesBean.java
  38. 30 1
      src/main/java/com/agent/model/sale/dao/SaleBeanDao.java
  39. 1 0
      src/main/java/com/agent/model/sale/dao/convert/SalesBeanConvert.java
  40. 14 0
      src/main/java/com/agent/model/shop/bean/AgentBean.java
  41. 11 7
      src/main/java/com/agent/model/shop/dao/AgentBeanDao.java
  42. 1 0
      src/main/java/com/agent/model/shop/dao/convert/AgentBeanConvert.java
  43. 1 0
      src/main/java/com/agent/model/shop/dao/mapper/AgentBeanMapper.java
  44. 10 0
      src/main/java/com/agent/model/usermanage/bean/UserManageBean.java
  45. 13 1
      src/main/java/com/agent/model/usermanage/bpo/UserManageBpo.java
  46. 32 4
      src/main/java/com/agent/model/usermanage/dao/UserManageDao.java
  47. 1 0
      src/main/java/com/agent/model/usermanage/dao/convert/UserManageBeanConvert.java
  48. 13 0
      src/main/java/com/agent/model/usermanage/service/UserManageService.java
  49. 24 0
      src/main/java/com/agent/model/wxInterface/service/WxLoginService.java
  50. 12 11
      src/main/resources/config.properties
  51. BIN
      src/main/webapp/WEB-INF/.DS_Store
  52. BIN
      src/main/webapp/WEB-INF/lib/commons-codec-1.9.jar
  53. BIN
      src/main/webapp/WEB-INF/lib/commons-fileupload-1.3.1.jar
  54. BIN
      src/main/webapp/WEB-INF/lib/commons-io-2.4.jar
  55. BIN
      src/main/webapp/WEB-INF/lib/json.jar
  56. BIN
      src/main/webapp/WEB-INF/lib/ueditor-1.1.2.jar
  57. 138 0
      src/main/webapp/WEB-INF/views/agreement/agreementManege.jsp
  58. 21 14
      src/main/webapp/WEB-INF/views/audit/adminAuditList.jsp
  59. 24 8
      src/main/webapp/WEB-INF/views/audit/platAuditList.jsp
  60. 17 8
      src/main/webapp/WEB-INF/views/audit/superAdminAuditList.jsp
  61. 264 0
      src/main/webapp/WEB-INF/views/certification/explain.jsp
  62. 298 291
      src/main/webapp/WEB-INF/views/digger/agent/diggerlist.jsp
  63. 38 0
      src/main/webapp/WEB-INF/views/digger/plat/diggerlist.jsp
  64. 254 0
      src/main/webapp/WEB-INF/views/playbill/addPlaybill.jsp
  65. 343 0
      src/main/webapp/WEB-INF/views/playbill/playbillManage.jsp
  66. 6 0
      src/main/webapp/WEB-INF/views/sale/agent/salelist.jsp
  67. 10 2
      src/main/webapp/WEB-INF/views/sale/plat/salelist.jsp
  68. 23 5
      src/main/webapp/WEB-INF/views/shop/shoplist.jsp
  69. 8 2
      src/main/webapp/WEB-INF/views/shop/showAddShop.jsp
  70. 6 2
      src/main/webapp/WEB-INF/views/user/addAdmin.jsp
  71. 8 2
      src/main/webapp/WEB-INF/views/user/agentUserListForAdmin.jsp
  72. 8 2
      src/main/webapp/WEB-INF/views/user/agentUserListForAgent.jsp
  73. BIN
      src/main/webapp/menuicon/agree.png
  74. BIN
      src/main/webapp/menuicon/certification.png
  75. BIN
      src/main/webapp/menuicon/palyBill.png
  76. BIN
      src/main/webapp/menuicon/timg_2.png
  77. 32 2
      src/main/webapp/resources/js/audit/audit.js
  78. 9 1
      src/main/webapp/resources/js/audit/sinceAudit.js
  79. 1 1
      src/main/webapp/resources/js/index.js
  80. 9 0
      src/main/webapp/resources/js/shop/shop.js
  81. 6 0
      src/main/webapp/resources/js/user/adminUserForAdmin.js
  82. 1 0
      src/main/webapp/resources/js/user/adminUserForSuperAdmin.js
  83. 14 2
      src/main/webapp/resources/js/user/agentUserForAdmin.js
  84. 11 0
      src/main/webapp/resources/js/user/agentUserForAgent.js
  85. 5 1
      src/main/webapp/resources/js/user/agentUserForSuperAdmin.js
  86. 12 2
      src/main/webapp/resources/js/user/user.js
  87. BIN
      src/main/webapp/ueditor/.DS_Store
  88. 40 0
      src/main/webapp/ueditor/dialogs/anchor/anchor.html
  89. 681 0
      src/main/webapp/ueditor/dialogs/attachment/attachment.css
  90. 60 0
      src/main/webapp/ueditor/dialogs/attachment/attachment.html
  91. 754 0
      src/main/webapp/ueditor/dialogs/attachment/attachment.js
  92. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif
  93. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_default.png
  94. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif
  95. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif
  96. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
  97. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
  98. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif
  99. BIN
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
  100. 0 0
      src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif

+ 11 - 11
pom.xml

@@ -22,16 +22,16 @@
 
 	<dependencies>
 		
-		<dependency>
-			<groupId>com.sn.framework</groupId>
-			<artifactId>sn_security</artifactId>
-			<version>1.3.4</version>
-		</dependency>
-		<dependency>
-			<groupId>com.sn</groupId>
-			<artifactId>mk-client</artifactId>
-			<version>3.0</version>
-		</dependency>
+		<!--<dependency>-->
+			<!--<groupId>com.sn.framework</groupId>-->
+			<!--<artifactId>sn_security</artifactId>-->
+			<!--<version>1.3.4</version>-->
+		<!--</dependency>-->
+		<!--<dependency>-->
+			<!--<groupId>com.sn</groupId>-->
+			<!--<artifactId>mk-client</artifactId>-->
+			<!--<version>3.0</version>-->
+		<!--</dependency>-->
 		
 		<!-- jetty -->
 		<dependency>
@@ -443,7 +443,7 @@
 					<encoding>UTF-8</encoding>
 					<compilerArguments>
 						<verbose/>
-						<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
+						<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
 					</compilerArguments>
 				</configuration>
 			</plugin>

+ 88 - 1
src/main/java/com/agent/action/WxInterface/WxLoginController.java

@@ -90,6 +90,7 @@ public class WxLoginController extends AbstractController {
     public void login(HttpServletRequest request, HttpServletResponse response) throws IOException{
     	
     	String userAccount = super.getParameter(request, "userAccount");
+		String type = super.getParameter(request, "type");
     	
     	UserBean userBean = baseLoginService.getLoginUserInfo(userAccount);
     	String redirectUri = ConfigConstants.WX_ERROR_PAGE;
@@ -97,7 +98,11 @@ public class WxLoginController extends AbstractController {
     	if(userBean == null || StringUtils.isEmpty(userBean.getAppId()) || StringUtils.isEmpty(userBean.getAppSecret())) {
     		logger.info(">>>>>WxLoginController>>>wxlogin.do>>>appId、appSecret为空", userAccount);
     	} else {
-    		redirectUri = wxLoginService.getLoginOauth2Url(userAccount, userBean.getAppId(), null);
+    		if(StringUtils.isNotBlank(type)){
+				redirectUri = wxLoginService.getLoginOauth2UrlNew(userAccount, userBean.getAppId(), type);
+			}else{
+				redirectUri = wxLoginService.getLoginOauth2Url(userAccount, userBean.getAppId(), "");
+			}
     		logger.info(">>>>>WxLoginController>>>wxlogin.do>>>userAccount={},微信授权!", userAccount);
     	}
     	
@@ -346,4 +351,86 @@ public class WxLoginController extends AbstractController {
 		}
 		return view;
     }
+
+
+	@RequestMapping("/wxRedirect/{userAccount}_Certification.mp")
+	public ModelAndView WxRedirectCertification(HttpServletRequest request, HttpServletResponse response, @PathVariable String userAccount) {
+		ModelAndView view = new ModelAndView(WX_AUTH_ERROR);
+
+		String code = super.getParameter(request, "code");
+		String status = super.getParameter(request, "status");
+
+		logger.info(">>>>>WxLoginController>>>WxRedirect>>>回调成功!code={}, userAccount={}", code, userAccount);
+		logger.info(">>>>>WxLoginController>>>WxRedirect>>>sessionId={}", request.getSession().getId());
+
+		try {
+			// 1、非空校验
+			if(StringUtils.isEmpty(code)) {
+				logger.info(">>>>>WxLoginController>>>WxRedirect>>>微信二维码授权回调code参数为空!>>>状态为:{}", status);
+				return view;
+			}
+
+			// 1.1、session校验
+			String oldCode = (String) CacheMemoryUtil.get5Min(WX_CODE_ + userAccount);
+//    				(String) super.getSessionObject(request, response, SESSION_WX_CODE);
+			logger.info(">>>>>WxLoginController>>>WxRedirect>>>oldCode={}", oldCode);
+
+			// 1.2、已经授权成功
+			if(StringUtils.isNotEmpty(oldCode) && code.equals(oldCode)) {
+				logger.info(">>>>>WxLoginController>>>WxRedirect>>>已经授权成功过了!");
+				view.setViewName(WX_AUTH_SUCCESS);
+				return view;
+			}
+
+			if(StringUtils.isEmpty(userAccount)) {
+				logger.info(">>>>>WxLoginController>>>WxRedirect>>>商家账号为空!");
+				return view;
+			}
+
+
+			// 2、校验该代理商是否存在,是否已经授权
+			logger.info(">>>>>WxLoginController>>>WxRedirect>>>校验代理商是否存在!");
+			UserBean userBean = baseLoginService.getLoginUserInfo(userAccount);
+			if(userBean == null || StringUtils.isEmpty(userBean.getAppId()) || StringUtils.isEmpty(userBean.getAppSecret())) {
+				logger.info(">>>>>WxLoginController>>>WxRedirect>>>当前用户:{}不存在或者代理商的appID、appSecret不存在!", userAccount);
+				return view;
+			}
+
+			// 3、获取当前用户的access_token
+			logger.info(">>>>>WxLoginController>>>WxRedirect>>>获取access_token!");
+			AccessToken accessToken = wxLoginService.accessToken(code, userBean.getAppId(), userBean.getAppSecret());
+			if(accessToken == null || StringUtils.isNotEmpty(accessToken.getMsg())) {
+				logger.info(">>>>>WxLoginController>>>WxRedirect>>>获取access_token失败!");
+				return view;
+			}
+
+
+			// 4、获取用户信息
+			logger.info(">>>>>WxLoginController>>>WxRedirect>>>获取user_info!");
+			UserInfo userInfo = wxLoginService.gainUserinfo(accessToken);
+			if(userInfo == null || StringUtils.isNotEmpty(userInfo.getErrCode())) {
+				logger.info(">>>>>WxLoginController>>>WxRedirect>>>获取用户信息失败!报错:{}",userInfo.getErrCode());
+				return view;
+			}
+
+
+			// 5、更新用户信息
+			logger.info(">>>>>WxLoginController>>>WxRedirect>>>更新本地用户信息!");
+			if(StringUtils.isNotEmpty(userInfo.getOpenId()) && StringUtils.isNotEmpty(userInfo.getNickName())) {
+				boolean falg = userManageService.updateWxByCertification(userAccount, userInfo.getOpenId(), userInfo.getNickName());
+				if(falg) {
+					logger.info(">>>>>WxLoginController>>>WxRedirect>>>绑定微信信息成功! openId:{}, nickName:{}", userInfo.getOpenId(), userInfo.getNickName());
+//    				super.setSessionObjects(request, response, SESSION_WX_CODE, code);
+					CacheMemoryUtil.cache5Min(WX_CODE_ + userAccount, code);
+					view.setViewName(WX_AUTH_SUCCESS);
+					return view;
+				}
+			}
+
+			logger.info(">>>>>WxLoginController>>>WxRedirect>>>绑定微信信息失败! openId:{}, nickName:{}", userInfo.getOpenId(), userInfo.getNickName());
+		} catch (Exception e) {
+			logger.error(">>>>>WxLoginController>>>WxRedirect>>>error!", e);
+		}
+		return view;
+	}
 }

+ 82 - 0
src/main/java/com/agent/action/agreement/AgreementController.java

@@ -0,0 +1,82 @@
+package com.agent.action.agreement;
+
+import com.agent.action.common.AbstractController;
+import com.agent.action.playbill.PlaybillController;
+import com.agent.constans.CommonConstants;
+import com.agent.model.agreement.bean.Agreement;
+import com.agent.model.agreement.service.AgreementService;
+import com.agent.model.bms.bean.UserBean;
+import com.agent.model.common.bean.ResultBean;
+import com.agent.model.playbill.bean.Playbill;
+import com.agent.model.playbill.service.PlaybillService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Controller()
+@RequestMapping("/agreement")
+public class AgreementController extends AbstractController {
+
+    private static Logger logger = LoggerFactory.getLogger(PlaybillController.class);
+
+    private final String AGREEMENT = "agreement/agreementManege";
+
+    @Autowired
+    private AgreementService agreementService;
+
+    @RequestMapping("/agreementManage.do")
+    public ModelAndView getCertification(HttpServletRequest request,
+                                         HttpServletResponse response) throws Exception{
+        //页面跳转
+        ModelAndView view = new ModelAndView();
+        //获取登录信息
+        HttpSession session = request.getSession();
+        UserBean user = (UserBean) session.getAttribute(CommonConstants.USER_INFO);
+        //如果是管理员,跳转到平台列表页,否则跳转到商家列表页
+        if (user != null) {
+            Agreement agreement=agreementService.find();
+            Map<String, String> columnMap = new HashMap<String, String>();
+            columnMap.put("agreeHtml",agreement.getAgree_html());
+            columnMap.put("id",agreement.getId());
+            view.addObject("agree",columnMap);
+            logger.info("====columnMap=="+columnMap);
+            view.setViewName(AGREEMENT);
+        } else {
+            //如果未登录,跳转到登录页
+            view=super.createJspView("1");
+        }
+
+        return view;
+    }
+
+    @RequestMapping(value = "/updateAgree.do",method = RequestMethod.POST,produces = "application/json; charset=utf-8")
+    @ResponseBody
+    public void agreeInfo(HttpServletRequest request,
+                               HttpServletResponse response,
+                               @ModelAttribute Agreement agentBean) throws Exception {
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS_CODE, "成功!");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date=new Date();
+        String format=sdf.format(date);
+        agentBean.setUpdatetime(format);
+        agentBean.setCreatetime(format);
+        int res = agreementService.updateById(agentBean);
+        resultBean.setResult(res);
+        super.printResult(request, response, resultBean.toString());
+    }
+
+}

+ 73 - 15
src/main/java/com/agent/action/audit/AuditController.java

@@ -811,6 +811,8 @@ public class AuditController extends AbstractController{
 				return;
 			}
 
+
+
         	// 报价额度
         	if(StringUtils.isBlank(displaceAuditBean.getMoneyRange())){
 				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价额度!");
@@ -823,17 +825,73 @@ public class AuditController extends AbstractController{
 				return;
 			}
 
-        	// 报价延时
-        	if(StringUtils.isBlank(displaceAuditBean.getTimeDelay())){
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价延时!");
-				return;
-			}
-        	try {
-        		Double.parseDouble(displaceAuditBean.getTimeDelay());
-			} catch (Exception e) {
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"报价延时格式不正确!");
-				return;
-			}
+            if("3".equals(displaceAuditBean.getUpType())){
+                log.info("displaceAuditBean.getMinPrice()="+displaceAuditBean.getMinPrice());
+                if(StringUtils.isBlank(displaceAuditBean.getMinPrice())){
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入最低价额度!");
+                    return;
+
+                }
+                try {
+                    Double.parseDouble(displaceAuditBean.getMinPrice());
+                } catch (Exception e) {
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"最低价格式不正确!");
+                    return;
+                }
+                log.info("displaceAuditBean.getMaxPrice()="+displaceAuditBean.getMaxPrice());
+                if(StringUtils.isBlank(displaceAuditBean.getMaxPrice())){
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入最高价额度!");
+                    return;
+
+                }
+                try {
+                    Double.parseDouble(displaceAuditBean.getMaxPrice());
+                } catch (Exception e) {
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"最高价格式不正确!");
+                    return;
+                }
+                log.info("displaceAuditBean.getPersistPrice()="+displaceAuditBean.getPersistPrice());
+                if(StringUtils.isBlank(displaceAuditBean.getPersistPrice())){
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入保留价额度!");
+                    return;
+
+                }
+                try {
+                    Double.parseDouble(displaceAuditBean.getPersistPrice());
+                } catch (Exception e) {
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"保留价格式不正确!");
+                    return;
+                }
+
+                if(Double.parseDouble(displaceAuditBean.getPersistPrice())>Double.parseDouble(displaceAuditBean.getMaxPrice())||Double.parseDouble(displaceAuditBean.getPersistPrice())<Double.parseDouble(displaceAuditBean.getMinPrice())) {
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE, "保留价格应该在最低价和最高价之间!");
+                    return;
+                }
+            }else{
+                // 起拍价
+                if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入起拍价!");
+                    return;
+                }
+                try {
+                    Double.parseDouble(displaceAuditBean.getMinMoney());
+                } catch (Exception e) {
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"起拍价格式不正确!");
+                    return;
+                }
+                // 报价延时
+                if(StringUtils.isBlank(displaceAuditBean.getTimeDelay())){
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价延时!");
+                    return;
+                }
+                try {
+                    Double.parseDouble(displaceAuditBean.getTimeDelay());
+                } catch (Exception e) {
+                    resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"报价延时格式不正确!");
+                    return;
+                }
+
+            }
 
     	    // 开始结束时间
         	String startTimeStr = super.getParameter(request, "startTimeStr");
@@ -945,7 +1003,7 @@ public class AuditController extends AbstractController{
             String wxsms = TemplateConstants.ZHSH_DIGGER_TEMPLATE_CONTENT;
             wxsms = wxsms.replaceAll("first", "有一台设备正在寻找买家");
             wxsms = wxsms.replaceAll("keyword1", sbmc+"");
-            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinMoney()+"万元");
+            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinPrice()+"万元");
             wxsms = wxsms.replaceAll("keyword3", displaceAuditBean.getMoneyRange()+"万元");
             wxsms = wxsms.replaceAll("keyword4", DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"));
             wxsms = wxsms.replaceAll("keyword5", displaceAuditBean.getBail()+"万元");
@@ -970,7 +1028,7 @@ public class AuditController extends AbstractController{
 	                Map<String,TemplateData> param1 = new HashMap<String,TemplateData>();
 	                param1.put("first",new TemplateData("有一台设备正在寻找买家","#696969"));
 	                param1.put("keyword1",new TemplateData(sbmc+"","#696969"));
-	                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinMoney()+"万元","#696969"));
+	                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinPrice()+"万元","#696969"));
 	                param1.put("keyword3",new TemplateData(displaceAuditBean.getMoneyRange()+"万元","#696969"));
 	                param1.put("keyword4",new TemplateData(DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"),"#696969"));
 	                param1.put("keyword5",new TemplateData(displaceAuditBean.getBail()+"万元","#696969"));
@@ -1019,7 +1077,7 @@ public class AuditController extends AbstractController{
                         Map<String,TemplateData> param2 = new HashMap<String,TemplateData>();
                         param2.put("first",new TemplateData("有一台设备正在寻找买家","#696969"));
                         param2.put("keyword1",new TemplateData(sbmc+"","#696969"));
-                        param2.put("keyword2",new TemplateData(displaceAuditBean.getMinMoney()+"万元","#696969"));
+                        param2.put("keyword2",new TemplateData(displaceAuditBean.getMinPrice()+"万元","#696969"));
                         param2.put("keyword3",new TemplateData(displaceAuditBean.getMoneyRange()+"万元","#696969"));
                         param2.put("keyword4",new TemplateData(DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"),"#696969"));
                         param2.put("keyword5",new TemplateData(displaceAuditBean.getBail()+"万元","#696969"));
@@ -1138,7 +1196,7 @@ public class AuditController extends AbstractController{
                     Map<String, TemplateData> param2 = new HashMap<String, TemplateData>();
                     param2.put("first", new TemplateData("有一台设备正在寻找买家", "#696969"));
                     param2.put("keyword1", new TemplateData(sbmc + "", "#696969"));
-                    param2.put("keyword2", new TemplateData(displace.getMinMoney() + "万元", "#696969"));
+                    param2.put("keyword2", new TemplateData(displace.getMinPrice() + "万元", "#696969"));
                     param2.put("keyword3", new TemplateData(displace.getMoneyRange(), "#696969"));
                     param2.put("keyword4", new TemplateData(DateUtil.format(displace.getStartTime(), "yyyy年MM月dd日 HH:mm"), "#696969"));
                     param2.put("keyword5", new TemplateData(displace.getBail() + "万元", "#696969"));

+ 198 - 59
src/main/java/com/agent/action/audit/AuditDetailController.java

@@ -374,6 +374,8 @@ public class AuditDetailController extends AbstractController{
     	    }
     	    // 查询该置换记录下设备及其他信息
     	    DisplaceAuditBean auditBean = displaceAuditService.queryAuditPage(auditId);
+			AgentBean agentBean=agentBeanService.getAgentBeanByAgentId(auditBean.getAgentId());
+			auditBean.setAgentRule(agentBean.getAgentRule());
     	    resultBean.setResult(auditBean);
     	    resultBean.setResults(ConfigConstants.WGC_ID);
 		}catch (Exception e) {
@@ -1087,18 +1089,81 @@ public class AuditDetailController extends AbstractController{
 				return;
 			}
 
-        	// 起拍价
-        	if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入起拍价!");
-				return;
-			}
-        	try {
-        		Double.parseDouble(displaceAuditBean.getMinMoney());
-			} catch (Exception e) {
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"起拍价格式不正确!");
-				return;
+//        	// 起拍价
+//        	if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
+//				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入起拍价!");
+//				return;
+//			}
+
+			if("3".equals(displaceAuditBean.getUpType())){
+				log.info("displaceAuditBean.getMinPrice()="+displaceAuditBean.getMinPrice());
+				if(StringUtils.isBlank(displaceAuditBean.getMinPrice())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入最低价额度!");
+					return;
+
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getMinPrice());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"最低价格式不正确!");
+					return;
+				}
+				log.info("displaceAuditBean.getMaxPrice()="+displaceAuditBean.getMaxPrice());
+				if(StringUtils.isBlank(displaceAuditBean.getMaxPrice())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入最高价额度!");
+					return;
+
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getMaxPrice());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"最高价格式不正确!");
+					return;
+				}
+				log.info("displaceAuditBean.getPersistPrice()="+displaceAuditBean.getPersistPrice());
+				if(StringUtils.isBlank(displaceAuditBean.getPersistPrice())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入保留价额度!");
+					return;
+
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getPersistPrice());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"保留价格式不正确!");
+					return;
+				}
+
+				if(Double.parseDouble(displaceAuditBean.getPersistPrice())>Double.parseDouble(displaceAuditBean.getMaxPrice())||Double.parseDouble(displaceAuditBean.getPersistPrice())<Double.parseDouble(displaceAuditBean.getMinPrice())) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE, "保留价格应该在最低价和最高价之间!");
+					return;
+				}
+			}else{
+				// 起拍价
+				if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入起拍价!");
+					return;
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getMinMoney());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"起拍价格式不正确!");
+					return;
+				}
+				// 报价延时
+				if(StringUtils.isBlank(displaceAuditBean.getTimeDelay())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价延时!");
+					return;
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getTimeDelay());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"报价延时格式不正确!");
+					return;
+				}
+
 			}
 
+
         	// 报价额度
         	if(StringUtils.isBlank(displaceAuditBean.getMoneyRange())){
 				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价额度!");
@@ -1111,18 +1176,6 @@ public class AuditDetailController extends AbstractController{
 				return;
 			}
 
-        	// 报价延时
-        	if(StringUtils.isBlank(displaceAuditBean.getTimeDelay())){
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价延时!");
-				return;
-			}
-        	try {
-        		Double.parseDouble(displaceAuditBean.getTimeDelay());
-			} catch (Exception e) {
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"报价延时格式不正确!");
-				return;
-			}
-
     	    // 开始结束时间
         	String startTimeStr = super.getParameter(request, "startTimeStr");
         	String endTimeStr = super.getParameter(request, "endTimeStr");
@@ -1228,7 +1281,7 @@ public class AuditDetailController extends AbstractController{
 
 
 			// 补充信息
-    	    boolean flag = displaceAuditService.addInfo(displaceAuditBean);
+    	    boolean flag = displaceAuditService.addInfoNew(displaceAuditBean);
     	    if(!flag) {
     	    	resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"系统繁忙,请稍后再来!");
     	    	return;
@@ -1243,7 +1296,7 @@ public class AuditDetailController extends AbstractController{
             String wxsms = TemplateConstants.ZHSH_DIGGER_TEMPLATE_CONTENT;
             wxsms = wxsms.replaceAll("first", "有一台设备正在寻找买家");
             wxsms = wxsms.replaceAll("keyword1", sbmc+"");
-            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinMoney()+"万元");
+            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinPrice()+"万元");
             wxsms = wxsms.replaceAll("keyword3", displaceAuditBean.getMoneyRange()+"万元");
             wxsms = wxsms.replaceAll("keyword4", DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"));
             wxsms = wxsms.replaceAll("keyword5", displaceAuditBean.getBail()+"万元");
@@ -1271,7 +1324,7 @@ public class AuditDetailController extends AbstractController{
 	                Map<String,TemplateData> param1 = new HashMap<String,TemplateData>();
 	                param1.put("first",new TemplateData("有一台设备正在寻找买家","#696969"));
 	                param1.put("keyword1",new TemplateData(sbmc+"","#696969"));
-	                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinMoney()+"万元","#696969"));
+	                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinPrice()+"万元","#696969"));
 	                param1.put("keyword3",new TemplateData(displaceAuditBean.getMoneyRange()+"万元","#696969"));
 	                param1.put("keyword4",new TemplateData(DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"),"#696969"));
 	                param1.put("keyword5",new TemplateData(displaceAuditBean.getBail()+"万元","#696969"));
@@ -1323,7 +1376,7 @@ public class AuditDetailController extends AbstractController{
                         Map<String,TemplateData> param2 = new HashMap<String,TemplateData>();
                         param2.put("first",new TemplateData("有一台设备正在寻找买家","#696969"));
                         param2.put("keyword1",new TemplateData(sbmc+"","#696969"));
-                        param2.put("keyword2",new TemplateData(displaceAuditBean.getMinMoney()+"万元","#696969"));
+                        param2.put("keyword2",new TemplateData(displaceAuditBean.getMinPrice()+"万元","#696969"));
                         param2.put("keyword3",new TemplateData(displaceAuditBean.getMoneyRange()+"万元","#696969"));
                         param2.put("keyword4",new TemplateData(DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"),"#696969"));
                         param2.put("keyword5",new TemplateData(displaceAuditBean.getBail()+"万元","#696969"));
@@ -1443,6 +1496,7 @@ public class AuditDetailController extends AbstractController{
 				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入保证金额度!");
 				return;
 			}
+			log.info("displaceAuditBean.getBail()="+displaceAuditBean.getBail());
         	try {
         		Double.parseDouble(displaceAuditBean.getBail());
 			} catch (Exception e) {
@@ -1450,16 +1504,72 @@ public class AuditDetailController extends AbstractController{
 				return;
 			}
 
-        	// 起拍价
-        	if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入起拍价!");
-				return;
-			}
-        	try {
-        		Double.parseDouble(displaceAuditBean.getMinMoney());
-			} catch (Exception e) {
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"起拍价格式不正确!");
-				return;
+			if("3".equals(displaceAuditBean.getUpType())){
+				log.info("displaceAuditBean.getMinPrice()="+displaceAuditBean.getMinPrice());
+				if(StringUtils.isBlank(displaceAuditBean.getMinPrice())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入最低价额度!");
+					return;
+
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getMinPrice());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"最低价格式不正确!");
+					return;
+				}
+				log.info("displaceAuditBean.getMaxPrice()="+displaceAuditBean.getMaxPrice());
+				if(StringUtils.isBlank(displaceAuditBean.getMaxPrice())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入最高价额度!");
+					return;
+
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getMaxPrice());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"最高价格式不正确!");
+					return;
+				}
+				log.info("displaceAuditBean.getPersistPrice()="+displaceAuditBean.getPersistPrice());
+				if(StringUtils.isBlank(displaceAuditBean.getPersistPrice())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入保留价额度!");
+					return;
+
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getPersistPrice());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"保留价格式不正确!");
+					return;
+				}
+
+				if(Double.parseDouble(displaceAuditBean.getPersistPrice())>Double.parseDouble(displaceAuditBean.getMaxPrice())||Double.parseDouble(displaceAuditBean.getPersistPrice())<Double.parseDouble(displaceAuditBean.getMinPrice())) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE, "保留价格应该在最低价和最高价之间!");
+					return;
+				}
+			}else{
+				// 起拍价
+				if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入起拍价!");
+					return;
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getMinMoney());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"起拍价格式不正确!");
+					return;
+				}
+				// 报价延时
+				if(StringUtils.isBlank(displaceAuditBean.getTimeDelay())){
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价延时!");
+					return;
+				}
+				try {
+					Double.parseDouble(displaceAuditBean.getTimeDelay());
+				} catch (Exception e) {
+					resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"报价延时格式不正确!");
+					return;
+				}
+
 			}
 
         	// 报价额度
@@ -1474,17 +1584,6 @@ public class AuditDetailController extends AbstractController{
 				return;
 			}
 
-        	// 报价延时
-        	if(StringUtils.isBlank(displaceAuditBean.getTimeDelay())){
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请输入报价延时!");
-				return;
-			}
-        	try {
-        		Double.parseDouble(displaceAuditBean.getTimeDelay());
-			} catch (Exception e) {
-				resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"报价延时格式不正确!");
-				return;
-			}
             // 看现场
             if(StringUtils.isBlank(displaceAuditBean.getIsKxc())){
                 resultBean = new PageResultBean(PageResultBean.FAIL_CODE,"请选择是否看现场!");
@@ -1541,7 +1640,7 @@ public class AuditDetailController extends AbstractController{
 
 
         	// 补充信息
-    	    boolean flag = displaceAuditService.addInfo(displaceAuditBean);
+    	    boolean flag = displaceAuditService.addInfoNew(displaceAuditBean);
     	    if(!flag){
                 resultBean= new PageResultBean(PageResultBean.FAIL_CODE,"系统繁忙,请稍后再来!");
                 return;
@@ -1584,7 +1683,7 @@ public class AuditDetailController extends AbstractController{
             String wxsms = TemplateConstants.ZHSH_DIGGER_TEMPLATE_CONTENT;
             wxsms = wxsms.replaceAll("first", "有一台设备正在寻找买家");
             wxsms = wxsms.replaceAll("keyword1", sbmc+"");
-            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinMoney()+"万元");
+            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinPrice()+"万元");
             wxsms = wxsms.replaceAll("keyword3", displaceAuditBean.getMoneyRange()+"万元");
             wxsms = wxsms.replaceAll("keyword4", DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"));
             wxsms = wxsms.replaceAll("keyword5", displaceAuditBean.getBail()+"万元");
@@ -1611,7 +1710,7 @@ public class AuditDetailController extends AbstractController{
                 Map<String,TemplateData> param1 = new HashMap<String,TemplateData>();
                 param1.put("first",new TemplateData("有一台设备正在寻找买家","#696969"));
                 param1.put("keyword1",new TemplateData(sbmc+"","#696969"));
-                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinMoney()+"万元","#696969"));
+                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinPrice()+"万元","#696969"));
                 param1.put("keyword3",new TemplateData(displaceAuditBean.getMoneyRange()+"万元","#696969"));
                 param1.put("keyword4",new TemplateData(DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"),"#696969"));
                 param1.put("keyword5",new TemplateData(displaceAuditBean.getBail()+"万元","#696969"));
@@ -1892,15 +1991,55 @@ public class AuditDetailController extends AbstractController{
 				return;
 			}
 
-        	// 起拍价
-        	if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
-				resultBean = new ResultBean(ResultBean.FAIL_CODE,"请输入起拍价!");
+//        	// 起拍价
+//        	if(StringUtils.isBlank(displaceAuditBean.getMinMoney())){
+//				resultBean = new ResultBean(ResultBean.FAIL_CODE,"请输入起拍价!");
+//				return;
+//			}
+//        	try {
+//        		Double.parseDouble(displaceAuditBean.getMinMoney());
+//			} catch (Exception e) {
+//				resultBean = new ResultBean(ResultBean.FAIL_CODE,"起拍价格式不正确!");
+//				return;
+//			}
+			if(StringUtils.isBlank(displaceAuditBean.getMinPrice())){
+				resultBean = new ResultBean(PageResultBean.FAIL_CODE,"请输入最低价额度!");
 				return;
+
 			}
-        	try {
-        		Double.parseDouble(displaceAuditBean.getMinMoney());
+			try {
+				Double.parseDouble(displaceAuditBean.getMinPrice());
+			} catch (Exception e) {
+				resultBean = new ResultBean(PageResultBean.FAIL_CODE,"最低价格式不正确!");
+				return;
+			}
+
+			if(StringUtils.isBlank(displaceAuditBean.getMaxPrice())){
+				resultBean = new ResultBean(PageResultBean.FAIL_CODE,"请输入最高价额度!");
+				return;
+
+			}
+			try {
+				Double.parseDouble(displaceAuditBean.getMaxPrice());
 			} catch (Exception e) {
-				resultBean = new ResultBean(ResultBean.FAIL_CODE,"起拍价格式不正确!");
+				resultBean = new ResultBean(PageResultBean.FAIL_CODE,"最高价格式不正确!");
+				return;
+			}
+
+			if(StringUtils.isBlank(displaceAuditBean.getPersistPrice())){
+				resultBean = new ResultBean(PageResultBean.FAIL_CODE,"请输入保留价额度!");
+				return;
+
+			}
+			try {
+				Double.parseDouble(displaceAuditBean.getPersistPrice());
+			} catch (Exception e) {
+				resultBean = new ResultBean(PageResultBean.FAIL_CODE,"保留价格式不正确!");
+				return;
+			}
+
+			if(Double.parseDouble(displaceAuditBean.getPersistPrice())>Double.parseDouble(displaceAuditBean.getMaxPrice())||Double.parseDouble(displaceAuditBean.getPersistPrice())<Double.parseDouble(displaceAuditBean.getMinPrice())) {
+				resultBean = new ResultBean(PageResultBean.FAIL_CODE, "保留价格应该在最低价和最高价之间!");
 				return;
 			}
 
@@ -2008,7 +2147,7 @@ public class AuditDetailController extends AbstractController{
             String wxsms = TemplateConstants.ZHSH_DIGGER_TEMPLATE_CONTENT;
             wxsms = wxsms.replaceAll("first", "有一台设备正在寻找买家");
             wxsms = wxsms.replaceAll("keyword1", sbmc+"");
-            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinMoney()+"万元");
+            wxsms = wxsms.replaceAll("keyword2", displaceAuditBean.getMinPrice()+"万元");
             wxsms = wxsms.replaceAll("keyword3", displaceAuditBean.getMoneyRange()+"万元");
             wxsms = wxsms.replaceAll("keyword4", DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"));
             wxsms = wxsms.replaceAll("keyword5", displaceAuditBean.getBail()+"万元");
@@ -2035,7 +2174,7 @@ public class AuditDetailController extends AbstractController{
                 Map<String,TemplateData> param1 = new HashMap<String,TemplateData>();
                 param1.put("first",new TemplateData("有一台设备正在寻找买家","#696969"));
                 param1.put("keyword1",new TemplateData(sbmc+"","#696969"));
-                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinMoney()+"万元","#696969"));
+                param1.put("keyword2",new TemplateData(displaceAuditBean.getMinPrice()+"万元","#696969"));
                 param1.put("keyword3",new TemplateData(displaceAuditBean.getMoneyRange()+"万元","#696969"));
                 param1.put("keyword4",new TemplateData(DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"),"#696969"));
                 param1.put("keyword5",new TemplateData(displaceAuditBean.getBail()+"万元","#696969"));
@@ -2077,7 +2216,7 @@ public class AuditDetailController extends AbstractController{
                         Map<String,TemplateData> param2 = new HashMap<String,TemplateData>();
                         param2.put("first",new TemplateData("有一台设备正在寻找买家","#696969"));
                         param2.put("keyword1",new TemplateData(sbmc+"","#696969"));
-                        param2.put("keyword2",new TemplateData(displaceAuditBean.getMinMoney()+"万元","#696969"));
+                        param2.put("keyword2",new TemplateData(displaceAuditBean.getMinPrice()+"万元","#696969"));
                         param2.put("keyword3",new TemplateData(displaceAuditBean.getMoneyRange()+"万元","#696969"));
                         param2.put("keyword4",new TemplateData(DateUtil.format(startTime, "yyyy年MM月dd日 HH:mm"),"#696969"));
                         param2.put("keyword5",new TemplateData(displaceAuditBean.getBail()+"万元","#696969"));

+ 80 - 0
src/main/java/com/agent/action/certification/CertificationController.java

@@ -0,0 +1,80 @@
+package com.agent.action.certification;
+
+import com.agent.action.common.AbstractController;
+import com.agent.constans.CommonConstants;
+import com.agent.constans.ConfigConstants;
+import com.agent.model.bms.bean.UserBean;
+import com.agent.model.certification.bean.Explain;
+import com.agent.model.certification.service.ExplainService;
+import com.agent.model.common.bean.RegionBean;
+import com.agent.model.common.bean.ResultBean;
+import com.agent.model.credits.bean.CreditsExchange;
+import com.agent.model.usercolumn.bean.UserColumnRoleBean;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 实名认证
+ * @author zhuzz1991
+ *
+ */
+@Controller()
+@RequestMapping("/certification")
+public class CertificationController extends AbstractController {
+
+    private static Logger logger = LoggerFactory.getLogger(CertificationController.class);
+
+    /**
+     * 代理商后台销售员记录列表页
+     */
+    private final String SHOW_CERTIFICATION = "certification/explain";
+
+    @Autowired
+    private ExplainService explainService;
+
+    /**
+     * 实名认证目的
+     * @param request
+     * @param response
+     * @return
+     * @throws IOException
+     */
+    @RequestMapping("/getCertification.do")
+    public ModelAndView getCertification(HttpServletRequest request,
+                                     HttpServletResponse response) throws Exception{
+        ModelAndView view = new ModelAndView();
+        UserBean userBean = super.getSessionUser(request, response);
+        Explain explain=explainService.findAll().get(0);
+        Map<String, String> columnMap = new HashMap<String, String>();
+        columnMap.put("content",explain.getContent());
+        columnMap.put("id",explain.getId());
+        columnMap.put("if_auto",explain.getIf_auto());
+        columnMap.put("tips",explain.getTips());
+        columnMap.put("deposit",explain.getDeposit());
+        view.addObject("explain",columnMap);
+        logger.info("====columnMap=="+columnMap);
+        view.setViewName(SHOW_CERTIFICATION);
+        return view;
+    }
+
+    @RequestMapping("/updateContent.do")
+    public void updateContent(HttpServletRequest request, HttpServletResponse response, String content,String id,String if_auto,String tips,String deposit) throws Exception{
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS_CODE, "成功!");
+        UserBean userBean = super.getSessionUser(request, response);
+        boolean res= explainService.updateContext(id,content,if_auto,tips, deposit);
+        resultBean.setResult(res);
+        super.printResult(request, response, resultBean.toString());
+    }
+}

+ 186 - 0
src/main/java/com/agent/action/playbill/PlaybillController.java

@@ -0,0 +1,186 @@
+package com.agent.action.playbill;
+
+import com.agent.action.common.AbstractController;
+import com.agent.constans.CommonConstants;
+import com.agent.model.bms.bean.UserBean;
+import com.agent.model.certification.service.ExplainService;
+import com.agent.model.common.bean.ResultBean;
+import com.agent.model.gitf.bean.Present;
+import com.agent.model.gitf.service.PresentService;
+import com.agent.model.playbill.bean.Playbill;
+import com.agent.model.playbill.service.PlaybillService;
+import com.agent.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 宣传海报
+ * @author zhuzz1991
+ *
+ */
+@Controller()
+@RequestMapping("/palybill")
+public class PlaybillController extends AbstractController {
+    private static Logger logger = LoggerFactory.getLogger(PlaybillController.class);
+
+    private final String SHOW_PLAYBILL = "playbill/playbillManage";
+
+    private final String SHOW_ADD_PLAYBILL= "playbill/addPlaybill";
+
+    @Autowired
+    private PlaybillService playbillService;
+
+    @Autowired
+    private PresentService presentService;
+
+    @RequestMapping("/getPalybill.do")
+    public ModelAndView getCertification(HttpServletRequest request,
+                                         HttpServletResponse response) throws Exception{
+        //页面跳转
+        ModelAndView mv;
+        //获取登录信息
+        HttpSession session = request.getSession();
+        UserBean user = (UserBean) session.getAttribute(CommonConstants.USER_INFO);
+        //如果是管理员,跳转到平台列表页,否则跳转到商家列表页
+        if (user != null) {
+            mv = super.createJspView(SHOW_PLAYBILL);
+        } else {
+            //如果未登录,跳转到登录页
+            mv=super.createJspView("1");
+        }
+        return mv;
+    }
+
+    @RequestMapping(value = "/showPlaybilllist.do",method = RequestMethod.POST,produces = "application/json; charset=utf-8")
+    @ResponseBody
+    public String showPlaybilllist(HttpServletRequest request,
+                               HttpServletResponse response) throws Exception {
+        UserBean userBean=super.getSessionUser(request,response);
+        int page=Integer.parseInt(request.getParameter("page"));
+        int pagesize=Integer.parseInt(request.getParameter("pagesize"));
+        String res=playbillService.findAllByPage(page,pagesize);
+
+        return res;
+    }
+
+    @RequestMapping("/showAddPlaybill.do")
+    public ModelAndView showAddPlaybill(HttpServletRequest request, HttpServletResponse response){
+        //建立视图
+        ModelAndView view = super.createJspView(SHOW_ADD_PLAYBILL);
+        //返回页面数据
+        ResultBean resultBean =  new ResultBean(ResultBean.SUCCESS_CODE,"成功!");
+
+        try {
+            //将成功状态码带入页面
+            view.addObject("resultBean",resultBean);
+            return view;
+        } catch (Exception e) {
+            resultBean = new ResultBean(ResultBean.FAIL_CODE, "系统繁忙,请稍后再来!");
+            return view;
+        }
+
+    }
+
+//    @RequestMapping("/addPlaybill.do")
+//    public ModelAndView addShop(HttpServletRequest request, HttpServletResponse response,
+//                                @ModelAttribute Present agentBean){
+//        //建立视图
+//        ModelAndView view = super.createJspView(GIFT);
+//        //返回页面数据
+//        ResultBean resultBean =  new ResultBean(ResultBean.SUCCESS_CODE,"成功!");
+//        UserBean userBean=super.getSessionUser(request,response);
+//
+//        String agent=userManageService.findAgent(userBean.getId());
+//        AgentBean agentBeans=new AgentBean();
+//        if (agent.equals("admin")) {
+//            agentBeans = agentBeanService.getAgentBeanByAgentId("WGC000");
+//        }else {
+//            agentBeans= agentBeanService.getAgentBeanByAgentId(agent);
+//        }
+//        try {
+//
+//            if(resultBean.getCode().equals(ResultBean.SUCCESS_CODE)){
+//                Date date=new Date();
+//                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//                String format=sdf.format(date);
+//
+//                agentBean.setCreateTime(format);
+//                System.out.println(agentBeans.getAgentName()+"userName===========");
+//                agentBean.setUserName(agentBeans.getAgentName());
+//                agentBean.setUserId(agent);
+//                boolean flag=presentService.saveGift(agentBean);
+//
+//            }
+//            return view;
+//        } catch (Exception e) {
+//            resultBean = new ResultBean(ResultBean.FAIL_CODE, "系统繁忙,请稍后再来!");
+//            log.error("deleteActivityType error!",e);
+//            return view;
+//        }
+
+//    }
+
+    @RequestMapping("/editPlaybill.do")
+    public void editPlaybill(HttpServletRequest request,HttpServletResponse response){
+        String id=request.getParameter("id") ;
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS_CODE, "成功!");
+        logger.info("id========"+id);
+        if(StringUtils.isNotBlank(id)){
+            Playbill playbill=playbillService.findById(id);
+            System.out.println(playbill.getUrl()+"=========================");
+            resultBean.setResult(playbill);
+            super.printResult(request, response, resultBean.toString());
+
+        }
+
+//        String id=request.getParameter("id") ;
+//        int ids=30;
+//        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS_CODE, "成功!");
+//        if(StringUtils.isNotBlank(id)){
+//            Present present=presentService.findById(ids);
+//            System.out.println(present.getName()+"=========================");
+//            resultBean.setResult(present);
+//            super.printResult(request, response, resultBean.toString());
+//
+//        }
+    }
+
+    @RequestMapping("/updatePlaybill.do")
+    public void updatePlaybill(HttpServletRequest request,HttpServletResponse response, @ModelAttribute Playbill agentBean){
+
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS_CODE, "成功!");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date=new Date();
+        String format=sdf.format(date);
+        agentBean.setUpdatetime(format);
+        int a=playbillService.updateById(agentBean);
+        resultBean.setResult(a);
+        super.printResult(request, response, resultBean.toString());
+
+
+    }
+
+    @RequestMapping("/deletePlaybill.do")
+    public  void  deletePlaybill(HttpServletRequest request, HttpServletResponse response,@RequestParam(value="id", required=true) String id) {
+        ResultBean resultBean = new ResultBean(ResultBean.SUCCESS_CODE, "成功!");
+        if (StringUtils.isNotBlank(id)){
+            int a=playbillService.deleteById(id);
+            resultBean.setResult(a);
+        }
+        super.printResult(request, response, resultBean.toString());
+
+    }
+}

+ 33 - 0
src/main/java/com/agent/action/shop/ShopController.java

@@ -452,6 +452,39 @@ public class ShopController extends AbstractController{
 
     }
 
+
+    @RequestMapping("/getAgentInfo.do")
+    public void getAgentInfo(HttpServletRequest request, HttpServletResponse response,
+                             @RequestParam(value="agentId", required=true) String agentId){
+
+        //返回页面数据
+        ResultBean resultBean =  new ResultBean(ResultBean.SUCCESS_CODE,"成功!");
+
+        try {
+            //判断必要参数是否传递到后台
+            if(StringUtils.isEmpty(agentId)){
+                resultBean = new ResultBean(ResultBean.FAIL_CODE,"商家ID不能为空!");
+                return;
+            }
+            if(resultBean.getCode().equals(ResultBean.SUCCESS_CODE)){
+                //根据商家ID获取商家bean
+                AgentBean agentBean = agentBeanService.getAgentBeanByAgentId(agentId);
+                if(agentBean==null){
+                    resultBean = new ResultBean(ResultBean.FAIL_CODE,"系统繁忙,请稍后再来!");
+                    return;
+                }
+                //将商家bean带入页面
+                resultBean.setResult(agentBean);
+            }
+        } catch (Exception e) {
+            resultBean = new ResultBean(ResultBean.FAIL_CODE, "系统繁忙,请稍后再来!");
+            log.error("showEditShop error!",e);
+        }finally{
+            super.printResult(request, response, resultBean.toString());
+        }
+
+    }
+
     /**
      * 编辑商家
      * @param request

+ 94 - 0
src/main/java/com/agent/action/upload/uploadImgController.java

@@ -7,8 +7,11 @@ import com.agent.model.bms.bean.UserBean;
 import com.agent.model.common.bean.FileBean;
 import com.agent.model.gitf.bean.Present;
 import com.agent.model.gitf.service.PresentService;
+import com.agent.model.playbill.bean.Playbill;
+import com.agent.model.playbill.service.PlaybillService;
 import com.agent.model.shop.bean.AgentBean;
 import com.agent.model.shop.service.AgentBeanService;
+import com.agent.util.ActivityUtils;
 import com.agent.util.FileUtil;
 import com.agent.util.JsonUtil;
 import com.google.gson.Gson;
@@ -32,6 +35,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -50,6 +54,9 @@ public class uploadImgController extends AbstractController {
     @Autowired
     private AgentBeanService agentBeanService;
 
+    @Autowired
+    private PlaybillService playbillService;
+
     @RequestMapping("/upImg.do")
     public void upImg(HttpServletRequest request, HttpServletResponse response){
         FileBean fileBean = new FileBean(FileBean.SUCCESS_CODE, "成功!");
@@ -184,4 +191,91 @@ public class uploadImgController extends AbstractController {
 
     }
 
+
+
+    @RequestMapping(value="/uplocadImagePlaybill.do",method= RequestMethod.POST)
+    @ResponseBody
+    public boolean uplocadImagePlaybill(@RequestParam MultipartFile[] imgs,HttpServletRequest request,HttpServletResponse responses){
+        System.out.println(imgs);
+        System.out.println(imgs.length);
+        Playbill playbill=new Playbill();
+        playbill.setJumpUrl(request.getParameter("jumpUrl"));
+        playbill.setSequence(Integer.parseInt(request.getParameter("sequence")));
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date=new Date();
+        String format=sdf.format(date);
+        playbill.setUpdatetime(format);
+        playbill.setCreatetime(format);
+        playbill.setId(ActivityUtils.getUUID());
+        String allUrl="";
+        String accessKey =  MessageConstants.getConfigMessage("qiniu.access.key");
+        String secretKey = MessageConstants.getConfigMessage("qiniu.secret.key");
+        String bucket = MessageConstants.getConfigMessage("qiniu.bucket");;
+        for (int i = 0;i < imgs.length;i++) {
+            //得到图片名
+            String oldName = imgs[i].getOriginalFilename();// 如apple1.jpg
+            //构造一个带指定Zone对象的配置类
+            Configuration cfg = new Configuration(Zone.zone0());
+            //...其他参数参考类注释
+
+            UploadManager uploadManager = new UploadManager(cfg);
+            //...生成上传凭证,然后准备上传
+            //默认不指定key的情况下,以文件内容的hash值作为文件名
+            String key = null;
+            byte[] buffer = null;
+            MultipartFile filess=imgs[i];
+            File file = SaveTempleFile(filess);
+            try {
+                try {
+
+                    FileInputStream fis = new FileInputStream(file);
+
+                    if(file.exists()){
+                        file.delete();
+                    }
+                    ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
+                    byte[] b = new byte[1000];
+                    int n;
+                    while ((n = fis.read(b)) != -1) {
+                        bos.write(b, 0, n);
+                    }
+                    fis.close();
+                    bos.close();
+                    buffer = bos.toByteArray();
+                } catch (FileNotFoundException e) {
+                    e.printStackTrace();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                ByteArrayInputStream byteInputStream=new ByteArrayInputStream(buffer);
+                Auth auth = Auth.create(accessKey, secretKey);
+                String upToken = auth.uploadToken(bucket);
+                try {
+                    Response response = uploadManager.put(byteInputStream,key,upToken,null, null);
+                    //解析上传成功的结果
+                    DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
+                    allUrl=putRet.hash;
+
+                } catch (QiniuException ex) {
+                    System.err.println(ex.getMessage());
+                }
+            } catch (Exception ex) {
+            }
+            System.out.println(oldName);
+        }
+        String encodedFileName;
+        try {
+            encodedFileName = URLEncoder.encode(allUrl, "utf-8");
+        } catch (Exception e) {
+            throw new RuntimeException("编码文件名称异常");
+        }
+        String domainOfBucket = MessageConstants.getConfigMessage("qiniu.url");
+        String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
+        Auth auth = Auth.create(accessKey, secretKey);
+        String finalUrl = auth.privateDownloadUrl(publicUrl, 3600);
+        playbill.setUrl(allUrl);
+        playbillService.savePlaybill(playbill);
+        return true;
+    }
+
 }

+ 12 - 0
src/main/java/com/agent/action/usermanage/UserManageController.java

@@ -1318,6 +1318,9 @@ public class UserManageController extends AbstractController {
     		// 1、获取参数
     		String userAccount = super.getParameter(request, "userAccount");
 			String isAudit = super.getParameter(request, "isAudit");
+
+			String ifCertification = super.getParameter(request, "ifCertification");
+
 			String isUp = super.getParameter(request, "isUp");
 			
 			String isAudits = super.getParameter(request, "isAudits");
@@ -1441,6 +1444,15 @@ public class UserManageController extends AbstractController {
 				}
 			}
 
+			//更新实名认证审核岗
+			if(ZERO.equals(ifCertification) || ONE.equals(ifCertification)) {
+				boolean ifCertificationFlag = userManageService.updateIfCertificationByUserAccount(userAccount, ifCertification);
+				if(!ifCertificationFlag) {
+					result =  new ResultBean(ResultBean.FAIL_CODE, "实名认证审核岗更新失败!");
+					return ;
+				}
+			}
+
 			// 4.1、更新上架岗
 			if(ZERO.equals(isUp) || ONE.equals(isUp)) {
 				boolean isUpFlag = userManageService.updateIsUpByUserAccount(userAccount, isUp);

+ 59 - 0
src/main/java/com/agent/model/agreement/bean/Agreement.java

@@ -0,0 +1,59 @@
+package com.agent.model.agreement.bean;
+
+import java.io.Serializable;
+
+public class Agreement implements Serializable {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 协议内容
+     */
+    private String agree_html;
+
+    /**
+     * 创建时间
+     */
+    private String createtime;
+
+    /**
+     * 更细时间
+     */
+    private String updatetime;
+
+    public String getAgree_html() {
+        return agree_html;
+    }
+
+    public void setAgree_html(String agree_html) {
+        this.agree_html = agree_html;
+    }
+
+    public void setCreatetime(String createtime) {
+        this.createtime = createtime;
+    }
+
+    public void setUpdatetime(String updatetime) {
+        this.updatetime = updatetime;
+    }
+
+    public String getCreatetime() {
+        return createtime;
+    }
+
+    public String getUpdatetime() {
+        return updatetime;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+}

+ 20 - 0
src/main/java/com/agent/model/agreement/bpo/AgreementBpo.java

@@ -0,0 +1,20 @@
+package com.agent.model.agreement.bpo;
+
+import com.agent.model.agreement.bean.Agreement;
+import com.agent.model.agreement.dao.AgreementDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component("AgreementBpo")
+public class AgreementBpo {
+    @Autowired
+    private AgreementDao agreementDao;
+
+    public Agreement find() {
+        return agreementDao.find();
+    }
+
+    public int updateById(Agreement id) {
+        return agreementDao.updateById(id);
+    }
+}

+ 63 - 0
src/main/java/com/agent/model/agreement/dao/AgreementDao.java

@@ -0,0 +1,63 @@
+package com.agent.model.agreement.dao;
+
+import com.agent.constans.MessageConstants;
+import com.agent.model.agreement.bean.Agreement;
+import com.agent.model.agreement.dao.PresentConvert.PresentBeanConvert;
+import com.agent.model.agreement.dao.mapper.AgreementMapper;
+import com.agent.model.common.dao.BaseDaoImpl;
+import com.alibaba.fastjson.JSONObject;
+import com.qiniu.util.Auth;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.stereotype.Repository;
+
+import java.net.URLEncoder;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Repository("AgreementDao")
+public class AgreementDao<BaseBean> extends BaseDaoImpl<BaseBean> {
+    private static Logger logger = LoggerFactory.getLogger(AgreementDao.class);
+
+    List<AgreementMapper> agreementMappers = new ArrayList();
+    AgreementMapper agreementMapper =new AgreementMapper();
+    public List<Agreement> findAll() {
+        PresentBeanConvert presentBeanConvert=new PresentBeanConvert();
+        StringBuffer sql = new StringBuffer();
+        List<Object> params = new ArrayList<Object>();
+        sql.append("select * from tb_agree order");
+        List<?> resultList = this.getBaseBeans(sql.toString(), params.toArray(),presentBeanConvert);
+        return (List<Agreement>) resultList;
+    }
+
+    public Agreement find() {
+        StringBuffer sql = new StringBuffer();
+        sql.append("select * from tb_agree");
+        Agreement bean=this.getJdbcTemplate().queryForObject(sql.toString(),new RowMapper<Agreement>(){
+
+            @Override
+            public Agreement mapRow(ResultSet rs, int i) throws SQLException {
+                Agreement beans=new Agreement();
+                beans.setId(rs.getString("id"));
+                beans.setAgree_html(rs.getString("agree_html"));
+                beans.setUpdatetime(rs.getDate("updatetime").toString());
+                beans.setCreatetime(rs.getDate("createtime").toString());
+                return beans;
+            }
+        });
+        return bean;
+    }
+
+    public int updateById(Agreement agreement) {
+        System.out.println("=========>"+ agreement.getId());
+        StringBuffer sql=new StringBuffer();
+        sql.append("update tb_agree set updatetime='"+ agreement.getUpdatetime()+"',agree_html='"+ agreement.getAgree_html()+"' where id='"+ agreement.getId()+"'");
+        int a=this.getJdbcTemplate().update(sql.toString());
+        System.out.println(sql.toString()+"-------------------");
+        return a;
+    }
+
+}

+ 27 - 0
src/main/java/com/agent/model/agreement/dao/PresentConvert/PresentBeanConvert.java

@@ -0,0 +1,27 @@
+package com.agent.model.agreement.dao.PresentConvert;
+
+import com.agent.model.agreement.bean.Agreement;
+import com.agent.model.common.dao.convert.BaseIConvertBean;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class PresentBeanConvert extends BaseIConvertBean {
+    @Override
+    public List<Agreement> convert(List<Map<String, Object>> queryForList) {
+        List<Agreement> beans=new ArrayList<>();
+
+        Agreement bean=null;
+        for (Map<String, Object> map : queryForList) {
+            bean = new Agreement();
+            bean.setId(super.getStringValue(map,"id"));
+            bean.setAgree_html(super.getStringValue(map,"agree_html"));
+            bean.setCreatetime(super.getDateValue2(map,"createtime","YYYY-MM-DD hh:mm:ss").toString());
+            bean.setUpdatetime(super.getDateValue2(map,"updatetime","YYYY-MM-DD hh:mm:ss").toString());
+            beans.add(bean);
+        }
+
+        return beans;
+    }
+}

+ 19 - 0
src/main/java/com/agent/model/agreement/dao/mapper/AgreementMapper.java

@@ -0,0 +1,19 @@
+package com.agent.model.agreement.dao.mapper;
+
+import com.agent.model.agreement.bean.Agreement;
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class AgreementMapper implements ParameterizedRowMapper {
+    @Override
+    public Agreement mapRow(ResultSet rs, int rowNum) throws SQLException {
+        Agreement bean=new Agreement();
+        bean.setId(rs.getString("id"));
+        bean.setAgree_html(rs.getString("agree_html"));
+        bean.setCreatetime(rs.getDate("createtime").toString());
+        bean.setUpdatetime(rs.getDate("updatetime").toString());
+        return bean;
+    }
+}

+ 20 - 0
src/main/java/com/agent/model/agreement/service/AgreementService.java

@@ -0,0 +1,20 @@
+package com.agent.model.agreement.service;
+
+import com.agent.model.agreement.bean.Agreement;
+import com.agent.model.agreement.bpo.AgreementBpo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service("AgreementService")
+public class AgreementService {
+    @Autowired
+    private AgreementBpo agreementBpo;
+
+    public Agreement find(){
+        return agreementBpo.find();
+    }
+
+    public int updateById(Agreement id){
+        return agreementBpo.updateById(id);
+    }
+}

+ 60 - 1
src/main/java/com/agent/model/audit/bean/DisplaceAuditBean.java

@@ -86,7 +86,7 @@ public class DisplaceAuditBean implements Serializable{
 	/**
 	 * 上架形式
 	 */
-	private String upType;
+	private String upType;//1-置换报价  2-网络竞销 3-一口价秒杀
 
 	/**
 	 * 保证金
@@ -155,6 +155,65 @@ public class DisplaceAuditBean implements Serializable{
 	private Integer qp_type;
 
 	private String oldDisplaceId;
+	/**
+	 * 是否精品机
+	 */
+	private String is_good;//1-普通2-精品
+
+	/**
+	 * 最低价格
+	 */
+	private String minPrice;
+	/**
+	 * 最高价格
+	 */
+	private String maxPrice;
+	/**
+	 * 保留价
+	 */
+	private String persistPrice;
+
+	private String agentRule;//1-置换报价  2-网络竞销 3-一口价秒杀
+
+	public String getAgentRule() {
+		return agentRule;
+	}
+
+	public void setAgentRule(String agentRule) {
+		this.agentRule = agentRule;
+	}
+
+	public String getIs_good() {
+		return is_good;
+	}
+
+	public void setIs_good(String is_good) {
+		this.is_good = is_good;
+	}
+
+	public void setMinPrice(String minPrice) {
+		this.minPrice = minPrice;
+	}
+
+	public void setMaxPrice(String maxPrice) {
+		this.maxPrice = maxPrice;
+	}
+
+	public void setPersistPrice(String persistPrice) {
+		this.persistPrice = persistPrice;
+	}
+
+	public String getMinPrice() {
+		return minPrice;
+	}
+
+	public String getMaxPrice() {
+		return maxPrice;
+	}
+
+	public String getPersistPrice() {
+		return persistPrice;
+	}
 
 	public String getOldDisplaceId() {
 		return oldDisplaceId;

+ 3 - 0
src/main/java/com/agent/model/audit/bpo/DisplaceAuditBpo.java

@@ -271,6 +271,9 @@ public class DisplaceAuditBpo {
     public boolean addInfo(DisplaceAuditBean bean){
     	return displaceAuditDao.addInfo(bean);
     }
+	public boolean addInfoNew(DisplaceAuditBean bean){
+		return displaceAuditDao.addInfoNew(bean);
+	}
 
     /**
      * 修改审核信息

+ 22 - 4
src/main/java/com/agent/model/audit/dao/DisplaceAuditDao.java

@@ -507,7 +507,7 @@ public class DisplaceAuditDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         List<Object> params = new ArrayList<Object>();
         StringBuffer sql = new StringBuffer();
         sql.append(" select a.id,a.agent_id,a.agent_name,a.displace_id,a.idea_price,a.pub_time,a.audit_time,a.journalist_name,");
-        sql.append(" a.journalist_tel,a.audit_status,a.sale_id,a.warranty_desc,a.others_desc,a.up_type,a.bail,a.money_range,a.time_delay,a.start_time,a.end_time,b.is_attent,a.min_money, a.is_kxc ,b.agent_type ");
+        sql.append(" a.journalist_tel,a.audit_status,a.sale_id,a.warranty_desc,a.others_desc,a.up_type,a.bail,a.money_range,a.time_delay,a.start_time,a.end_time,b.is_attent,a.min_money, a.is_kxc ,b.agent_type ,a.min_price,a.max_price,a.persist_price,a.is_good");
 /*        sql.append(" from "+CommonConstants.TB_DISPLACE_AUDIT+" a  left join "+ CommonConstants.TB_AGENT + " b on a.agent_id = b.agent_id  and b.state = '1' where 1 = 1  and a.state = '1' ");
 */        sql.append(" from "+CommonConstants.TB_DISPLACE_AUDIT+" a  left join "+ CommonConstants.TB_AGENT + " b on a.agent_id = b.agent_id and b.state = '1' where 1 = 1 ");
 
@@ -810,6 +810,24 @@ public class DisplaceAuditDao<BaseBean> extends BaseDaoImpl<BaseBean> {
     }
 
     /**
+     * 补充审核信息
+     * @param bean
+     * @return
+     */
+    public boolean addInfoNew(DisplaceAuditBean bean){
+        StringBuilder sql = new StringBuilder();
+        sql.append(" update "+CommonConstants.TB_DISPLACE_AUDIT +" set audit_status='1',audit_time=?,audit_user=?,up_type=?,bail=?,money_range=?,time_delay=?,start_time=?,end_time=?,min_money=?,is_kxc =?,min_price=?,max_price=?,persist_price=?,is_good=? where id=?");
+        try {
+            return super.updateBaseBean(sql.toString(), new Object[]{bean.getAuditTime(),bean.getAuditUser(),bean.getUpType(),CommonUtil.moneyToYuan(bean.getBail()),
+                    CommonUtil.moneyToYuan(bean.getMoneyRange()),StringUtils.isBlank(bean.getTimeDelay())?0:bean.getTimeDelay(),bean.getStartTime(),bean.getEndTime(),
+                    CommonUtil.moneyToYuan(bean.getMinMoney()),bean.getIsKxc(),StringUtils.isBlank(bean.getMinPrice())?0:bean.getMinPrice(),StringUtils.isBlank(bean.getMaxPrice())?0:bean.getMaxPrice(),StringUtils.isBlank(bean.getPersistPrice())?0:bean.getPersistPrice(),bean.getIs_good(),bean.getId()})>0;
+        } catch (Exception e) {
+            logger.error("endTime error", e);
+            return false;
+        }
+    }
+
+    /**
      * 重新生成置换审核信息
      * @param bean
      * @return
@@ -819,13 +837,13 @@ public class DisplaceAuditDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         System.out.println(old+"这是dao层的old");
     	StringBuilder sql = new StringBuilder();
 		sql.append("insert into tb_displace_audit(id,agent_id,agent_name,displace_id,idea_price,pub_time,audit_time,journalist_name,journalist_tel,");
-		sql.append(" audit_status,audit_user,state,sale_id,warranty_desc,others_desc,up_type,bail,money_range,time_delay,start_time,end_time,min_money,first_pic_url,look_times,is_kxc,old_displace_id) ");
+		sql.append(" audit_status,audit_user,state,sale_id,warranty_desc,others_desc,up_type,bail,money_range,time_delay,start_time,end_time,min_money,first_pic_url,look_times,is_kxc,old_displace_id,min_price,max_price,persist_price,is_good) ");
 		sql.append(" select REPLACE(uuid(),'-',''),a.agent_id,a.agent_name,concat('"+X+"',a.displace_id),a.idea_price,a.pub_time,?,a.journalist_name,");
 		sql.append(" a.journalist_tel,'1',?,a.state,a.sale_id,a.warranty_desc,a.others_desc,?,?,?,");
-		sql.append(" ?,?,?,?,a.first_pic_url,0,?,'"+old+"' from tb_displace_audit a where id=? ");
+		sql.append(" ?,?,?,?,a.first_pic_url,0,?,'"+old+"',?,?,?,? from tb_displace_audit a where id=? ");
 		try {
 			return super.saveBaseBean(sql.toString(), new Object[]{bean.getAuditTime(),bean.getAuditUser(), bean.getUpType(),CommonUtil.moneyToYuan(bean.getBail()),CommonUtil.moneyToYuan(bean.getMoneyRange()),
-				bean.getTimeDelay(),bean.getStartTime(),bean.getEndTime(),CommonUtil.moneyToYuan(bean.getMinMoney()),bean.getIsKxc(),bean.getId()});
+                    StringUtils.isBlank(bean.getTimeDelay())?0:bean.getTimeDelay(),bean.getStartTime(),bean.getEndTime(),CommonUtil.moneyToYuan(bean.getMinMoney()),bean.getIsKxc(),bean.getId(),StringUtils.isBlank(bean.getMinPrice())?0:bean.getMinPrice(),StringUtils.isBlank(bean.getMaxPrice())?0:bean.getMaxPrice(),StringUtils.isBlank(bean.getPersistPrice())?0:bean.getPersistPrice(),bean.getIs_good()});
 
 		} catch (Exception e) {
 			logger.error("createNewAudit error", e);

+ 4 - 0
src/main/java/com/agent/model/audit/dao/convert/DisplaceAuditBeanConvert.java

@@ -43,6 +43,10 @@ public class DisplaceAuditBeanConvert  extends BaseIConvertBean{
 			bean.setIsAttent(super.getStringValue(map, "is_attent"));
 			bean.setMinMoney(CommonUtil.moneyToWanYuan(super.getIntegerValue(map, "min_money")+""));
 			bean.setAgentType(super.getIntegerValue(map, "agent_type"));
+			bean.setMinPrice(CommonUtil.moneyToWanYuan(super.getIntegerValue(map,"min_price")+""));
+			bean.setMaxPrice(CommonUtil.moneyToWanYuan(super.getIntegerValue(map,"max_price")+""));
+			bean.setPersistPrice(CommonUtil.moneyToWanYuan(super.getIntegerValue(map,"persist_price")+""));
+			bean.setIs_good(super.getStringValue(map,"is_good"));
 			// 是否结束
 			if(bean.getEndTime()!=null && bean.getEndTime().getTime() < System.currentTimeMillis()){
 				bean.setIsEnd("1");

+ 4 - 0
src/main/java/com/agent/model/audit/service/DisplaceAuditService.java

@@ -1153,6 +1153,10 @@ public class DisplaceAuditService {
     	return displaceAuditBpo.addInfo(bean);
     }
 
+	public boolean addInfoNew(DisplaceAuditBean bean){
+		return displaceAuditBpo.addInfoNew(bean);
+	}
+
     /**
      * 修改审核信息
      * @param list

+ 92 - 0
src/main/java/com/agent/model/certification/bean/Explain.java

@@ -0,0 +1,92 @@
+package com.agent.model.certification.bean;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class Explain implements Serializable {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    private Date createtime;
+
+    /**
+     * 更新时间
+     */
+    private Date updatetime;
+
+    /**
+     * 是否自动实名认证
+     */
+    private String if_auto;
+
+    private String tips;
+
+    private String deposit;
+
+    public String getDeposit() {
+        return deposit;
+    }
+
+    public void setDeposit(String deposit) {
+        this.deposit = deposit;
+    }
+
+    public String getTips() {
+        return tips;
+    }
+
+    public void setTips(String tips) {
+        this.tips = tips;
+    }
+
+    public void setIf_auto(String if_auto) {
+        this.if_auto = if_auto;
+    }
+
+    public String getIf_auto() {
+        return if_auto;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public void setCreatetime(Date createtime) {
+        this.createtime = createtime;
+    }
+
+    public void setUpdatetime(Date updatetime) {
+        this.updatetime = updatetime;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public Date getCreatetime() {
+        return createtime;
+    }
+
+    public Date getUpdatetime() {
+        return updatetime;
+    }
+}

+ 22 - 0
src/main/java/com/agent/model/certification/bpo/ExplainBpo.java

@@ -0,0 +1,22 @@
+package com.agent.model.certification.bpo;
+
+import com.agent.model.certification.bean.Explain;
+import com.agent.model.certification.dao.ExplainDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component("ExplainBpo")
+public class ExplainBpo {
+
+    @Autowired
+    private ExplainDao explainDao;
+
+    public List<Explain> findAll() {
+        return explainDao.findAll();
+    }
+    public boolean updateContext(String id, String content,String if_auto,String tips,String deposit){
+        return explainDao.updateContext(id, content, if_auto,tips, deposit);
+    }
+}

+ 73 - 0
src/main/java/com/agent/model/certification/dao/ExplainDao.java

@@ -0,0 +1,73 @@
+package com.agent.model.certification.dao;
+
+import com.agent.action.bms.LoginController;
+import com.agent.model.certification.bean.Explain;
+import com.agent.model.certification.dao.PresentConvert.PresentBeanConvert;
+import com.agent.model.certification.dao.mapper.ExplainMapper;
+import com.agent.model.common.bean.DbResultBean;
+import com.agent.model.common.dao.BaseDaoImpl;
+import com.agent.model.playbill.bean.Playbill;
+import com.agent.model.playbill.dao.mapper.PlaybillMapper;
+import com.agent.model.record.bean.RecordBean;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.stereotype.Repository;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Repository("ExplainDao")
+public class ExplainDao<BaseBean> extends BaseDaoImpl<BaseBean> {
+
+    private static Logger logger = LoggerFactory.getLogger(ExplainDao.class);
+
+    List<ExplainMapper> explainMappers= new ArrayList();
+    public List<Explain> findAll() {
+//        StringBuffer sql=new StringBuffer();
+//        sql.append("select * from tb_explain");
+//        List<Explain> explain= (List<Explain>) this.getJdbcTemplate().queryForObject(sql.toString(),explainMappers);
+//        return explain;
+
+        PresentBeanConvert presentBeanConvert=new PresentBeanConvert();
+        StringBuffer sql = new StringBuffer();
+        List<Object> params = new ArrayList<Object>();
+        sql.append("select * from tb_explain");
+        List<?> resultList = this.getBaseBeans(sql.toString(), params.toArray(),presentBeanConvert);
+        return (List<Explain>) resultList;
+    }
+
+    /**
+     * 更新
+     * @param id
+     * @param content
+     * @return
+     */
+    public boolean updateContext(String id, String content, String if_auto,String tips,String deposit) {
+        StringBuffer sql = new StringBuffer();
+        List<Object> params = new ArrayList<Object>();
+
+        sql.append(" update tb_explain set content = ? ,updatetime= ? ,if_auto= ? ,tips= ? ,deposit= ?");
+        sql.append(" where id = ? ");
+        params.add(content);
+        params.add(new Date());
+        params.add(if_auto);
+        params.add(tips);
+        params.add(deposit);
+        params.add(id);
+
+        try {
+            return super.updateBaseBean(sql.toString(), params.toArray()) > 0;
+        } catch (Exception e) {
+            logger.error(">>>>>ExplainDao>>>update>>>error!", e);
+        }
+
+        return false;
+    }
+
+}

+ 31 - 0
src/main/java/com/agent/model/certification/dao/PresentConvert/PresentBeanConvert.java

@@ -0,0 +1,31 @@
+package com.agent.model.certification.dao.PresentConvert;
+
+import com.agent.model.certification.bean.Explain;
+import com.agent.model.common.dao.convert.BaseIConvertBean;
+import com.agent.model.gitf.bean.Present;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class PresentBeanConvert extends BaseIConvertBean {
+    @Override
+    public List<Explain> convert(List<Map<String, Object>> queryForList) {
+        List<Explain> beans=new ArrayList<>();
+
+        Explain bean=null;
+        for (Map<String, Object> map : queryForList) {
+            bean = new Explain();
+            bean.setId(super.getStringValue(map, "id"));
+            bean.setContent(super.getStringValue(map,"content"));
+            bean.setCreatetime(super.getDateValue2(map,"createtime","YYYY-MM-DD"));
+            bean.setUpdatetime(super.getDateValue2(map,"uppdatetime","YYYY-MM-DD"));
+            bean.setIf_auto(super.getStringValue(map,"if_auto"));
+            bean.setTips(super.getStringValue(map,"tips"));
+            bean.setDeposit(super.getStringValue(map,"deposit"));
+            beans.add(bean);
+        }
+
+        return beans;
+    }
+}

+ 21 - 0
src/main/java/com/agent/model/certification/dao/mapper/ExplainMapper.java

@@ -0,0 +1,21 @@
+package com.agent.model.certification.dao.mapper;
+
+import com.agent.model.certification.bean.Explain;
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+@SuppressWarnings("rawtypes")
+public class ExplainMapper implements ParameterizedRowMapper {
+    @Override
+    public Explain mapRow(ResultSet rs, int rowNum) throws SQLException {
+        Explain bean=new Explain();
+        bean.setContent(rs.getString("content"));
+        bean.setId(rs.getString("id"));
+        bean.setCreatetime(rs.getDate("createtime"));
+        bean.setUpdatetime(rs.getDate("updatetime"));
+        bean.setIf_auto(rs.getString("if_auto"));
+        return bean;
+    }
+}

+ 23 - 0
src/main/java/com/agent/model/certification/service/ExplainService.java

@@ -0,0 +1,23 @@
+package com.agent.model.certification.service;
+
+import com.agent.model.certification.bean.Explain;
+import com.agent.model.certification.bpo.ExplainBpo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("ExplainService")
+public class ExplainService {
+    @Autowired
+    private ExplainBpo explainBpo;
+
+    public List<Explain> findAll() {
+        return explainBpo.findAll();
+    }
+
+    public boolean updateContext(String id, String content,String if_auto,String tips,String deposit){
+        return explainBpo.updateContext(id, content,if_auto,tips, deposit);
+    }
+
+}

+ 28 - 0
src/main/java/com/agent/model/digger/bean/DiggerBean.java

@@ -83,6 +83,34 @@ public class DiggerBean implements java.io.Serializable {
 	/** 认证状态 */
 	private Integer state;
 
+	/**
+	 * 注册开始时间
+	 * @return
+	 */
+	private String registeBegin;
+
+	/**
+	 * 注册开结束时间
+	 * @return
+	 */
+	private String registeEnd;
+
+	public String getRegisteBegin() {
+		return registeBegin;
+	}
+
+	public void setRegisteBegin(String registeBegin) {
+		this.registeBegin = registeBegin;
+	}
+
+	public String getRegisteEnd() {
+		return registeEnd;
+	}
+
+	public void setRegisteEnd(String registeEnd) {
+		this.registeEnd = registeEnd;
+	}
+
 	public Integer getState() {
 		return state;
 	}

+ 32 - 4
src/main/java/com/agent/model/digger/dao/DiggerBeanDao.java

@@ -4,8 +4,10 @@ package com.agent.model.digger.dao;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
+import com.agent.util.DateUtil;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.stereotype.Repository;
 
@@ -45,7 +47,7 @@ public class DiggerBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         List<Object> params = new ArrayList<Object>();
         StringBuffer sql = new StringBuffer();
         sql.append(" select a.id,a.da_id,a.da_name,a.da_phone,a.da_wxh,a.da_wxnc,a.agent_id,b.agent_name,a.da_gzh_channel,");
-        sql.append(" a.da_wx_province,c.name as province_name,a.focus_brand_ids,a.focus_brand_names,a.muti_offer_status,a.agent_tp_set,a.plat_tp_set,a.wx_openid,a.regeister_status ,a.member_level,a.integral,a.state");
+        sql.append(" a.da_wx_province,c.name as province_name,a.focus_brand_ids,a.focus_brand_names,a.muti_offer_status,a.agent_tp_set,a.plat_tp_set,a.wx_openid,a.regeister_status ,a.member_level,a.integral,a.state,a.registe_date");
         sql.append(",sum(d.pay_amout) as deposit");
         sql.append(" from ").append(CommonConstants.TB_DIGGER_AGENT).append(" a left join ")
         .append(CommonConstants.TB_AGENT).append(" b on a.agent_id=b.agent_id and b.state = '1' left join ")
@@ -115,9 +117,35 @@ public class DiggerBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
             totalsql.append(" and a.agent_id = ?");
             params.add(diggerBean.getAgentID());
         }
+        if(StringUtils.isNotBlank(diggerBean.getRegisteBegin())){
+            // 时间转换
+            Date startTime = null;
+            try {
+                if(StringUtils.isNotBlank(diggerBean.getRegisteBegin())) {
+                    startTime = DateUtil.parse(diggerBean.getRegisteBegin(), DateUtil.DEFAULT);
+                    sql.append(" and a.registe_date >= ?");
+                    totalsql.append(" and a.registe_date >= ?");
+                    params.add(startTime);
+                }
+            } catch (Exception e) {
+
+            }
+        }
+        if(StringUtils.isNotBlank(diggerBean.getRegisteEnd())){
+            // 时间转换
+            Date endTime = null;
+            try {
+                endTime = DateUtil.parse(diggerBean.getRegisteEnd(), DateUtil.DEFAULT);
+                sql.append(" and a.registe_date <= ?");
+                totalsql.append(" and a.registe_date <= ?");
+                params.add(endTime);
+            } catch (Exception e) {
+
+            }
+        }
         //if(StringUtils.isNotBlank(diggerBean.getRegeisterStatus())) {
-        	sql.append(" and a.regeister_status = '1' ");
-            totalsql.append(" and a.regeister_status = '1' ");
+//        	sql.append(" and a.regeister_status = '1' ");
+//            totalsql.append(" and a.regeister_status = '1' ");
             //params.add(diggerBean.getRegeisterStatus());
         //}
         if(StringUtils.isNotBlank(conditionSql) && conditions!=null && conditions.size()>0){
@@ -143,7 +171,7 @@ public class DiggerBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
 	public List<DiggerBean> getDiggers(String agentId) {
         StringBuffer sql = new StringBuffer();
         sql.append(" select a.id,a.da_id,a.da_name,a.da_phone,a.da_wxh,a.da_wxnc,a.agent_id,b.agent_name,a.da_gzh_channel,");
-        sql.append(" a.da_wx_province,c.name as province_name,a.focus_brand_ids,a.focus_brand_names,a.deposit,a.muti_offer_status,a.agent_tp_set,a.plat_tp_set,a.wx_openid,a.regeister_status ");
+        sql.append(" a.da_wx_province,c.name as province_name,a.focus_brand_ids,a.focus_brand_names,a.deposit,a.muti_offer_status,a.agent_tp_set,a.plat_tp_set,a.wx_openid,a.regeister_status,a.registe_date");
         sql.append(" from ").append(CommonConstants.TB_DIGGER_AGENT).append(" a left join ")
         .append(CommonConstants.TB_AGENT).append(" b on a.agent_id=b.agent_id and b.state = '1' left join ")
         .append(CommonConstants.TB_REGION).append(" c on a.da_wx_province=c.id ");

+ 3 - 0
src/main/java/com/agent/model/digger/dao/convert/DiggerBeanConvert.java

@@ -44,6 +44,9 @@ public class DiggerBeanConvert  extends BaseIConvertBean{
 			bean.setMumberLevel(super.getIntegerValue(map,"member_level"));
 			bean.setIntegral(super.getIntegerValue(map,"integral"));
 			bean.setState(super.getIntegerValue(map,"state"));
+			if(super.getDateValue2(map,"registe_date","YYYY-MM-DD hh:mm:ss")!=null) {
+				bean.setRegeisterTime(super.getDateValue2(map, "registe_date", "YYYY-MM-DD hh:mm:ss").toString());
+			}
 			beans.add(bean);
 		}
 		return beans;

+ 87 - 0
src/main/java/com/agent/model/playbill/bean/Playbill.java

@@ -0,0 +1,87 @@
+package com.agent.model.playbill.bean;
+
+import sun.util.calendar.LocalGregorianCalendar;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class Playbill implements Serializable {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * url图片地址
+     */
+    private String url;
+
+    /**
+     * 顺序
+     */
+    private int sequence;
+
+    /**
+     * 跳转地址
+     */
+    private String jumpUrl;
+
+    /**
+     * 创建时间
+     */
+    private String createtime;
+
+    /**
+     * 更细时间
+     */
+    private String updatetime;
+
+    public void setCreatetime(String createtime) {
+        this.createtime = createtime;
+    }
+
+    public void setUpdatetime(String updatetime) {
+        this.updatetime = updatetime;
+    }
+
+    public String getCreatetime() {
+        return createtime;
+    }
+
+    public String getUpdatetime() {
+        return updatetime;
+    }
+
+    public int getSequence() {
+        return sequence;
+    }
+
+    public void setSequence(int sequence) {
+        this.sequence = sequence;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public void setJumpUrl(String jumpUrl) {
+        this.jumpUrl = jumpUrl;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public String getJumpUrl() {
+        return jumpUrl;
+    }
+}

+ 34 - 0
src/main/java/com/agent/model/playbill/bpo/PlaybillBpo.java

@@ -0,0 +1,34 @@
+package com.agent.model.playbill.bpo;
+
+import com.agent.model.playbill.bean.Playbill;
+import com.agent.model.playbill.dao.PlaybillDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+@Component("PlaybillBpo")
+public class PlaybillBpo {
+    @Autowired
+    private PlaybillDao playbillDao;
+
+    public String findAllByPage(int page,int pagesize) {
+        return playbillDao.findAllByPage(page,pagesize);
+    }
+
+    public Playbill findById(String id) {
+        return playbillDao.findById(id);
+    }
+
+    public int updateById(Playbill id) {
+        return playbillDao.updateById(id);
+    }
+
+    public int deleteById(String id) {
+        return playbillDao.deleteById(id);
+    }
+
+    public boolean savePlaybill(Playbill playbill){
+        return playbillDao.savePlaybill(playbill);
+    }
+}

+ 132 - 0
src/main/java/com/agent/model/playbill/dao/PlaybillDao.java

@@ -0,0 +1,132 @@
+package com.agent.model.playbill.dao;
+
+import com.agent.constans.MessageConstants;
+import com.agent.model.certification.dao.mapper.ExplainMapper;
+import com.agent.model.common.dao.BaseDaoImpl;
+import com.agent.model.playbill.bean.Playbill;
+import com.agent.model.playbill.dao.PresentConvert.PresentBeanConvert;
+import com.agent.model.playbill.dao.mapper.PlaybillMapper;
+import com.alibaba.fastjson.JSONObject;
+import com.qiniu.util.Auth;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.stereotype.Repository;
+
+import java.net.URLEncoder;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Repository("PlaybillDao")
+public class PlaybillDao<BaseBean> extends BaseDaoImpl<BaseBean> {
+    private static Logger logger = LoggerFactory.getLogger(PlaybillDao.class);
+
+    List<PlaybillMapper> playbillMappers= new ArrayList();
+    PlaybillMapper playbillMapper=new PlaybillMapper();
+    public List<Playbill> findAll() {
+        PresentBeanConvert presentBeanConvert=new PresentBeanConvert();
+        StringBuffer sql = new StringBuffer();
+        List<Object> params = new ArrayList<Object>();
+        sql.append("select id,url,sequence,jump_url,createtime,updatetime from tb_playbill order by sequence");
+        List<?> resultList = this.getBaseBeans(sql.toString(), params.toArray(),presentBeanConvert);
+        return (List<Playbill>) resultList;
+    }
+
+    public String   findAllByPage(int page , int pagesize){
+        StringBuffer sql2=new StringBuffer();
+        sql2.append("select id,url,sequence,jump_url,createtime,updatetime from tb_playbill order by sequence LIMIT ?,?");
+        List<Playbill> list= this.getJdbcTemplate().query(sql2.toString(), new RowMapper<Playbill>() {
+
+
+            @Override
+            public Playbill mapRow(ResultSet rs, int i) throws SQLException {
+                Playbill b=new Playbill();
+                String url=getUrl(rs.getString("url"));
+                b.setId(rs.getString("id"));
+                b.setUrl(url);
+                b.setJumpUrl(rs.getString("jump_url"));
+                b.setSequence(rs.getInt("sequence"));
+                b.setCreatetime(rs.getDate("createtime").toString());
+                b.setUpdatetime(rs.getDate("updatetime").toString());
+                return b;
+            };
+        } ,new Object[]{
+                (page-1)*pagesize,pagesize,
+        });
+        System.out.println(sql2);
+        StringBuffer sql1=new StringBuffer();
+        sql1.append("select count(*) from tb_playbill");
+        int all= this.getJdbcTemplate().queryForObject(sql1.toString(),Integer.class);
+        JSONObject js=new JSONObject();
+        js.put("totalNum",all);
+        js.put("totalList",list);
+        return js.toJSONString();
+    }
+
+    public Playbill findById(String id) {
+        StringBuffer sql = new StringBuffer();
+        sql.append("select id,url,sequence,jump_url,createtime,updatetime from tb_playbill where id='"+id+"'");
+        Playbill bean=this.getJdbcTemplate().queryForObject(sql.toString(),new RowMapper<Playbill>(){
+
+            @Override
+            public Playbill mapRow(ResultSet rs, int i) throws SQLException {
+                Playbill beans=new Playbill();
+                beans.setId(rs.getString("id"));
+                beans.setSequence(rs.getInt("sequence"));
+                String url=getUrl(rs.getString("url"));
+                beans.setJumpUrl(rs.getString("jump_url"));
+                beans.setUrl(url);
+                beans.setUpdatetime(rs.getDate("updatetime").toString());
+                beans.setCreatetime(rs.getDate("createtime").toString());
+                return beans;
+            }
+        });
+        return bean;
+    }
+
+    public int updateById(Playbill playbill) {
+        System.out.println("=========>"+playbill.getId());
+        StringBuffer sql=new StringBuffer();
+        sql.append("update tb_playbill set updatetime='"+playbill.getUpdatetime()+"',jump_url='"+playbill.getJumpUrl()+"'"+",sequence="+playbill.getSequence()+" where id='"+playbill.getId()+"'");
+        int a=this.getJdbcTemplate().update(sql.toString());
+        System.out.println(sql.toString()+"-------------------");
+        return a;
+    }
+
+    public int deleteById(String id) {
+        StringBuffer sql=new StringBuffer();
+        sql.append("DELETE FROM tb_playbill WHERE id ='"+id+"'");
+        int a= this.getJdbcTemplate().update(sql.toString());
+        return  a;
+    }
+
+    public boolean savePlaybill(Playbill playbill) {
+        StringBuffer sql=new StringBuffer();
+        sql.append("insert into tb_playbill ( id,url,sequence,jump_url,createtime,updatetime) values(?,?,?,?,?,?)");
+        int a=this.getJdbcTemplate().update(sql.toString(),new Object[] {playbill.getId(),playbill.getUrl(),playbill.getSequence(),playbill.getJumpUrl(),playbill.getCreatetime(),playbill.getUpdatetime()});
+        if (a>0){
+            return true;
+        }else {
+            return false;
+        }
+    }
+
+    public String getUrl(String url){
+        String accessKey =  MessageConstants.getConfigMessage("qiniu.access.key");
+        String secretKey = MessageConstants.getConfigMessage("qiniu.secret.key");
+        String encodedFileName;
+        try {
+            encodedFileName = URLEncoder.encode(url, "utf-8");
+        } catch (Exception e) {
+            throw new RuntimeException("编码文件名称异常");
+        }
+        String domainOfBucket = MessageConstants.getConfigMessage("qiniu.url");
+        String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
+        Auth auth = Auth.create(accessKey, secretKey);
+        String finalUrl = auth.privateDownloadUrl(publicUrl, 3600);
+        return finalUrl;
+    }
+}

+ 29 - 0
src/main/java/com/agent/model/playbill/dao/PresentConvert/PresentBeanConvert.java

@@ -0,0 +1,29 @@
+package com.agent.model.playbill.dao.PresentConvert;
+
+import com.agent.model.common.dao.convert.BaseIConvertBean;
+import com.agent.model.playbill.bean.Playbill;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class PresentBeanConvert extends BaseIConvertBean {
+    @Override
+    public List<Playbill> convert(List<Map<String, Object>> queryForList) {
+        List<Playbill> beans=new ArrayList<>();
+
+        Playbill bean=null;
+        for (Map<String, Object> map : queryForList) {
+            bean = new Playbill();
+            bean.setId(super.getStringValue(map,"id"));
+            bean.setJumpUrl(super.getStringValue(map,"jump_url"));
+            bean.setSequence(super.getIntValue(map,"sequence"));
+            bean.setUrl(super.getStringValue(map,"url"));
+            bean.setCreatetime(super.getDateValue2(map,"createtime","YYYY-MM-DD hh:mm:ss").toString());
+            bean.setUpdatetime(super.getDateValue2(map,"updatetime","YYYY-MM-DD hh:mm:ss").toString());
+            beans.add(bean);
+        }
+
+        return beans;
+    }
+}

+ 22 - 0
src/main/java/com/agent/model/playbill/dao/mapper/PlaybillMapper.java

@@ -0,0 +1,22 @@
+package com.agent.model.playbill.dao.mapper;
+
+import com.agent.model.certification.bean.Explain;
+import com.agent.model.playbill.bean.Playbill;
+import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+public class PlaybillMapper implements ParameterizedRowMapper {
+    @Override
+    public Playbill mapRow(ResultSet rs, int rowNum) throws SQLException {
+        Playbill bean=new Playbill();
+        bean.setId(rs.getString("id"));
+        bean.setJumpUrl(rs.getString("jump_url"));
+        bean.setSequence(rs.getInt("sequence"));
+        bean.setUrl(rs.getString("url"));
+        bean.setCreatetime(rs.getDate("createtime").toString());
+        bean.setUpdatetime(rs.getDate("updatetime").toString());
+        return bean;
+    }
+}

+ 34 - 0
src/main/java/com/agent/model/playbill/service/PlaybillService.java

@@ -0,0 +1,34 @@
+package com.agent.model.playbill.service;
+
+import com.agent.model.playbill.bean.Playbill;
+import com.agent.model.playbill.bpo.PlaybillBpo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service("PlaybillService")
+public class PlaybillService {
+    @Autowired
+    private PlaybillBpo playbillBpo;
+
+    public String findAllByPage(int page,int pagesize) {
+        return playbillBpo.findAllByPage(page,pagesize);
+    }
+
+    public Playbill findById(String id){
+        return playbillBpo.findById(id);
+    }
+
+    public int updateById(Playbill id){
+        return playbillBpo.updateById(id);
+    }
+
+    public int deleteById(String id) {
+        return playbillBpo.deleteById(id);
+    }
+
+    public boolean savePlaybill(Playbill playbill){
+        return playbillBpo.savePlaybill(playbill);
+    }
+}

+ 40 - 1
src/main/java/com/agent/model/sale/bean/SalesBean.java

@@ -80,7 +80,46 @@ public class SalesBean implements java.io.Serializable {
     
     /** 市、区县列表 */
     private List<RegionBean> regionList;
-    
+
+    /**
+     * 注册开始时间
+     * @return
+     */
+    private String registeBegin;
+
+    /**
+     * 注册开结束时间
+     * @return
+     */
+    private String registeEnd;
+
+    /** 注册时间 */
+    private String regeisterTime;
+
+    public String getRegisteBegin() {
+        return registeBegin;
+    }
+
+    public void setRegisteBegin(String registeBegin) {
+        this.registeBegin = registeBegin;
+    }
+
+    public String getRegisteEnd() {
+        return registeEnd;
+    }
+
+    public void setRegisteEnd(String registeEnd) {
+        this.registeEnd = registeEnd;
+    }
+
+    public String getRegeisterTime() {
+        return regeisterTime;
+    }
+
+    public void setRegeisterTime(String regeisterTime) {
+        this.regeisterTime = regeisterTime;
+    }
+
     /**
      * 获取
      * 

+ 30 - 1
src/main/java/com/agent/model/sale/dao/SaleBeanDao.java

@@ -1,8 +1,10 @@
 package com.agent.model.sale.dao;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
+import com.agent.util.DateUtil;
 import org.springframework.stereotype.Repository;
 
 import com.agent.constans.CommonConstants;
@@ -34,7 +36,7 @@ public class SaleBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         List<Object> conditions, int currentPageInt, int pageSizeInt) {
         List<Object> params = new ArrayList<Object>();
         StringBuffer sql = new StringBuffer();
-        sql.append(" select a.id,a.agent_id,b.agent_name,a.sale_id,a.sale_name,a.sale_phone,a.sale_wxnc,a.sale_wxh,a.sale_channel,a.tb_count,");
+        sql.append(" select a.id,a.agent_id,b.agent_name,a.sale_id,a.sale_name,a.sale_phone,a.sale_wxnc,a.sale_wxh,a.sale_channel,a.tb_count,a.registe_date,");
         sql.append(" a.agent_opt,a.regeister_status,a.agent_brand_ids,a.agent_brand_names,a.agent_area_ids,a.agent_area_names ");
         sql.append(" from ").append(CommonConstants.TB_SALES).append(" a,").append(CommonConstants.TB_AGENT).append(" b");
         sql.append(" where a.agent_id=b.agent_id and b.state = '1' ");
@@ -99,12 +101,39 @@ public class SaleBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
             totalsql.append(" and a.regeister_status = ?");
             params.add(salesBean.getRegeisterStatus());
         }
+        if(StringUtils.isNotBlank(salesBean.getRegisteBegin())){
+            // 时间转换
+            Date startTime = null;
+            try {
+                if(StringUtils.isNotBlank(salesBean.getRegisteBegin())) {
+                    startTime = DateUtil.parse(salesBean.getRegisteBegin(), DateUtil.DEFAULT);
+                    sql.append(" and a.registe_date >= ?");
+                    totalsql.append(" and a.registe_date >= ?");
+                    params.add(startTime);
+                }
+            } catch (Exception e) {
+
+            }
+        }
+        if(StringUtils.isNotBlank(salesBean.getRegisteEnd())){
+            // 时间转换
+            Date endTime = null;
+            try {
+                endTime = DateUtil.parse(salesBean.getRegisteEnd(), DateUtil.DEFAULT);
+                sql.append(" and a.registe_date <= ?");
+                totalsql.append(" and a.registe_date <= ?");
+                params.add(endTime);
+            } catch (Exception e) {
+
+            }
+        }
         
         if(StringUtils.isNotBlank(conditionSql) && conditions!=null && conditions.size()>0){
             sql.append(" and a.id in (").append(conditionSql).append(")");
             totalsql.append(" and a.id in (").append(conditionSql).append(")");
             params.addAll(conditions);
         }
+
         sql.append(" order by a.sale_id desc ");
         return super.getPageResults(totalsql.toString(),sql.toString(), params.toArray(),
         		salesBeanConvert, currentPageInt, pageSizeInt);

+ 1 - 0
src/main/java/com/agent/model/sale/dao/convert/SalesBeanConvert.java

@@ -38,6 +38,7 @@ public class SalesBeanConvert  extends BaseIConvertBean{
 			bean.setAgentOpt(super.getStringValue(map, "agent_opt"));
 			bean.setWxOpenid(super.getStringValue(map, "wx_openid"));
 			bean.setRegeisterStatus(super.getStringValue(map, "regeister_status"));
+			bean.setRegeisterTime(super.getDateValue2(map,"registe_date","yyyy-MM-dd HH:mm:ss").toString());
 			beans.add(bean);
 		}
 		return beans;

+ 14 - 0
src/main/java/com/agent/model/shop/bean/AgentBean.java

@@ -116,6 +116,11 @@ public class AgentBean implements java.io.Serializable {
     private String agentType;
 
     /**
+     * 销售规则
+     */
+    private String agentRule;
+
+    /**
      * 给价反馈
      */
     private String priceFeedback;
@@ -528,6 +533,15 @@ public class AgentBean implements java.io.Serializable {
         this.shareContent = shareContent;
     }
 
+
+    public String getAgentRule() {
+        return agentRule;
+    }
+
+    public void setAgentRule(String agentRule) {
+        this.agentRule = agentRule;
+    }
+
     @Override
     public String toString() {
         String value = "";

+ 11 - 7
src/main/java/com/agent/model/shop/dao/AgentBeanDao.java

@@ -41,7 +41,7 @@ public class AgentBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         List<Object> params = new ArrayList<Object>();
         StringBuffer sql = new StringBuffer();
         sql.append(" select id,group_name,outlet_name,sale_num,group_id,outlet_id,pub_name,share_title,share_content,agent_logo,integ,");
-        sql.append(" agent_id,agent_name,card_link,device_link,price_link,is_attent,last_edit_time,appid,appSecret,agent_type,price_feedback,agent_feedback");
+        sql.append(" agent_id,agent_name,card_link,device_link,price_link,is_attent,last_edit_time,appid,appSecret,agent_type,price_feedback,agent_feedback,agent_rule");
         sql.append(" from "+CommonConstants.TB_AGENT+" where 1 = 1  and state = '1' ");
 
         StringBuffer totalsql = new StringBuffer();
@@ -90,13 +90,13 @@ public class AgentBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
      */
     public boolean saveAgent(AgentBean agentBean) {
         StringBuffer sql = new StringBuffer();
-        sql.append("insert into "+CommonConstants.TB_AGENT+"(id,group_name,outlet_name,sale_num,group_id,outlet_id,pub_name,share_title,share_content,agent_logo,agent_id,agent_name,card_link,device_link,price_link,is_attent,appid,appSecret,mch_id,mch_app_secret,offer_quest_template_id,offer_result_template_id,audit_result_template_id,audit_up_template_id,wait_audit_template_id,last_edit_time,state,agent_type,price_feedback, agent_feedback)");
-        sql.append(" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,sysdate(),'1',?,?,?)");
+        sql.append("insert into "+CommonConstants.TB_AGENT+"(id,group_name,outlet_name,sale_num,group_id,outlet_id,pub_name,share_title,share_content,agent_logo,agent_id,agent_name,card_link,device_link,price_link,is_attent,appid,appSecret,mch_id,mch_app_secret,offer_quest_template_id,offer_result_template_id,audit_result_template_id,audit_up_template_id,wait_audit_template_id,last_edit_time,state,agent_type,price_feedback, agent_feedback,agent_rule)");
+        sql.append(" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,sysdate(),'1',?,?,?,?)");
         super.getLogger().info("saveAgent.sql=" + sql.toString() + " bean=" + agentBean);
         return super.saveBaseBean(sql.toString(),
                 new Object[] {agentBean.getId(),agentBean.getGroupName(),agentBean.getOutletName(),agentBean.getSaleNum(),agentBean.getGroupId(),agentBean.getOutletId()
             ,agentBean.getPubName(),agentBean.getShareTitle(),agentBean.getShareContent(),agentBean.getAgentLogo(),agentBean.getAgentId(),agentBean.getAgentName(),agentBean.getCardLink(),agentBean.getDeviceLink(),agentBean.getPriceLink(),agentBean.getIsAttent(),agentBean.getPubAppId(),agentBean.getPubAppSecret(),agentBean.getMchId(),agentBean.getMchAppSercet()
-            ,agentBean.getOfferQuestTemplateId(),agentBean.getOfferResultTemplateId(),agentBean.getAuditResultTemplateId(),agentBean.getAuditUpTemplateId(),agentBean.getWaitAuditTemplateId(), agentBean.getAgentType(), agentBean.getPriceFeedback(), agentBean.getAgentFeedback()});
+            ,agentBean.getOfferQuestTemplateId(),agentBean.getOfferResultTemplateId(),agentBean.getAuditResultTemplateId(),agentBean.getAuditUpTemplateId(),agentBean.getWaitAuditTemplateId(), agentBean.getAgentType(), agentBean.getPriceFeedback(), agentBean.getAgentFeedback(), agentBean.getAgentRule()});
     }
 
     /**
@@ -111,7 +111,7 @@ public class AgentBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         List<Object> params = new ArrayList<Object>();
         StringBuffer sql = new StringBuffer();
         sql.append(" select id,group_name,outlet_name,sale_num,group_id,outlet_id,pub_name,share_title,share_content,agent_logo,");
-        sql.append(" agent_id,agent_name,card_link,device_link,price_link,is_attent,last_edit_time,appid,appSecret, agent_type, price_feedback, agent_feedback");
+        sql.append(" agent_id,agent_name,card_link,device_link,price_link,is_attent,last_edit_time,appid,appSecret, agent_type, price_feedback, agent_feedback,agent_rule");
         sql.append(" from "+CommonConstants.TB_AGENT+" where 1 = 1  and state = '1' ");
 
         StringBuffer totalsql = new StringBuffer();
@@ -151,7 +151,7 @@ public class AgentBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         StringBuffer sql = new StringBuffer();
         sql.append(" select id,group_name,outlet_name,sale_num,group_id,outlet_id,pub_name,share_title,share_content,agent_logo,integ,");
         sql.append(" agent_id,agent_name,card_link,device_link,price_link,is_attent,last_edit_time,appid,appSecret,mch_id,mch_app_secret,");
-        sql.append(" offer_quest_template_id,offer_result_template_id,audit_result_template_id,audit_up_template_id,wait_audit_template_id, agent_type, price_feedback, agent_feedback");
+        sql.append(" offer_quest_template_id,offer_result_template_id,audit_result_template_id,audit_up_template_id,wait_audit_template_id, agent_type, price_feedback, agent_feedback, agent_rule");
         sql.append(" from "+CommonConstants.TB_AGENT+" where 1 = 1  and state = '1' and id = ? ");
         try {
             BaseBean baseBean = (BaseBean) super.getBaseBean(sql.toString(),new Object[]{id},agentBeanMapper);
@@ -170,7 +170,7 @@ public class AgentBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
         StringBuffer sql = new StringBuffer();
         sql.append(" select id,group_name,outlet_name,sale_num,group_id,outlet_id,pub_name,share_title,share_content,agent_logo, agent_type,price_feedback, agent_feedback,");
         sql.append(" agent_id,agent_name,card_link,device_link,price_link,is_attent,last_edit_time,appid,appSecret,mch_id,mch_app_secret,");
-        sql.append(" offer_quest_template_id,offer_result_template_id,audit_result_template_id,audit_up_template_id,wait_audit_template_id, agent_type, price_feedback, agent_feedback,integ");
+        sql.append(" offer_quest_template_id,offer_result_template_id,audit_result_template_id,audit_up_template_id,wait_audit_template_id, agent_type, price_feedback, agent_feedback,integ,agent_rule");
         sql.append(" from "+CommonConstants.TB_AGENT+" where 1 = 1  and state = '1' and agent_id = ? ");
         try {
             BaseBean baseBean = (BaseBean) super.getBaseBean(sql.toString(),new Object[]{agentId},agentBeanMapper);
@@ -300,6 +300,10 @@ public class AgentBeanDao<BaseBean> extends BaseDaoImpl<BaseBean> {
             sql.append(" ,agent_feedback = ? ");
             params.add(agentBean.getAgentFeedback());
         }
+        if (StringUtils.isNotBlank(agentBean.getAgentRule())) {
+            sql.append(" ,agent_rule = ? ");
+            params.add(agentBean.getAgentRule());
+        }
         sql.append(" where id=?");
         params.add(agentBean.getId());
 

+ 1 - 0
src/main/java/com/agent/model/shop/dao/convert/AgentBeanConvert.java

@@ -43,6 +43,7 @@ public class AgentBeanConvert  extends BaseIConvertBean{
 			bean.setPriceFeedback(super.getDoubleValue(map, "price_feedback") + "");
 			bean.setAgentFeedback(super.getDoubleValue(map, "agent_feedback") + "");
 			bean.setInteg(super.getIntegerValue(map,"integ"));
+			bean.setAgentRule(super.getStringValue(map,"agent_rule")+"");
 			beans.add(bean);
 		}
 		return beans;

+ 1 - 0
src/main/java/com/agent/model/shop/dao/mapper/AgentBeanMapper.java

@@ -48,6 +48,7 @@ public class AgentBeanMapper implements ParameterizedRowMapper {
         bean.setPriceFeedback(rs.getString("price_feedback"));
         bean.setAgentFeedback(rs.getString("agent_feedback"));
         bean.setInteg(rs.getInt("integ"));
+        bean.setAgentRule(rs.getString("agent_rule"));
 		return bean;
 	}
 }

+ 10 - 0
src/main/java/com/agent/model/usermanage/bean/UserManageBean.java

@@ -116,6 +116,16 @@ public class UserManageBean implements Serializable {
 	 */
 	private String QrLoginUrl;
 
+	private String ifCertification;//是否实名认证审核岗(0:否; 1:是)
+
+	public String getIfCertification() {
+		return ifCertification;
+	}
+
+	public void setIfCertification(String ifCertification) {
+		this.ifCertification = ifCertification;
+	}
+
 	public String getIsIntegral() {
 		return isIntegral;
 	}

+ 13 - 1
src/main/java/com/agent/model/usermanage/bpo/UserManageBpo.java

@@ -151,6 +151,15 @@ public class UserManageBpo {
     }
 
 	/**
+	 * 更新实名认证审核岗状态
+	 * @param id
+	 * @param status
+	 */
+	public boolean updateIfCertificationByUserAccount(String userAccount, String status) {
+		return userManageDao.updateIfCertificationByUserAccount(userAccount, status);
+	}
+
+	/**
 	 * 更新上架岗状态
 	 * @param userAccount
 	 * @param status
@@ -178,7 +187,10 @@ public class UserManageBpo {
     public boolean updateWxByUserAccount(String userAccount, String userWxh, String userWxnc) {
     	return userManageDao.updateWxByUserAccount(userAccount, userWxh, userWxnc);
     }
-    
+	public boolean updateWxByCertification(String userAccount, String userWxh, String userWxnc) {
+		return userManageDao.updateWxByCertification(userAccount, userWxh, userWxnc);
+	}
+
     
     /**
 	 * 获取代理商信息

+ 32 - 4
src/main/java/com/agent/model/usermanage/dao/UserManageDao.java

@@ -205,7 +205,7 @@ public class UserManageDao<BaseBean> extends BaseDaoImpl<BaseBean> {
 		List<Object> params = new ArrayList<Object>();
 
 		if(UserBean.USER_RANK_SUPER_ADMIN.equals(userRank)) {
-			pageSql.append(" select t1.id, t1.agent_id, t2.agent_name, t1.user_name, t1.user_account, t1.user_pwd, t1.is_audit, t1.user_wxh, t1.user_wxnc, t1.is_admin, t1.user_status, ");
+			pageSql.append(" select t1.id, t1.agent_id, t2.agent_name, t1.user_name, t1.user_account, t1.user_pwd, t1.if_certification, t1.is_audit, t1.user_wxh, t1.user_wxnc, t1.is_admin, t1.user_status, ");
 			pageSql.append(" t3.id as is_audits, t4.id as is_offer, t5.id as is_digger, t6.id as is_sales, t7.id as is_deposit, t8.id as is_user, ");
 			pageSql.append(" t10.user_name as admin_name ");
 			pageSql.append(" from tb_user t1 left join tb_agent t2 on t1.agent_id = t2.agent_id and t2.state='1' ");
@@ -233,7 +233,7 @@ public class UserManageDao<BaseBean> extends BaseDaoImpl<BaseBean> {
 			totalSql.append(relateSql);
 		} else if(UserBean.USER_RANK_ADMIN.equals(userRank)){
 			// 管理员身份查询代理商账号列表
-			pageSql.append(" select t1.id, t1.agent_id, t2.agent_name, t1.user_name, t1.user_account, t1.user_pwd, t1.is_audit, t1.user_wxh, t1.user_wxnc, t1.is_admin, t1.user_status from tb_user t1 ");
+			pageSql.append(" select t1.id, t1.agent_id, t2.agent_name, t1.user_name, t1.user_account, t1.user_pwd, t1.if_certification, t1.is_audit, t1.user_wxh, t1.user_wxnc, t1.is_admin, t1.user_status from tb_user t1 ");
 			totalSql.append("  select count(1) from tb_user t1 ");
 
 			relateSql.append(" left join tb_agent t2 on t1.agent_id = t2.agent_id and t2.state='1' ");
@@ -244,7 +244,7 @@ public class UserManageDao<BaseBean> extends BaseDaoImpl<BaseBean> {
 			pageSql.append(relateSql);
 			totalSql.append(relateSql);
 		} else {
-			pageSql.append(" select t1.id, t1.agent_id, t2.agent_name, t1.user_name, t1.user_account, t1.user_pwd, t1.is_audit, t1.user_wxh, t1.user_wxnc, t1.is_admin, t1.user_status from tb_user t1 left join tb_agent t2 on t1.agent_id = t2.agent_id and t2.state='1' where 1 = 1 ");
+			pageSql.append(" select t1.id, t1.agent_id, t2.agent_name, t1.user_name, t1.user_account, t1.user_pwd, t1.if_certification, t1.is_audit, t1.user_wxh, t1.user_wxnc, t1.is_admin, t1.user_status from tb_user t1 left join tb_agent t2 on t1.agent_id = t2.agent_id and t2.state='1' where 1 = 1 ");
 			totalSql.append("  select count(1) from tb_user t1 left join tb_agent t2 on t1.agent_id = t2.agent_id and t2.state='1' where 1 = 1 ");
 		}
 
@@ -678,6 +678,23 @@ public class UserManageDao<BaseBean> extends BaseDaoImpl<BaseBean> {
     }
 
 	/**
+	 * 更新实名认证审核岗状态
+	 * @param status
+	 */
+	public boolean updateIfCertificationByUserAccount(String userAccount, String status) {
+		StringBuffer sql = new StringBuffer();
+		sql.append(" update tb_user set if_certification = ? where user_account = ? ");
+
+		try {
+			return super.updateBaseBean(sql.toString(), new Object[]{ status, userAccount }) > 0;
+		} catch (Exception e) {
+			logger.error(">>>>>UserManageDao>>>updateIsAudit>>>error!", e);
+		}
+
+		return false;
+	}
+
+	/**
 	 * 更新上架岗状态
 	 * @param userAccount
 	 * @param status
@@ -731,7 +748,18 @@ public class UserManageDao<BaseBean> extends BaseDaoImpl<BaseBean> {
 		}
 		return false;
     }
-    
+	public boolean updateWxByCertification(String userAccount, String userWxh, String userWxnc) {
+
+		StringBuffer sql = new StringBuffer();
+		sql.append(" update tb_user t set certification_wxh = ?, certification_wxnc = ? where user_account = ?");
+		try {
+			return super.updateBaseBean(sql.toString(), new Object[]{ userWxh, userWxnc, userAccount}) > 0;
+		} catch (Exception e) {
+			logger.error(">>>>>UserManageDao>>>updateWxByUserAccount>>>error!", e);
+		}
+		return false;
+	}
+
     
     
     /**

+ 1 - 0
src/main/java/com/agent/model/usermanage/dao/convert/UserManageBeanConvert.java

@@ -42,6 +42,7 @@ public class UserManageBeanConvert extends BaseIConvertBean {
 			bean.setIsUser(super.getStringValue(map, "is_user"));
 
 			bean.setAdminName(super.getStringValue(map, "admin_name"));
+			bean.setIfCertification(super.getStringValue(map, "if_certification"));
 			beans.add(bean);
 		}
 		return beans;

+ 13 - 0
src/main/java/com/agent/model/usermanage/service/UserManageService.java

@@ -389,6 +389,15 @@ public class UserManageService {
     }
 
 	/**
+	 * 更新实名认证审核岗状态
+	 * @param userAccount
+	 * @param status
+	 */
+	public boolean updateIfCertificationByUserAccount(String userAccount, String status) {
+		return userManageBpo.updateIfCertificationByUserAccount(userAccount, status);
+	}
+
+	/**
 	 * 更新上架岗状态
 	 * @param userAccount
 	 * @param status
@@ -416,6 +425,10 @@ public class UserManageService {
     public boolean updateWxByUserAccount(String userAccount, String userWxh, String userWxnc) {
     	return userManageBpo.updateWxByUserAccount(userAccount, userWxh, userWxnc);
     }
+
+	public boolean updateWxByCertification(String userAccount, String userWxh, String userWxnc) {
+		return userManageBpo.updateWxByCertification(userAccount, userWxh, userWxnc);
+	}
     
     
     /**

+ 24 - 0
src/main/java/com/agent/model/wxInterface/service/WxLoginService.java

@@ -182,4 +182,28 @@ public class WxLoginService {
 		
 		return url.toString();
 	}
+
+	public String getLoginOauth2UrlNew(String userAccount, String appID, String type) {
+		StringBuffer url = new StringBuffer();
+
+		String redirectUri;
+		if (StringUtils.isEmpty(ConfigConstants.WX_LOGIN_REDIRECT_URI)) {
+			logger.info(">>>>>WxLoginService>>>gainUserinfo>>>WX_LOGIN_REDIRECT_URI未配置!");
+			return null;
+		}
+		redirectUri = URLEncoder.encode(ConfigConstants.WX_LOGIN_REDIRECT_URI + userAccount+"_"+type + ".mp");
+
+
+		// appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE&component_appid=component_appid#wechat_redirect
+		url.append(ConfigConstants.WX_OAUTH2_URL);
+		url.append("appid=").append(appID);
+		url.append("&redirect_uri=").append(redirectUri);
+		url.append("&response_type=code");
+		//公众号appid
+		url.append("&component_appid=wx6af4ca6c083a5918");
+		//url.append("&component_appid=wxa4d9420bbbbb693e");
+		url.append("&scope=snsapi_userinfo#wechat_redirect");
+
+		return url.toString();
+	}
 }

+ 12 - 11
src/main/resources/config.properties

@@ -21,18 +21,19 @@ sms.sign=\u3010\u805A\u706B\u6563\u661F\u3011
 qiniu.url=http://tp.weigongcheng.net
 qiniu.access.key=CNbazhRMgyg91V_X9bqBtd42CSof0Cd6rGKPOzfp
 qiniu.secret.key=GGgIuGmnTRMJgWYJZz6SeX_vjRs9GNU0aU_4vNPo
+qiniu.bucket=weigongcheng
 
 #domain=https://www.weigongcheng.net
 domain=https://www.weigongcheng.net
 
 #\u5FAE\u4FE1appid
-#真实数据
+#锟斤拷实锟斤拷锟斤拷
 wx.appID=wxfcb75e7b0d8ceeff
 #\u5FAE\u4FE1appsecret
-#真实数据
+#锟斤拷实锟斤拷锟斤拷
 wx.appsecret=2f9e7883915e5dc053c9b2eb7c2ab2a4
 
-#测试数据公众号appid
+#锟斤拷锟斤拷锟斤拷锟捷癸拷锟节猴拷appid
 #wx.appID=wxa4d9420bbbbb693e
 
 #wx.appsecret=6748ffc213b385f63e4c2b6b146447ce
@@ -64,21 +65,21 @@ wx.url.app.login.success=https://www.weigongcheng.net/agentPlat/views/appAudit/t
 #app\u767B\u5F55\u5931\u8D25\u8DF3\u8F6C\u9875\u9762
 #wx.url.app.login.error=https://www.weigongcheng.net/agentPlat/views/wx/loginError.html
 wx.url.app.login.error=https://www.weigongcheng.net/agentPlat/views/wx/loginError.html
-#置换权限
+#锟矫伙拷权锟斤拷
 menu.is_audits=1001
-#报价管理
+#锟斤拷锟桔癸拷锟斤拷
 menu.is_offer=1002
-#车商权限
+#锟斤拷锟斤拷权锟斤拷
 menu.is_deposit=1005
-#销售
+#锟斤拷锟斤拷
 menu.is_sales=1004
-#保证金
+#锟斤拷证锟斤拷
 menu.is_digger=1003
-#账户
+#锟剿伙拷
 menu.is_user=1008
-#管理
+#锟斤拷锟斤拷
 menu.is_admin_user=1010
-#商家
+#锟教硷拷
 menu.is_agent_user=1011
 
 

BIN
src/main/webapp/WEB-INF/.DS_Store


BIN
src/main/webapp/WEB-INF/lib/commons-codec-1.9.jar


BIN
src/main/webapp/WEB-INF/lib/commons-fileupload-1.3.1.jar


BIN
src/main/webapp/WEB-INF/lib/commons-io-2.4.jar


BIN
src/main/webapp/WEB-INF/lib/json.jar


BIN
src/main/webapp/WEB-INF/lib/ueditor-1.1.2.jar


+ 138 - 0
src/main/webapp/WEB-INF/views/agreement/agreementManege.jsp

@@ -0,0 +1,138 @@
+<%@ page language="java" contentType="text/html; charset=utf-8"
+		 pageEncoding="utf-8"%>
+<%@ include file="../../taglibs/taglibs.jsp"%>
+<%pageContext.setAttribute("root", request.getContextPath()); %>
+<!doctype html>
+<html>
+<head>
+    <title>新后台</title>
+    <meta http-equiv="Cache-Control" content="no-siteapp">
+    <meta http-equiv="Cache-Control" content="no-transform">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/netstyle/css/main.css"/>
+    <script src="${root}/resources/js/jquery-1.7.js" type="text/javascript"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
+    <script src="${root}/resources/js/laydate/laydate.js"></script>
+
+    <script type="text/javascript">
+        var ctx = "${root}";
+    </script>
+    <script
+            src="${root}/resources/js/ajaxfileupload.js"></script>
+    <script src="${root}/resources/js/index.js"
+            type="text/javascript"></script>
+    <style type="text/css">
+        .username {
+            text-align: left;
+            margin: 20px 0 20px 50px;
+        }
+
+        .targetname {
+            height: 23px;
+            line-height: 24px;
+            position: relative;
+            border: 1px solid #ccc;
+            text-decoration: none;
+            color: #888;
+            display: inline-block;
+            width: 600px
+        }
+    </style>
+    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
+    <script type="text/javascript" charset="utf-8" src="${pageContext.request.contextPath}/static/js/jquery.min.js"></script>
+    <script type="text/javascript" charset="utf-8" src="${pageContext.request.contextPath}/ueditor/ueditor.config.js"></script>
+    <script type="text/javascript" charset="utf-8" src="${pageContext.request.contextPath}/ueditor/ueditor.all.min.js"> </script>
+    <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
+    <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
+    <script type="text/javascript" charset="utf-8" src="${pageContext.request.contextPath}/ueditor/lang/zh-cn/zh-cn.js"></script>
+    <style type="text/css">
+        div{
+            width:100%;
+        }
+    </style>
+
+    <script type="text/javascript" src="${pageContext.request.contextPath}/ueditor/ueditor.config.js"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/ueditor/ueditor.all.js"></script>
+    <link rel="stylesheet" href="${pageContext.request.contextPath}/ueditor/themes/default/css/ueditor.css">
+    <script type="text/javascript" charset="utf-8" src="${pageContext.request.contextPath}/ueditor/lang/zh-cn/zh-cn.js"></script>
+
+</head>
+<body>
+    <%--<textarea id="container" name="text" placeholder="请输入帖子正文内容" style="width: 720px; height: 400px; margin: 0 auto;"></textarea>--%>
+    <p class="main_r_t cc"><span class="span2">当前位置:</span><span>协议管理</span>
+    </p>
+    <div>
+        <script id="container" name="content" type="text/plain">这里写你的初始化内容</script>
+    </div>
+    <div style="width: 100%;height: 40px;text-align: right;margin-top: 20px;">
+        <button class="btn" onclick="submitAgree();">修改协议</button>
+    </div>
+
+    <script type="text/javascript">
+        var ue = UE.getEditor("container");
+        //对编辑器的操作最好在编辑器ready之后再做
+        ue.ready(function(){
+            //设置编辑器的内容
+            ue.setContent('${agree.agreeHtml}');
+            //获取html内容,返回: <p>hello</p>
+            var html = ue.getContent();
+            //获取纯文本内容,返回: hello
+            var txt = ue.getContentTxt();
+        });
+//        function submitAgree(){
+//            var html = ue.getContent();
+//        };
+
+        function submitAgree() {
+            id="${agree.id}";
+            $.ajax({
+                type: "POST",
+                url:  ctx+'/agreement/updateAgree.do',
+                data:{
+                    id:id,
+                    agree_html: ue.getContent(),
+                },
+                async: false,
+                dataType: "json",
+                success: function(data) {
+                    //console.log(data)
+                    qx_tan($('.tcbox2'));
+                    var obj=data;
+                    if (obj.result>0){
+                        tsalert("保存成功");
+                    }else
+                    {
+                        tsalert("保存失敗");
+                    }
+
+                }
+            })
+        }
+        function tsalert(content){
+            $("#tsalert").html(content);
+            setTimeout(function(){
+                $("#tsalert").fadeIn();
+            },300);
+            setTimeout(function(){
+                $("#tsalert").fadeOut();
+            },2300);
+        }
+    </script>
+    <style type="text/css">
+        .btn{
+            margin-right: 30px;
+            width: 100px;
+            height: 40px;
+            font-size: 16px;
+            text-align: center;
+            line-height: 40px;
+            background-color: #12b7f5;
+            color: #fff;
+            /* margin: auto; */
+            border-radius: 10px;
+            border: 1px solid #12b7f5;
+        }
+    </style>
+    <div class="public_prompt" id="tsalert">您输入的信息有误,请确认后重新输入</div>
+</body>
+</html>

+ 21 - 14
src/main/webapp/WEB-INF/views/audit/adminAuditList.jsp

@@ -137,24 +137,21 @@
                     <input class="inputnone" type="hidden" name="id" id="id" value=""/>
                     <div class="tc3_search1" style="margin-left:10px;">
                         <%--上架形式--%>
-                        <span style="width:120px;">上架形式:</span>
-                        <%--<input type="text" name="upType" id="upType" value="<c:if test="${auditBean.upType==1}"> 置换报价 </c:if> <c:if test="${auditBean.upType==2}"> 网络竞销</c:if>" />--%>
+                        <span style="width:120px;">上架形式1:</span>
+                        <div id="agent_rule_type">
 
-                        <input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="upType1"
-                               name="upType" checked="checked" value='1'/>置换报价
-                        <input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="upType2"
-                               name="upType" value='2'/>网络竞销
+                        </div>
                         <span style="width:120px;">单台保证金(万元):</span><input type="text" name="bail" id="bail"
                                                                            maxlength="8" value=""/>
                     </div>
-                    <div class="tc3_search1" style="margin-left:10px;">
-                        <span style="width:120px;letter-spacing:3px;">起拍价(万元):</span><input type="text" name="minMoney"
-                                                                                            id="minMoney" maxlength="8"
-                                                                                            value=""/>
-                        <span style="width:120px;letter-spacing:3px;">报价幅度(万元):</span><input type="text"
-                                                                                             name="moneyRange"
-                                                                                             id="moneyRange"
-                                                                                             maxlength="8" value=""/>
+                    <div class="tc3_search1" style="margin-left:10px;" id="hide1">
+                        <span style="width:120px;letter-spacing:3px;">最低价(万元):</span><input type="text" name="minPrice" id="minPrice" maxlength="8" value="${auditBean.minPrice}" style="width: 40px;" />
+                        <span style="width:120px;letter-spacing:3px;">最高价(万元):</span><input type="text" name="maxPrice" id="maxPrice" maxlength="8" value="${auditBean.maxPrice}" style="width: 40px;"/>
+                        <span style="width:120px;letter-spacing:3px;">保留价(万元):</span><input type="text" name="persistPrice" id="persistPrice" maxlength="8" value="${auditBean.persistPrice}" style="width: 40px;"/>
+                    </div>
+                    <div class="tc3_search1" style="margin-left:10px;" id="hide2">
+                        <span style="width:120px;letter-spacing:3px;">起拍价(万元):</span><input type="text" name="minMoney" id="minMoney" value="${auditBean.minMoney}" />
+                        <span style="width:120px;letter-spacing:3px;">报价幅度(万元):</span><input type="text" name="moneyRange" id="moneyRange" value="${auditBean.moneyRange}" />
                     </div>
                     <div class="tc3_search1" style="margin-left:10px;">
                         <span style="width:120px;letter-spacing:3px;">开始时间:</span><input readonly="readonly"
@@ -199,6 +196,16 @@
                                 </ul>
                             </div>
                         </div>
+
+                        <div class="tc3_search1" style="margin-left:10px;">
+                            <span style="width:120px;letter-spacing:5px;">是否精品机:</span>
+                            <input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="is_good"
+                                   name="is_good"  value='2'/>是
+                            <input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="not_good"
+                                   name="is_good" checked="checked" value='1'/>否
+                        </div>
+
+
                         <div class="tc3_search1" style="margin-left:10px;">
                             <span style="width:120px;letter-spacing:1px;margin-bottom:10px;">车商推送模板:</span>
                             <textarea name="sms" id="sms" maxlength="100" style="width:400px;height:80px;"></textarea>

+ 24 - 8
src/main/webapp/WEB-INF/views/audit/platAuditList.jsp

@@ -144,14 +144,23 @@
                         <span style="width:120px;">单台保证金(万元):</span><input type="text" name="bail" id="bail"
                                                                            maxlength="8" value=""/>
                     </div>
-                    <div class="tc3_search1" style="margin-left:10px;">
-                        <span style="width:120px;letter-spacing:3px;">起拍价(万元):</span><input type="text" name="minMoney"
-                                                                                            id="minMoney" maxlength="8"
-                                                                                            value=""/>
-                        <span style="width:120px;letter-spacing:3px;">报价幅度(万元):</span><input type="text"
-                                                                                             name="moneyRange"
-                                                                                             id="moneyRange"
-                                                                                             maxlength="8" value=""/>
+                    <%--<div class="tc3_search1" style="margin-left:10px;">--%>
+                        <%--<span style="width:120px;letter-spacing:3px;">起拍价(万元):</span><input type="text" name="minMoney"--%>
+                                                                                            <%--id="minMoney" maxlength="8"--%>
+                                                                                            <%--value=""/>--%>
+                        <%--<span style="width:120px;letter-spacing:3px;">报价幅度(万元):</span><input type="text"--%>
+                                                                                             <%--name="moneyRange"--%>
+                                                                                             <%--id="moneyRange"--%>
+                                                                                             <%--maxlength="8" value=""/>--%>
+                    <%--</div>--%>
+                    <div class="tc3_search1" style="margin-left:10px;" id="hide1">
+                        <span style="width:120px;letter-spacing:3px;">最低价(万元):</span><input type="text" name="minPrice" id="minPrice" maxlength="8" value="${auditBean.minPrice}" style="width: 40px;" />
+                        <span style="width:120px;letter-spacing:3px;">最高价(万元):</span><input type="text" name="maxPrice" id="maxPrice" maxlength="8" value="${auditBean.maxPrice}" style="width: 40px;"/>
+                        <span style="width:120px;letter-spacing:3px;">保留价(万元):</span><input type="text" name="persistPrice" id="persistPrice" maxlength="8" value="${auditBean.persistPrice}" style="width: 40px;"/>
+                    </div>
+                    <div class="tc3_search1" style="margin-left:10px;" id="hide2">
+                        <span style="width:120px;letter-spacing:3px;">起拍价(万元):</span><input type="text" name="minMoney" id="minMoney" value="${auditBean.minMoney}" />
+                        <span style="width:120px;letter-spacing:3px;">报价幅度(万元):</span><input type="text" name="moneyRange" id="moneyRange" value="${auditBean.moneyRange}" />
                     </div>
                     <div class="tc3_search1" style="margin-left:10px;">
                         <span style="width:120px;letter-spacing:3px;">开始时间:</span><input readonly="readonly"
@@ -198,6 +207,13 @@
                         </div>
                     </div>
                     <div class="tc3_search1" style="margin-left:10px;">
+                        <span style="width:120px;letter-spacing:5px;">是否精品机:</span>
+                        <input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="is_good"
+                               name="is_good"  value='2'/>是
+                        <input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="not_good"
+                               name="is_good" checked="checked" value='1'/>否
+                    </div>
+                    <div class="tc3_search1" style="margin-left:10px;">
                         <span style="width:120px;letter-spacing:1px;margin-bottom:10px;">车商推送模板:</span>
                         <textarea name="sms" id="sms" maxlength="100" style="width:400px;height:80px;"></textarea>
                         <div style="float:right;width:180px;margin-top:30px;">

+ 17 - 8
src/main/webapp/WEB-INF/views/audit/superAdminAuditList.jsp

@@ -147,16 +147,18 @@
 					<div class="tc3_search1" style="margin-left:10px;">
 						<%--上架形式--%>
 						<span style="width:120px;">上架形式:</span>
-						<%--<input type="text" name="upType" id="upType" value="<c:if test="${auditBean.upType==1}"> 置换报价 </c:if> <c:if test="${auditBean.upType==2}"> 网络竞销</c:if>" />--%>
-
-						<input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="upType1" name="upType" checked="checked" value='1'  />置换报价
-						<input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="upType2" name="upType" value='2'  />网络竞销
-
+						<div id="agent_rule_type">
+						</div>
 						<span style="width:120px;">单台保证金(万元):</span><input  type="text" name="bail" id="bail" maxlength="8" value="" />
 					</div>
-					<div class="tc3_search1" style="margin-left:10px;">
-						<span style="width:120px;letter-spacing:3px;">起拍价(万元):</span><input type="text" name="minMoney" id="minMoney" maxlength="8" value="" />
-						<span style="width:120px;letter-spacing:3px;">报价幅度(万元):</span><input type="text" name="moneyRange" id="moneyRange" maxlength="8" value="" />
+					<div class="tc3_search1" style="margin-left:10px;" id="hide1">
+						<span style="width:120px;letter-spacing:3px;">最低价(万元):</span><input type="text" name="minPrice" id="minPrice" maxlength="8" value="${auditBean.minPrice}" style="width: 40px;" />
+						<span style="width:120px;letter-spacing:3px;">最高价(万元):</span><input type="text" name="maxPrice" id="maxPrice" maxlength="8" value="${auditBean.maxPrice}" style="width: 40px;"/>
+						<span style="width:120px;letter-spacing:3px;">保留价(万元):</span><input type="text" name="persistPrice" id="persistPrice" maxlength="8" value="${auditBean.persistPrice}" style="width: 40px;"/>
+					</div>
+					<div class="tc3_search1" style="margin-left:10px;" id="hide2">
+						<span style="width:120px;letter-spacing:3px;">起拍价(万元):</span><input type="text" name="minMoney" id="minMoney" value="${auditBean.minMoney}" />
+						<span style="width:120px;letter-spacing:3px;">报价幅度(万元):</span><input type="text" name="moneyRange" id="moneyRange" value="${auditBean.moneyRange}" />
 					</div>
 					<div class="tc3_search1" style="margin-left:10px;">
 						<span style="width:120px;letter-spacing:3px;">开始时间:</span><input readonly="readonly" autocomplete="off" name="startTimeStr" type="datetime" value="" class="laydate-icon dxinput4" id="query_startTime"
@@ -185,6 +187,13 @@
 					</div>
 					</div>
 					<div class="tc3_search1" style="margin-left:10px;">
+						<span style="width:120px;letter-spacing:5px;">是否精品机:</span>
+						<input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="is_good"
+							   name="is_good"  value='2'/>是
+						<input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="not_good"
+							   name="is_good" checked="checked" value='1'/>否
+					</div>
+					<div class="tc3_search1" style="margin-left:10px;">
 						<span style="width:120px;letter-spacing:1px;margin-bottom:10px;">车商推送模板:</span>
 						<textarea name="sms" id="sms" maxlength="100" style="width:400px;height:80px;"></textarea>
 						<div style="float:right;width:180px;margin-top:30px;">

+ 264 - 0
src/main/webapp/WEB-INF/views/certification/explain.jsp

@@ -0,0 +1,264 @@
+<%@ page language="java" contentType="text/html; charset=utf-8"
+		 pageEncoding="utf-8"%>
+<%@ include file="../../taglibs/taglibs.jsp"%>
+<%pageContext.setAttribute("root", request.getContextPath()); %>
+<!doctype html>
+<html>
+<head>
+	<title>新后台</title>
+	<meta http-equiv="Cache-Control" content="no-siteapp">
+	<meta http-equiv="Cache-Control" content="no-transform">
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+	<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/netstyle/css/main.css"/>
+	<script src="${root}/resources/js/jquery-1.7.js" type="text/javascript"></script>
+	<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
+	<script src="${root}/resources/js/laydate/laydate.js"></script>
+
+	<script type="text/javascript">
+        var ctx = "${root}";
+
+	</script>
+
+	<style type="text/css">
+		.pay_set{
+			margin-left: 120px;
+			position: relative;
+			margin-top: 100px;
+
+		}
+		/*.pay_set:before{*/
+			/*left: -20px;*/
+			/*background: #8D8D8D;*/
+			/*content: "";*/
+			/*position: absolute;*/
+			/*top: 10px;*/
+			/*width: 20px;*/
+			/*height: 2px;*/
+		/*}*/
+		/*.pay_set:after{*/
+			/*left: 135px;*/
+			/*background: #8D8D8D;*/
+			/*content: "";*/
+			/*position: absolute;*/
+			/*top: 10px;*/
+			/*width:900px;*/
+			/*height: 2px;*/
+		/*}*/
+		.submit_btn{
+			font-size: 14px;
+			border-radius: 4px;
+			cursor: pointer;
+			color: #fff;
+			background-color: #12b7f5;
+			outline: none;
+			border: 1px solid #409eff;
+			padding: 5px 10px;
+			box-sizing: border-box;
+            width: 100px;
+		}
+        .submit_btn:hover{
+            border: 1px solid #409eff;
+            background-color: #ffffff;
+            color: #606266;
+        }
+		.annul_btn{
+			font-size: 14px;
+			border-radius: 4px;
+			cursor: pointer;
+			color: #606266;
+			background: #fff;
+			outline: none;
+			border: 1px solid #dcdfe6;
+			padding: 5px 10px;
+			box-sizing: border-box;
+            width: 100px;
+		}
+        .annul_btn:hover{
+            color: #ffffff;
+            background-color: #12b7f5;
+            border: 1px solid #409eff;
+        }
+	</style>
+</head>
+<body>
+<div>
+	<p class="main_r_t cc"><span class="span2">当前位置:</span><span>实名认证目的说明</span>
+	</p>
+
+
+	<div style="padding: 50px 40px 50px ">
+		<div style="color: #12b7f5;">信誉保证金提示内容</div>
+        <input type="hidden" value="${explain.id}" id="explainId"/>
+        <div style="margin-top: 20px;width: 100%;color: grey;">
+            <div id="contentText" style="font-size: 14px;"> ${explain.content} </div>
+            <textarea autocomplete="off" id="content" style="width: 100%;height: 80px;font-size: 14px;">${explain.content}</textarea>
+        </div>
+        <div style="color: #12b7f5;margin-top: 20px;">证件上传提示内容</div>
+        <div style="margin-top: 20px;width: 100%;color: grey;">
+            <div id="tipsText" style="font-size: 14px;"> ${explain.tips} </div>
+            <textarea autocomplete="off" id="tips" style="width: 100%;height: 80px;font-size: 14px;">${explain.tips}</textarea>
+        </div>
+        <div style="margin-top: 20px;width: 100%;color: grey;" id="chooseVal">
+            <span style="width:120px;color: #12b7f5;">审核类型:</span>
+            <c:if test="${explain.if_auto eq '1'}">
+                <span style="width:120px;">自动审核</span>
+            </c:if>
+            <c:if test="${explain.if_auto eq '2'}">
+                <span style="width:120px;">人工审核</span>
+            </c:if>
+        </div>
+        <div style="margin-top: 20px;width: 100%;color: grey;height: 20px;">
+            <div style="color: #12b7f5;float: left">保证金:</div>
+            <div id="depositText" style="font-size: 14px;float: left;margin-left: 15px;"> ${explain.deposit} </div>
+            <input autocomplete="off" id="deposit" style="font-size: 14px;float: left;margin-top: -2px;margin-left: 15px;" value="${explain.deposit}" />
+        </div>
+        <div style="margin-top: 20px;width: 100%;color: grey;" id="choose">
+            <span style="width:120px;color: #12b7f5;">审核类型:</span>
+            <c:if test="${explain.if_auto eq '1'}">
+                <label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="if_auto" id="if_auto" checked="checked" value='1' />自动审核</label>
+                <label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="if_auto" id="if_artificial" value='2' />人工审核</label>
+            </c:if>
+            <c:if test="${explain.if_auto eq '2'}">
+                <label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="if_auto" id="if_auto" value='1' />自动审核</label>
+                <label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="if_auto" id="if_artificial" checked="checked" value='2' />人工审核</label>
+            </c:if>
+        </div>
+
+		<div style="text-align: center;margin-top: 20px;">
+			<button class="submit_btn" id="submit" onclick="saveCa()">提交</button>
+            <button class="annul_btn" id="cencal" onclick="cencal()">取消</button>
+            <button class="submit_btn" id="update" onclick="updateCa()">修改</button>
+		</div>
+
+	</div>
+
+	<div class="public_prompt" id="tsalert">您输入的信息有误,请确认后重新输入</div>
+</div>
+
+</div>
+</body>
+<script>
+    $(function(){
+        $("#submit").hide();
+        $("#cencal").hide();
+        $("#update").show();
+        $("#contentText").show();
+        $("#content").hide();
+        $("#choose").hide();
+
+        $("#tipsText").show();
+        $("#tips").hide();
+        $("#depositText").show();
+        $("#deposit").hide();
+
+    });
+    function updateCa(){
+        $("#submit").show();
+        $("#cencal").show();
+        $("#update").hide();
+        $("#contentText").hide();
+        $("#content").show();
+        $("#chooseVal").hide();
+        $("#choose").show();
+
+        $("#tipsText").hide();
+        $("#tips").show();
+
+        $("#depositText").hide();
+        $("#deposit").show();
+    }
+    function cencal(){
+        $("#submit").hide();
+        $("#cencal").hide();
+        $("#update").show();
+        $("#contentText").show();
+        $("#content").hide();
+        $("#chooseVal").show();
+        $("#choose").hide();
+        $("#tipsText").show();
+        $("#tips").hide();
+        $("#depositText").show();
+        $("#deposit").hide();
+    }
+
+    function saveCa() {
+        var content=$("#content").val();
+        var tips=$("#tips").val();
+        var id=$("#explainId").val();
+        var if_auto=1;
+        var deposit=$("#deposit").val();
+        if(!$("#if_auto").attr("checked")){
+            if_auto=2;
+        }
+        $.ajax({
+            type: "POST",
+            url:  ctx+'/certification/updateContent.do',
+            data:{content:content,id:id,if_auto:if_auto,tips:tips,deposit:deposit},
+            async: false,
+            dataType: "json",
+            success: function(data){
+                var obj=data;
+                if (obj.result>0){
+                    tsalert("保存成功");
+                    window.location.href=ctx+'/certification/getCertification.do';
+                }else
+                {
+                    tsalert("保存失敗");
+                }
+            }
+        })
+    }
+    function tsalert(content){
+        $("#tsalert").html(content);
+        setTimeout(function(){
+            $("#tsalert").fadeIn();
+        },300);
+        setTimeout(function(){
+            $("#tsalert").fadeOut();
+        },2300);
+    }
+</script>
+<%--<script type="text/javascript">--%>
+    <%--function updateCa() {--%>
+        <%--var cash=$("#cash").val();--%>
+        <%--$.ajax({--%>
+            <%--type: "POST",--%>
+            <%--url:  ctx+'/credits/updateCash.do',--%>
+            <%--data:{cashDiposit:cash},--%>
+            <%--async: false,--%>
+            <%--dataType: "json",--%>
+            <%--success: function(data){--%>
+                <%--var obj=data;--%>
+                <%--if (obj.result>0){--%>
+                    <%--tsalert("保存成功");--%>
+                <%--}else--%>
+                <%--{--%>
+                    <%--tsalert("保存失敗");--%>
+                <%--}--%>
+
+
+
+
+            <%--}--%>
+        <%--})--%>
+
+    <%--}--%>
+
+
+
+    <%--function  thisCa() {--%>
+        <%--location.reload()--%>
+    <%--}--%>
+    <%--function tsalert(content){--%>
+        <%--$("#tsalert").html(content);--%>
+        <%--setTimeout(function(){--%>
+            <%--$("#tsalert").fadeIn();--%>
+        <%--},300);--%>
+        <%--setTimeout(function(){--%>
+            <%--$("#tsalert").fadeOut();--%>
+        <%--},2300);--%>
+    <%--}--%>
+
+<%--</script>--%>
+</html>

+ 298 - 291
src/main/webapp/WEB-INF/views/digger/agent/diggerlist.jsp

@@ -1,59 +1,64 @@
 <%@ page language="java" contentType="text/html; charset=utf-8"
-	pageEncoding="utf-8"%>
-	<%@ include file="../../../taglibs/taglibs.jsp"%>
+		 pageEncoding="utf-8"%>
+<%@ include file="../../../taglibs/taglibs.jsp"%>
 <%pageContext.setAttribute("root", request.getContextPath()); %>
 <!doctype html>
 <html>
 <head>
-<title>代理商置换系统-车商管理</title>
-<meta http-equiv="Cache-Control" content="no-siteapp">
-<meta http-equiv="Cache-Control" content="no-transform">
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
-<link rel="stylesheet" href="${root}/resources/js/light/css/jquery.lightbox-0.5.css" />
-<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/netstyle/css/main.css"/>
-<script src="${root}/resources/js/jquery-1.7.js" type="text/javascript"></script>
-<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
-<script src="${root}/resources/netstyle/js/page.js" type="text/javascript"></script>
-<script src="${root}/resources/js/light/js/jquery.lightbox-0.5.js" type="text/javascript"></script>
-<script type="text/javascript">
-   var ctx = "${root}";
-   var proArray = new Array();
-</script>
+	<title>代理商置换系统-车商管理</title>
+	<meta http-equiv="Cache-Control" content="no-siteapp">
+	<meta http-equiv="Cache-Control" content="no-transform">
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+	<link rel="stylesheet" href="${root}/resources/js/light/css/jquery.lightbox-0.5.css" />
+	<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/netstyle/css/main.css"/>
+	<script src="${root}/resources/js/jquery-1.7.js" type="text/javascript"></script>
+	<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
+	<script src="${root}/resources/netstyle/js/page.js" type="text/javascript"></script>
+	<script src="${root}/resources/js/light/js/jquery.lightbox-0.5.js" type="text/javascript"></script>
+	<script src="${root}/resources/js/laydate/laydate.js"></script>
+	<script type="text/javascript">
+        var ctx = "${root}";
+        var proArray = new Array();
+	</script>
 
 </head>
 <body>
-	<div>
-		<p class="main_r_t cc"><span class="span2">当前位置:</span><span>车商管理</span>
-		</p>
-		<form id="queryDiggerList">
+<div>
+	<p class="main_r_t cc"><span class="span2">当前位置:</span><span>车商管理</span>
+	</p>
+	<form id="queryDiggerList">
 		<div class="act_list">
 			<div class="list_search1">
 				<c:if test="${csid eq '1'}">
-				<span>车商ID:</span> <input type="text" name="daID" id = "query_daId"/> 
+					<span>车商ID:</span> <input type="text" name="daID" id = "query_daId"/>
 				</c:if>
 				<c:if test="${sjhm eq '1'}">
-				<span>手机号码:</span> <input type="text" name="daPhone" id = "query_daPhone"/> 
+					<span>手机号码:</span> <input type="text" name="daPhone" id = "query_daPhone"/>
 				</c:if>
 				<c:if test="${dtbj eq '1'}">
-				<span>权限:</span><div class="left2_3_search down tc2_search_11" style="width:120px;">
-				<input type="hidden" name="mutiStatus" id="query_mutiStatus"/>
-				<span class="wadeShow" style="width:120px;">全部</span>
-				<ul style="width:120px;max-height:100px;overflow:auto;">
-					<li wade="">全部</li>				
-                	<li wade="1">开</li>
-                	<li wade="0">关</li>
-				</ul>
+					<span>权限:</span><div class="left2_3_search down tc2_search_11" style="width:120px;">
+					<input type="hidden" name="mutiStatus" id="query_mutiStatus"/>
+					<span class="wadeShow" style="width:120px;">全部</span>
+					<ul style="width:120px;max-height:100px;overflow:auto;">
+						<li wade="">全部</li>
+						<li wade="1">开</li>
+						<li wade="0">关</li>
+					</ul>
 				</div>
 				</c:if>
 				<span>  车商数量:${allSize}</span>
+				<span style="margin-left: 10px;">注册时间:</span><input style="width:140px;" readonly="readonly" autocomplete="off" name="registeBegin" type="datetime" class="laydate-icon dxinput4" id="query_startTime"
+																	onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
+				至 <input style="width:140px;" readonly="readonly" autocomplete="off" name="registeEnd" type="datetime" class="laydate-icon dxinput4" id="query_endTime"
+						 onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
 			</div>
 			<div class="list_search1">
 				<c:if test="${xm eq '1'}">
-				<span>姓名:</span> <input type="text" name="daName" id = "query_daName"/> 
+					<span>姓名:</span> <input type="text" name="daName" id = "query_daName"/>
 				</c:if>
 				<c:if test="${gzpp eq '1'}">
-				<span>关注品牌:</span> <input type="text" name="focusBrandNames" id = "query_focusBrand"/> 
+					<span>关注品牌:</span> <input type="text" name="focusBrandNames" id = "query_focusBrand"/>
 				</c:if>
 				<a class="list_button" style="background-color: #CE0000;" onclick="resetForm();">重置</a>
 				<a class="list_button" onclick="queryDiggerList()">查询</a>
@@ -61,279 +66,281 @@
 			</div>
 			<div id="appendId" class="overflow_main"></div>
 		</div>
-		</form>
+	</form>
 </div>
-		  <div class="tc_newts" id="tishialert">
-			<div class="tcnewts_main">
-				<img class="newts_xxx"  onclick="qx_tan($('#tishitc'));" src="${pageContext.request.contextPath}/resources/images/tan_xxx.png">
-				<h3>温馨提示</h3>
-				<p id="tishiwen"></p>
-				<div class="newts_btn" style="text-align:center;"	><a class="btn2" onclick="qx_tan($('#tishialert'));" style="text-align: center;margin-right:0px;">我知道了</a></div>
-			</div>
-		 </div>
-          <div class="tc_newts" id="brandtc">
-			<div class="tcnewts_main">
-				<img class="newts_xxx"  onclick="qx_tan($('#brandtc'));" src="${pageContext.request.contextPath}/resources/images/tan_xxx.png">
-				<h3 style="margin-bottom:5px;">请选择关注的品牌(最多选择5个)</h3>
-				<input type="hidden" id="brand_id" value="" />
-				<table>
-				<tbody>
-				<c:forEach items="${brandBeanList}" var="br" varStatus="brs">
-					<c:if test="${brs.index % 4 == 0}">
-						<tr style="height:30px;">
-					</c:if>
-					<td style="padding-right:20px;">
+<div class="tc_newts" id="tishialert">
+	<div class="tcnewts_main">
+		<img class="newts_xxx"  onclick="qx_tan($('#tishitc'));" src="${pageContext.request.contextPath}/resources/images/tan_xxx.png">
+		<h3>温馨提示</h3>
+		<p id="tishiwen"></p>
+		<div class="newts_btn" style="text-align:center;"	><a class="btn2" onclick="qx_tan($('#tishialert'));" style="text-align: center;margin-right:0px;">我知道了</a></div>
+	</div>
+</div>
+<div class="tc_newts" id="brandtc">
+	<div class="tcnewts_main">
+		<img class="newts_xxx"  onclick="qx_tan($('#brandtc'));" src="${pageContext.request.contextPath}/resources/images/tan_xxx.png">
+		<h3 style="margin-bottom:5px;">请选择关注的品牌(最多选择5个)</h3>
+		<input type="hidden" id="brand_id" value="" />
+		<table>
+			<tbody>
+			<c:forEach items="${brandBeanList}" var="br" varStatus="brs">
+				<c:if test="${brs.index % 4 == 0}">
+					<tr style="height:30px;">
+				</c:if>
+				<td style="padding-right:20px;">
 					<input style="margin-right: 5px;" id="brands_${br.id}" name="brands" type="checkbox" value="${br.id}"><label for="brands_${br.id}">${br.name}</label>
-					</td>
-					<c:if test="${brs.index % 4 == 3 or brs.last}">
-						</tr>
-					</c:if>
-				</c:forEach>
-				</tbody>
-				</table>
-				<div class="newts_btn"><a class="btn2" id="tishiqr" onclick="confirmBrands()">确认</a></div>
-			</div>
-		 </div>
-		<div class="public_prompt" id="tsalert">您输入的信息有误,请确认后重新输入</div>
+				</td>
+				<c:if test="${brs.index % 4 == 3 or brs.last}">
+					</tr>
+				</c:if>
+			</c:forEach>
+			</tbody>
+		</table>
+		<div class="newts_btn"><a class="btn2" id="tishiqr" onclick="confirmBrands()">确认</a></div>
+	</div>
+</div>
+<div class="public_prompt" id="tsalert">您输入的信息有误,请确认后重新输入</div>
 </body>
 <script src="${root}/resources/js/index.js" type="text/javascript"></script>
 <script type="text/javascript">
-var getHead={getDiggerHead:function(obj){
-	var rowstr = "<tr>";
-	if(obj["csid"]){
-		if(obj["cz"]){
-			rowstr += "<th rowspan='2'>车商ID</th>";
-		}else{
-			rowstr += "<th>车商ID</th>";
-		}
-	}
-	if(obj["xm"]){
-		if(obj["cz"]){
-			rowstr += "<th rowspan='2'>姓名</th>";
-		}else{
-			rowstr += "<th>姓名</th>";
-		}
-	}
-	if(obj["sjhm"]){
-		if(obj["cz"]){
-			rowstr += "<th rowspan='2'>手机号码</th>";
-		}else {
-			rowstr += "<th>手机号码</th>";
-		}
-	}
-	if(obj["wxnc"]){
-		if(obj["cz"]){
-			rowstr += "<th rowspan='2'>微信昵称</th>";
-		}else{
-			rowstr += "<th>微信昵称</th>";
-		}
-	}
+    var getHead={getDiggerHead:function(obj){
+        console.log("csid=="+JSON.stringify(obj));
+        console.log("cz=="+obj["cz"]);
+        var rowstr = "<tr>";
+        if(obj["csid"]){
+            if(obj["cz"]){
+                rowstr += "<th rowspan='2'>车商ID</th>";
+            }else{
+                rowstr += "<th>车商ID</th>";
+            }
+        }
+        if(obj["xm"]){
+            if(obj["cz"]){
+                rowstr += "<th rowspan='2'>姓名</th>";
+            }else{
+                rowstr += "<th>姓名</th>";
+            }
+        }
+        if(obj["sjhm"]){
+            if(obj["cz"]){
+                rowstr += "<th rowspan='2'>手机号码</th>";
+            }else {
+                rowstr += "<th>手机号码</th>";
+            }
+        }
+        if(obj["wxnc"]){
+            if(obj["cz"]){
+                rowstr += "<th rowspan='2'>微信昵称</th>";
+            }else{
+                rowstr += "<th>微信昵称</th>";
+            }
+        }
+        rowstr += "<th rowspan='2'>注册时间</th>";
+        //rowstr += "<th rowspan='2'>积分</th>";
+        if(obj["gzpp"]){
+            if(obj["cz"]){
+                rowstr += "<th rowspan='2'>关注的品牌</th>";
+            }else{
+                rowstr += "<th>关注的品牌</th>";
+            }
+        }
 
-		//rowstr += "<th rowspan='2'>积分</th>";
-	if(obj["gzpp"]){
-		if(obj["cz"]){
-			rowstr += "<th rowspan='2'>关注的品牌</th>";
-		}else{
-			rowstr += "<th>关注的品牌</th>";
-		}
-	}
+        if(obj["bzj"]){
+            if(obj["cz"]){
+                rowstr += "<th rowspan='2'>保证金(万)</th>";
+            }else{
+                rowstr += "<th>保证金(万)</th>";
+            }
+        }
+        if(obj["dtbj"]){
+            if(obj["cz"]){
+                rowstr += "<th rowspan='2'>多台报价<br/>权限状态</th>";
+            }else{
+                rowstr += "<th>多台报价<br/>权限状态</th>";
+            }
+        }
+        if(obj["cz"]){
+            rowstr += "<th colspan='2'>操作</th></tr>";
+            rowstr += "<tr><th>通票设置</th>";
+            rowstr += "<th>信息保存</th>";
+        }
+        rowstr += "</tr>";
+        return rowstr;
+    }};
+    //列表内容
+    var getListContext={getDiggerList:function(headObj,bodyObj){
+        var rowstr = "";
+        for (var i = 0; i < bodyObj.length; i++) {
+            var bodyItem = bodyObj[i];
+            rowstr += "<tr>";
+            if(headObj["csid"]){
+                var newDaId = showDisId(bodyItem.daID);
+                rowstr += "<td><span>" +newDaId+ "</span></td>";
+            }
+            if(headObj["xm"]){
+                rowstr += "<td><span>" +bodyItem.daName+ "</span></td>";
+            }
+            if(headObj["sjhm"]){
+                rowstr += "<td><span>" +bodyItem.daPhone+ "</span></td>";
+            }
+            if(headObj["wxnc"]){
+                rowstr += "<td><span>" +bodyItem.daWxnc+ "</span></td>";
+            }
+            rowstr += "<td><span>" +bodyItem.regeisterTime+ "</span></td>";
 
-	if(obj["bzj"]){
-		if(obj["cz"]){
-			rowstr += "<th rowspan='2'>保证金(万)</th>";
-		}else{
-			rowstr += "<th>保证金(万)</th>";
-		}
-	}
-	if(obj["dtbj"]){
-		if(obj["cz"]){
-			rowstr += "<th rowspan='2'>多台报价<br/>权限状态</th>";
-		}else{
-			rowstr += "<th>多台报价<br/>权限状态</th>";
-		}
-	}
-	if(obj["cz"]){
-		rowstr += "<th colspan='2'>操作</th></tr>";
-		rowstr += "<tr><th>通票设置</th>";
-		rowstr += "<th>信息保存</th>";
-	}
-	rowstr += "</tr>";
-	return rowstr;
-}};
-//列表内容
-var getListContext={getDiggerList:function(headObj,bodyObj){
-	var rowstr = "";
-	for (var i = 0; i < bodyObj.length; i++) {
-		var bodyItem = bodyObj[i];
-		rowstr += "<tr>";
-		if(headObj["csid"]){
-			var newDaId = showDisId(bodyItem.daID);
-			rowstr += "<td><span>" +newDaId+ "</span></td>";
-		}
-		if(headObj["xm"]){
-			rowstr += "<td><span>" +bodyItem.daName+ "</span></td>";
-		}
-		if(headObj["sjhm"]){
-			rowstr += "<td><span>" +bodyItem.daPhone+ "</span></td>";
-		}
-		if(headObj["wxnc"]){
-			rowstr += "<td><span>" +bodyItem.daWxnc+ "</span></td>";
-		}
-		//rowstr += "<td><span>" +bodyItem.integral+ "</span></td>";
+            if(headObj["gzpp"]){
+                rowstr += "<td>";
+                rowstr += "<input type='hidden' value='"+bodyItem.focusBrandIds+"' id='focus_ids_"+bodyItem.id+"' name='focus_ids_"+bodyItem.id+"' />";
+                rowstr += "<input type='hidden' value='"+bodyItem.focusBrandNames+"' id='focus_names_"+bodyItem.id+"' name='focus_names_"+bodyItem.id+"' />";
+                rowstr += "<span id='showBrands_"+bodyItem.id+"'>" +bodyItem.focusBrandNames+ "</span>";
+                rowstr += "<span><b class=\"td_b2\" onclick=\"showBrands('"+bodyItem.id+"','"+bodyItem.focusBrandIds+"')\">选择</b></span>";
+                rowstr += "</td>";
+            }
+            if(headObj["bzj"]){
+                rowstr += "<td><span>" +bodyItem.deposit+ "</span></td>";
+            }
+            if(headObj["dtbj"]){
+                if(bodyItem.mutiStatus=='1'){
+                    rowstr += "<td><span>开</span></td>";
+                }else{
+                    rowstr += "<td><span>关</span></td>";
+                }
+            }
+            if(headObj["cz"]){
+                rowstr += "<td>";
+                if(bodyItem.agentTpStatus=='1'){
+                    rowstr += "<input type='radio' checked name='agentTp_"+bodyItem.id+"' id='agentTp_open_"+bodyItem.id+"' value='1' /><label for='agentTp_open_"+bodyItem.id+"'>开</label>&nbsp;&nbsp;";
+                    rowstr += "<input type='radio' value='0' name='agentTp_"+bodyItem.id+"' id='agentTp_close_"+bodyItem.id+"' /><label for='agentTp_close_"+bodyItem.id+"'>关</label>";
+                }else{
+                    rowstr += "<input type='radio' name='agentTp_"+bodyItem.id+"' value='1' id='agentTp_open_"+bodyItem.id+"' /><label for='agentTp_open_"+bodyItem.id+"'>开</label>&nbsp;&nbsp;";
+                    rowstr += "<input type='radio' checked value='0' name='agentTp_"+bodyItem.id+"' id='agentTp_close_"+bodyItem.id+"' /><label for='agentTp_close_"+bodyItem.id+"'>关</label>";
+                }
+                rowstr += "</td>";
+                rowstr += "<td><span><b class=\"td_b2\" onclick=\"saveDigger('"+bodyItem.id+"')\">保存</b></span></td>";
+            }
+            rowstr += "</tr>";
+        }
+        return rowstr;
+    }};
+    var url=ctx+'/digger/diggerList.do';
+    $(function(){
+        toDynamicQueryList('f',url, 'queryDiggerList', 'getDiggerHead', 'getDiggerList', 'appendId');
+    });
 
-		if(headObj["gzpp"]){
-			rowstr += "<td>";
-			rowstr += "<input type='hidden' value='"+bodyItem.focusBrandIds+"' id='focus_ids_"+bodyItem.id+"' name='focus_ids_"+bodyItem.id+"' />";
-			rowstr += "<input type='hidden' value='"+bodyItem.focusBrandNames+"' id='focus_names_"+bodyItem.id+"' name='focus_names_"+bodyItem.id+"' />";
-			rowstr += "<span id='showBrands_"+bodyItem.id+"'>" +bodyItem.focusBrandNames+ "</span>";
-			rowstr += "<span><b class=\"td_b2\" onclick=\"showBrands('"+bodyItem.id+"','"+bodyItem.focusBrandIds+"')\">选择</b></span>";
-			rowstr += "</td>";
-		}
-		if(headObj["bzj"]){
-			rowstr += "<td><span>" +bodyItem.deposit+ "</span></td>";
-		}
-		if(headObj["dtbj"]){
-			if(bodyItem.mutiStatus=='1'){
-		       	rowstr += "<td><span>开</span></td>";
-		    }else{
-		       	rowstr += "<td><span>关</span></td>";
-		    }
-		}
-		if(headObj["cz"]){
-	    	rowstr += "<td>";
-			if(bodyItem.agentTpStatus=='1'){
-		        rowstr += "<input type='radio' checked name='agentTp_"+bodyItem.id+"' id='agentTp_open_"+bodyItem.id+"' value='1' /><label for='agentTp_open_"+bodyItem.id+"'>开</label>&nbsp;&nbsp;";	
-		        rowstr += "<input type='radio' value='0' name='agentTp_"+bodyItem.id+"' id='agentTp_close_"+bodyItem.id+"' /><label for='agentTp_close_"+bodyItem.id+"'>关</label>";	
-		    }else{
-		    	rowstr += "<input type='radio' name='agentTp_"+bodyItem.id+"' value='1' id='agentTp_open_"+bodyItem.id+"' /><label for='agentTp_open_"+bodyItem.id+"'>开</label>&nbsp;&nbsp;";	
-		        rowstr += "<input type='radio' checked value='0' name='agentTp_"+bodyItem.id+"' id='agentTp_close_"+bodyItem.id+"' /><label for='agentTp_close_"+bodyItem.id+"'>关</label>";	
-		    }
-			rowstr += "</td>";
-        	rowstr += "<td><span><b class=\"td_b2\" onclick=\"saveDigger('"+bodyItem.id+"')\">保存</b></span></td>";	
-		}
-        rowstr += "</tr>";
-	}
-  	return rowstr;
-}}; 
-var url=ctx+'/digger/diggerList.do';
-$(function(){
-	toDynamicQueryList('f',url, 'queryDiggerList', 'getDiggerHead', 'getDiggerList', 'appendId');
-});
+    //显示提示弹框
+    function tsalert(content){
+        $("#tsalert").html(content);
+        setTimeout(function(){
+            $("#tsalert").fadeIn();
+        },300);
+        setTimeout(function(){
+            $("#tsalert").fadeOut();
+        },2300);
+    }
 
-//显示提示弹框
-function tsalert(content){
-	$("#tsalert").html(content);
-	setTimeout(function(){
-		$("#tsalert").fadeIn();
-	},300);
-	setTimeout(function(){
-		$("#tsalert").fadeOut();
-	},2300);
-}
+    function showBrands(id,ids){
+        if(id){
+            $("#brand_id").val(id);
+        }
+        $("#brandtc").find('input:checkbox').each(function() {
+            $(this).attr('checked',false);
+        });
+        if(ids){
+            var checkIds = ids.split(",");
+            for(var i=0;i<checkIds.length;i++){
+                $("#brands_"+checkIds[i]).attr("checked","checked");
+            }
+        }
+        tanKuangMsg($("#brandtc"));
+    }
 
-function showBrands(id,ids){
-	if(id){
-		$("#brand_id").val(id);
-	}
-	$("#brandtc").find('input:checkbox').each(function() {
-	    $(this).attr('checked',false);
-	});
-	if(ids){
-		var checkIds = ids.split(",");
-		for(var i=0;i<checkIds.length;i++){
-			$("#brands_"+checkIds[i]).attr("checked","checked");
-		}
-	}
-	tanKuangMsg($("#brandtc"));
-}
+    function confirmBrands(){
+        var i=0;
+        var ids = "";
+        var names = "";
+        $("#brandtc").find('input:checkbox').each(function() {
+            if ($(this).prop('checked') == true) {
+                i++;
+                ids += $(this).val()+",";
+                names += $(this).next().text()+",";
+            }
+        });
+        if(i>5){
+            tsalert("最多只能选择5项哦!");
+            return false;
+        }
+        if(ids.length>0){
+            ids = ids.substring(0,ids.length-1);
+            names = names.substring(0,names.length-1);
+        }
+        var id = $("#brand_id").val();
+        $("#focus_ids_"+id).val(ids);
+        $("#focus_names_"+id).val(names);
+        $("#showBrands_"+id).html(names);
+        qx_tan($('#brandtc'));
+    }
 
-function confirmBrands(){
-	var i=0;
-	var ids = "";
-	var names = "";
-	$("#brandtc").find('input:checkbox').each(function() {
-	    if ($(this).prop('checked') == true) {
-	        i++;
-			ids += $(this).val()+",";
-			names += $(this).next().text()+",";
-	    }
-	});
-	if(i>5){
-		tsalert("最多只能选择5项哦!");
-		return false;
-	}
-	if(ids.length>0){
-		ids = ids.substring(0,ids.length-1);
-		names = names.substring(0,names.length-1);
-	}
-	var id = $("#brand_id").val();
-	$("#focus_ids_"+id).val(ids);
-	$("#focus_names_"+id).val(names);
-	$("#showBrands_"+id).html(names);
-	qx_tan($('#brandtc'));
-}
+    function queryDiggerList(){
+        toDynamicQueryList('f',url, 'queryDiggerList', 'getDiggerHead', 'getDiggerList', 'appendId');
+    };
 
-function queryDiggerList(){
-	toDynamicQueryList('f',url, 'queryDiggerList', 'getDiggerHead', 'getDiggerList', 'appendId');
-};
+    function exportDiggerList(){
+        window.location.href=ctx+'/digger/exportDigger.do?daID='+$("#query_daId").val()
+            +'&focusBrandNames='+$("#query_focusBrand").val()
+            +'&daName='+$("#query_daName").val()
+            +'&daPhone='+$("#query_daPhone").val()
+            +'&mutiStatus='+$("#query_mutiStatus").val();
+    }
 
-function exportDiggerList(){
-	window.location.href=ctx+'/digger/exportDigger.do?daID='+$("#query_daId").val()
-			+'&focusBrandNames='+$("#query_focusBrand").val()
-			+'&daName='+$("#query_daName").val()
-			+'&daPhone='+$("#query_daPhone").val()
-			+'&mutiStatus='+$("#query_mutiStatus").val();
-}
-	
-//重置表单搜索条件
-function resetForm(){
-	 $("#queryDiggerList input").val("");
-	 $("#queryDiggerList .wadeShow").html("全部");
-}
+    //重置表单搜索条件
+    function resetForm(){
+        $("#queryDiggerList input").val("");
+        $("#queryDiggerList .wadeShow").html("全部");
+    }
 
-function saveDigger(id){
-	var agentTpSet = $("input[name='agentTp_"+id+"']:checked").val();
-	var focusBrandIds = $("#focus_ids_"+id).val();
-	var focusBrandNames = $("#focus_names_"+id).val();
-	$.ajax({
-		url:ctx+'/digger/edit.do',
-		type:'post',
-		data:{'editFlag':'2','id':id,"focusBrandIds":focusBrandIds,"focusBrandNames":focusBrandNames,"agentTpSet":agentTpSet},
-		dataType :'json',
-		success:function(data){
-			tsalert(data.message);
-			queryDiggerList();
-		},
-		error:function(){
-			tsalert("系统繁忙,请稍后再试!");
-		}
-	});
-}
+    function saveDigger(id){
+        var agentTpSet = $("input[name='agentTp_"+id+"']:checked").val();
+        var focusBrandIds = $("#focus_ids_"+id).val();
+        var focusBrandNames = $("#focus_names_"+id).val();
+        $.ajax({
+            url:ctx+'/digger/edit.do',
+            type:'post',
+            data:{'editFlag':'2','id':id,"focusBrandIds":focusBrandIds,"focusBrandNames":focusBrandNames,"agentTpSet":agentTpSet},
+            dataType :'json',
+            success:function(data){
+                tsalert(data.message);
+                queryDiggerList();
+            },
+            error:function(){
+                tsalert("系统繁忙,请稍后再试!");
+            }
+        });
+    }
 </script>
 <style type="text/css">
-.list_act_main span b {
-    font-weight: 400;
-    color: #038bcb;
-    cursor: pointer;
-    display: inline-block;
-    text-align: center;
-}
-#copy {
-position: absolute;
-top: 0;
-left: 0;
-opacity: 0;
-z-index: -10;}
-span input{
-display:inline-block;
-*zoom:1;
-*display:inline;
-vertical-align:middle;
-height:24px;
-line-height:24px;
-padding:0 10px;
-width:60%;
-margin-right:10px;
-border:1px solid #ccc;}
+	.list_act_main span b {
+		font-weight: 400;
+		color: #038bcb;
+		cursor: pointer;
+		display: inline-block;
+		text-align: center;
+	}
+	#copy {
+		position: absolute;
+		top: 0;
+		left: 0;
+		opacity: 0;
+		z-index: -10;}
+	span input{
+		display:inline-block;
+		*zoom:1;
+		*display:inline;
+		vertical-align:middle;
+		height:24px;
+		line-height:24px;
+		padding:0 10px;
+		width:60%;
+		margin-right:10px;
+		border:1px solid #ccc;}
 </style>
 </html>

+ 38 - 0
src/main/webapp/WEB-INF/views/digger/plat/diggerlist.jsp

@@ -16,6 +16,7 @@
 <script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
 <script src="${root}/resources/netstyle/js/page.js" type="text/javascript"></script>
 <script src="${root}/resources/js/light/js/jquery.lightbox-0.5.js" type="text/javascript"></script>
+<script src="${root}/resources/js/laydate/laydate.js"></script>
 <script type="text/javascript">
    var ctx = "${root}";
    var proArray = new Array();
@@ -44,6 +45,10 @@
 
 				</div>
 				<span>  车商数量:${allSize}</span>
+				<span style="margin-left: 10px;">注册时间:</span><input style="width:140px;" readonly="readonly" autocomplete="off" name="registeBegin" type="datetime" class="laydate-icon dxinput4" id="query_startTime"
+																	onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
+				至 <input style="width:140px;" readonly="readonly" autocomplete="off" name="registeEnd" type="datetime" class="laydate-icon dxinput4" id="query_endTime"
+						 onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
 				</div>
 				<div class="list_search1">
 				<span>姓名:</span> <input style="width:70px;" type="text" name="daName" id = "query_daName"/>
@@ -170,12 +175,14 @@ var getHead={getDiggerHead:function(obj){
 	//rowstr += "<th rowspan='2'>微信号</th>";
 	rowstr += "<th rowspan='2'>公众号加入渠道</th>";
 //	rowstr += "<th rowspan='2'>微信注册省份</th>";
+    rowstr += "<th rowspan='2'>注册时间</th>";
 	rowstr += "<th rowspan='2'>关注的品牌</th>";
       //  rowstr += "<th rowspan='2'>会员等级</th>";
 	//	rowstr += "<th rowspan='2'>认证</th>";
        // rowstr += "<th rowspan='2'>积分</th>";
 	rowstr += "<th rowspan='2'>保证金(万)</th>";
 	rowstr += "<th rowspan='2'>多台报价<br/>权限状态</th>";
+    rowstr += "<th rowspan='2'>注册状态</th>";
 	rowstr += "<th colspan='3'>操作</th></tr>";
 	rowstr += "<tr><th>商家通票设置</th>";
 	rowstr += "<th>平台通票设置</th>";
@@ -220,6 +227,7 @@ var getListContext={getDiggerList:function(headObj,bodyObj){
             }
             rowstr +='</select>';
             rowstr += "</td>";*/
+        rowstr += "<td><span>" +bodyItem.regeisterTime+ "</span></td>";
 		rowstr += "<td>";
 		rowstr += "<input type='hidden' value='"+bodyItem.focusBrandIds+"' id='focus_ids_"+bodyItem.id+"' name='focus_ids_"+bodyItem.id+"' />";
 		rowstr += "<input type='hidden' value='"+bodyItem.focusBrandNames+"' id='focus_names_"+bodyItem.id+"' name='focus_names_"+bodyItem.id+"' />";
@@ -249,7 +257,15 @@ var getListContext={getDiggerList:function(headObj,bodyObj){
 	    }else{
 	       	rowstr += "<td><span>关</span></td>";
 	    }
+        //注册状态
+        if(bodyItem.regeisterStatus=='1'){
+            rowstr += "<td><span>绑定</span></td>";
+        }else{
+            rowstr += "<td><span>解绑</span></td>";
+        }
 	    rowstr += "<td>";
+
+
 		if(bodyItem.agentTpStatus=='1'){
 	        rowstr += "<input type='radio' checked name='agentTp_"+bodyItem.id+"' id='agentTp_open_"+bodyItem.id+"' value='1' /><label for='agentTp_open_"+bodyItem.id+"'>开</label>&nbsp;&nbsp;";
 	        rowstr += "<input type='radio' value='0' name='agentTp_"+bodyItem.id+"' id='agentTp_close_"+bodyItem.id+"' /><label for='agentTp_close_"+bodyItem.id+"'>关</label>";
@@ -514,6 +530,28 @@ function savaInte(){
 	})
 }
 
+
+//时间转换
+function getTime(t) {
+    if(t){
+        var date = new Date(parseInt(t))
+        var y = date.getFullYear();
+        var m = date.getMonth() + 1;
+        m = m < 10 ? ('0' + m) : m;
+        var d = date.getDate();
+        d = d < 10 ? ('0' + d) : d;
+        var h = date.getHours();
+        h = h < 10 ? ('0' + h) : h;
+        var minute = date.getMinutes();
+        var second = date.getSeconds();
+        minute = minute < 10 ? ('0' + minute) : minute;
+        second = second < 10 ? ('0' + second) : second;
+        return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;
+    }else{
+        return null;
+    }
+}
+
 </script>
 <style type="text/css">
 .list_act_main span b {

+ 254 - 0
src/main/webapp/WEB-INF/views/playbill/addPlaybill.jsp

@@ -0,0 +1,254 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"%>
+<%@ include file="../../taglibs/taglibs.jsp"%>
+<%pageContext.setAttribute("root", request.getContextPath()); %>
+
+<!doctype html>
+<html>
+<head>
+    <title>新建商家</title>
+    <meta http-equiv="Cache-Control" content="no-siteapp">
+    <meta http-equiv="Cache-Control" content="no-transform">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+    <link rel="stylesheet" href="${root}/resources/netstyle/css/main.css" />
+    <script src="${root}/resources/js/jquery-1.7.js" type="text/javascript"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
+    <script src="${root}/resources/js/ajaxfileupload.js" type="text/javascript"></script>
+    <script src="${root}/resources/js/jquery.form.js" type="text/javascript"></script>
+    <script type="text/css">
+        .btn {
+            border-radius: 0px;
+            font-weight: 100;
+            cursor: pointer;
+            display: inline-block;
+            padding: 5px;
+            font-size: 14px;
+            font-family: '微软雅黑'
+        }
+
+        .btn-primary {
+            color: #fff;
+            text-shadow: 0 1px rgba(0, 0, 0, .1);
+            background-image: -webkit-linear-gradient(top, #4d90fe 0, #4787ed 100%);
+            background-image: -o-linear-gradient(top, #4d90fe 0, #4787ed 100%);
+            background-image: -webkit-gradient(linear, left top, left bottom, from(#4d90fe),
+            to(#4787ed));
+            background-image: linear-gradient(to bottom, #4d90fe 0, #4787ed 100%);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4d90fe',
+            endColorstr='#ff4787ed', GradientType=0);
+            filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+            background-repeat: repeat-x;
+            border: 1px solid #3079ed;
+        }
+
+        .btn-success {
+            color: #fff;
+            text-shadow: 0 1px rgba(0, 0, 0, .1);
+            background-image: -webkit-linear-gradient(top, #35aa47 0, #35aa47 100%);
+            background-image: -o-linear-gradient(top, #35aa47 0, #35aa47 100%);
+            background-image: -webkit-gradient(linear, left top, left bottom, from(#35aa47),
+            to(#35aa47));
+            background-image: linear-gradient(to bottom, #35aa47 0, #35aa47 100%);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff35aa47',
+            endColorstr='#ff35aa47', GradientType=0);
+            filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+            background-repeat: repeat-x;
+            border: 1px solid #359947;
+        }
+
+        .gallery .img-item {
+            position: relative;
+        }
+
+        .gallery .img-item .delete {
+            position: absolute;
+            display: block;
+            width: 20px;
+            height: 20px;
+            color: #fff;
+            background: rgba(0, 0, 0, 0.7);
+            line-height: 20px;
+            text-align: center;
+            border-radius: 50%;
+            top: 25px;
+            right: 25px;
+            cursor: pointer;
+        }
+
+        .img {
+            width: 300px;
+            margin: 20px;
+        }
+    </script>
+    <script type="text/javascript">
+        var ctx = "${root}";
+    </script>
+</head>
+
+<body>
+<div>
+    <p class="main_r_t cc"><span class="span2">当前位置:</span><span>新增海报</span></p>
+    <div class="new_price cc">
+
+        <div class="left left2">
+            <div style="display:block;">
+                <form id="formdata" method="post" enctype="multipart/form-data">
+                    <div class="tc3_search1"><span style="width:150px;">跳转地址:</span><input autocomplete="off" type="text" name="name" id="jumpUrl" style="width: 300px"/></div>
+                    <div class="tc3_search1"><span style="width:150px;">顺序:</span><input autocomplete="off" type="text" name="integral" id="sequence" style="width: 300px"/></div>
+                    <div class="tc3_search1"><span style="width:150px;">上传图片:</span> <a class="left2_btm"  id="upload" style="color: red" ;>【点击上传】</a></div>
+                    <div class="gallery" id="gallery"></div>
+                    <input id="file" type="file" style="display: none">
+
+                    <p class="left2_btm"><a class="left2_qx" href="<%=request.getContextPath()%>/gift/showGift.do">取消</a><a class="left2_bc"  href="javascript:void(0);" id="uploadImg";>保存</a></p>
+                </form>
+            </div>
+
+        </div>
+    </div>
+</div>
+<div class="tc_newts" id="tishialert">
+    <div class="tcnewts_main">
+        <img class="newts_xxx"  onclick="qx_tan($('#tishitc'));" src="${pageContext.request.contextPath}/resources/images/tan_xxx.png">
+        <h3>温馨提示</h3>
+        <p id="tishiwen"></p>
+        <div class="newts_btn" style="text-align:center;"><a class="btn2" onclick="qx_tan($('#tishialert'));" style="text-align: center;margin-right:0px;">我知道了</a></div>
+    </div>
+</div>
+<div class="tcbox_wait" id="waitbox">
+    <div class="tc_wait_main">
+        <img class="wait_img" src="${root}/resources/images/wait.gif" />
+        <img class="wait_img2" src="${root}/resources/images/loading.png" />
+    </div>
+</div>
+<div class="public_prompt" id="tsalert">您输入的信息有误,请确认后重新输入</div>
+</body>
+<script src="${root}/resources/js/index.js" type="text/javascript"></script>
+<script type="text/javascript">
+
+    //页面加载完成加载奖品类型列表
+    //显示提示弹框
+    function tsalert(content){
+        $("#tsalert").html(content);
+        setTimeout(function(){
+            $("#tsalert").fadeIn();
+        },300);
+        setTimeout(function(){
+            $("#tsalert").fadeOut();
+        },2300);
+    }
+
+
+
+//==========================================================>多图上传的js
+    var files = new Array();
+    var id = 0;
+    //选择图片按钮隐藏input[file]
+    $("#upload").click(function() {
+
+        $("#file").trigger("click");
+    });
+    //选择图片
+    $("#file").change(function() {
+        //获取所有图片
+        var img = document.getElementById("file").files;
+        //遍历
+
+        if($(".img").length+img.length>5) {
+            alert("选择图片过多!")
+            return;
+        }
+
+        for (var i = 0; i < img.length; i++) {
+            //得到图片
+            var file = img[i];
+            //把图片存到数组中
+            files[id] = file;
+            id++;
+            //获取图片路径
+            var url = URL.createObjectURL(file);
+            //创建img
+            var box = document.createElement("img");
+            box.setAttribute("src", url);
+            box.className = 'img';
+            box.style.width='180px';
+            box.style.height='180px'
+            //创建div
+            var imgBox = document.createElement("div");
+            imgBox.style.display = 'inline-block';
+            imgBox.className = 'img-item';
+            //创建span
+            var deleteIcon = document.createElement("span");
+            deleteIcon.className = 'delete';
+            deleteIcon.innerText = '删除';
+            //把图片名绑定到data里面
+            deleteIcon.id = img[i].name;
+            //把img和span加入到div中
+            imgBox.appendChild(deleteIcon);
+            imgBox.appendChild(box);
+            //获取id=gallery的div
+            var body = document.getElementsByClassName("gallery")[0];
+            body.appendChild(imgBox);
+            //点击span事件
+            $(deleteIcon).click(function() {
+                //获取data中的图片名
+                var filename = $(this).attr('id');
+                //删除父节点
+                $(this).parent().remove();
+                var fileList = Array.from(files);
+                //遍历数组
+                for (var j = 0; j < fileList.length; j++) {
+                    //通过图片名判断图片在数组中的位置然后删除
+                    if (fileList[j].name == filename) {
+                        fileList.splice(j, 1);
+                        id--;
+                        break;
+                    }
+                }
+                files = fileList;
+            });
+        }
+    });
+    //上传功能
+    $("#uploadImg").click(
+        function() {
+            //创建FormData根据form
+            var uploadFile = new FormData($("#formdata")[0]);
+            //遍历图片数组把图片添加到FormData中
+            for (var i = 0; i < files.length; i++) {
+                uploadFile.append("imgs", files[i]);
+
+               // alert(files[i].name);
+            }
+            uploadFile.append("jumpUrl", $("#jumpUrl").val());
+            uploadFile.append("sequence",$("#sequence").val());
+
+            if ("undefined" != typeof (uploadFile) && uploadFile != null && uploadFile != "") {
+                //通过ajax上传
+
+                $.ajax({
+                    url :ctx+'/upload/uplocadImagePlaybill.do',
+                    type : "post",
+                    data : uploadFile, //把FormData作为参数
+                    contentType : false, //不设置内容类型
+                    processData : false, //不处理数据
+                    success : function(data) {
+
+                        if (data) {
+                            alert("上传成功!");
+                            window.history.go(-1);
+                        } else {
+                            alert("上传失败!");
+                        }
+                    },
+                    error : function() {
+                        alert("上传失败!");
+                    }
+                });
+            }
+        });
+
+
+
+</script>
+
+</html>

+ 343 - 0
src/main/webapp/WEB-INF/views/playbill/playbillManage.jsp

@@ -0,0 +1,343 @@
+<%@ page import="com.agent.model.bms.bean.UserBean" %>
+<%@ page language="java" contentType="text/html; charset=utf-8"
+         pageEncoding="utf-8"%>
+<%@ include file="../../taglibs/taglibs.jsp"%>
+<%pageContext.setAttribute("root", request.getContextPath()); %>
+<% UserBean user=(UserBean) request.getSession().getAttribute("USER_INFO");%>
+<!doctype html>
+<html>
+<head>
+    <title>新后台</title>
+    <meta http-equiv="Cache-Control" content="no-siteapp">
+    <meta http-equiv="Cache-Control" content="no-transform">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+    <link rel="stylesheet" href="${pageContext.request.contextPath}/resources/netstyle/css/main.css"/>
+    <script src="${root}/resources/js/jquery-1.7.js" type="text/javascript"></script>
+    <script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
+    <script src="${root}/resources/js/laydate/laydate.js"></script>
+
+    <script type="text/javascript">
+        var ctx = "${root}";
+    </script>
+    <script
+            src="${root}/resources/js/ajaxfileupload.js"></script>
+    <style type="text/css">
+        .username {
+            text-align: left;
+            margin: 20px 0 20px 50px;
+        }
+
+        .targetname {
+            height: 23px;
+            line-height: 24px;
+            position: relative;
+            border: 1px solid #ccc;
+            text-decoration: none;
+            color: #888;
+            display: inline-block;
+            width: 600px
+        }
+    </style>
+
+</head>
+<body>
+<div>
+    <p class="main_r_t cc"><span class="span2">当前位置:</span><span>海报管理</span>
+    </p>
+    <form id="queryOfferList">
+        <div class="act_list">
+
+            <div style="margin-top: 20px;margin-left: 25px">
+                <a class="list_button" href="${root}/palybill/showAddPlaybill.do" target="_blank" id="isAdmin">新增</a>
+            </div>
+
+            <div id="appendId" class="overflow_main">
+                <table class="price_table" id="showArea">
+                    <tr style="height: 68px;">
+                        <td id="gId" style="background: #688fa2;color: #ffffff;padding: 8px 5px;;font-size: 16px">图片地址</td>
+                        <td style="background: #688fa2;color: #ffffff;padding: 8px 5px;;font-size: 16px">跳转地址</td>
+                        <td style="background: #688fa2;color: #ffffff;padding: 8px 5px;;font-size: 16px">序号</td>
+                        <td style="background: #688fa2;color: #ffffff;padding: 8px 5px;;font-size: 16px">创建时间</td>
+                        <td style="background: #688fa2;color: #ffffff;padding: 8px 5px;;font-size: 16px">更新时间</td>
+                        <td style="background: #688fa2;color: #ffffff;padding: 8px 5px;;font-size: 16px">操作</td>
+                    </tr>
+
+                </table>
+                <div class="list_fy cc"><span>每页显示</span><div class="list_fy_choose down">
+                    <span id="pageSize" >10</span>
+
+                    <ul id="choseSize">
+                        <li onclick="chouseSize(this)">10</li>
+                        <li onclick="chouseSize(this)">11</li>
+                        <li onclick="chouseSize(this)">12</li>
+                        <li onclick="chouseSize(this)">13</li>
+                        <li onclick="chouseSize(this)">14</li>
+                        <li onclick="chouseSize(this)">15</li>
+                        <li onclick="chouseSize(this)">16</li>
+                        <li onclick="chouseSize(this)">17</li>
+                        <li onclick="chouseSize(this)">18</li>
+                        <li onclick="chouseSize(this)">19</li>
+                        <li onclick="chouseSize(this)">20</li>
+                    </ul></div><span>条,</span>
+                    <span id="currentPage" class="ys_num">1</span>
+                    <span>/</span><span id="totalPage">22</span>
+                    <span class="right" onclick="toNextPage()">GO</span>
+                    <input class="right" type="text" id="tooPage" name="toPage"><span class="right" id="lastpage">末页</span>
+                    <span class="right" id="nextPage">下一页</span>
+                    <span class="right" id="beforePage">上一页</span>
+                    <span class="right" id="firstPage">首页</span>
+                </div>
+            </div>
+        </div>
+    </form>
+    <c:set var="obj" value="${ppList}"></c:set>
+    <div class="tcbox2">
+        <div class="tcbox_main"  style="width:500px;height:230px; overflow:auto">
+            <div style="width: 100%;height: 50px;background-color: #0c91d0"><p style="float: left;margin-top: 10px;font-size: 18px;margin-left: 10px;">修改</p></div>
+            <input type="hidden" name="id" id="playbillId" />
+            <div class="tc3_search1"><span style="width:120px;">跳转地址:</span><input autocomplete="off" type="text" name="name" id="jumpUrl"/></div>
+            <div class="tc3_search1"><span style="width:120px;">展示顺序:</span><input autocomplete="off" type="text" name="store" id="sequence" /></div>
+
+            <p class="tc_btm"><a class="tc_btm_l tc_qx3" href="javascript:;" onclick="closetab()">取消</a><a class="tc_btm_r" href="javascript:void(0);" onclick="updatetab();">保存</a></p>
+            <img class="tc_xxx tc_xxx2" src="${root}/resources/images/tan_xxx.png" />
+        </div>
+    </div>
+</div>
+<div class="tc_newts" id="tishialert">
+    <div class="tcnewts_main">
+        <img class="newts_xxx"  onclick="qx_tan($('#tishitc'));" src="${pageContext.request.contextPath}/resources/images/tan_xxx.png">
+        <h3>温馨提示</h3>
+        <p id="tishiwens"></p>
+        <div class="newts_btn" style="text-align:center;"	><a class="btn2" onclick="qx_tan($('#tishialert'));" style="text-align: center;margin-right:0px;">我知道了</a></div>
+    </div>
+</div>
+<div class="tc_newts" id="tishitc">
+    <div class="tcnewts_main">
+        <img class="newts_xxx"  onclick="qx_tan($('#tishitc'));" src="${pageContext.request.contextPath}/resources/images/tan_xxx.png">
+        <h3>温馨提示</h3>
+        <p id="tishiwen"></p>
+        <div class="newts_btn"><a onclick="qx_tan($('#tishitc'));">取消</a><a class="btn2" id="tishiqr">确认</a></div>
+    </div>
+</div>
+<div class="public_prompt" id="tsalert">您输入的信息有误,请确认后重新输入</div>
+</body>
+<script src="${root}/resources/js/index.js"
+        type="text/javascript"></script>
+<%--<script src="${root}/resources/js/offer/offer.js"--%>
+<%--type="text/javascript"></script>--%>
+<script src="${root}/resources/netstyle/js/page.js" type="text/javascript"></script>
+<%-- <script
+	src="${root}/resources/js/laydate/laydate.js"></script> --%>
+<script type="text/javascript">
+
+    var allPage=10;
+    $(function(){
+
+        show(1,10);
+    })
+    var pagesize;
+
+    function closetab(){
+        $('.tcbox2').removeClass("am-acti-active");
+    }
+
+    function show(page,pageAcounts) {
+        pagesize=pageAcounts;
+        if(allPage>=page&&page>0){
+            $("#showArea").find("tr").each(function(index){
+                if(index>0){
+                    $(this).remove()
+                }
+
+            })
+            $.post("${root}/palybill/showPlaybilllist.do",{"page":page,"pagesize":pagesize},function(data){
+                allPage=Math.ceil((data.totalNum)/pagesize);
+                var list =data.totalList;
+                for(var i=0;i<list.length;i++){
+                    $("#showArea").append(" <tr style=\"height:40px \" >\n" +
+                        "                        <td><a href= \""+list[i].url+"\" target='_blank' style='color: #12b7f5;'> 跳转到图片</a ></td>\n" +
+                        "                        <td>"+list[i].jumpUrl+"</td>\n" +
+                        "                        <td>"+list[i].sequence+"</td>\n" +
+                        "                        <td>"+dateFormat("YYYY-mm-dd HH:MM:SS",list[i].createtime)+"</td>\n" +
+                        "                        <td>"+dateFormat("YYYY-mm-dd HH:MM:SS",list[i].updatetime)+"</td>\n" +
+                        "                        <td><a onclick='editPlaybill(\""+list[i].id+"\")'> 修改</a >|<span onclick='deletePlaybill(\""+list[i].id+"\")'>删除</span></td>"+
+                        "                    </tr>\n")
+                }
+                $("#lastpage").attr("onclick","show("+allPage+","+pagesize+")");
+                $("#nextPage").attr("onclick","show("+(page+1)+","+pagesize+")");
+                $("#beforePage").attr("onclick","show("+(page-1)+","+pagesize+")");
+                $("#firstPage").attr("onclick","show(1,"+pagesize+")");
+                $("#totalPage").text(allPage);
+                $("#currentPage").text(page);
+
+            });
+        }
+    }
+    function chouseSize(ele){
+        show(1,ele.innerHTML)
+    }
+
+
+    function toNextPage() {
+        var toPage=$("#tooPage").val();
+        if(toPage.replace(/\s+/g,"")!=""&&toPage.replace(/\s+/g,"")!=null){
+            if(toPage.replace(/\s+/g,"")>allPage){
+                alert("页数过大啊")
+            }else{
+                show(toPage.replace(/\s+/g,""),pagesize);
+            }
+
+        }else{
+            alert("未填写")
+        }
+
+    }
+    function editPlaybill(id) {
+        console.log("id="+id);
+        $.ajax({
+            type: "POST",
+            url:  ctx+'/palybill/editPlaybill.do',
+            data:{id:id},
+            async: false,
+            dataType: "json",
+            success: function(data){
+                console.log(data)
+                var obj = data.result;
+
+                $("#playbillId").val(obj.id);
+                $("#jumpUrl").val(obj.jumpUrl);
+                $("#sequence").val(obj.sequence);
+                tanKuang($('.tcbox2'));
+            }
+        })
+    }
+
+    function updatetab(obj) {
+        var id=$("#playbillId").val();
+        var jumpUrl=$("#jumpUrl").val();
+        var sequence=$("#sequence").val();
+        $.ajax({
+            type: "POST",
+            url:  ctx+'/palybill/updatePlaybill.do',
+            data:{
+                id:id,
+                jumpUrl:jumpUrl,
+                sequence:sequence,
+            },
+            async: false,
+            dataType: "json",
+            success: function(data) {
+                //console.log(data)
+                qx_tan($('.tcbox2'));
+                var obj=data;
+                if (obj.result>0){
+                    window.location.href=ctx+'/palybill/getPalybill.do';
+                    tsalert("保存成功");
+                }else
+                {
+                    tsalert("保存失敗");
+                }
+
+            }
+        })
+    }
+
+    function deletePlaybill(id) {
+        $.ajax({
+            type: "POST",
+            url:  ctx+'/palybill/deletePlaybill.do',
+            data:{id:id},
+            async: false,
+            dataType: "json",
+            success: function(data){
+                tsalert(data.message);
+                show(1,10)
+                qx_tan($('#tishitc'));
+            }
+        })
+    }
+
+    function suredeleteShop(para){
+        var ids=para;
+
+
+        if(!ids){
+            tsalert("请选择要删除的禮品!");
+            return;
+        }
+        tanKuangMsg($("#tishitc"),"确定删除吗");
+        $("#tishitc").find("#tishiqr").unbind().click(function(){
+            deleteGift(ids);
+        });
+    }
+    function tsalert(content){
+        $("#tsalert").html(content);
+        setTimeout(function(){
+            $("#tsalert").fadeIn();
+        },300);
+        setTimeout(function(){
+            $("#tsalert").fadeOut();
+        },2300);
+    }
+
+//    Date.prototype.format = function(formatStr){
+//        var str = formatStr;
+//        str=str.replace(/yyyy|YYYY/,this.getFullYear());
+//        str=str.replace(/MM/,(this.getMonth()+1)>9?(this.getMonth()+1).toString():'0' + (this.getMonth()+1));
+//        str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0' + this.getDate());
+//        str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' + this.getHours());
+//        str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0' + this.getMinutes());
+//        str=str.replace(/ss/,this.getSeconds()>9?this.getSeconds().toString():'0' + this.getSeconds());
+//        return str;
+//    }
+
+    "use strict"
+    function dateFormat(fmt, date) {
+        var date = new Date(date);
+        let ret;
+        let opt = {
+            "Y+": date.getFullYear().toString(),        // 年
+            "m+": (date.getMonth() + 1).toString(),     // 月
+            "d+": date.getDate().toString(),            // 日
+            "H+": date.getHours().toString(),           // 时
+            "M+": date.getMinutes().toString(),         // 分
+            "S+": date.getSeconds().toString()          // 秒
+            // 有其他格式化字符需求可以继续添加,必须转化成字符串
+        };
+        for (let k in opt) {
+            ret = new RegExp("(" + k + ")").exec(fmt);
+            if (ret) {
+                fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
+            };
+        };
+        return fmt;
+    }
+</script>
+<style type="text/css">
+    .list_act_main span b {
+        font-weight: 400;
+        color: #038bcb;
+        cursor: pointer;
+        display: inline-block;
+        text-align: center;
+    }
+    #copy {
+        position: absolute;
+        top: 0;
+        left: 0;
+        opacity: 0;
+        z-index: -10;}
+    span input{
+        display:inline-block;
+        *zoom:1;
+        *display:inline;
+        vertical-align:middle;
+        height:24px;
+        line-height:24px;
+        padding:0 10px;
+        width:60%;
+        margin-right:10px;
+        border:1px solid #ccc;}
+</style>
+</html>

+ 6 - 0
src/main/webapp/WEB-INF/views/sale/agent/salelist.jsp

@@ -35,6 +35,10 @@
 				<c:if test="${sjhm eq '1'}">
 				<span>手机号码:</span> <input type="text" name="salePhone" id = "query_salePhone"/> 
 				</c:if>
+				<span style="margin-left: 10px;">注册时间:</span><input style="width:140px;" readonly="readonly" autocomplete="off" name="registeBegin" type="datetime" class="laydate-icon dxinput4" id="query_startTime"
+																	onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
+				至 <input style="width:140px;" readonly="readonly" autocomplete="off" name="registeEnd" type="datetime" class="laydate-icon dxinput4" id="query_endTime"
+						 onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
 			</div>
 			<div class="list_search1">
 				<c:if test="${xm eq '1'}">
@@ -90,6 +94,7 @@ var getHead={getSaleHead:function(obj){
 	if(obj["wxnc"]){
 		rowstr += "<th>微信昵称</th>";
 	}
+    rowstr += "<th rowspan='2'>注册时间</th>";
 	if(obj["fzqy"]){
 		rowstr += "<th>负责区域</th>";
 	}
@@ -117,6 +122,7 @@ var getListContext={getSaleList:function(headObj,bodyObj){
 		if(headObj["wxnc"]){
 			rowstr += "<td><span>" +bodyItem.saleWxnc+ "</span></td>";
 		}
+        rowstr += "<td><span>" +bodyItem.regeisterTime+ "</span></td>";
 		if(headObj["fzqy"]){
 			var regionIds = bodyItem.agentAreaIds.split(",");
 			var regionNames = bodyItem.agentAreaNames.split(",");

+ 10 - 2
src/main/webapp/WEB-INF/views/sale/plat/salelist.jsp

@@ -16,6 +16,7 @@
 <script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/sessionout.js"></script>
 <script src="${root}/resources/netstyle/js/page.js" type="text/javascript"></script>
 <script src="${root}/resources/js/light/js/jquery.lightbox-0.5.js" type="text/javascript"></script>
+<script src="${root}/resources/js/laydate/laydate.js"></script>
 <script type="text/javascript">
    var ctx = "${root}";
    var proArray = new Array();
@@ -33,12 +34,17 @@
 				<span>销售员ID:</span> <input style="width:70px;" type="text" name="saleId" id = "query_saleId"/> 
 				<span>负责区域:</span> <input style="width:70px;" type="text" name="agentAreaNames" id = "query_agentAreaNames"/> 
 				<span>微信昵称:</span><input style="width:70px;" type="text" name="saleWxnc" id = "query_saleWxnc"/> 
-				<span>加入渠道:</span><input style="width:70px;" type="text" name="saleChannel" id = "query_saleChannel"/> 
+				<span>加入渠道:</span><input style="width:70px;" type="text" name="saleChannel" id = "query_saleChannel"/>
+				<span style="margin-left: 10px;">注册时间:</span><input style="width:140px;" readonly="readonly" autocomplete="off" name="registeBegin" type="datetime" class="laydate-icon dxinput4" id="query_startTime"
+																	onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
+				至 <input style="width:140px;" readonly="readonly" autocomplete="off" name="registeEnd" type="datetime" class="laydate-icon dxinput4" id="query_endTime"
+						 onClick="laydate({istime:true, format:'YYYY-MM-DD hh:mm:ss' })" />
 			</div>
 			<div class="list_search1">
 				<span>商家名称:</span> <input style="width:70px;" type="text" name="agentName" id = "query_agentName"/> 
 				<span>姓名:</span> <input style="width:70px;" type="text" name="saleName" id = "query_saleName"/> 
-				<span>手机号码:</span> <input style="width:70px;" type="text" name="salePhone" id = "query_salePhone"/> 
+				<span>手机号码:</span> <input style="width:70px;" type="text" name="salePhone" id = "query_salePhone"/>
+				<a class="list_button" style="background-color: #CE0000;" onclick="resetForm();">重置</a>
 				<!--  span>微信号:</span> <input style="width:70px;" type="text" name="saleWxh" id = "query_saleWxh"/> -->
 				<a class="list_button" style="background-color: #CE0000;" onclick="resetForm();">重置</a>
 				<a class="list_button" onclick="querySaleList()">查询</a>
@@ -76,6 +82,7 @@ var getHead={getSaleHead:function(obj){
 	rowstr += "<th rowspan='2'>姓名</th>";
 	rowstr += "<th rowspan='2'>手机号码</th>";
 	rowstr += "<th rowspan='2'>微信昵称</th>";
+    rowstr += "<th rowspan='2'>注册时间</th>";
 	//rowstr += "<th rowspan='2'>微信号</th>";
 	rowstr += "<th rowspan='2'>加入渠道</th>";
 	rowstr += "<th rowspan='2'>代理品牌</th>";
@@ -100,6 +107,7 @@ var getListContext={getSaleList:function(headObj,bodyObj){
 		rowstr += "<td><span>" +bodyItem.saleName+ "</span></td>";
 		rowstr += "<td><span>" +bodyItem.salePhone+ "</span></td>";
 		rowstr += "<td><span>" +bodyItem.saleWxnc+ "</span></td>";
+        rowstr += "<td><span>" +bodyItem.regeisterTime+ "</span></td>";
 		//rowstr += "<td><span>" +bodyItem.saleWxh+ "</span></td>";
 		rowstr += "<td><span>" +bodyItem.saleChannel+ "</span></td>";
 		rowstr += "<td><span>" +bodyItem.agentBrandNames+ "</span></td>";

+ 23 - 5
src/main/webapp/WEB-INF/views/shop/shoplist.jsp

@@ -150,9 +150,15 @@
 
 					<div class="tc3_search3" style="margin-top: 20px;">
 						<span style="width:120px;">商家类型:</span>
-					<input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" checked="checked" value='1' />自运营
-					<input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" value='2' />代运营
-				</div>
+						<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" checked="checked" value='1' />自运营</label>
+						<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" value='2' />代运营</label>
+					</div>
+					<div class="tc3_search3" style="margin-top: 20px;">
+						<span style="width:120px;">销售规则:</span>
+						<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="checkbox" name="agentRule" checked="checked" value='1' />置换报价</label>
+						<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="checkbox" name="agentRule" value='2' />网络竞销</label>
+						<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="checkbox" name="agentRule" value='3' />一口价秒杀</label>
+					</div>
 				<div class="tc3_search1"><span>给价反馈:</span><input autocomplete="off"  type="text" name="priceFeedback" id="priceFeedback"/>小时<span style="color:red;display: none;" id="priceFeedbackts" >*请输入数字</span></div>
 				<div class="tc3_search1"><span>车商反馈:</span><input autocomplete="off"  type="text" name="agentFeedback" id="agentFeedback"/>小时<span style="color:red;display: none;" id="agentFeedbackts" >*请输入数字</span></div>
 				<div class="tc3_search3" style="margin-top: 20px;">
@@ -223,7 +229,7 @@
 //列表頭部
 var getHead={getShopHead:function(){
 	var rowstr="<tr><th>全选<b class=\"dd_choose all\" wade=\"all\" onclick=\"confirmShop(this)\"></b></th><th>集团名称</th><th>分店名称</th>"+
-	"<th>集团ID</th><th>分店ID</th><th>商家类型</th><th>公众号名称</th><th>微信分享标题</th><th>商家LOGO</th><th>给价反馈</th><th>车商反馈</th>"+
+	"<th>集团ID</th><th>分店ID</th><th>商家类型</th><th>销售规则</th><th>公众号名称</th><th>微信分享标题</th><th>商家LOGO</th><th>给价反馈</th><th>车商反馈</th>"+
 	"<th>平台参与</th><th>积分系统</th><th>操作</th><th>绑定公众号</th><th>公众号菜单</th><th>小程序</th><th>商家名称</th><th>商家ID</th><th>身份绑定链接</th><th>上传设备链接</th><th>手机报价链接<th/></tr>";
 	return rowstr;
 }};
@@ -232,7 +238,19 @@ var getListContext={getShopList:function(obj){
 	console.log(obj)
 	var rowstr="<tr><td><b class=\"dd_choose\" wade=\""+obj.id+"\" onclick=\"confirmShop(this)\"></b></td><td><span>"+obj.groupName+
 	"</span></td><td><span>"+obj.outletName+"</span></td><td><span>"+obj.groupId+"</span></td><td><span>"+
-	obj.outletId+"</span></td><td><span>" + (obj.agentType== '1'?'自运营':'代运营') + "</span></td><td><span>"+obj.pubName+"</span></td><td><span>"+obj.shareTitle+"</span></td><td>"+"<a class=\"mylight\" href=\"${root}/"+
+	obj.outletId+"</span></td><td><span>" + (obj.agentType== '1'?'自运营':'代运营') + "</span></td>";
+    rowstr+="<td>";
+    if(obj.agentRule.indexOf("1")>=0){
+        rowstr+= "<span>置换报价</span>";
+	}
+	if(obj.agentRule.indexOf("2")>=0){
+        rowstr+= "<span>&nbsp;网络竞销</span>";
+    }
+    if(obj.agentRule.indexOf("3")>=0){
+        rowstr+= "<span>&nbsp;一口价秒杀</span>";
+    }
+    rowstr+="</td>";
+    rowstr+="<td><span>"+obj.pubName+"</span></td><td><span>"+obj.shareTitle+"</span></td><td>"+"<a class=\"mylight\" href=\"${root}/"+
 	obj.agentLogo+"\" title=\""+obj.agentName+"\"><img onload=\"load(this);\" onerror=\"this.src='${root}/resources/images/photoerr.png'\" style=\"width:35px;height:35px;padding-left: 10%;\" src=\"${root}/" +obj.agentLogo+"\"/></a>"+"</td>";
 	rowstr += '<td><span>' + (obj.priceFeedback) + '</span></td><td><span>' + (obj.agentFeedback) + '</span></td>'
 	if(obj.isAttent=='1'){

+ 8 - 2
src/main/webapp/WEB-INF/views/shop/showAddShop.jsp

@@ -44,8 +44,14 @@
 
 						<div class="left2_5" style="margin-top: 20px;">
 							<span>商家类型:</span>
-							<input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" checked="checked" value='1' />自运营
-							<input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" value='2' />代运营
+							<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" checked="checked" value='1' />自运营</label>
+							<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="radio" name="agentType" value='2' />代运营</label>
+						</div>
+						<div class="left2_5" style="margin-top: 20px;">
+							<span>销售规则:</span>
+							<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="checkbox" name="agentRule"  checked="checked"value='1' />置换报价</label>
+							<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="checkbox" name="agentRule" value='2' />网络竞销</label>
+							<label><input style="margin:-2px 4px 1px 0;vertical-align:middle;" type="checkbox" name="agentRule" value='3' />一口价秒杀</label>
 						</div>
 						<div class="left2_2"><span>给价反馈:</span><input autocomplete="off"  type="text" name="priceFeedback" id="priceFeedback"/>小时<span style="color:red;display: none;" id="priceFeedbackts" >*请输入数字</span></div>
 						<div class="left2_2"><span>车商反馈:</span><input autocomplete="off"  type="text" name="agentFeedback" id="agentFeedback"/>小时<span style="color:red;display: none;" id="agentFeedbackts" >*请输入数字</span></div>

+ 6 - 2
src/main/webapp/WEB-INF/views/user/addAdmin.jsp

@@ -127,8 +127,11 @@
     	}
     	
 		var isAudit = $('input:radio[name="isAudit"]:checked').val();
-    	
-    	var isAdmin = $('input:radio[name="isAdmin"]:checked').val();
+
+        var ifCertification = $('input:radio[name="ifCertification_'+obj+'"]:checked').val();
+
+
+        var isAdmin = $('input:radio[name="isAdmin"]:checked').val();
     	
     	$.ajax({
      		url : ctx + '/userManage/add.do',
@@ -138,6 +141,7 @@
      			'userAccount' : userAccount,
      			'userPwd' : userPwd,
      			'isAudit' : isAudit,
+                'ifCertification' : ifCertification,
      			'isAdmin' : isAdmin
      			},
      		dataType : 'json',

+ 8 - 2
src/main/webapp/WEB-INF/views/user/agentUserListForAdmin.jsp

@@ -167,8 +167,9 @@ var getHead = { getUserHead : function(){
 		if(rowstrlist != "") {
 			rowstr = "<tr><th rowspan='2'>全选<b class=\"dd_choose all\" wade=\"all\" onclick=\"confirmUser(this)\"></b></th>";
 			
-			rowstrlist +=  "<th colspan='2'>操作</th></tr>";
-			rowstrlist +=  "<tr><th>审核岗</th>"
+			rowstrlist +=  "<th colspan='3'>操作</th></tr>";
+            rowstrlist +=  "<tr><th>实名认证审核岗</th>";
+			rowstrlist +=  "<th>审核岗</th>";
 			rowstrlist +=  "<th>存储</th></tr>";
 		}
 		
@@ -205,6 +206,11 @@ var getListContext = { getUserList : function(obj){
 	
 	if(rowstrlist != "") {
 		rowstr += "<tr><td><b class=\"dd_choose\" wade=\""+obj.id+"\" onclick=\"confirmUser(this)\"></b></td>";
+        if(obj.ifCertification == "1") {
+            rowstrlist += "<td><input onclick=\"QrLoginCertification('" + obj.userAccount + "','" + obj.userWxh + "')\" style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" checked=\"checked\" value='1' />是<input style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" value='0' />否</td>";
+        } else {
+            rowstrlist += "<td><input onclick=\"QrLoginCertification('" + obj.userAccount + "','" + obj.userWxh + "')\" style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" value='1' />是<input style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" checked=\"checked\" value='0' />否</td>";
+        }
 		if(obj.isAudit == "1") {
 			rowstrlist += "<td><input onclick=\"QrLogin('" + obj.userAccount + "','" + obj.userWxh + "')\" style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"isAudit_" + obj.id + "\" checked=\"checked\" value='1' />是<input style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"isAudit_" + obj.id + "\" value='0' />否</td>";
 		} else {

+ 8 - 2
src/main/webapp/WEB-INF/views/user/agentUserListForAgent.jsp

@@ -141,8 +141,9 @@ var getHead = { getUserHead : function(){
 		if(rowstrlist != "") {
 			rowstr = "<tr><th rowspan='2'>全选<b class=\"dd_choose all\" wade=\"all\" onclick=\"confirmUser(this)\"></b></th>";
 			
-			rowstrlist +=  "<th colspan='2'>操作</th></tr>";
-			rowstrlist +=  "<tr><th>审核岗</th>"
+			rowstrlist +=  "<th colspan='3'>操作</th></tr>";
+            rowstrlist +=  "<tr><th>实名认证审核岗</th>";
+			rowstrlist +=  "<th>审核岗</th>";
 			rowstrlist +=  "<th>存储</th></tr>";
 		}
 		
@@ -172,6 +173,11 @@ var getListContext = { getUserList : function(obj){
 	
 	if(rowstrlist != "") {
 		rowstr += "<tr><td><b class=\"dd_choose\" wade=\""+obj.id+"\" onclick=\"confirmUser(this)\"></b></td>";
+        if(obj.ifCertification == "1") {
+            rowstrlist += "<td><input onclick=\"QrLoginCertification('" + obj.userAccount + "','" + obj.userWxh + "')\" style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" checked=\"checked\" value='1' />是<input style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" value='0' />否</td>";
+        } else {
+            rowstrlist += "<td><input onclick=\"QrLoginCertification('" + obj.userAccount + "','" + obj.userWxh + "')\" style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" value='1' />是<input style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"ifCertification_" + obj.id + "\" checked=\"checked\" value='0' />否</td>";
+        }
 		if(obj.isAudit == "1") {
 			rowstrlist += "<td><input onclick=\"QrLogin('" + obj.userAccount + "','" + obj.userWxh + "')\" style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"isAudit_" + obj.id + "\" checked=\"checked\" value='1' />是<input style=\"margin:-2px 4px 1px 0;vertical-align:middle;\" type=\"radio\" name=\"isAudit_" + obj.id + "\" value='0' />否</td>";
 		} else {

BIN
src/main/webapp/menuicon/agree.png


BIN
src/main/webapp/menuicon/certification.png


BIN
src/main/webapp/menuicon/palyBill.png


BIN
src/main/webapp/menuicon/timg_2.png


+ 32 - 2
src/main/webapp/resources/js/audit/audit.js

@@ -190,7 +190,7 @@ function showAuditDetail(auditId){
 /**
  * 查询置换信息
  */
- function queryAudit(auditId){
+ function queryAudit(auditId){console.log("=====1");
 	$.ajax({
 		url:ctx+'/auditDetail/getAudit.do',
 		type:'post',
@@ -203,6 +203,29 @@ function showAuditDetail(auditId){
 			}else{
 				$("#id").val(auditBean.id);
 				$("#upType").val(auditBean.upType);
+				var type=auditBean.agentRule.split(",");
+				console.log("====="+type.length);
+				for(var i=0;i<type.length;i++){
+                    console.log("====="+type[i]);
+					if("1"==type[i]){
+						$("#agent_rule_type").append('<input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="upType1" name="upType" checked="checked" value="1"/>置换报价')
+					}
+                    if("2"==type[i]){
+                        $("#agent_rule_type").append('<input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="upType2" name="upType" checked="checked" value="2"/>网络竞销')
+                    }
+                    if("3"==type[i]){
+                        $("#agent_rule_type").append('<input style="margin:-2px 4px 1px 0;vertical-align:middle;width:20px;" type="radio" id="upType3" name="upType" checked="checked" value="3"/>一口价秒杀')
+                    }
+                    if(i==type.length-1){
+                    	if(type[i]!=3){
+                            $("#hide1").hide();
+							$("#hide2").show();
+						}else{
+                    		$("#hide1").show();
+                            $("#hide2").hide();
+						}
+					}
+				}
 				$("#bail").val(auditBean.bail);
 				$("#minMoney").val(auditBean.minMoney);
 				$("#moneyRange").val(auditBean.moneyRange);
@@ -226,7 +249,14 @@ function showAuditDetail(auditId){
 				if(auditBean.isAttent!='1'){
 					$(".agentInfo").hide();
 				}
-				$("#sbmc").val(auditBean.attrContent['sbpp']+" "+auditBean.attrContent['sbxh']+" "+auditBean.attrContent['sblx']);
+				console.log("====="+auditBean.minPrice);
+				$("#minPrice").val(auditBean.minPrice);
+                $("#maxPrice").val(auditBean.maxPrice);
+                $("#persistPrice").val(auditBean.persistPrice);
+
+                $('input[name=is_good][value=' + auditBean.is_good + ']').attr('checked', 'checked');
+
+                $("#sbmc").val(auditBean.attrContent['sbpp']+" "+auditBean.attrContent['sbxh']+" "+auditBean.attrContent['sblx']);
 				tanKuang($("#tcbox3"));
 			}
 		},

+ 9 - 1
src/main/webapp/resources/js/audit/sinceAudit.js

@@ -143,7 +143,7 @@ function showAuditDetail(auditId){
 /**
  * 查询置换信息
  */
-function queryAudit(auditId){
+function queryAudit(auditId){console.log("=====2");
     $.ajax({
         url:ctx+'/auditDetail/getAudit.do',
         type:'post',
@@ -179,6 +179,14 @@ function queryAudit(auditId){
                 if(auditBean.isAttent!='1'){
                     $(".agentInfo").hide();
                 }
+
+                console.log("====="+auditBean.minPrice);
+                $("#minPrice").val(auditBean.minPrice);
+                $("#maxPrice").val(auditBean.maxPrice);
+                $("#persistPrice").val(auditBean.persistPrice);
+
+                $('input[name=is_good][value=' + auditBean.is_good + ']').attr('checked', 'checked');
+
                 $("#sbmc").val(auditBean.attrContent['sbpp']+" "+auditBean.attrContent['sbxh']+" "+auditBean.attrContent['sblx']);
                 tanKuang($("#tcbox3"));
             }

+ 1 - 1
src/main/webapp/resources/js/index.js

@@ -1,6 +1,6 @@
 //弹框动画
 function tanKuang(class1){
-    setTimeout(function(){
+    setTimeout(function(){alert($(".sharebg").length);
         class1.addClass("am-acti-active");  
         if($(".sharebg").length>0){
             $(".sharebg").addClass("sharebg-active");       

+ 9 - 0
src/main/webapp/resources/js/shop/shop.js

@@ -173,6 +173,7 @@ function sureEditShop(id) {
 	      async: false,
 	      dataType: "json",
 	      success: function(data){
+	      	console.log("====="+JSON.stringify(data));
 	    	 // alert(data.message);
 	    	  if(data.code == '000000') {
 	    		  var obj = data.result;
@@ -185,6 +186,14 @@ function sureEditShop(id) {
 	    			 $("#outletId").val(obj.outletId);
 	    			 $("#saleNum").val(obj.saleNum);
 	    			 $('input[name=agentType][value=' + obj.agentType + ']').attr('checked', 'checked');
+	    			 var checkboxStr=obj.agentRule.split(",");
+	    			 console.log("obj.agentRule======"+obj.agentRule);
+                      $('input[name=agentRule][value=' + 1 + ']').attr('checked', false);
+                      $('input[name=agentRule][value=' + 2 + ']').attr('checked', false);
+                      $('input[name=agentRule][value=' + 3 + ']').attr('checked', false);
+	    			 for(var i=0;i<checkboxStr.length;i++){
+                         $('input[name=agentRule][value=' + checkboxStr[i] + ']').attr('checked', 'checked');
+					 }
 	    			 $('#priceFeedback').val(obj.priceFeedback);
 	    			 $('#agentFeedback').val(obj.agentFeedback);
 	    			 $("#pubName").val(obj.pubName);

+ 6 - 0
src/main/webapp/resources/js/user/adminUserForAdmin.js

@@ -102,6 +102,12 @@ function QrLogin(userAccount, wxh) {
     tanKuang($('#brandtc'));
 }
 
+function QrLoginCertification(userAccount, wxh) {
+    var url = result + ctx + "/wx/wxlogin.do?userAccount=" + userAccount+"&type=Certification";
+
+    qrcode.makeCode(url);
+    tanKuang($('#brandtc'));
+}
 /**
  * 全选
  */

+ 1 - 0
src/main/webapp/resources/js/user/adminUserForSuperAdmin.js

@@ -179,6 +179,7 @@ function save(obj, userAccount) {
 		data : {
 			'userAccount' : userAccount,
 			'isAudit' : isAudit,
+            'ifCertification' : ifCertification,
             'isUp' : isUp,
 			'isAudits' : isAudits,
 			'isOffer' : isOffer,

+ 14 - 2
src/main/webapp/resources/js/user/agentUserForAdmin.js

@@ -148,8 +148,11 @@ function save(obj, userAccount) {
 	
 	// 1、获取isAudit
 	var isAudit = $('input:radio[name="isAudit_'+obj+'"]:checked').val();
-	
-	// 2、获取isAudits
+
+    var ifCertification = $('input:radio[name="ifCertification_'+obj+'"]:checked').val();
+
+
+    // 2、获取isAudits
 	var isAudits = $('input:radio[name="isAudits_'+obj+'"]:checked').val();
 	
 	// 3、获取isOffer(报价)
@@ -173,6 +176,7 @@ function save(obj, userAccount) {
 		dataType : 'json',
 		data : {
 			'userAccount' : userAccount,
+            'ifCertification' : ifCertification,
 			'isAudit' : isAudit,
 			'isAudits' : isAudits,
 			'isOffer' : isOffer,
@@ -289,6 +293,14 @@ function QrLogin(userAccount, wxh) {
 }
 
 
+
+function QrLoginCertification(userAccount, wxh) {
+    var url = result + ctx + "/wx/wxlogin.do?userAccount=" + userAccount+"&type=Certification";
+
+    qrcode.makeCode(url);
+    tanKuang($('#brandtc'));
+}
+
 //新建账号
 function addUser() {
 	// 姓名

+ 11 - 0
src/main/webapp/resources/js/user/agentUserForAgent.js

@@ -148,6 +148,9 @@ function save(obj, userAccount) {
 	
 	// 1、获取isAudit
 	var isAudit = $('input:radio[name="isAudit_'+obj+'"]:checked').val();
+
+    // 1、获取isAudit
+    var ifCertification = $('input:radio[name="ifCertification_'+obj+'"]:checked').val();
 	
 	// 2、获取isAudits
 	var isAudits = $('input:radio[name="isAudits_'+obj+'"]:checked').val();
@@ -172,6 +175,7 @@ function save(obj, userAccount) {
 		type : 'post',
 		dataType : 'json',
 		data : {
+			'ifCertification' : ifCertification,
 			'userAccount' : userAccount,
 			'isAudit' : isAudit,
 			'isAudits' : isAudits,
@@ -289,6 +293,13 @@ function QrLogin(userAccount, wxh) {
 }
 
 
+function QrLoginCertification(userAccount, wxh) {
+    var url = result + ctx + "/wx/wxlogin.do?userAccount=" + userAccount+"&type=Certification";
+
+    qrcode.makeCode(url);
+    tanKuang($('#brandtc'));
+}
+
 //新建账号
 function addUser() {
 	// 姓名

+ 5 - 1
src/main/webapp/resources/js/user/agentUserForSuperAdmin.js

@@ -149,7 +149,9 @@ function save(obj, userAccount) {
 	
 	// 1、获取isAudit
 	var isAudit = $('input:radio[name="isAudit_'+obj+'"]:checked').val();
-	
+
+    var ifCertification = $('input:radio[name="ifCertification_'+obj+'"]:checked').val();
+
 	// 2、获取isAudits
 	var isAudits = $('input:radio[name="isAudits_'+obj+'"]:checked').val();
 	
@@ -175,6 +177,7 @@ function save(obj, userAccount) {
 		data : {
 			'userAccount' : userAccount,
 			'isAudit' : isAudit,
+            'ifCertification' : ifCertification,
 			'isAudits' : isAudits,
 			'isOffer' : isOffer,
 			'isDeposit' : isDeposit,
@@ -290,6 +293,7 @@ function QrLogin(userAccount, wxh) {
 }
 
 
+
 //新建账号
 function addUser() {
 	// 姓名

+ 12 - 2
src/main/webapp/resources/js/user/user.js

@@ -148,8 +148,11 @@ function save(obj, userAccount) {
 	
 	// 1、获取isAudit
 	var isAudit = $('input:radio[name="isAudit_'+obj+'"]:checked').val();
-	
-	// 2、获取isAudits
+
+    var ifCertification = $('input:radio[name="ifCertification_'+obj+'"]:checked').val();
+
+
+    // 2、获取isAudits
 	var isAudits = $('input:radio[name="isAudits_'+obj+'"]:checked').val();
 	
 	// 3、获取isOffer(报价)
@@ -174,6 +177,7 @@ function save(obj, userAccount) {
 		data : {
 			'userAccount' : userAccount,
 			'isAudit' : isAudit,
+            'ifCertification' : ifCertification,
 			'isAudits' : isAudits,
 			'isOffer' : isOffer,
 			'isDeposit' : isDeposit,
@@ -288,6 +292,12 @@ function QrLogin(userAccount, wxh) {
 	tanKuang($('#brandtc'));
 }
 
+function QrLoginCertification(userAccount, wxh) {
+    var url = result + ctx + "/wx/wxlogin.do?userAccount=" + userAccount+"&type=Certification";
+
+    qrcode.makeCode(url);
+    tanKuang($('#brandtc'));
+}
 
 //新建账号
 function addUser() {

BIN
src/main/webapp/ueditor/.DS_Store


+ 40 - 0
src/main/webapp/ueditor/dialogs/anchor/anchor.html

@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+    "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+        <title></title>
+        <style type="text/css">
+            *{color: #838383;margin: 0;padding: 0}
+            html,body {font-size: 12px;overflow: hidden; }
+            .content{padding:5px 0 0 15px;}
+            input{width:210px;height:21px;line-height:21px;margin-left: 4px;}
+        </style>
+    </head>
+    <body>
+        <div class="content">
+            <span><var id="lang_input_anchorName"></var></span><input id="anchorName"  value="" />
+        </div>
+        <script type="text/javascript" src="../internal.js"></script>
+        <script type="text/javascript">
+            var anchorInput = $G('anchorName'),
+                node = editor.selection.getRange().getClosedNode();
+            if(node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))){
+                anchorInput.value = node;
+            }
+            anchorInput.onkeydown = function(evt){
+                evt = evt || window.event;
+                if(evt.keyCode == 13){
+                    editor.execCommand('anchor', anchorInput.value);
+                    dialog.close();
+                    domUtils.preventDefault(evt)
+                }
+            };
+            dialog.onok = function (){
+                editor.execCommand('anchor', anchorInput.value);
+                dialog.close();
+            };
+            $focus(anchorInput);
+        </script>
+    </body>
+</html>

+ 681 - 0
src/main/webapp/ueditor/dialogs/attachment/attachment.css

@@ -0,0 +1,681 @@
+@charset "utf-8";
+/* dialog样式 */
+.wrapper {
+    zoom: 1;
+    width: 630px;
+    *width: 626px;
+    height: 380px;
+    margin: 0 auto;
+    padding: 10px;
+    position: relative;
+    font-family: sans-serif;
+}
+
+/*tab样式框大小*/
+.tabhead {
+    float:left;
+}
+.tabbody {
+    width: 100%;
+    height: 346px;
+    position: relative;
+    clear: both;
+}
+
+.tabbody .panel {
+    position: absolute;
+    width: 0;
+    height: 0;
+    background: #fff;
+    overflow: hidden;
+    display: none;
+}
+
+.tabbody .panel.focus {
+    width: 100%;
+    height: 346px;
+    display: block;
+}
+
+/* 上传附件 */
+.tabbody #upload.panel {
+    width: 0;
+    height: 0;
+    overflow: hidden;
+    position: absolute !important;
+    clip: rect(1px, 1px, 1px, 1px);
+    background: #fff;
+    display: block;
+}
+
+.tabbody #upload.panel.focus {
+    width: 100%;
+    height: 346px;
+    display: block;
+    clip: auto;
+}
+
+#upload .queueList {
+    margin: 0;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    overflow: hidden;
+}
+
+#upload p {
+    margin: 0;
+}
+
+.element-invisible {
+    width: 0 !important;
+    height: 0 !important;
+    border: 0;
+    padding: 0;
+    margin: 0;
+    overflow: hidden;
+    position: absolute !important;
+    clip: rect(1px, 1px, 1px, 1px);
+}
+
+#upload .placeholder {
+    margin: 10px;
+    border: 2px dashed #e6e6e6;
+    *border: 0px dashed #e6e6e6;
+    height: 172px;
+    padding-top: 150px;
+    text-align: center;
+    background: url(./images/image.png) center 70px no-repeat;
+    color: #cccccc;
+    font-size: 18px;
+    position: relative;
+    top:0;
+    *top: 10px;
+}
+
+#upload .placeholder .webuploader-pick {
+    font-size: 18px;
+    background: #00b7ee;
+    border-radius: 3px;
+    line-height: 44px;
+    padding: 0 30px;
+    *width: 120px;
+    color: #fff;
+    display: inline-block;
+    margin: 0 auto 20px auto;
+    cursor: pointer;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+#upload .placeholder .webuploader-pick-hover {
+    background: #00a2d4;
+}
+
+
+#filePickerContainer {
+    text-align: center;
+}
+
+#upload .placeholder .flashTip {
+    color: #666666;
+    font-size: 12px;
+    position: absolute;
+    width: 100%;
+    text-align: center;
+    bottom: 20px;
+}
+
+#upload .placeholder .flashTip a {
+    color: #0785d1;
+    text-decoration: none;
+}
+
+#upload .placeholder .flashTip a:hover {
+    text-decoration: underline;
+}
+
+#upload .placeholder.webuploader-dnd-over {
+    border-color: #999999;
+}
+
+#upload .filelist {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+    overflow-x: hidden;
+    overflow-y: auto;
+    position: relative;
+    height: 300px;
+}
+
+#upload .filelist:after {
+    content: '';
+    display: block;
+    width: 0;
+    height: 0;
+    overflow: hidden;
+    clear: both;
+}
+
+#upload .filelist li {
+    width: 113px;
+    height: 113px;
+    background: url(./images/bg.png);
+    text-align: center;
+    margin: 9px 0 0 9px;
+    *margin: 6px 0 0 6px;
+    position: relative;
+    display: block;
+    float: left;
+    overflow: hidden;
+    font-size: 12px;
+}
+
+#upload .filelist li p.log {
+    position: relative;
+    top: -45px;
+}
+
+#upload .filelist li p.title {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    top: 5px;
+    text-indent: 5px;
+    text-align: left;
+}
+
+#upload .filelist li p.progress {
+    position: absolute;
+    width: 100%;
+    bottom: 0;
+    left: 0;
+    height: 8px;
+    overflow: hidden;
+    z-index: 50;
+    margin: 0;
+    border-radius: 0;
+    background: none;
+    -webkit-box-shadow: 0 0 0;
+}
+
+#upload .filelist li p.progress span {
+    display: none;
+    overflow: hidden;
+    width: 0;
+    height: 100%;
+    background: #1483d8 url(./images/progress.png) repeat-x;
+
+    -webit-transition: width 200ms linear;
+    -moz-transition: width 200ms linear;
+    -o-transition: width 200ms linear;
+    -ms-transition: width 200ms linear;
+    transition: width 200ms linear;
+
+    -webkit-animation: progressmove 2s linear infinite;
+    -moz-animation: progressmove 2s linear infinite;
+    -o-animation: progressmove 2s linear infinite;
+    -ms-animation: progressmove 2s linear infinite;
+    animation: progressmove 2s linear infinite;
+
+    -webkit-transform: translateZ(0);
+}
+
+@-webkit-keyframes progressmove {
+    0% {
+        background-position: 0 0;
+    }
+    100% {
+        background-position: 17px 0;
+    }
+}
+
+@-moz-keyframes progressmove {
+    0% {
+        background-position: 0 0;
+    }
+    100% {
+        background-position: 17px 0;
+    }
+}
+
+@keyframes progressmove {
+    0% {
+        background-position: 0 0;
+    }
+    100% {
+        background-position: 17px 0;
+    }
+}
+
+#upload .filelist li p.imgWrap {
+    position: relative;
+    z-index: 2;
+    line-height: 113px;
+    vertical-align: middle;
+    overflow: hidden;
+    width: 113px;
+    height: 113px;
+
+    -webkit-transform-origin: 50% 50%;
+    -moz-transform-origin: 50% 50%;
+    -o-transform-origin: 50% 50%;
+    -ms-transform-origin: 50% 50%;
+    transform-origin: 50% 50%;
+
+    -webit-transition: 200ms ease-out;
+    -moz-transition: 200ms ease-out;
+    -o-transition: 200ms ease-out;
+    -ms-transition: 200ms ease-out;
+    transition: 200ms ease-out;
+}
+#upload .filelist li p.imgWrap.notimage {
+    margin-top: 0;
+    width: 111px;
+    height: 111px;
+    border: 1px #eeeeee solid;
+}
+#upload .filelist li p.imgWrap.notimage i.file-preview {
+    margin-top: 15px;
+}
+
+#upload .filelist li img {
+    width: 100%;
+}
+
+#upload .filelist li p.error {
+    background: #f43838;
+    color: #fff;
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    height: 28px;
+    line-height: 28px;
+    width: 100%;
+    z-index: 100;
+    display:none;
+}
+
+#upload .filelist li .success {
+    display: block;
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    height: 40px;
+    width: 100%;
+    z-index: 200;
+    background: url(./images/success.png) no-repeat right bottom;
+    background-image: url(./images/success.gif) \9;
+}
+
+#upload .filelist li.filePickerBlock {
+    width: 113px;
+    height: 113px;
+    background: url(./images/image.png) no-repeat center 12px;
+    border: 1px solid #eeeeee;
+    border-radius: 0;
+}
+#upload .filelist li.filePickerBlock div.webuploader-pick  {
+    width: 100%;
+    height: 100%;
+    margin: 0;
+    padding: 0;
+    opacity: 0;
+    background: none;
+    font-size: 0;
+}
+
+#upload .filelist div.file-panel {
+    position: absolute;
+    height: 0;
+    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
+    background: rgba(0, 0, 0, 0.5);
+    width: 100%;
+    top: 0;
+    left: 0;
+    overflow: hidden;
+    z-index: 300;
+}
+
+#upload .filelist div.file-panel span {
+    width: 24px;
+    height: 24px;
+    display: inline;
+    float: right;
+    text-indent: -9999px;
+    overflow: hidden;
+    background: url(./images/icons.png) no-repeat;
+    background: url(./images/icons.gif) no-repeat \9;
+    margin: 5px 1px 1px;
+    cursor: pointer;
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+#upload .filelist div.file-panel span.rotateLeft {
+    display:none;
+    background-position: 0 -24px;
+}
+
+#upload .filelist div.file-panel span.rotateLeft:hover {
+    background-position: 0 0;
+}
+
+#upload .filelist div.file-panel span.rotateRight {
+    display:none;
+    background-position: -24px -24px;
+}
+
+#upload .filelist div.file-panel span.rotateRight:hover {
+    background-position: -24px 0;
+}
+
+#upload .filelist div.file-panel span.cancel {
+    background-position: -48px -24px;
+}
+
+#upload .filelist div.file-panel span.cancel:hover {
+    background-position: -48px 0;
+}
+
+#upload .statusBar {
+    height: 45px;
+    border-bottom: 1px solid #dadada;
+    margin: 0 10px;
+    padding: 0;
+    line-height: 45px;
+    vertical-align: middle;
+    position: relative;
+}
+
+#upload .statusBar .progress {
+    border: 1px solid #1483d8;
+    width: 198px;
+    background: #fff;
+    height: 18px;
+    position: absolute;
+    top: 12px;
+    display: none;
+    text-align: center;
+    line-height: 18px;
+    color: #6dbfff;
+    margin: 0 10px 0 0;
+}
+#upload .statusBar .progress span.percentage {
+    width: 0;
+    height: 100%;
+    left: 0;
+    top: 0;
+    background: #1483d8;
+    position: absolute;
+}
+#upload .statusBar .progress span.text {
+    position: relative;
+    z-index: 10;
+}
+
+#upload .statusBar .info {
+    display: inline-block;
+    font-size: 14px;
+    color: #666666;
+}
+
+#upload .statusBar .btns {
+    position: absolute;
+    top: 7px;
+    right: 0;
+    line-height: 30px;
+}
+
+#filePickerBtn {
+    display: inline-block;
+    float: left;
+}
+#upload .statusBar .btns .webuploader-pick,
+#upload .statusBar .btns .uploadBtn,
+#upload .statusBar .btns .uploadBtn.state-uploading,
+#upload .statusBar .btns .uploadBtn.state-paused {
+    background: #ffffff;
+    border: 1px solid #cfcfcf;
+    color: #565656;
+    padding: 0 18px;
+    display: inline-block;
+    border-radius: 3px;
+    margin-left: 10px;
+    cursor: pointer;
+    font-size: 14px;
+    float: left;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+#upload .statusBar .btns .webuploader-pick-hover,
+#upload .statusBar .btns .uploadBtn:hover,
+#upload .statusBar .btns .uploadBtn.state-uploading:hover,
+#upload .statusBar .btns .uploadBtn.state-paused:hover {
+    background: #f0f0f0;
+}
+
+#upload .statusBar .btns .uploadBtn,
+#upload .statusBar .btns .uploadBtn.state-paused{
+    background: #00b7ee;
+    color: #fff;
+    border-color: transparent;
+}
+#upload .statusBar .btns .uploadBtn:hover,
+#upload .statusBar .btns .uploadBtn.state-paused:hover{
+    background: #00a2d4;
+}
+
+#upload .statusBar .btns .uploadBtn.disabled {
+    pointer-events: none;
+    filter:alpha(opacity=60);
+    -moz-opacity:0.6;
+    -khtml-opacity: 0.6;
+    opacity: 0.6;
+}
+
+
+
+/* 图片管理样式 */
+#online {
+    width: 100%;
+    height: 336px;
+    padding: 10px 0 0 0;
+}
+#online #fileList{
+    width: 100%;
+    height: 100%;
+    overflow-x: hidden;
+    overflow-y: auto;
+    position: relative;
+}
+#online ul {
+    display: block;
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+#online li {
+    float: left;
+    display: block;
+    list-style: none;
+    padding: 0;
+    width: 113px;
+    height: 113px;
+    margin: 0 0 9px 9px;
+    *margin: 0 0 6px 6px;
+    background-color: #eee;
+    overflow: hidden;
+    cursor: pointer;
+    position: relative;
+}
+#online li.clearFloat {
+    float: none;
+    clear: both;
+    display: block;
+    width:0;
+    height:0;
+    margin: 0;
+    padding: 0;
+}
+#online li img {
+    cursor: pointer;
+}
+#online li div.file-wrapper {
+    cursor: pointer;
+    position: absolute;
+    display: block;
+    width: 111px;
+    height: 111px;
+    border: 1px solid #eee;
+    background: url("./images/bg.png") repeat;
+}
+#online li div span.file-title{
+    display: block;
+    padding: 0 3px;
+    margin: 3px 0 0 0;
+    font-size: 12px;
+    height: 13px;
+    color: #555555;
+    text-align: center;
+    width: 107px;
+    white-space: nowrap;
+    word-break: break-all;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+#online li .icon {
+    cursor: pointer;
+    width: 113px;
+    height: 113px;
+    position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 2;
+    border: 0;
+    background-repeat: no-repeat;
+}
+#online li .icon:hover {
+    width: 107px;
+    height: 107px;
+    border: 3px solid #1094fa;
+}
+#online li.selected .icon {
+    background-image: url(images/success.png);
+    background-image: url(images/success.gif) \9;
+    background-position: 75px 75px;
+}
+#online li.selected .icon:hover {
+    width: 107px;
+    height: 107px;
+    border: 3px solid #1094fa;
+    background-position: 72px 72px;
+}
+
+
+/* 在线文件的文件预览图标 */
+i.file-preview {
+    display: block;
+    margin: 10px auto;
+    width: 70px;
+    height: 70px;
+    background-image: url("./images/file-icons.png");
+    background-image: url("./images/file-icons.gif") \9;
+    background-position: -140px center;
+    background-repeat: no-repeat;
+}
+i.file-preview.file-type-dir{
+    background-position: 0 center;
+}
+i.file-preview.file-type-file{
+    background-position: -140px center;
+}
+i.file-preview.file-type-filelist{
+    background-position: -210px center;
+}
+i.file-preview.file-type-zip,
+i.file-preview.file-type-rar,
+i.file-preview.file-type-7z,
+i.file-preview.file-type-tar,
+i.file-preview.file-type-gz,
+i.file-preview.file-type-bz2{
+    background-position: -280px center;
+}
+i.file-preview.file-type-xls,
+i.file-preview.file-type-xlsx{
+    background-position: -350px center;
+}
+i.file-preview.file-type-doc,
+i.file-preview.file-type-docx{
+    background-position: -420px center;
+}
+i.file-preview.file-type-ppt,
+i.file-preview.file-type-pptx{
+    background-position: -490px center;
+}
+i.file-preview.file-type-vsd{
+    background-position: -560px center;
+}
+i.file-preview.file-type-pdf{
+    background-position: -630px center;
+}
+i.file-preview.file-type-txt,
+i.file-preview.file-type-md,
+i.file-preview.file-type-json,
+i.file-preview.file-type-htm,
+i.file-preview.file-type-xml,
+i.file-preview.file-type-html,
+i.file-preview.file-type-js,
+i.file-preview.file-type-css,
+i.file-preview.file-type-php,
+i.file-preview.file-type-jsp,
+i.file-preview.file-type-asp{
+    background-position: -700px center;
+}
+i.file-preview.file-type-apk{
+    background-position: -770px center;
+}
+i.file-preview.file-type-exe{
+    background-position: -840px center;
+}
+i.file-preview.file-type-ipa{
+    background-position: -910px center;
+}
+i.file-preview.file-type-mp4,
+i.file-preview.file-type-swf,
+i.file-preview.file-type-mkv,
+i.file-preview.file-type-avi,
+i.file-preview.file-type-flv,
+i.file-preview.file-type-mov,
+i.file-preview.file-type-mpg,
+i.file-preview.file-type-mpeg,
+i.file-preview.file-type-ogv,
+i.file-preview.file-type-webm,
+i.file-preview.file-type-rm,
+i.file-preview.file-type-rmvb{
+    background-position: -980px center;
+}
+i.file-preview.file-type-ogg,
+i.file-preview.file-type-wav,
+i.file-preview.file-type-wmv,
+i.file-preview.file-type-mid,
+i.file-preview.file-type-mp3{
+    background-position: -1050px center;
+}
+i.file-preview.file-type-jpg,
+i.file-preview.file-type-jpeg,
+i.file-preview.file-type-gif,
+i.file-preview.file-type-bmp,
+i.file-preview.file-type-png,
+i.file-preview.file-type-psd{
+    background-position: -140px center;
+}

+ 60 - 0
src/main/webapp/ueditor/dialogs/attachment/attachment.html

@@ -0,0 +1,60 @@
+<!doctype html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title>ueditor图片对话框</title>
+    <script type="text/javascript" src="../internal.js"></script>
+
+    <!-- jquery -->
+    <script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
+
+    <!-- webuploader -->
+    <script src="../../third-party/webuploader/webuploader.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
+
+    <!-- attachment dialog -->
+    <link rel="stylesheet" href="attachment.css" type="text/css" />
+</head>
+<body>
+
+    <div class="wrapper">
+        <div id="tabhead" class="tabhead">
+            <span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
+            <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
+        </div>
+        <div id="tabbody" class="tabbody">
+            <!-- 上传图片 -->
+            <div id="upload" class="panel focus">
+                <div id="queueList" class="queueList">
+                    <div class="statusBar element-invisible">
+                        <div class="progress">
+                            <span class="text">0%</span>
+                            <span class="percentage"></span>
+                        </div><div class="info"></div>
+                        <div class="btns">
+                            <div id="filePickerBtn"></div>
+                            <div class="uploadBtn"><var id="lang_start_upload"></var></div>
+                        </div>
+                    </div>
+                    <div id="dndArea" class="placeholder">
+                        <div class="filePickerContainer">
+                            <div id="filePickerReady"></div>
+                        </div>
+                    </div>
+                    <ul class="filelist element-invisible">
+                        <li id="filePickerBlock" class="filePickerBlock"></li>
+                    </ul>
+                </div>
+            </div>
+
+            <!-- 在线图片 -->
+            <div id="online" class="panel">
+                <div id="fileList"><var id="lang_imgLoading"></var></div>
+            </div>
+
+        </div>
+    </div>
+    <script type="text/javascript" src="attachment.js"></script>
+
+</body>
+</html>

+ 754 - 0
src/main/webapp/ueditor/dialogs/attachment/attachment.js

@@ -0,0 +1,754 @@
+/**
+ * User: Jinqn
+ * Date: 14-04-08
+ * Time: 下午16:34
+ * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片
+ */
+
+(function () {
+
+    var uploadFile,
+        onlineFile;
+
+    window.onload = function () {
+        initTabs();
+        initButtons();
+    };
+
+    /* 初始化tab标签 */
+    function initTabs() {
+        var tabs = $G('tabhead').children;
+        for (var i = 0; i < tabs.length; i++) {
+            domUtils.on(tabs[i], "click", function (e) {
+                var target = e.target || e.srcElement;
+                setTabFocus(target.getAttribute('data-content-id'));
+            });
+        }
+
+        setTabFocus('upload');
+    }
+
+    /* 初始化tabbody */
+    function setTabFocus(id) {
+        if(!id) return;
+        var i, bodyId, tabs = $G('tabhead').children;
+        for (i = 0; i < tabs.length; i++) {
+            bodyId = tabs[i].getAttribute('data-content-id')
+            if (bodyId == id) {
+                domUtils.addClass(tabs[i], 'focus');
+                domUtils.addClass($G(bodyId), 'focus');
+            } else {
+                domUtils.removeClasses(tabs[i], 'focus');
+                domUtils.removeClasses($G(bodyId), 'focus');
+            }
+        }
+        switch (id) {
+            case 'upload':
+                uploadFile = uploadFile || new UploadFile('queueList');
+                break;
+            case 'online':
+                onlineFile = onlineFile || new OnlineFile('fileList');
+                break;
+        }
+    }
+
+    /* 初始化onok事件 */
+    function initButtons() {
+
+        dialog.onok = function () {
+            var list = [], id, tabs = $G('tabhead').children;
+            for (var i = 0; i < tabs.length; i++) {
+                if (domUtils.hasClass(tabs[i], 'focus')) {
+                    id = tabs[i].getAttribute('data-content-id');
+                    break;
+                }
+            }
+
+            switch (id) {
+                case 'upload':
+                    list = uploadFile.getInsertList();
+                    var count = uploadFile.getQueueCount();
+                    if (count) {
+                        $('.info', '#queueList').html('<span style="color:red;">' + '还有2个未上传文件'.replace(/[\d]/, count) + '</span>');
+                        return false;
+                    }
+                    break;
+                case 'online':
+                    list = onlineFile.getInsertList();
+                    break;
+            }
+
+            editor.execCommand('insertfile', list);
+        };
+    }
+
+
+    /* 上传附件 */
+    function UploadFile(target) {
+        this.$wrap = target.constructor == String ? $('#' + target) : $(target);
+        this.init();
+    }
+    UploadFile.prototype = {
+        init: function () {
+            this.fileList = [];
+            this.initContainer();
+            this.initUploader();
+        },
+        initContainer: function () {
+            this.$queue = this.$wrap.find('.filelist');
+        },
+        /* 初始化容器 */
+        initUploader: function () {
+            var _this = this,
+                $ = jQuery,    // just in case. Make sure it's not an other libaray.
+                $wrap = _this.$wrap,
+            // 图片容器
+                $queue = $wrap.find('.filelist'),
+            // 状态栏,包括进度和控制按钮
+                $statusBar = $wrap.find('.statusBar'),
+            // 文件总体选择信息。
+                $info = $statusBar.find('.info'),
+            // 上传按钮
+                $upload = $wrap.find('.uploadBtn'),
+            // 上传按钮
+                $filePickerBtn = $wrap.find('.filePickerBtn'),
+            // 上传按钮
+                $filePickerBlock = $wrap.find('.filePickerBlock'),
+            // 没选择文件之前的内容。
+                $placeHolder = $wrap.find('.placeholder'),
+            // 总体进度条
+                $progress = $statusBar.find('.progress').hide(),
+            // 添加的文件数量
+                fileCount = 0,
+            // 添加的文件总大小
+                fileSize = 0,
+            // 优化retina, 在retina下这个值是2
+                ratio = window.devicePixelRatio || 1,
+            // 缩略图大小
+                thumbnailWidth = 113 * ratio,
+                thumbnailHeight = 113 * ratio,
+            // 可能有pedding, ready, uploading, confirm, done.
+                state = '',
+            // 所有文件的进度信息,key为file id
+                percentages = {},
+                supportTransition = (function () {
+                    var s = document.createElement('p').style,
+                        r = 'transition' in s ||
+                            'WebkitTransition' in s ||
+                            'MozTransition' in s ||
+                            'msTransition' in s ||
+                            'OTransition' in s;
+                    s = null;
+                    return r;
+                })(),
+            // WebUploader实例
+                uploader,
+                actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')),
+                fileMaxSize = editor.getOpt('fileMaxSize'),
+                acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');;
+
+            if (!WebUploader.Uploader.support()) {
+                $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
+                return;
+            } else if (!editor.getOpt('fileActionName')) {
+                $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
+                return;
+            }
+
+            uploader = _this.uploader = WebUploader.create({
+                pick: {
+                    id: '#filePickerReady',
+                    label: lang.uploadSelectFile
+                },
+                swf: '../../third-party/webuploader/Uploader.swf',
+                server: actionUrl,
+                fileVal: editor.getOpt('fileFieldName'),
+                duplicate: true,
+                fileSingleSizeLimit: fileMaxSize,
+                compress: false
+            });
+            uploader.addButton({
+                id: '#filePickerBlock'
+            });
+            uploader.addButton({
+                id: '#filePickerBtn',
+                label: lang.uploadAddFile
+            });
+
+            setState('pedding');
+
+            // 当有文件添加进来时执行,负责view的创建
+            function addFile(file) {
+                var $li = $('<li id="' + file.id + '">' +
+                        '<p class="title">' + file.name + '</p>' +
+                        '<p class="imgWrap"></p>' +
+                        '<p class="progress"><span></span></p>' +
+                        '</li>'),
+
+                    $btns = $('<div class="file-panel">' +
+                        '<span class="cancel">' + lang.uploadDelete + '</span>' +
+                        '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
+                        '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
+                    $prgress = $li.find('p.progress span'),
+                    $wrap = $li.find('p.imgWrap'),
+                    $info = $('<p class="error"></p>').hide().appendTo($li),
+
+                    showError = function (code) {
+                        switch (code) {
+                            case 'exceed_size':
+                                text = lang.errorExceedSize;
+                                break;
+                            case 'interrupt':
+                                text = lang.errorInterrupt;
+                                break;
+                            case 'http':
+                                text = lang.errorHttp;
+                                break;
+                            case 'not_allow_type':
+                                text = lang.errorFileType;
+                                break;
+                            default:
+                                text = lang.errorUploadRetry;
+                                break;
+                        }
+                        $info.text(text).show();
+                    };
+
+                if (file.getStatus() === 'invalid') {
+                    showError(file.statusText);
+                } else {
+                    $wrap.text(lang.uploadPreview);
+                    if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) {
+                        $wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
+                        '<span class="file-title" title="' + file.name + '">' + file.name + '</span>');
+                    } else {
+                        if (browser.ie && browser.version <= 7) {
+                            $wrap.text(lang.uploadNoPreview);
+                        } else {
+                            uploader.makeThumb(file, function (error, src) {
+                                if (error || !src) {
+                                    $wrap.text(lang.uploadNoPreview);
+                                } else {
+                                    var $img = $('<img src="' + src + '">');
+                                    $wrap.empty().append($img);
+                                    $img.on('error', function () {
+                                        $wrap.text(lang.uploadNoPreview);
+                                    });
+                                }
+                            }, thumbnailWidth, thumbnailHeight);
+                        }
+                    }
+                    percentages[ file.id ] = [ file.size, 0 ];
+                    file.rotation = 0;
+
+                    /* 检查文件格式 */
+                    if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
+                        showError('not_allow_type');
+                        uploader.removeFile(file);
+                    }
+                }
+
+                file.on('statuschange', function (cur, prev) {
+                    if (prev === 'progress') {
+                        $prgress.hide().width(0);
+                    } else if (prev === 'queued') {
+                        $li.off('mouseenter mouseleave');
+                        $btns.remove();
+                    }
+                    // 成功
+                    if (cur === 'error' || cur === 'invalid') {
+                        showError(file.statusText);
+                        percentages[ file.id ][ 1 ] = 1;
+                    } else if (cur === 'interrupt') {
+                        showError('interrupt');
+                    } else if (cur === 'queued') {
+                        percentages[ file.id ][ 1 ] = 0;
+                    } else if (cur === 'progress') {
+                        $info.hide();
+                        $prgress.css('display', 'block');
+                    } else if (cur === 'complete') {
+                    }
+
+                    $li.removeClass('state-' + prev).addClass('state-' + cur);
+                });
+
+                $li.on('mouseenter', function () {
+                    $btns.stop().animate({height: 30});
+                });
+                $li.on('mouseleave', function () {
+                    $btns.stop().animate({height: 0});
+                });
+
+                $btns.on('click', 'span', function () {
+                    var index = $(this).index(),
+                        deg;
+
+                    switch (index) {
+                        case 0:
+                            uploader.removeFile(file);
+                            return;
+                        case 1:
+                            file.rotation += 90;
+                            break;
+                        case 2:
+                            file.rotation -= 90;
+                            break;
+                    }
+
+                    if (supportTransition) {
+                        deg = 'rotate(' + file.rotation + 'deg)';
+                        $wrap.css({
+                            '-webkit-transform': deg,
+                            '-mos-transform': deg,
+                            '-o-transform': deg,
+                            'transform': deg
+                        });
+                    } else {
+                        $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
+                    }
+
+                });
+
+                $li.insertBefore($filePickerBlock);
+            }
+
+            // 负责view的销毁
+            function removeFile(file) {
+                var $li = $('#' + file.id);
+                delete percentages[ file.id ];
+                updateTotalProgress();
+                $li.off().find('.file-panel').off().end().remove();
+            }
+
+            function updateTotalProgress() {
+                var loaded = 0,
+                    total = 0,
+                    spans = $progress.children(),
+                    percent;
+
+                $.each(percentages, function (k, v) {
+                    total += v[ 0 ];
+                    loaded += v[ 0 ] * v[ 1 ];
+                });
+
+                percent = total ? loaded / total : 0;
+
+                spans.eq(0).text(Math.round(percent * 100) + '%');
+                spans.eq(1).css('width', Math.round(percent * 100) + '%');
+                updateStatus();
+            }
+
+            function setState(val, files) {
+
+                if (val != state) {
+
+                    var stats = uploader.getStats();
+
+                    $upload.removeClass('state-' + state);
+                    $upload.addClass('state-' + val);
+
+                    switch (val) {
+
+                        /* 未选择文件 */
+                        case 'pedding':
+                            $queue.addClass('element-invisible');
+                            $statusBar.addClass('element-invisible');
+                            $placeHolder.removeClass('element-invisible');
+                            $progress.hide(); $info.hide();
+                            uploader.refresh();
+                            break;
+
+                        /* 可以开始上传 */
+                        case 'ready':
+                            $placeHolder.addClass('element-invisible');
+                            $queue.removeClass('element-invisible');
+                            $statusBar.removeClass('element-invisible');
+                            $progress.hide(); $info.show();
+                            $upload.text(lang.uploadStart);
+                            uploader.refresh();
+                            break;
+
+                        /* 上传中 */
+                        case 'uploading':
+                            $progress.show(); $info.hide();
+                            $upload.text(lang.uploadPause);
+                            break;
+
+                        /* 暂停上传 */
+                        case 'paused':
+                            $progress.show(); $info.hide();
+                            $upload.text(lang.uploadContinue);
+                            break;
+
+                        case 'confirm':
+                            $progress.show(); $info.hide();
+                            $upload.text(lang.uploadStart);
+
+                            stats = uploader.getStats();
+                            if (stats.successNum && !stats.uploadFailNum) {
+                                setState('finish');
+                                return;
+                            }
+                            break;
+
+                        case 'finish':
+                            $progress.hide(); $info.show();
+                            if (stats.uploadFailNum) {
+                                $upload.text(lang.uploadRetry);
+                            } else {
+                                $upload.text(lang.uploadStart);
+                            }
+                            break;
+                    }
+
+                    state = val;
+                    updateStatus();
+
+                }
+
+                if (!_this.getQueueCount()) {
+                    $upload.addClass('disabled')
+                } else {
+                    $upload.removeClass('disabled')
+                }
+
+            }
+
+            function updateStatus() {
+                var text = '', stats;
+
+                if (state === 'ready') {
+                    text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
+                } else if (state === 'confirm') {
+                    stats = uploader.getStats();
+                    if (stats.uploadFailNum) {
+                        text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
+                    }
+                } else {
+                    stats = uploader.getStats();
+                    text = lang.updateStatusFinish.replace('_', fileCount).
+                        replace('_KB', WebUploader.formatSize(fileSize)).
+                        replace('_', stats.successNum);
+
+                    if (stats.uploadFailNum) {
+                        text += lang.updateStatusError.replace('_', stats.uploadFailNum);
+                    }
+                }
+
+                $info.html(text);
+            }
+
+            uploader.on('fileQueued', function (file) {
+                fileCount++;
+                fileSize += file.size;
+
+                if (fileCount === 1) {
+                    $placeHolder.addClass('element-invisible');
+                    $statusBar.show();
+                }
+
+                addFile(file);
+            });
+
+            uploader.on('fileDequeued', function (file) {
+                fileCount--;
+                fileSize -= file.size;
+
+                removeFile(file);
+                updateTotalProgress();
+            });
+
+            uploader.on('filesQueued', function (file) {
+                if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
+                    setState('ready');
+                }
+                updateTotalProgress();
+            });
+
+            uploader.on('all', function (type, files) {
+                switch (type) {
+                    case 'uploadFinished':
+                        setState('confirm', files);
+                        break;
+                    case 'startUpload':
+                        /* 添加额外的GET参数 */
+                        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
+                            url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
+                        uploader.option('server', url);
+                        setState('uploading', files);
+                        break;
+                    case 'stopUpload':
+                        setState('paused', files);
+                        break;
+                }
+            });
+
+            uploader.on('uploadBeforeSend', function (file, data, header) {
+                //这里可以通过data对象添加POST参数
+                header['X_Requested_With'] = 'XMLHttpRequest';
+            });
+
+            uploader.on('uploadProgress', function (file, percentage) {
+                var $li = $('#' + file.id),
+                    $percent = $li.find('.progress span');
+
+                $percent.css('width', percentage * 100 + '%');
+                percentages[ file.id ][ 1 ] = percentage;
+                updateTotalProgress();
+            });
+
+            uploader.on('uploadSuccess', function (file, ret) {
+                var $file = $('#' + file.id);
+                try {
+                    var responseText = (ret._raw || ret),
+                        json = utils.str2json(responseText);
+                    if (json.state == 'SUCCESS') {
+                        _this.fileList.push(json);
+                        $file.append('<span class="success"></span>');
+                    } else {
+                        $file.find('.error').text(json.state).show();
+                    }
+                } catch (e) {
+                    $file.find('.error').text(lang.errorServerUpload).show();
+                }
+            });
+
+            uploader.on('uploadError', function (file, code) {
+            });
+            uploader.on('error', function (code, file) {
+                if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
+                    addFile(file);
+                }
+            });
+            uploader.on('uploadComplete', function (file, ret) {
+            });
+
+            $upload.on('click', function () {
+                if ($(this).hasClass('disabled')) {
+                    return false;
+                }
+
+                if (state === 'ready') {
+                    uploader.upload();
+                } else if (state === 'paused') {
+                    uploader.upload();
+                } else if (state === 'uploading') {
+                    uploader.stop();
+                }
+            });
+
+            $upload.addClass('state-' + state);
+            updateTotalProgress();
+        },
+        getQueueCount: function () {
+            var file, i, status, readyFile = 0, files = this.uploader.getFiles();
+            for (i = 0; file = files[i++]; ) {
+                status = file.getStatus();
+                if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
+            }
+            return readyFile;
+        },
+        getInsertList: function () {
+            var i, link, data, list = [],
+                prefix = editor.getOpt('fileUrlPrefix');
+            for (i = 0; i < this.fileList.length; i++) {
+                data = this.fileList[i];
+                link = data.url;
+                list.push({
+                    title: data.original || link.substr(link.lastIndexOf('/') + 1),
+                    url: prefix + link
+                });
+            }
+            return list;
+        }
+    };
+
+
+    /* 在线附件 */
+    function OnlineFile(target) {
+        this.container = utils.isString(target) ? document.getElementById(target) : target;
+        this.init();
+    }
+    OnlineFile.prototype = {
+        init: function () {
+            this.initContainer();
+            this.initEvents();
+            this.initData();
+        },
+        /* 初始化容器 */
+        initContainer: function () {
+            this.container.innerHTML = '';
+            this.list = document.createElement('ul');
+            this.clearFloat = document.createElement('li');
+
+            domUtils.addClass(this.list, 'list');
+            domUtils.addClass(this.clearFloat, 'clearFloat');
+
+            this.list.appendChild(this.clearFloat);
+            this.container.appendChild(this.list);
+        },
+        /* 初始化滚动事件,滚动到地步自动拉取数据 */
+        initEvents: function () {
+            var _this = this;
+
+            /* 滚动拉取图片 */
+            domUtils.on($G('fileList'), 'scroll', function(e){
+                var panel = this;
+                if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
+                    _this.getFileData();
+                }
+            });
+            /* 选中图片 */
+            domUtils.on(this.list, 'click', function (e) {
+                var target = e.target || e.srcElement,
+                    li = target.parentNode;
+
+                if (li.tagName.toLowerCase() == 'li') {
+                    if (domUtils.hasClass(li, 'selected')) {
+                        domUtils.removeClasses(li, 'selected');
+                    } else {
+                        domUtils.addClass(li, 'selected');
+                    }
+                }
+            });
+        },
+        /* 初始化第一次的数据 */
+        initData: function () {
+
+            /* 拉取数据需要使用的值 */
+            this.state = 0;
+            this.listSize = editor.getOpt('fileManagerListSize');
+            this.listIndex = 0;
+            this.listEnd = false;
+
+            /* 第一次拉取数据 */
+            this.getFileData();
+        },
+        /* 向后台拉取图片列表数据 */
+        getFileData: function () {
+            var _this = this;
+
+            if(!_this.listEnd && !this.isLoadingData) {
+                this.isLoadingData = true;
+                ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), {
+                    timeout: 100000,
+                    data: utils.extend({
+                            start: this.listIndex,
+                            size: this.listSize
+                        }, editor.queryCommandValue('serverparam')),
+                    method: 'get',
+                    onsuccess: function (r) {
+                        try {
+                            var json = eval('(' + r.responseText + ')');
+                            if (json.state == 'SUCCESS') {
+                                _this.pushData(json.list);
+                                _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
+                                if(_this.listIndex >= json.total) {
+                                    _this.listEnd = true;
+                                }
+                                _this.isLoadingData = false;
+                            }
+                        } catch (e) {
+                            if(r.responseText.indexOf('ue_separate_ue') != -1) {
+                                var list = r.responseText.split(r.responseText);
+                                _this.pushData(list);
+                                _this.listIndex = parseInt(list.length);
+                                _this.listEnd = true;
+                                _this.isLoadingData = false;
+                            }
+                        }
+                    },
+                    onerror: function () {
+                        _this.isLoadingData = false;
+                    }
+                });
+            }
+        },
+        /* 添加图片到列表界面上 */
+        pushData: function (list) {
+            var i, item, img, filetype, preview, icon, _this = this,
+                urlPrefix = editor.getOpt('fileManagerUrlPrefix');
+            for (i = 0; i < list.length; i++) {
+                if(list[i] && list[i].url) {
+                    item = document.createElement('li');
+                    icon = document.createElement('span');
+                    filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1);
+
+                    if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) {
+                        preview = document.createElement('img');
+                        domUtils.on(preview, 'load', (function(image){
+                            return function(){
+                                _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
+                            };
+                        })(preview));
+                        preview.width = 113;
+                        preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
+                    } else {
+                        var ic = document.createElement('i'),
+                            textSpan = document.createElement('span');
+                        textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1);
+                        preview = document.createElement('div');
+                        preview.appendChild(ic);
+                        preview.appendChild(textSpan);
+                        domUtils.addClass(preview, 'file-wrapper');
+                        domUtils.addClass(textSpan, 'file-title');
+                        domUtils.addClass(ic, 'file-type-' + filetype);
+                        domUtils.addClass(ic, 'file-preview');
+                    }
+                    domUtils.addClass(icon, 'icon');
+                    item.setAttribute('data-url', urlPrefix + list[i].url);
+                    if (list[i].original) {
+                        item.setAttribute('data-title', list[i].original);
+                    }
+
+                    item.appendChild(preview);
+                    item.appendChild(icon);
+                    this.list.insertBefore(item, this.clearFloat);
+                }
+            }
+        },
+        /* 改变图片大小 */
+        scale: function (img, w, h, type) {
+            var ow = img.width,
+                oh = img.height;
+
+            if (type == 'justify') {
+                if (ow >= oh) {
+                    img.width = w;
+                    img.height = h * oh / ow;
+                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
+                } else {
+                    img.width = w * ow / oh;
+                    img.height = h;
+                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
+                }
+            } else {
+                if (ow >= oh) {
+                    img.width = w * ow / oh;
+                    img.height = h;
+                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
+                } else {
+                    img.width = w;
+                    img.height = h * oh / ow;
+                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
+                }
+            }
+        },
+        getInsertList: function () {
+            var i, lis = this.list.children, list = [];
+            for (i = 0; i < lis.length; i++) {
+                if (domUtils.hasClass(lis[i], 'selected')) {
+                    var url = lis[i].getAttribute('data-url');
+                    var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1);
+                    list.push({
+                        title: title,
+                        url: url
+                    });
+                }
+            }
+            return list;
+        }
+    };
+
+
+})();

BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif


BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_default.png


BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif


BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif


BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif


BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif


BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif


BIN
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif


+ 0 - 0
src/main/webapp/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif


Some files were not shown because too many files changed in this diff