Browse Source

Merge branch 'master' of ssh://10.10.101.21/source/platform-b2b into dev

hejq 7 years ago
parent
commit
146d91d19e

+ 47 - 5
src/main/java/com/uas/platform/b2b/filter/SSOInterceptor.java

@@ -1,5 +1,6 @@
 package com.uas.platform.b2b.filter;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.platform.b2b.dao.ResourceItemDao;
 import com.uas.platform.b2b.manage.service.AccessTokenService;
 import com.uas.platform.b2b.model.*;
@@ -8,12 +9,14 @@ import com.uas.platform.b2b.service.RoleService;
 import com.uas.platform.b2b.service.SigninLogService;
 import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.support.SecurityConstant;
+import com.uas.platform.b2b.support.SysConf;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UserCreater;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.util.AgentUtils;
 import com.uas.platform.core.util.encry.Md5Utils;
 import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.sso.SSOConfig;
 import com.uas.sso.SSOHelper;
 import com.uas.sso.SSOToken;
 import com.uas.sso.entity.UserAccount;
@@ -33,6 +36,7 @@ import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
+import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 
 import javax.servlet.http.HttpServletRequest;
@@ -67,6 +71,9 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 
 	private final DeviceResolver deviceResolver = new LiteDeviceResolver();
 
+    @Autowired
+    private SysConf conf;
+
     /**
      * 手机号正则表达式
      */
