Commit 7768c160 by 丁伟

1、增加纳税人识别号验证功能

parent 92986381
......@@ -21,9 +21,9 @@ import java.util.Properties;
* @version 1.0
*/
public class MailSender {
private static String USERNAME;
private static String PASSWORD;
private static String SMTP;
public static String USERNAME;
public static String PASSWORD;
public static String SMTP;
private static final Logger logger = Logger.getLogger(MailSender.class);
static{
......
......@@ -9,6 +9,8 @@ import org.ccpit.base.user.UserService;
import org.ccpit.base.utils.EmailBody;
import org.ccpit.base.utils.MailSender;
import org.ccpit.base.utils.PasswordHash;
import org.ccpit.base.utils.mailUtil.Mail;
import org.ccpit.base.utils.mailUtil.MailUtil;
import org.ccpit.business.phase.Phase;
import org.ccpit.business.phase.PhaseService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -44,10 +46,10 @@ public class IndexController extends BaseController {
@Autowired
private SubjectInfoService subjectInfoService;
private Map<String,Object> check(){
if (getActivePhase()==null){
Map<String,Object> map = new HashMap<String, Object>();
map.put("info","注册页面暂未开放");
private Map<String, Object> check() {
if (getActivePhase() == null) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("info", "注册页面暂未开放");
return map;
}
return null;
......@@ -55,18 +57,21 @@ public class IndexController extends BaseController {
/**
* 获取活动的期数
*
* @return
*/
private Phase getActivePhase(){
private Phase getActivePhase() {
return phaseService.getActivePhase();
}
/**
* 跳转去登录页
*
* @return
*/
@RequestMapping(value="/loginp",method=RequestMethod.GET)
public ModelAndView loginPage(){
if (check()!=null){
@RequestMapping(value = "/loginp", method = RequestMethod.GET)
public ModelAndView loginPage() {
if (check() != null) {
ModelAndView mv = new ModelAndView("front/error");
return mv;
}
......@@ -84,12 +89,14 @@ public class IndexController extends BaseController {
// }
// return new ModelAndView("front/login2");
// }
/**
* 跳转去注册页
*
* @return
*/
@RequestMapping(value="/regp",method=RequestMethod.GET)
public ModelAndView regPage(){
@RequestMapping(value = "/regp", method = RequestMethod.GET)
public ModelAndView regPage() {
ModelAndView mv = new ModelAndView("front/reg");
List<Metadata> cityType = metadataService.getMetadatasByType2("cityType");
List<Metadata> encityType = metadataService.getMetadatasByType2("encityType");
......@@ -98,13 +105,13 @@ public class IndexController extends BaseController {
List<Metadata> subject = metadataService.getMetadatasByType2("subject");
List<Metadata> gender = metadataService.getMetadatasByType2("gender");
List<Metadata> engender = metadataService.getMetadatasByType2("engender");
mv.addObject("cityType",cityType);
mv.addObject("encityType",encityType);
mv.addObject("status",status);
mv.addObject("invoiceType",invoiceType);
mv.addObject("subject",subject);
mv.addObject("gender",gender);
mv.addObject("engender",engender);
mv.addObject("cityType", cityType);
mv.addObject("encityType", encityType);
mv.addObject("status", status);
mv.addObject("invoiceType", invoiceType);
mv.addObject("subject", subject);
mv.addObject("gender", gender);
mv.addObject("engender", engender);
return mv;
}
/**
......@@ -128,24 +135,26 @@ public class IndexController extends BaseController {
// mv.addObject("engender",engender);
// return mv;
// }
/**
* 跳转去个人信息页
*
* @return
*/
@RequestMapping("/infop")
public ModelAndView infoPage(HttpServletRequest request){
if (check()!=null){
public ModelAndView infoPage(HttpServletRequest request) {
if (check() != null) {
ModelAndView mv = new ModelAndView("front/error");
return mv;
}
ModelAndView mv = new ModelAndView("front/info");
RegisterInfo registerInfo = (RegisterInfo) request.getSession().getAttribute("registerInfo");
if (registerInfo==null){
if (registerInfo == null) {
return new ModelAndView("front/login");
}else{
} else {
RegisterInfo reg = registerService.queryRegisterById(registerInfo.getId());
mv.addObject("registerInfo",reg);
mv.addObject("registerInfo", reg);
}
List<SubjectInfo> subjectInfos = subjectInfoService.queryList("from SubjectInfo where registerInfo_id = " + registerInfo.getId());
SubjectInfo sub_info = new SubjectInfo();
......@@ -168,11 +177,11 @@ public class IndexController extends BaseController {
List<Metadata> subject = metadataService.getMetadatasByType2("subject");
List<Metadata> subject2 = metadataService.getMetadatasByType2("subject2");
List<Metadata> registerType = metadataService.getMetadatasByType2("registerType");
mv.addObject("status",status);
mv.addObject("status2",status2);
mv.addObject("invoiceType",invoiceType);
mv.addObject("subject",subject);
mv.addObject("subject2",subject2);
mv.addObject("status", status);
mv.addObject("status2", status2);
mv.addObject("invoiceType", invoiceType);
mv.addObject("subject", subject);
mv.addObject("subject2", subject2);
mv.addObject("registerType", registerType);
mv.addObject("subjectInfos", subjectInfos);
return mv;
......@@ -180,17 +189,18 @@ public class IndexController extends BaseController {
/**
* 保存证件照
*
* @return
*/
@RequestMapping("/saveCertificateId")
public Object saveCertificateId(HttpServletRequest request){
public Object saveCertificateId(HttpServletRequest request) {
String img1 = request.getParameter("img1");
// String img2 = request.getParameter("img2");
// String img3 = request.getParameter("img3");
String obj_id = request.getParameter("obj_id");
RegisterInfo registerInfo = registerService.queryRegisterById(Long.valueOf(obj_id));
Map<String,Object> map = new HashMap<String, Object>();
if(null != registerInfo){
Map<String, Object> map = new HashMap<String, Object>();
if (null != registerInfo) {
registerInfo.setImg1(img1);
// registerInfo.setImg2(img2);
// registerInfo.setImg3(img3);
......@@ -207,73 +217,74 @@ public class IndexController extends BaseController {
// }
return map;
}
@RequestMapping("/getObj")
public Object getObj(HttpServletRequest request){
public Object getObj(HttpServletRequest request) {
String obj_id = request.getParameter("obj_id");
Map<String,Object> map = new HashMap<String, Object>();
Map<String, Object> map = new HashMap<String, Object>();
RegisterInfo registerInfo = registerService.queryRegisterById(Long.valueOf(obj_id));
if(null != registerInfo){
if (null != registerInfo) {
map.put("obj", registerInfo);
}
return map;
}
@RequestMapping("/checkEmail")
public Object checkEmail(String email,Boolean regType){
Map<String,Object> map =new HashMap<String,Object>();
public Object checkEmail(String email, Boolean regType) {
Map<String, Object> map = new HashMap<String, Object>();
Phase phase = getActivePhase();
if (phase == null){
if (phase == null) {
map.put("success", false);
return map;
}
RegisterInfo reg = registerService.queryByEmail(email, phase.getId(),regType);
RegisterInfo reg = registerService.queryByEmail(email, phase.getId(), regType);
map.put("success", reg != null);
return map;
}
@RequestMapping("/reg")
public Object reg(HttpServletRequest request,RegisterInfo registerInfo,String repassword){
public Object reg(HttpServletRequest request, RegisterInfo registerInfo, String repassword) {
Phase phase = getActivePhase();
//检查是否开放注册
if (phase==null) {
if (phase == null) {
return null;
}
Map<String,Object> map =new HashMap<String,Object>();
Map<String, Object> map = new HashMap<String, Object>();
if (StringUtils.isEmpty(registerInfo.getEmail())){
map.put("success",false);
map.put("info","请填写邮箱");
if (StringUtils.isEmpty(registerInfo.getEmail())) {
map.put("success", false);
map.put("info", "请填写邮箱");
return map;
}
RegisterInfo reg = registerService.queryByEmail(registerInfo.getEmail(),phase.getId(),true);
if (reg!=null){
map.put("success",false);
map.put("info","邮箱已经被占用");
RegisterInfo reg = registerService.queryByEmail(registerInfo.getEmail(), phase.getId(), true);
if (reg != null) {
map.put("success", false);
map.put("info", "邮箱已经被占用");
return map;
}
if (StringUtils.isEmpty(registerInfo.getPassword())){
map.put("success",false);
map.put("info","请填写密码");
if (StringUtils.isEmpty(registerInfo.getPassword())) {
map.put("success", false);
map.put("info", "请填写密码");
return map;
}
if (!registerInfo.getPassword().equals(repassword)){
map.put("success",false);
map.put("info","两次密码填写不一致");
if (!registerInfo.getPassword().equals(repassword)) {
map.put("success", false);
map.put("info", "两次密码填写不一致");
return map;
}
if (StringUtils.isEmpty(registerInfo.getName())){
map.put("success",false);
map.put("info","请填写姓名");
if (StringUtils.isEmpty(registerInfo.getName())) {
map.put("success", false);
map.put("info", "请填写姓名");
return map;
}
if (StringUtils.isEmpty(registerInfo.getCompany())){
map.put("success",false);
map.put("info","请填写工作单位");
if (StringUtils.isEmpty(registerInfo.getCompany())) {
map.put("success", false);
map.put("info", "请填写工作单位");
return map;
}
if (StringUtils.isEmpty(String.valueOf(registerInfo.getSubject()))){
map.put("success",false);
map.put("info","请填写报名科目");
if (StringUtils.isEmpty(String.valueOf(registerInfo.getSubject()))) {
map.put("success", false);
map.put("info", "请填写报名科目");
return map;
}
registerInfo.setCountry("CHINA");
......@@ -282,7 +293,7 @@ public class IndexController extends BaseController {
registerInfo.setPhase(phase);
registerInfo.setInvoiceInfo("发票内容为相应考试的考试费");
try {
String pwd= PasswordHash.createHash(registerInfo.getPassword());
String pwd = PasswordHash.createHash(registerInfo.getPassword());
registerInfo.setPassword(pwd);
} catch (Exception e) {
......@@ -290,61 +301,61 @@ public class IndexController extends BaseController {
}
boolean success = registerService.addRegisterInfo(registerInfo);
if (success){
request.getSession().setAttribute("registerInfo",registerInfo);
if (success) {
request.getSession().setAttribute("registerInfo", registerInfo);
}
map.put("success",success);
map.put("success", success);
return map;
}
@RequestMapping("/reg2")
public Object reg2(HttpServletRequest request,RegisterInfo registerInfo,String repassword){
public Object reg2(HttpServletRequest request, RegisterInfo registerInfo, String repassword) {
Phase phase = getActivePhase();
if (phase==null){
if (phase == null) {
return null;
}
Map<String,Object> map =new HashMap<String,Object>();
Map<String, Object> map = new HashMap<String, Object>();
if (StringUtils.isEmpty(registerInfo.getEmail())){
map.put("success",false);
map.put("info","请填写邮箱");
if (StringUtils.isEmpty(registerInfo.getEmail())) {
map.put("success", false);
map.put("info", "请填写邮箱");
return map;
}
RegisterInfo reg = registerService.queryByEmail(registerInfo.getEmail(), phase.getId(),false);
if (reg!=null){
map.put("success",false);
map.put("info","邮箱已经被占用");
RegisterInfo reg = registerService.queryByEmail(registerInfo.getEmail(), phase.getId(), false);
if (reg != null) {
map.put("success", false);
map.put("info", "邮箱已经被占用");
return map;
}
if (StringUtils.isEmpty(registerInfo.getPassword())){
map.put("success",false);
map.put("info","请填写密码");
if (StringUtils.isEmpty(registerInfo.getPassword())) {
map.put("success", false);
map.put("info", "请填写密码");
return map;
}
if (!registerInfo.getPassword().equals(repassword)){
map.put("success",false);
map.put("info","两次密码填写不一致");
if (!registerInfo.getPassword().equals(repassword)) {
map.put("success", false);
map.put("info", "两次密码填写不一致");
return map;
}
if (StringUtils.isEmpty(registerInfo.getName())){
map.put("success",false);
map.put("info","请填写中文姓名");
if (StringUtils.isEmpty(registerInfo.getName())) {
map.put("success", false);
map.put("info", "请填写中文姓名");
return map;
}
if (StringUtils.isEmpty(registerInfo.getName_en())){
map.put("success",false);
map.put("info","请填写NAME");
if (StringUtils.isEmpty(registerInfo.getName_en())) {
map.put("success", false);
map.put("info", "请填写NAME");
return map;
}
if (registerInfo.getDateOfBirth()==null){
map.put("success",false);
map.put("info","请填写Date of Birth");
if (registerInfo.getDateOfBirth() == null) {
map.put("success", false);
map.put("info", "请填写Date of Birth");
return map;
}
if (StringUtils.isEmpty(String.valueOf(registerInfo.getSubject2()))){
map.put("success",false);
map.put("info","请填写报名科目");
if (StringUtils.isEmpty(String.valueOf(registerInfo.getSubject2()))) {
map.put("success", false);
map.put("info", "请填写报名科目");
return map;
}
registerInfo.setCountry("CHINA");
......@@ -352,7 +363,7 @@ public class IndexController extends BaseController {
registerInfo.setPhase(phase);
registerInfo.setRegisterStatus2(0);
try {
String pwd= PasswordHash.createHash(registerInfo.getPassword());
String pwd = PasswordHash.createHash(registerInfo.getPassword());
registerInfo.setPassword(pwd);
} catch (Exception e) {
......@@ -360,24 +371,24 @@ public class IndexController extends BaseController {
}
boolean success = registerService.addRegisterInfo(registerInfo);
if (success){
request.getSession().setAttribute("registerInfo",registerInfo);
if (success) {
request.getSession().setAttribute("registerInfo", registerInfo);
}
map.put("success",success);
map.put("success", success);
return map;
}
@RequestMapping("/reg3")
public Object reg3(HttpServletRequest request,SubjectInfo subjectInfo,long registerInfo_id){
public Object reg3(HttpServletRequest request, SubjectInfo subjectInfo, long registerInfo_id) {
Phase phase = getActivePhase();
if (phase==null){
if (phase == null) {
return null;
}
Map<String,Object> map =new HashMap<String,Object>();
Map<String, Object> map = new HashMap<String, Object>();
if (StringUtils.isEmpty(String.valueOf(subjectInfo.getSubject()))){
map.put("success",false);
map.put("info","请填写报名科目");
if (StringUtils.isEmpty(String.valueOf(subjectInfo.getSubject()))) {
map.put("success", false);
map.put("info", "请填写报名科目");
return map;
}
subjectInfo.setRegisterInfo_id(registerInfo_id);
......@@ -388,115 +399,116 @@ public class IndexController extends BaseController {
RegisterInfo registerInfo = registerService.queryRegisterById(registerInfo_id);
subjectInfo.setRegisterName(registerInfo.getName());
boolean success = subjectInfoService.addSubjectInfo(subjectInfo);
if (success){
request.getSession().setAttribute("registerInfo",registerInfo);
request.getSession().setAttribute("subjectInfo",subjectInfo);
if (success) {
request.getSession().setAttribute("registerInfo", registerInfo);
request.getSession().setAttribute("subjectInfo", subjectInfo);
}
map.put("success",success);
map.put("success", success);
return map;
}
private void sendEmail(String email,String name,String subject){
private void sendEmail(String email, String name, String subject) {
EmailBody body = new EmailBody();
MailSender.send(email,"","");
MailSender.send(email, "", "");
}
@RequestMapping("/login")
public Object login(String name,String password,String code,HttpServletRequest request){
public Object login(String name, String password, String code, HttpServletRequest request) {
Phase phase = getActivePhase();
if (phase == null){
if (phase == null) {
return null;
}
HashMap<String,Object> map = new HashMap<String, Object>();
boolean isValid = ValidateCodeController.validate(request,code);
if (!isValid){
HashMap<String, Object> map = new HashMap<String, Object>();
boolean isValid = ValidateCodeController.validate(request, code);
if (!isValid) {
//验证码错误
map.put("status",0);
map.put("status", 0);
return map;
}
RegisterInfo registerInfo = registerService.queryByEmail(name,phase.getId(),true);
if (registerInfo==null){
RegisterInfo registerInfo = registerService.queryByEmail(name, phase.getId(), true);
if (registerInfo == null) {
//用户不存在
map.put("status", 1);
return map;
}
try {
map.put("status",3);
boolean ok = PasswordHash.validatePassword(password,registerInfo.getPassword());
map.put("status", 3);
boolean ok = PasswordHash.validatePassword(password, registerInfo.getPassword());
//3密码不正确
//4密码正确 登录成功
if (ok){
map.put("status",4);
request.getSession().setAttribute("registerInfo",registerInfo);
if (ok) {
map.put("status", 4);
request.getSession().setAttribute("registerInfo", registerInfo);
}
}catch (Exception e){
} catch (Exception e) {
//啥也不干
}
return map;
}
@RequestMapping("/login2")
public Object login2(String name,String password,String code,HttpServletRequest request){
public Object login2(String name, String password, String code, HttpServletRequest request) {
Phase phase = getActivePhase();
if (phase==null){
if (phase == null) {
return null;
}
HashMap<String,Object> map = new HashMap<String, Object>();
boolean isValid = ValidateCodeController.validate(request,code);
if (!isValid){
HashMap<String, Object> map = new HashMap<String, Object>();
boolean isValid = ValidateCodeController.validate(request, code);
if (!isValid) {
//验证码错误
map.put("status",0);
map.put("status", 0);
return map;
}
RegisterInfo registerInfo = registerService.queryByEmail(name,phase.getId(),false);
if (registerInfo==null){
RegisterInfo registerInfo = registerService.queryByEmail(name, phase.getId(), false);
if (registerInfo == null) {
//用户不存在
map.put("status",1);
map.put("status", 1);
return map;
}
try {
map.put("status",3);
boolean ok = PasswordHash.validatePassword(password,registerInfo.getPassword());
map.put("status", 3);
boolean ok = PasswordHash.validatePassword(password, registerInfo.getPassword());
//3密码不正确
//4密码正确 登录成功
if (ok){
map.put("status",4);
request.getSession().setAttribute("registerInfo",registerInfo);
request.getSession().setAttribute("user_in_session",registerInfo);
if (ok) {
map.put("status", 4);
request.getSession().setAttribute("registerInfo", registerInfo);
request.getSession().setAttribute("user_in_session", registerInfo);
}
}catch (Exception e){
} catch (Exception e) {
//啥也不干
}
return map;
}
@RequestMapping("/resetPassword")
public Object resetPassword(){
public Object resetPassword() {
ModelAndView mv = new ModelAndView("front/reset");
return mv;
}
@RequestMapping("/resetPwd")
@ResponseBody
public Object resetPwd(HttpServletRequest request,String email,boolean regType,String validateCode){
boolean valid = ValidateCodeController.validate(request,validateCode);
Map<String,Object> map = new HashMap<String, Object>();
if (!valid){
map.put("success",false);
map.put("info","验证码错误");
public Object resetPwd(HttpServletRequest request, String email, boolean regType, String validateCode) {
boolean valid = ValidateCodeController.validate(request, validateCode);
Map<String, Object> map = new HashMap<String, Object>();
if (!valid) {
map.put("success", false);
map.put("info", "验证码错误");
return map;
}
Phase phase=getActivePhase();
Phase phase = getActivePhase();
RegisterInfo info = registerService.queryByEmail(email, phase.getId(), regType);
if (info == null){
map.put("success",false);
map.put("info","账号不存在");
if (info == null) {
map.put("success", false);
map.put("info", "账号不存在");
return map;
}
String newPwd = "";
try {
double rand = Math.random()*10000000+1000000;
newPwd = String.valueOf((long)rand);
double rand = Math.random() * 10000000 + 1000000;
newPwd = String.valueOf((long) rand);
info.setPassword(PasswordHash.createHash(newPwd));
registerService.updateRegisterInfo(info);
......@@ -504,27 +516,33 @@ public class IndexController extends BaseController {
throw new RuntimeException("修改用户密码加密失败....", e);
}
final String pwd = newPwd;
final String mail = info.getEmail();
final String name = info.getName();
new Thread(){
Mail new_mail = new Mail();
new_mail.setHost(MailSender.SMTP);
new_mail.setSender(MailSender.USERNAME);
new_mail.setEmailCount(MailSender.USERNAME);
new_mail.setEmailPassword(MailSender.PASSWORD);
new_mail.setProtocol("smtp");
new_mail.setName(info.getName());
new_mail.setReceiver(info.getEmail());
new_mail.setMailTitle("密码重置成功");
String html = info.getName() + ",您好,<br><br>&emsp;&emsp;您已成功重置了密码,您的密码已修改为<span style='color:red;'>" + newPwd + "</span>,请用新密码登录本系统。<br>" +
"<br><br><div style='font-size:12px;'>本邮件为系统发送,请勿直接回复。</div>";
new_mail.setMailMessage(html);
new Thread() {
@Override
public void run() {
super.run();
for (int i=0;i<5;i++){
boolean success = MailSender.send(mail, "密码重置成功", name+",您好,<br>您已成功重置了密码,您的密码已修改为<span style='color:red;'>"+pwd+"</span>,请用新密码登录本系统。<br>" +
"<br><div style='font-size:12px;'>本邮件为系统发送,请勿直接回复。</div>");
if (success){
for (int i = 0; i < 5; i++) {
boolean success = MailUtil.sendMail(new_mail);
if (success) {
break;
}
}
}
}.start();
map.put("success",true);
map.put("info","发送成功");
map.put("success", true);
map.put("info", "发送成功");
return map;
}
}
......@@ -527,5 +527,6 @@
<%--<script src="/resource/front/js/jquery.min.js" type="text/javascript"></script>--%>
<script src="/resource/front/js/jquery.form.min.js" type="text/javascript"></script>
<script src="/resource/front/js/jquery-ui-datepicker.js" type="text/javascript"></script>
<script src="/resource/front/js/checkSocialCreditCode.js" type="text/javascript"></script>
</body>
</html>
......@@ -301,6 +301,7 @@
<script src="/resource/front/js/jquery.form.min.js" type="text/javascript"></script>
<script src="/resource/front/js/jquery-ui-datepicker.js" type="text/javascript"></script>
<script src="/resource/front/js/reg.js" type="text/javascript"></script>
<script src="/resource/front/js/checkSocialCreditCode.js" type="text/javascript"></script>
</body>
</html>
//验证信用代码
function checkSocialCreditCode(Code) {
var patrn = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g;
//18位校验及大写校验
if ((Code.length != 18) || (patrn.test(Code) == false)) {
// return '不是有效的统一社会信用编码';
// /*console.info("不是有效的统一社会信用编码!");
return false;
}
else {
var Ancode;//统一社会信用代码的每一个值
var Ancodevalue;//统一社会信用代码每一个值的权重
var total = 0;
var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];//加权因子
var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
//不用I、O、S、V、Z
for (var i = 0; i < Code.length - 1; i++) {
Ancode = Code.substring(i, i + 1);
Ancodevalue = str.indexOf(Ancode);
total = total + Ancodevalue * weightedfactors[i];
//权重与加权因子相乘之和
}
var logiccheckcode = 31 - total % 31;
if (logiccheckcode == 31) {
logiccheckcode = 0;
}
var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y";
var Array_Str = Str.split(',');
logiccheckcode = Array_Str[logiccheckcode];
var checkcode = Code.substring(17, 18);
if (logiccheckcode != checkcode) {
return false;
}else{
return true;
}
return true;
}
}
\ No newline at end of file
......@@ -202,6 +202,13 @@ function checkRequired() {
success = false;
}
});
// $("[name=taxpayerNum]").on("blur",function (){
// var code = $(this).val();
// if(!checkSocialCreditCode(code)){
// showWarning($(this),"不是有效的纳税人识别号!");
// success = false;
// }
// });
return success;
}
......
......@@ -118,6 +118,12 @@ var REG = function(){
$("[name=password]").blur();
}
});
$("[name=taxpayerNum]").on("blur",function (){
var code = $(this).val();
if(!checkSocialCreditCode(code)){
showWarning($(this),"不是有效的纳税人识别号!");
}
});
}
return{
init:function(){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment