APP意见反馈上传附件后台存值

This commit is contained in:
zhangjun 2020-08-03 09:40:01 +08:00
parent 4d768231e7
commit fab43b34cb

View File

@ -1,9 +1,18 @@
package apx.com.amarsoft.als.user.pwd.service.impl;
import java.awt.image.BufferedImage;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ -19,6 +28,8 @@ import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.are.lang.DateX;
import com.amarsoft.are.security.MessageDigest;
import com.amarsoft.are.util.DataConvert;
import com.amarsoft.are.util.StringFunction;
import com.amarsoft.awe.Configure;
import com.amarsoft.awe.security.LogonUser;
import com.amarsoft.awe.security.SecurityAudit;
import com.amarsoft.awe.security.SecurityAuditConstants;
@ -39,16 +50,15 @@ import com.base.util.ReturnMapUtil;
public class GesturePwdServiceImpl implements GesturePwdService {
// ReturnMapUtil ReturnMapUtil = new ReturnMapUtil();
public Map<String, Object> setupGesture(HttpServletRequest request,
JBOTransaction tx, ReturnMapUtil ReturnMapUtil) {
public Map<String, Object> setupGesture(HttpServletRequest request, JBOTransaction tx,
ReturnMapUtil ReturnMapUtil) {
String sUserId = request.getParameter("userid");
sUserId = sUserId == null ? request.getSession().getAttribute("userid") == null ? null
: request.getSession().getAttribute("userid").toString()
: sUserId;
: request.getSession().getAttribute("userid").toString() : sUserId;
String sPwd = request.getParameter("pwd");
if (null == sPwd)
sPwd = "";
// DES.decrypt(sPwd);
// DES.decrypt(sPwd);
sPwd = DES.decrypt(sPwd);
sPwd = MD5Util.getMD5EncodedPassword(sPwd);
Map<String, Object> map = new HashMap<String, Object>();
@ -58,23 +68,21 @@ public class GesturePwdServiceImpl implements GesturePwdService {
UserHelper.edit(tx, sUserId, map);
} catch (JBOException e) {
ARE.getLog().error(e);
ReturnMapUtil.setReturnMap(null,
(String) RestfullConstant.baseProperty.get("FAIL"
.toLowerCase()), "设置手钥密码数据操作失败!");
ReturnMapUtil.setReturnMap(null, (String) RestfullConstant.baseProperty.get("FAIL".toLowerCase()),
"设置手钥密码数据操作失败!");
return ReturnMapUtil.getReturnMap();
}
ReturnMapUtil.setReturnMap(null, (String) RestfullConstant.baseProperty
.get("SUCCESS".toLowerCase()), "成功设置或重设手钥密码!");
ReturnMapUtil.setReturnMap(null, (String) RestfullConstant.baseProperty.get("SUCCESS".toLowerCase()),
"成功设置或重设手钥密码!");
return ReturnMapUtil.getReturnMap();
}
public Map<String, Object> closeGesture(HttpServletRequest request,
JBOTransaction tx, ReturnMapUtil ReturnMapUtil) {
public Map<String, Object> closeGesture(HttpServletRequest request, JBOTransaction tx,
ReturnMapUtil ReturnMapUtil) {
// NO CHECK URI
String sUserId = request.getParameter("userid");
sUserId = sUserId == null ? request.getSession().getAttribute("userid") == null ? null
: request.getSession().getAttribute("userid").toString()
: sUserId;
: request.getSession().getAttribute("userid").toString() : sUserId;
if (null == sUserId)
sUserId = "";
Map<String, Object> map = new HashMap<String, Object>();
@ -84,31 +92,27 @@ public class GesturePwdServiceImpl implements GesturePwdService {
UserHelper.edit(tx, sUserId, map);
} catch (JBOException e) {
ARE.getLog().error(e);
ReturnMapUtil.setReturnMap(null,
(String) RestfullConstant.baseProperty.get("FAIL"
.toLowerCase()), "关闭手钥密码数据操作失败!");
ReturnMapUtil.setReturnMap(null, (String) RestfullConstant.baseProperty.get("FAIL".toLowerCase()),
"关闭手钥密码数据操作失败!");
return ReturnMapUtil.getReturnMap();
}
ReturnMapUtil.setReturnMap(null, (String) RestfullConstant.baseProperty
.get("SUCCESS".toLowerCase()), "成功关闭手钥密码!");
ReturnMapUtil.setReturnMap(null, (String) RestfullConstant.baseProperty.get("SUCCESS".toLowerCase()),
"成功关闭手钥密码!");
return ReturnMapUtil.getReturnMap();
}
public Map<String, Object> acquisitionGesture(HttpServletRequest request,
ReturnMapUtil ReturnMapUtil) {
public Map<String, Object> acquisitionGesture(HttpServletRequest request, ReturnMapUtil ReturnMapUtil) {
// NO CHECK URI
String sUserId = request.getParameter("userid");
sUserId = sUserId == null ? request.getSession().getAttribute("userid") == null ? null
: request.getSession().getAttribute("userid").toString()
: sUserId;
: request.getSession().getAttribute("userid").toString() : sUserId;
if (null == sUserId)
sUserId = "";
Map<String, Object> userMap = UserHelper.getUser(sUserId);
if (userMap == null) {
ReturnMapUtil.setReturnMap(null,
(String) RestfullConstant.baseProperty.get("FAIL"
.toLowerCase()), "没用找到该用户!");
ReturnMapUtil.setReturnMap(null, (String) RestfullConstant.baseProperty.get("FAIL".toLowerCase()),
"没用找到该用户!");
return ReturnMapUtil.getReturnMap();
}
Map<String, Object> body = new HashMap<String, Object>();
@ -119,97 +123,149 @@ public class GesturePwdServiceImpl implements GesturePwdService {
body.put("enablegesture", sEnable);
body.put("enableGestureName", "1".equals(sEnable) ? "¿ªÆô" : "¹Ø±Õ");
ReturnMapUtil.setReturnMap(body, (String) RestfullConstant.baseProperty
.get("SUCCESS".toLowerCase()), "");
ReturnMapUtil.setReturnMap(body, (String) RestfullConstant.baseProperty.get("SUCCESS".toLowerCase()), "");
return ReturnMapUtil.getReturnMap();
}
public Map<String, Object> SaveFeedback(HttpServletRequest request, HttpServletResponse response, JBOTransaction tx,
Transaction sqlca, ReturnMapUtil ReturnMapUtil) throws Exception {
Map<String, Object> testMap = (Map<String, Object>) MultipartDataUtil
.readRequestParam(request, "UTF-8");
Map<String, Object> testMap = (Map<String, Object>) MultipartDataUtil.readRequestParam(request, "UTF-8");
Map<String, Object> fieldMap = (Map<String, Object>) testMap.get("fieldMap");
String userid = fieldMap.get("userid") == null ? "" : fieldMap.get("userid").toString();
String oldPwd = fieldMap.get("oldPwd") == null ? "" : fieldMap.get("oldPwd").toString();
String newPwd = fieldMap.get("newPwd") == null ? "" : fieldMap.get("newPwd").toString();
//加密处理
String sEncOldPassword = MessageDigest.getDigestAsUpperHexString("MD5", oldPwd );
String sEncNewPassword = MessageDigest.getDigestAsUpperHexString("MD5", newPwd);
BizObjectManager bm = JBOFactory.getBizObjectManager("jbo.awe.USER_INFO");
BizObject bo1 = bm.createQuery("UserID=:UserID and Password=:Password")
.setParameter("UserID", userid).setParameter("Password", sEncOldPassword).getSingleResult(true);
Map<String, Object> bo = new HashMap<String, Object>();
if(bo1 == null) {
ReturnMapUtil.setReturnMap(null,RestfullConstant.baseProperty.get("fail").toString(), "原密码错误,请重新输入!!");
return ReturnMapUtil.getReturnMap();
// 加密处理
String sEncOldPassword = MessageDigest.getDigestAsUpperHexString("MD5", oldPwd);
String sEncNewPassword = MessageDigest.getDigestAsUpperHexString("MD5", newPwd);
BizObjectManager bm = JBOFactory.getBizObjectManager("jbo.awe.USER_INFO");
BizObject bo1 = bm.createQuery("UserID=:UserID and Password=:Password").setParameter("UserID", userid)
.setParameter("Password", sEncOldPassword).getSingleResult(true);
Map<String, Object> bo = new HashMap<String, Object>();
if (bo1 == null) {
ReturnMapUtil.setReturnMap(null, RestfullConstant.baseProperty.get("fail").toString(), "原密码错误,请重新输入!!");
return ReturnMapUtil.getReturnMap();
}
SecurityAudit securityAudit = new SecurityAudit(
new LogonUser(ASUser.getUser(userid, sqlca).getUserName(), userid, oldPwd));// 安全审计里面可能需要判断密码是否包含大小写等问题所以构建用户的时候使用明码
UserMarkInfo userMarkInfo = securityAudit.getUserMarkInfo(sqlca);
PasswordRuleManager pwm = new PasswordRuleManager();
ComparePasswordRule compareRule = new ComparePasswordRule();
Map<String, String> ruleMap = SecurityOptionManager.getRules(sqlca);
ALSPWDRules alsPWDRules = new ALSPWDRules(ruleMap);
pwm.addRule(compareRule);
pwm.addRule(alsPWDRules);
if (!securityAudit.modifyPassword(newPwd, pwm)) {
if (securityAudit.getErrorCode() == SecurityAuditConstants.CODE_RULE_ERROR_LENGTH) {
Map<Integer, String> ruleMap2 = new HashMap<Integer, String>();
for (Entry<String, String> e : ruleMap.entrySet()) {
ruleMap2.put(DataConvert.toInt(e.getKey()), e.getValue());
}
SecurityAudit securityAudit = new SecurityAudit(new LogonUser(ASUser.getUser(userid, sqlca).getUserName(), userid, oldPwd));//安全审计里面可能需要判断密码是否包含大小写等问题所以构建用户的时候使用明码
UserMarkInfo userMarkInfo = securityAudit.getUserMarkInfo(sqlca);
PasswordRuleManager pwm = new PasswordRuleManager();
ComparePasswordRule compareRule = new ComparePasswordRule();
Map<String, String> ruleMap = SecurityOptionManager.getRules(sqlca);
ALSPWDRules alsPWDRules = new ALSPWDRules(ruleMap);
pwm.addRule(compareRule);
pwm.addRule(alsPWDRules);
if(!securityAudit.modifyPassword(newPwd,pwm)){
if(securityAudit.getErrorCode()==SecurityAuditConstants.CODE_RULE_ERROR_LENGTH){
Map<Integer, String> ruleMap2 = new HashMap<Integer, String>();
for(Entry<String, String> e : ruleMap.entrySet()){
ruleMap2.put(DataConvert.toInt(e.getKey()), e.getValue());
}
String pwdLength = ruleMap2.get(securityAudit.getErrorCode());
System.out.println("密码长度至少为"+pwdLength+"位,请重新输入!!!");
}else{
System.out.println(securityAudit.getErrorMessage()+",请重新输入!!!");
}
}
//校验通过后,更新为新的密码
bo1.setAttributeValue("Password", sEncNewPassword);
bm.saveObject(bo1);
//保存用户痕迹信息
userMarkInfo.setPasswordState("0");
userMarkInfo.setPassWordUpdateDate(DateX.format(new java.util.Date()));
userMarkInfo.saveMarkInfo(sqlca);
ReturnMapUtil.setReturnMap(bo,RestfullConstant.baseProperty.get("success").toString(), "");
return ReturnMapUtil.getReturnMap();
String pwdLength = ruleMap2.get(securityAudit.getErrorCode());
System.out.println("密码长度至少为" + pwdLength + "位,请重新输入!!!");
} else {
System.out.println(securityAudit.getErrorMessage() + ",请重新输入!!!");
}
}
// 校验通过后,更新为新的密码
bo1.setAttributeValue("Password", sEncNewPassword);
bm.saveObject(bo1);
// 保存用户痕迹信息
userMarkInfo.setPasswordState("0");
userMarkInfo.setPassWordUpdateDate(DateX.format(new java.util.Date()));
userMarkInfo.saveMarkInfo(sqlca);
ReturnMapUtil.setReturnMap(bo, RestfullConstant.baseProperty.get("success").toString(), "");
return ReturnMapUtil.getReturnMap();
}
@Override
public Map<String, Object> OpinionFeedback(HttpServletRequest request, HttpServletResponse response, JBOTransaction tx,
Transaction sqlca, ReturnMapUtil ReturnMapUtil) throws Exception {
Map<String, Object> testMap = (Map<String, Object>) MultipartDataUtil
.readRequestParam(request, "UTF-8");
public Map<String, Object> OpinionFeedback(HttpServletRequest request, HttpServletResponse response,
JBOTransaction tx, Transaction sqlca, ReturnMapUtil ReturnMapUtil) throws Exception {
Map<String, Object> testMap = (Map<String, Object>) MultipartDataUtil.readRequestParam(request, "UTF-8");
Map<String, Object> fieldMap = (Map<String, Object>) testMap.get("fieldMap");
String opinion = fieldMap.get("opinion") == null ? "" : fieldMap.get("opinion").toString();
String userid = fieldMap.get("userid") == null ? "" : fieldMap.get("userid").toString();
List<Map<String, Object>> fileList = (List<Map<String, Object>>) testMap.get("fileList");
ASUser CurUser = new ASUser(userid, sqlca);
BizObjectManager catManage = JBOFactory.getBizObjectManager(SUBMIT_USER_FEEDBACK.CLASS_NAME,sqlca);
BizObjectManager catManage = JBOFactory.getBizObjectManager(SUBMIT_USER_FEEDBACK.CLASS_NAME, sqlca);
Map<String, Object> bo = new HashMap<String, Object>();
if(opinion == null || "".equals(opinion) ){
ReturnMapUtil.setReturnMap(null,RestfullConstant.baseProperty.get("fail").toString(), "请输入意见反馈信息!!!");
if (opinion == null || "".equals(opinion)) {
ReturnMapUtil.setReturnMap(null, RestfullConstant.baseProperty.get("fail").toString(), "请输入意见反馈信息!!!");
return ReturnMapUtil.getReturnMap();
}else{
BizObject cat = catManage.createQuery(" opinion =:opinion").setParameter("opinion", opinion).getSingleResult(true);
if( cat == null ){
cat = catManage.newObject();
cat.setAttributeValue("inputuserid", userid);
cat.setAttributeValue("inputorgid", CurUser.getOrgID());
cat.setAttributeValue("inputtime", DateUtil.getSystemTimeByFormat("yyyy/MM/dd HH:mm:ss"));
cat.setAttributeValue("updateuserid", userid);
cat.setAttributeValue("updateorgid", CurUser.getOrgID());
cat.setAttributeValue("updatetime", DateUtil.getSystemTimeByFormat("yyyy/MM/dd HH:mm:ss"));
} else {
BizObject cat = catManage.createQuery(" opinion =:opinion").setParameter("opinion", opinion)
.getSingleResult(true);
if (cat == null) {
cat = catManage.newObject();
cat.setAttributeValue("inputuserid", userid);
cat.setAttributeValue("inputorgid", CurUser.getOrgID());
cat.setAttributeValue("inputtime", DateUtil.getSystemTimeByFormat("yyyy/MM/dd HH:mm:ss"));
cat.setAttributeValue("updateuserid", userid);
cat.setAttributeValue("updateorgid", CurUser.getOrgID());
cat.setAttributeValue("updatetime", DateUtil.getSystemTimeByFormat("yyyy/MM/dd HH:mm:ss"));
}
cat.setAttributeValue("opinion", fieldMap.get("opinion") == null ? "" : fieldMap.get("opinion").toString());
catManage.saveObject(cat);
Configure CurConfig = Configure.getInstance();
BizObjectManager attrBm = JBOFactory.getBizObjectManager("jbo.app.tenwa.doc.LB_DOCATTRIBUTE");
for (Map<String, Object> file : fileList) {
BizObject attr = attrBm.newObject();
attr.setAttributeValue("Library_Id", cat.getAttribute("ID").toString());
attr.setAttributeValue("FileName", file.get("fileName"));
attr.setAttributeValue("InputUserId", CurUser.getOrgID());
attr.setAttributeValue("InputOrgId", CurUser.getOrgID());
attr.setAttributeValue("InputTime", StringFunction.getTodayNow());
attr.setAttributeValue("objectType", "AppOpinion");
// 得到不带路径的文件名
String sFileName = StringFunction.getFileName(file.get("fileName").toString());
sFileName = URLDecoder.decode(URLDecoder.decode(sFileName, "UTF-8"), "UTF-8");
// 定义数据库操作变量
String sFileSavePath = CurConfig.getConfigure("FileSavePath");
String uuid = java.util.UUID.randomUUID().toString().replaceAll("-", "");
String sFullPath = com.tenwa.officetempalte.util.FileOperatorUtil.getuploadFileDir(sFileSavePath) + uuid
+ "_" + sFileName;
InputStream is = (InputStream) file.get("file");
File f = new File(sFullPath);
DataOutputStream fileout = new DataOutputStream(new FileOutputStream(f));
String sFileSize = file.get("fileSize") == null ? "" : file.get("fileSize").toString();
byte b[] = new byte[Integer.valueOf(sFileSize)];
@SuppressWarnings("unused")
int i = is.read(b, 0, Integer.valueOf(sFileSize) - 1);
fileout.write(b, 0, b.length); // 将文件数据存盘
fileout.close();
// 得到带相对路径的文件名
String sFilePath = sFullPath.replace(sFileSavePath, "");
attr.setAttributeValue("FilePath", sFilePath);
attr.setAttributeValue("FullPath", sFullPath);
attr.setAttributeValue("Content_Type", isImage(f, file.get("fileContentType")));
attr.setAttributeValue("FileSize", file.get("fileSize"));
attrBm.saveObject(attr);
}
}
cat.setAttributeValue("opinion", fieldMap.get("opinion") == null ? "" : fieldMap.get("opinion").toString());
catManage.saveObject(cat);
}
ReturnMapUtil.setReturnMap(bo,RestfullConstant.baseProperty.get("success").toString(), "");
ReturnMapUtil.setReturnMap(bo, RestfullConstant.baseProperty.get("success").toString(), "");
return ReturnMapUtil.getReturnMap();
}
public Object isImage(File file, Object object) throws Exception {
String reg = "(mp4|flv|avi|rm|rmvb|wmv)";
Pattern p = Pattern.compile(reg);
boolean boo = p.matcher(file.getName()).find();
if (boo) {
return "video";
}
BufferedImage bi = ImageIO.read(file);
if (bi == null) {
return object;
}
return "image/jpeg";
}
}