@@ -134,9 +141,13 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
      */
 	@Override
 	protected boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) {
+        StringBuffer url = request.getRequestURL();
+        String ip = AgentUtils.getIp(request);
+        logger.info("onAuthenticateFailed, time: " + System.currentTimeMillis() + "; url: " + url + ", ip: " + ip);
 		SystemSession.clear();
 		User user = (User) request.getSession().getAttribute("user");
-		if (user == null) {
+        logger.info("user: " + user != null ? JSON.toJSON(user) : "error");
+        if (user == null) {
 			user = getUserByAccessToken(request);
 			if (user != null) {
 				user.setIp(AgentUtils.getIp(request));
@@ -164,16 +175,40 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 				return true;
 			}
             setResponseAuthorized(response, user, false);
+            if (!isRedirectAble(request)) {
+                try {
+                    printJson(response, new ModelMap("loginUrl", getLoginPage(request, response)));
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
 			return false;
 		}
-	}
+    }
 
     /**
-     * 输出json格式
+     * 获取登录地址
      *
-     * @param obj
+     * @param request
+     * @param response
+     * @return
      * @throws IOException
      */
+    private String getLoginPage(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        // 引用页面
+        String refererSymbol = "Referer";
+        request.getSession().setAttribute(SSOConfig.SSOReferer, request.getHeader(refererSymbol));
+        SSOHelper.clearLogin(request, response);
+        String redirectUrl = (SSOHelper.getRedirectLoginUrl(request, conf.getB2b()));
+        return redirectUrl;
+    }
+
+    /**
+     * 输出json格式
+     *
+     * @param obj 对象
+     * @throws IOException IO异常
+     */
     protected void printJson(HttpServletResponse response, Object obj) throws IOException {
         response.addHeader("Content-Type", "application/json; charset=UTF-8");
         PrintWriter printWriter = response.getWriter();
@@ -189,12 +224,15 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
      * @param authorized 验证是否通过
      */
     protected void setResponseAuthorized(HttpServletResponse response, User user, boolean authorized) {
-        response.setStatus(authorized ? HttpStatus.OK.value() : HttpStatus.UNAUTHORIZED.value());
+        Integer status = authorized ? HttpStatus.OK.value() : HttpStatus.UNAUTHORIZED.value();
+        response.setStatus(status);
         if (null != user && null != user.getEnterprise()) {
             response.setStatus(authorized ? HttpStatus.OK.value() : HttpStatus.UNAUTHORIZED.value());
             String authorizedValue = authorized ? HttpStatus.OK.name() : HttpStatus.UNAUTHORIZED.name();
             response.setHeader("authorized", authorizedValue);
         }
+        logger.info("setResponseAuthorized, user: " + (null != user ? JSON.toJSONString(user) : "error"));
+        logger.info("status: " + status);
     }
 
     /**
@@ -205,6 +243,9 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
      */
 	@Override
 	protected void onAuthenticateSuccess(HttpServletRequest request, HttpServletResponse response) {
+		StringBuffer url = request.getRequestURL();
+        String ip = AgentUtils.getIp(request);
+        logger.info("onAuthenticateSuccess, time: " + System.currentTimeMillis() + "; url: " + url + ", ip: " + ip);
 		User user = (User) request.getSession().getAttribute("user");
 		SSOToken token = SSOHelper.attrToken(request);
 		// cookie变化的情况下,session可能还未变化
@@ -236,6 +277,7 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 				e.printStackTrace();
 			}
 		}
+        logger.info("user: " + SystemSession.getUser() != null ? JSON.toJSON(SystemSession.getUser()) : "error");
 	}
 
 	/**

+ 98 - 68
src/main/java/com/uas/platform/b2b/service/impl/DeputyOrderServiceImpl.java

@@ -34,6 +34,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 @Service
 public class DeputyOrderServiceImpl implements DeputyOrderService {
@@ -198,31 +199,33 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 			order.setDownloadstatus("未下载");
 			order.setEnuu(SystemSession.getUser().getEnterprise().getUu());
 			order.setUseruu(SystemSession.getUser().getUserUU());
-			if(null != deorder.getOrderamount()) {//存在金额为空值的情况
+            //存在金额为空值的情况
+			if (null != deorder.getOrderamount()) {
                 order.setOrderamount(Double.valueOf(df.format(deorder.getOrderamount())));
             }
-			if (deorder.getStatus().equals("在录入")) {
+            String entryStatus = "在录入";
+			if (entryStatus.equals(deorder.getStatus())) {
 				order.setStatus(Status.UNAUDIT.getPhrase());
 				order.setStatuscode(Status.UNAUDIT.value());
 			}
-			if(null != deorder.getTotalamount()) {
+			if (null != deorder.getTotalamount()) {
                 order.setTotalamount(Double.valueOf(df.format(deorder.getTotalamount())));
             }
-            if(null != deorder.getTotalpayament()) {
+            if (null != deorder.getTotalpayament()) {
                 order.setTotalpayament(Double.valueOf(df.format(deorder.getTotalpayament())));
             }
-            if(null != deorder.getUsdpayment()) {
+            if (null != deorder.getUsdpayment()) {
                 order.setUsdpayment(Double.valueOf(df.format(deorder.getUsdpayment())));
             }
 			order = deputyOrderDao.save(order);
 			int i = 1;
-			List<DeputyOrderItem> items = new ArrayList<DeputyOrderItem>();
+			List<DeputyOrderItem> items = new ArrayList<>();
 			if (order.getId() != null) {
 				if (!CollectionUtils.isEmpty(deorder.getDeputyOrderItems())) {
 					for (DeputyOrderItem item : deorder.getDeputyOrderItems()) {
-						Double totalprice = item.getUnitprice() * item.getAmount();
+						Double totalPrice = item.getUnitprice() * item.getAmount();
 						item.setDeoid(order.getId());
-						item.setTotalprice(Double.valueOf(df.format(totalprice)));
+						item.setTotalprice(Double.valueOf(df.format(totalPrice)));
 						item.setDetno(item.getDetno());
 						item.setDetno(i);
 						items.add(item);
@@ -238,57 +241,78 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 				map.put("error", "订单保存失败");
 			}
 			// 记录关键字
-			DeputyOrderKeywords keyword = new DeputyOrderKeywords();
-			DeputyOrderKeywords oldkeyword = deputyOrderKeywordsDao
-					.findByEnuuAndTervendor(SystemSession.getUser().getEnterprise().getUu(), deorder.getTervendor());
-			if (oldkeyword != null) {// 更新
-				keyword = oldkeyword;
-			}
-			keyword.setTervendor(deorder.getTervendor());
-			keyword.setBankaccount(order.getBankaccount());
-			keyword.setBankaddress(order.getBankaddress());
-			keyword.setBankcode(order.getBankcode());
-			keyword.setBankname(order.getBankname());
-			keyword.setCompanyname(order.getCompanyname());
-			keyword.setDate(new Date());
-			keyword.setEnuu(SystemSession.getUser().getEnterprise().getUu());
-			keyword.setLegalrepresent(order.getLegalrepresent());
-			keyword.setOtherdata(order.getOtherdata());
-			keyword.setTervendaddress(order.getTervendaddress());
-			keyword.setUseruu(SystemSession.getUser().getUserUU());
-			keyword.setVendtel(order.getVendtel());
-			keyword.setVenduser(order.getVenduser());
-			keyword.setEnfax(order.getEnfax());
-			keyword.setDeliverymethod(order.getDeliverymethod());
-			deputyOrderKeywordsDao.save(keyword);
+            saveKeywords(order);
 			// 记录供应商
-			DeputyHisVendors oldvendor = deputyHisVendorsDao
-					.findByEnuuAndVendorname(SystemSession.getUser().getEnterprise().getUu(), order.getTervendor());
-			if (null == oldvendor) {// 不存在才进行插入
-				DeputyHisVendors vendor = new DeputyHisVendors();
-				vendor.setDate(new Date());
-				vendor.setEnuu(SystemSession.getUser().getEnterprise().getUu());
-				vendor.setUseruu(SystemSession.getUser().getUserUU());
-				vendor.setVendorname(order.getTervendor());
-				deputyHisVendorsDao.save(vendor);
-			}
+            saveVendors(order);
 			// 记录上次的关键词(不关联供应商)
-			DeputyLastOrderKeywords keywords = new DeputyLastOrderKeywords();
-			DeputyLastOrderKeywords lastkeywords = deputyLastOrderKeywordsDao
-					.findByEnuu(SystemSession.getUser().getEnterprise().getUu());
-			if (lastkeywords != null) {
-				keywords = lastkeywords;
-			}
-			keywords.setDate(new Date());
-			keywords.setEnuu(SystemSession.getUser().getEnterprise().getUu());
-			keywords.setMadealcode(order.getMadealcode());
-			keywords.setMadealdate(order.getMadealdate());
-			deputyLastOrderKeywordsDao.save(keywords);
+            saveLastKeywords(order);
 		}
 		return map;
 	}
 
-	@Override
+    /**
+     * 记录上次的关键词
+     *
+     * @param order 代采订单
+     */
+    private void saveLastKeywords(DeputyOrder order) {
+        DeputyLastOrderKeywords keywords = deputyLastOrderKeywordsDao
+                .findByEnuu(SystemSession.getUser().getEnterprise().getUu());
+        keywords.setDate(new Date(System.currentTimeMillis()));
+        keywords.setEnuu(SystemSession.getUser().getEnterprise().getUu());
+        keywords.setMadealcode(order.getMadealcode());
+        keywords.setMadealdate(order.getMadealdate());
+        deputyLastOrderKeywordsDao.save(keywords);
+    }
+
+    /**
+     * 保存供应商
+     *
+     * @param order 代采订单
+     */
+    private void saveVendors(DeputyOrder order) {
+        DeputyHisVendors oldVendor = deputyHisVendorsDao
+                .findByEnuuAndVendorname(SystemSession.getUser().getEnterprise().getUu(), order.getTervendor());
+        // 不存在才进行插入
+        if (null == oldVendor) {
+            DeputyHisVendors vendor = new DeputyHisVendors();
+            vendor.setDate(new Date(System.currentTimeMillis()));
+            vendor.setEnuu(SystemSession.getUser().getEnterprise().getUu());
+            vendor.setUseruu(SystemSession.getUser().getUserUU());
+            vendor.setVendorname(order.getTervendor());
+            deputyHisVendorsDao.save(vendor);
+        }
+    }
+
+    /**
+     * 保存关键字
+     *
+     * @param order 代采订单
+     */
+    private void saveKeywords(DeputyOrder order) {
+        DeputyOrderKeywords keyword = deputyOrderKeywordsDao
+                .findByEnuuAndTervendor(SystemSession.getUser().getEnterprise().getUu(), order.getTervendor());
+        // 更新
+        keyword.setTervendor(order.getTervendor());
+        keyword.setBankaccount(order.getBankaccount());
+        keyword.setBankaddress(order.getBankaddress());
+        keyword.setBankcode(order.getBankcode());
+        keyword.setBankname(order.getBankname());
+        keyword.setCompanyname(order.getCompanyname());
+        keyword.setDate(new Date(System.currentTimeMillis()));
+        keyword.setEnuu(SystemSession.getUser().getEnterprise().getUu());
+        keyword.setLegalrepresent(order.getLegalrepresent());
+        keyword.setOtherdata(order.getOtherdata());
+        keyword.setTervendaddress(order.getTervendaddress());
+        keyword.setUseruu(SystemSession.getUser().getUserUU());
+        keyword.setVendtel(order.getVendtel());
+        keyword.setVenduser(order.getVenduser());
+        keyword.setEnfax(order.getEnfax());
+        keyword.setDeliverymethod(order.getDeliverymethod());
+        deputyOrderKeywordsDao.save(keyword);
+    }
+
+    @Override
 	public DeputyOrder getOrderDetail(Long id) {
 		return deputyOrderDao.findOne(id);
 	}
@@ -321,7 +345,6 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 		DeputyOrder order = deputyOrderDao.findOne(id);
 		if (order != null) {
 			order.setPrint((short) ((order.getPrint() == null ? 0 : order.getPrint()) + 1));
-//			PrintLog printLog = new PrintLog(new Date(), SystemSession.getUser().getUserName(), "平台客户打印代采订单", order.getId(), "purc$orders", order.getCode(), order.getErpId(), Constant.NO);
 		}
 		deputyOrderDao.save(order);
 	}
@@ -453,27 +476,34 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 
 	@Override
 	public ModelMap copyOrder(Long id) {
-		DeputyOrder oldorder = deputyOrderDao.findOne(id);
-		oldorder.setId(null);
-		oldorder.setSalecode(null);
-		oldorder.setSalepocode(null);
+        // 信扬要求默认交货方式
+        final String defaultDeliveryMethod = "供应商送货到付款采购方指定仓库";
+        // 信扬UU号
+        final Long XinYang_UU = 10044118L;
+		DeputyOrder existOrder = deputyOrderDao.findOne(id);
+        existOrder.setId(null);
+        existOrder.setSalecode(null);
+        existOrder.setSalepocode(null);
 		SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss_sss");
-		oldorder.setCode("DC" + sdf.format(new Date()));
-		oldorder.setDate(new Date());
-		oldorder.setEntrydate(new Date());
-		oldorder.setUseruu(SystemSession.getUser().getUserUU());
-		oldorder.setEntrystatus("保存");
-		oldorder.setStatus("在录入");
-		if (!CollectionUtils.isEmpty(oldorder.getDeputyOrderItems())) {
-			for (DeputyOrderItem item : oldorder.getDeputyOrderItems()) {
+        existOrder.setCode("DC" + sdf.format(new Date()));
+        existOrder.setDate(new Date());
+        existOrder.setEntrydate(new Date());
+        existOrder.setUseruu(SystemSession.getUser().getUserUU());
+        existOrder.setEntrystatus("保存");
+        existOrder.setStatus("在录入");
+        // 代采企业为信扬时,设置默认值
+		if (Objects.equals(XinYang_UU, existOrder.getDeputyuu())) {
+            existOrder.setDeliverymethod(defaultDeliveryMethod);
+        }
+		if (!CollectionUtils.isEmpty(existOrder.getDeputyOrderItems())) {
+			for (DeputyOrderItem item : existOrder.getDeputyOrderItems()) {
 				item.setId(null);
 				item.setDeoid(null);
 				item.setDetno(null);
 				item.setDeputyOrder(null);
 			}
 		}
-		return saveDeOrder(oldorder);
-
+		return saveDeOrder(existOrder);
 	}
 
 	@Override

+ 1 - 1
src/main/resources/cloud/account.properties

@@ -8,7 +8,7 @@ account.user.getContactPage.url=https://sso.ubtob.com/business/groups
 sso.app=b2b
 # token secretkey
 sso.secretkey=0taQcW073Z7G628g5H
-sso.cookie.domain=ubtob.com
+#sso.cookie.domain=ubtob.com
 sso.cookie.secure=false
 sso.cookie.browser=false
 sso.login.url=https://sso.ubtob.com

+ 1 - 1
src/main/resources/cloud/sys.properties

@@ -1,5 +1,5 @@
 #path
-b2b=http://uas.ubtob.com
+b2b=https://b2b.usoftchina.com
 manage=http://manage.ubtob.com
 manageInner=http://10.10.100.81:8080
 im=http://113.105.74.140:8092

+ 1 - 1
src/main/resources/dev/sys.properties

@@ -1,5 +1,5 @@
 #path
-b2b=http://218.17.158.219:9000/b2b_test
+b2b=http://218.17.158.219:9000/b2b-test
 manage=http://218.17.158.219:9090/platform-manage
 manageInner=http://192.168.253.60:9090/platform-manage
 im=http://113.105.74.131:8092

+ 1 - 1
src/main/resources/test/sys.properties

@@ -1,5 +1,5 @@
 #path
-b2b=http://218.17.158.219:9000/b2b_test
+b2b=http://218.17.158.219:9000/b2b-test
 manage=http://218.17.158.219:9090/platform-manage
 manageInner=http://192.168.253.60:9090/platform-manage
 im=http://113.105.74.131:8092

+ 2 - 0
src/main/webapp/resources/js/index/app.js

@@ -12,6 +12,8 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
     app.factory('httpInterceptor', ['$window', '$q', function ($window, $q) {
         var httpInterceptor = {
             responseError: function (response) {
+                console.log('res' + response);
+                console.log('status' + response.status);
                 if (response.status == 401) {// UNAUTHORIZED
                     // window.location.href = window.location.origin + window.location.pathname + '/login';
                     // window.location.reload();