Browse Source

Merge remote-tracking branch 'origin/dev' into dev

yujia 7 years ago
parent
commit
4cdfdf4188

+ 0 - 103
src/main/java/com/uas/platform/b2c/b2b/controller/ManageController.java

@@ -1,103 +0,0 @@
-package com.uas.platform.b2c.b2b.controller;
-
-import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
-import com.uas.platform.b2c.b2b.service.EnterpriseBaseInfoService;
-import com.uas.platform.b2c.common.base.model.AccessToken;
-import com.uas.platform.b2c.common.base.service.AccessTokenService;
-import com.uas.platform.b2c.core.config.SysConf;
-import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
-import com.uas.platform.core.logging.BufferedLoggerManager;
-import com.uas.platform.core.model.PageInfo;
-import com.uas.platform.core.model.PageParams;
-import com.wordnik.swagger.annotations.ApiOperation;
-import com.wordnik.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.rmi.AccessException;
-import java.util.Arrays;
-
-/**
- * b2b操作
- *
- * Created by hejq on 2018-04-20.
- */
-@RequestMapping("/b2b/manage")
-@RestController
-public class ManageController {
-
-    @Autowired
-    private AccessTokenService accessTokenService;
-
-    @Autowired
-    private SysConf sysConf;
-
-    @Autowired
-    private EnterpriseBaseInfoService baseInfoService;
-
-    /**
-     * 操作日志
-     */
-    private UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
-
-    /**
-     * 定义可以访问的公司
-     */
-    private static final Long[] ACCESS_ENUU = {1000001L, 10044948L, 10042291L, 10042875L, 10043923L, 10041166L};
-
-    /**
-     * 通过UU号进行跳转到平台
-     *
-     * @param response HttpServletResponse
-     * @param enUU uu号
-     * @throws IOException
-     */
-    @RequestMapping("/authed/redirect/{enUU}")
-    public void redirect(HttpServletResponse response, HttpServletRequest request, @PathVariable("enUU") long enUU)
-            throws IOException {
-        Object bindObj = enUU;
-        if (null == SystemSession.getUser() || null == SystemSession.getUser().getEnterprise()) {
-            throw new AccessException("请先登录");
-        }
-        if (!Arrays.asList(ACCESS_ENUU).contains(SystemSession.getUser().getEnterprise().getUu())) {
-            throw new AccessException("没有访问权限");
-        }
-        AccessToken token = accessTokenService.createNew(bindObj);
-        request.getSession().setAttribute("user", SystemSession.getUser());
-        StringBuffer redirectUrl = new StringBuffer();
-        String domain = sysConf.getB2bDomain();
-        if (StringUtils.hasText(domain)) {
-            // 防止使用同一个www.ubtob.com造成session冲突
-            redirectUrl.append("http://").append(enUU).append(".").append(domain);
-        } else {
-            redirectUrl.append(sysConf.getB2bUrl());
-        }
-        redirectUrl.append("?client_type=manage&access_token=").append(token.getId());
-        logger.log("管理员访问B2B", "通过商务平台后台访问B2B");
-        response.sendRedirect(redirectUrl.toString());
-    }
-
-    /**
-     * 分页查询B2B注册信息
-     *
-     * @param params 分页参数
-     * @param keyword 关键词
-     * @return
-     */
-    @RequestMapping(value = "/enterpriseList", method = RequestMethod.GET)
-    @ApiOperation(value = "分页获取平台所有注册企业信息", httpMethod = "GET")
-    public Page<EnterpriseBaseInfo> findEnterPageByStatus(@ApiParam(required = true, value = "分页参数") PageParams params, @ApiParam(required = true, value = "搜索字符串") String keyword) {
-        PageInfo info = new PageInfo(params);
-        logger.log("管理平台获取企业列表", "通过[" + keyword + "]获取企业信息");
-        return baseInfoService.findEnterPageByKeyword(info, keyword);
-    }
-}

+ 0 - 15
src/main/java/com/uas/platform/b2c/b2b/dao/EnterpriseBaseInfoDao.java

@@ -1,15 +0,0 @@
-package com.uas.platform.b2c.b2b.dao;
-
-import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.stereotype.Repository;
-
-/**
- * 企业基本信息
- *
- * Created by hejq on 2018-04-20.
- */
-@Repository
-public interface EnterpriseBaseInfoDao extends JpaRepository<EnterpriseBaseInfo, Long>, JpaSpecificationExecutor<EnterpriseBaseInfo> {
-}

+ 0 - 105
src/main/java/com/uas/platform/b2c/b2b/model/EnterpriseBaseInfo.java

@@ -1,105 +0,0 @@
-package com.uas.platform.b2c.b2b.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 企业信息基本信息
- *
- * Created by hejq on 2018-04-20.
- */
-@Entity
-@Table(name = "sec$enterprises")
-public class EnterpriseBaseInfo implements Serializable {
-
-    /**
-     * 序列号
-     */
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 企业UU号
-     */
-    @Id
-    @Column(name = "en_uu")
-    private Long uu;
-
-    /**
-     * 公司名称
-     */
-    @Column(name = "en_name")
-    private String enName;
-
-    /**
-     * 注册地址
-     */
-    @Column(name = "en_address")
-    private String enAddress;
-
-    /**
-     * 商业登记证号
-     */
-    @Column(name = "en_businesscode")
-    private String enBussinessCode;
-
-    /**
-     * 注册时间
-     */
-    @Column(name = "en_time")
-    private Date enDate;
-
-    public Long getUu() {
-        return uu;
-    }
-
-    public void setUu(Long uu) {
-        this.uu = uu;
-    }
-
-    public String getEnName() {
-        return enName;
-    }
-
-    public void setEnName(String enName) {
-        this.enName = enName;
-    }
-
-    public String getEnAddress() {
-        return enAddress;
-    }
-
-    public void setEnAddress(String enAddress) {
-        this.enAddress = enAddress;
-    }
-
-    public String getEnBussinessCode() {
-        return enBussinessCode;
-    }
-
-    public void setEnBussinessCode(String enBussinessCode) {
-        this.enBussinessCode = enBussinessCode;
-    }
-
-    public Date getEnDate() {
-        return enDate;
-    }
-
-    public void setEnDate(Date enDate) {
-        this.enDate = enDate;
-    }
-
-    @Override
-    public String toString() {
-        return "EnterpriseBaseInfo{" +
-                "uu=" + uu +
-                ", enName='" + enName + '\'' +
-                ", enAddress='" + enAddress + '\'' +
-                ", enBussinessCode='" + enBussinessCode + '\'' +
-                ", enDate=" + enDate +
-                '}';
-    }
-}

+ 0 - 22
src/main/java/com/uas/platform/b2c/b2b/service/EnterpriseBaseInfoService.java

@@ -1,22 +0,0 @@
-package com.uas.platform.b2c.b2b.service;
-
-import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
-import com.uas.platform.core.model.PageInfo;
-import org.springframework.data.domain.Page;
-
-/**
- * 企业基本信息操作接口
- *
- * Created by hejq on 2018-04-20.
- */
-public interface EnterpriseBaseInfoService {
-
-    /**
-     * 分页查询企业信息
-     *
-     * @param info 分页参数
-     * @param keyword 关键字
-     * @return
-     */
-    Page<EnterpriseBaseInfo> findEnterPageByKeyword(PageInfo info, String keyword);
-}

+ 0 - 63
src/main/java/com/uas/platform/b2c/b2b/service/impl/EnterpriseBaseInfoServiceImpl.java

@@ -1,63 +0,0 @@
-package com.uas.platform.b2c.b2b.service.impl;
-
-import com.uas.platform.b2c.b2b.dao.EnterpriseBaseInfoDao;
-import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
-import com.uas.platform.b2c.b2b.service.EnterpriseBaseInfoService;
-import com.uas.platform.b2c.fa.payment.utils.StringUtils;
-import com.uas.platform.core.model.PageInfo;
-import com.uas.platform.core.persistence.criteria.PredicateUtils;
-import com.uas.platform.core.persistence.criteria.SimpleExpression;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.stereotype.Service;
-
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-
-/**
- * 企业基本信息操作实现
- *
- * Created by hejq on 2018-04-20.
- */
-@Service
-public class EnterpriseBaseInfoServiceImpl implements EnterpriseBaseInfoService {
-
-    @Autowired
-    private EnterpriseBaseInfoDao baseInfoDao;
-
-    /**
-     * UU号正则表达式
-     */
-    static final String UU_REGEXP = "^\\d{4,}$";
-
-    /**
-     * 分页查询企业信息
-     *
-     * @param info    分页参数
-     * @param keyword 关键字
-     * @return
-     */
-    @Override
-    public Page<EnterpriseBaseInfo> findEnterPageByKeyword(final PageInfo info, String keyword) {
-        if (!StringUtils.isEmpty(keyword)) {
-            SimpleExpression name = PredicateUtils.like("enName", keyword, false);
-            if (keyword.matches(UU_REGEXP)) {
-                SimpleExpression enUU = PredicateUtils.eq("uu", keyword, false);
-                SimpleExpression[] expressions = new SimpleExpression[]{name, enUU};
-                info.expression(PredicateUtils.or(expressions));
-            } else {
-                SimpleExpression[] expressions = new SimpleExpression[]{name};
-                info.expression(PredicateUtils.or(expressions));
-            }
-        }
-        return baseInfoDao.findAll(new Specification<EnterpriseBaseInfo>() {
-            public Predicate toPredicate(Root<EnterpriseBaseInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-                query.where(info.getPredicates(root, query, builder));
-                return null;
-            }
-        }, info);
-    }
-}

+ 6 - 28
src/main/java/com/uas/platform/b2c/common/account/controller/AuthenticationController.java

@@ -35,8 +35,6 @@ public class AuthenticationController {
 	@Autowired
 	private RoleService roleService;
 
-	@Autowired
-	private UserLoginTimeDao userLoginTimeDao;
 
 	@RequestMapping(method = RequestMethod.GET, headers = "Accept=application/json")
 	@ResponseBody
@@ -56,7 +54,7 @@ public class AuthenticationController {
 				user.setIssys(Constant.NO);
 			}
 		}
-		request.getSession().setAttribute("user",user);
+		request.getSession().setAttribute("user", user);
 		UserInfo userInfo = new UserInfo(user);
 		Integer hasQuestion = user.getHasQuestion();
 		if (hasQuestion != null && hasQuestion ==1) {
@@ -84,7 +82,7 @@ public class AuthenticationController {
 			return null;
 		}
 		User user = userService.findUserByUserUU(SystemSession.getUser().getUserUU());
-		request.getSession().setAttribute("user",user);
+		request.getSession().setAttribute("user", user);
 		return new UserInfo(user);
 	}
 
@@ -95,30 +93,10 @@ public class AuthenticationController {
 	 */
 	@RequestMapping(value = "/{enUU}")
 	@ResponseBody
-	public void switchEnterprise(@PathVariable("enUU") long enUU) {
-		User user = SystemSession.getUser();
-		//保存登录时间
-		List<UserLoginTime> userLoginTimeList = userLoginTimeDao.findByUserUUAndEnUU(user.getUserUU(), user.getEnterprise() == null ? 0L : user.getEnterprise().getUu());
-		UserLoginTime userLoginTime;
-		if (!CollectionUtils.isEmpty(userLoginTimeList)) {
-			userLoginTime = userLoginTimeList.get(0);
-		} else {
-			userLoginTime = new UserLoginTime();
-			userLoginTime.setUserUU(user.getUserUU());
-			userLoginTime.setEnUU(user.getEnterprise() == null ? 0L : user.getEnterprise().getUu());
-		}
-		userLoginTime.setLoginTime(System.currentTimeMillis());
-		try {
-			userLoginTimeDao.save(userLoginTime);
-		} catch (Exception e) {
-
-		}
-
-		if ( enUU == 0L) {
-			user.setEnterprise(null);
-		} else {
-			user.setCurrentEnterprise(enUU);
-		}
+	public void switchEnterprise(@PathVariable("enUU") long enUU, HttpServletRequest request) {
+		userService.saveLoginTime(enUU);
+		User user = userService.switchEnterprise(enUU);
+		request.getSession().setAttribute("user", user);
 	}
 
 	/**

+ 13 - 0
src/main/java/com/uas/platform/b2c/common/account/service/UserService.java

@@ -207,4 +207,17 @@ public interface UserService {
 	 * @return
 	 */
 	ModelMap anthority(User user,String url);
+
+	/**
+	 * 切换企业
+	 * @param enUU
+	 * @return
+	 */
+	User switchEnterprise(Long enUU);
+
+	/**
+	 * 记录企业的登录时间
+	 * @param enuu
+	 */
+	void saveLoginTime(Long enuu);
 }

+ 11 - 4
src/main/java/com/uas/platform/b2c/common/account/service/impl/EnterpriseServiceImpl.java

@@ -25,9 +25,11 @@ import com.uas.sso.util.AccountUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import javax.annotation.Resource;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
@@ -47,6 +49,8 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 	@Autowired
 	private StoreInDao storeInDao;
 
+	@Resource(name = "v2.EnterpriseService")
+	private com.uas.platform.b2c.common.account.v2.service.EnterpriseService v2EnterpriserService;
 
 	@Override
 	public Enterprise getEnterpriseInfo(Long uu) {
@@ -213,7 +217,7 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 
 	@Override
 	public ResultMap registerEnterprise(FormEnterprise enterprise, String filePath, User user) {
-		//封装注册时的个人账户信息;
+		// 封装注册时的个人账户信息;
 		if (user == null) {
 			throw new RuntimeException("登录异常:用户不存在!");
 		}
@@ -230,7 +234,7 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 		if (imid != null) {
 			userView.setImId(imid.toString());
 		}
-		//封装注册企业信息;
+		// 封装注册企业信息;
 		detail.setSpaceName(enterprise.getName());
 		detail.setCorporation(enterprise.getLawPerson());
 		detail.setAdmin(userView);
@@ -255,12 +259,15 @@ public class EnterpriseServiceImpl implements EnterpriseService{
 		try {
 			JSONObject data = JSON.parseObject(JSON.toJSONString(detail));
 			String userSpa = data.toJSONString();
-			// 调用账户中心的接口注册企业
-			detail = AccountUtils.register(detail, userView);
+			// 调用账户中心的接口注册企业,账户中心不会回调保存,需要我们自己保存,以实现同步
+			detail = AccountUtils.register(detail, userView, false);
+			// 自己保存企业到商城数据库
+			v2EnterpriserService.update(detail);
 		} catch (Exception e) {
 			return new ResultMap(CodeType.SYSTEM_ERROR, e.getMessage());
 		}
 
+
 		// 将新注册的企业UU号返回
 		Map<String, Object> result = new HashMap<String, Object>();
 		result.put("enuu", detail.getSpaceUU());

+ 36 - 0
src/main/java/com/uas/platform/b2c/common/account/service/impl/UserServiceImpl.java

@@ -75,6 +75,9 @@ public class UserServiceImpl implements UserService {
 	@Autowired
 	private ResourceItemDao resourceItemDao;
 
+	@Autowired
+	private UserLoginTimeDao userLoginTimeDao;
+
 	@Override
 	public User findUserByUserUU(Long uu) {
 		List<User> users = userDao.findUserByUserUU(uu);
@@ -561,4 +564,37 @@ public class UserServiceImpl implements UserService {
 		map.put("msg","您没有该权限,请联系管理员");
 		return map;
 	}
+
+	@Override
+	public User switchEnterprise(Long enUU) {
+		User user = userDao.findOne(SystemSession.getUser().getUserUU());
+		if ( enUU == 0L) {
+			user.setEnterprise(null);
+		} else {
+			user.setCurrentEnterprise(enUU);
+		}
+		SystemSession.setUser(user);
+		return user;
+	}
+
+	@Override
+	public void saveLoginTime(Long enuu) {
+		User user = SystemSession.getUser();
+		//保存登录时间
+		List<UserLoginTime> userLoginTimeList = userLoginTimeDao.findByUserUUAndEnUU(user.getUserUU(), user.getEnterprise() == null ? 0L : user.getEnterprise().getUu());
+		UserLoginTime userLoginTime;
+		if (!CollectionUtils.isEmpty(userLoginTimeList)) {
+			userLoginTime = userLoginTimeList.get(0);
+		} else {
+			userLoginTime = new UserLoginTime();
+			userLoginTime.setUserUU(user.getUserUU());
+			userLoginTime.setEnUU(user.getEnterprise() == null ? 0L : user.getEnterprise().getUu());
+		}
+		userLoginTime.setLoginTime(System.currentTimeMillis());
+		try {
+			userLoginTimeDao.save(userLoginTime);
+		} catch (Exception e) {
+
+		}
+	}
 }

+ 1 - 0
src/main/java/com/uas/platform/b2c/common/account/v2/service/impl/EnterpriseServiceImpl.java

@@ -43,6 +43,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
 
     private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
 
+
     @Override
     public Enterprise update(UserSpaceView userSpaceView) {
       /*  List<User> admins = userDao.findUserByUserUU(userSpaceView.getAdminUU());

+ 21 - 0
src/main/java/com/uas/platform/b2c/common/weixin/exception/WeChatException.java

@@ -0,0 +1,21 @@
+package com.uas.platform.b2c.common.weixin.exception;
+
+/**
+ * @author liuam
+ * @since 2018/6/26 0026 下午 16:28
+ */
+public class WeChatException extends Exception {
+
+    public WeChatException() {
+
+    }
+
+    public WeChatException(String message) {
+        super(message);
+    }
+
+    public WeChatException(Throwable cause) {
+        super(cause);
+    }
+
+}

+ 34 - 10
src/main/java/com/uas/platform/b2c/common/weixin/service/impl/WeChatServiceImpl.java

@@ -3,6 +3,7 @@ package com.uas.platform.b2c.common.weixin.service.impl;
 import com.uas.platform.b2c.common.account.dao.UserDao;
 import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.common.weixin.exception.WeChatException;
 import com.uas.platform.b2c.common.weixin.model.MessageModel;
 import com.uas.platform.b2c.common.weixin.model.req.AuthTokenParams;
 import com.uas.platform.b2c.common.weixin.model.req.AuthUserParams;
@@ -54,7 +55,14 @@ public class WeChatServiceImpl implements WeChatService{
     public ModelMap getWxUserInfo(String code, String state) {
         ModelMap result = new ModelMap();
         if (!StringUtils.isEmpty(code)) {
-            AuthUserInfo userInfo = getAccessTokenByCode(code);
+            AuthUserInfo userInfo = null;
+            try {
+                userInfo = getAccessTokenByCode(code);
+            } catch (Exception e) {
+                // 接收到错误信息,直接返回
+                result.put("exception", e.getMessage());
+                return result;
+            }
             result.put("nickname", userInfo.getNickname());
             result.put("headimgurl", userInfo.getHeadimgurl());
             String openid = userInfo.getOpenid();
@@ -93,8 +101,8 @@ public class WeChatServiceImpl implements WeChatService{
 
         TreeMap<String, TreeMap<String, String>> params = new TreeMap<>();
 
-        // 获取操作 api 需要的 access_token
-        String access_token = getAccessToken();
+        // 获取操作 api 需要的 access_token, false 从缓存中查
+        String access_token = getAccessToken(false);
         String sendTemplateUrl = WeChatUtil.SEND_TEMPLATE_URL.replace("ACCESS_TOKEN", access_token);
         // 模板内容设置
         for (MessageModel messageModel : messages) {
@@ -113,8 +121,17 @@ public class WeChatServiceImpl implements WeChatService{
                 wechatTemplateMsg.setTouser(user.getOpenId());
                 wechatTemplateMsg.setData(params);
                 String json = HttpReqUtil.doPost(sendTemplateUrl, FlexJsonUtils.toJsonDeep(wechatTemplateMsg));
-
-                TemplateMsgResult templateMsgResult = FlexJsonUtils.fromJson(json, TemplateMsgResult.class);
+                TemplateMsgResult templateMsgResult = null;
+                try {
+                    templateMsgResult = FlexJsonUtils.fromJson(json, TemplateMsgResult.class);
+                } catch (Exception e) {
+                    // 如果转换失败,说明token失效, 强制获取新的 token ,再进行转换
+                    String access_token_force = getAccessToken(true);
+                    String sendTemplateUrl_force = WeChatUtil.SEND_TEMPLATE_URL.replace("ACCESS_TOKEN", access_token_force);
+                    String json_force = HttpReqUtil.doPost(sendTemplateUrl_force, FlexJsonUtils.toJsonDeep(wechatTemplateMsg));
+                    // 如果转换失败,抛异常
+                    templateMsgResult = FlexJsonUtils.fromJson(json_force, TemplateMsgResult.class);
+                }
                 templateMsgResults.add(templateMsgResult);
             }
         }
@@ -173,12 +190,16 @@ public class WeChatServiceImpl implements WeChatService{
      * 通过code获取用户openId
      * @param code
      */
-    private AuthUserInfo getAccessTokenByCode(String code) {
+    private AuthUserInfo getAccessTokenByCode(String code) throws Exception {
         AuthTokenParams authTokenParams = new AuthTokenParams(WeChatUtil.APPID, WeChatUtil.APPSECRET, code, "authorization_code");
         String json = HttpReqUtil.doGet(WeChatUtil.GET_OAUTH_TOKEN_URL, authTokenParams.getParams());
         AuthAccessToken authAccessToken = FlexJsonUtils.fromJson(json, AuthAccessToken.class);
+        if (authAccessToken.getOpenid() == null) {
+            throw new WeChatException(json);
+        }
         String accessToken = authAccessToken.getAccess_token();
         String openId = authAccessToken.getOpenid();
+        // 可能抛出异常,向上抛
         AuthUserInfo userInfo = getUserInfo(accessToken, openId);
         return userInfo;
     }
@@ -189,21 +210,24 @@ public class WeChatServiceImpl implements WeChatService{
      * @param openId
      * @return
      */
-    private AuthUserInfo getUserInfo(String accessToken, String openId) {
+    private AuthUserInfo getUserInfo(String accessToken, String openId) throws Exception {
         // 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
         AuthUserParams authUserParams = new AuthUserParams(accessToken, openId, "zh_CN");
         String json = HttpReqUtil.doGet(WeChatUtil.SNS_USERINFO_URL, authUserParams.getParams());
         AuthUserInfo authUserInfo = FlexJsonUtils.fromJson(json, AuthUserInfo.class);
+        if (authUserInfo.getOpenid() == null) {
+            throw new WeChatException(json);
+        }
         return authUserInfo;
     }
 
     /**
      * 获取调用api所需的access_token
-     *
+     * force true:不从缓存中查,获取新的token
      */
-    private String getAccessToken () {
+    private String getAccessToken (boolean force) {
         String access_token = (String) redisTemplate.opsForValue().get("WX_ACCESS_TOKEN");
-        if (!StringUtils.isEmpty(access_token)) {
+        if (!StringUtils.isEmpty(access_token) && !force) {
             return access_token;
         }
         AuthTokenParams authTokenParams = new AuthTokenParams(WeChatUtil.APPID, WeChatUtil.APPSECRET,"client_credential");

+ 0 - 95
src/main/webapp/WEB-INF/views/normal/user_center-0321.html

@@ -1,95 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="zh-CN">
-<head>
-<meta charset="utf-8">
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
-<meta name="renderer" content="webkit">
-<title>买家中心-优软商城</title>
-<meta name="description" content="优软商城,电子元器件搜索引擎" />
-<meta name="keywords"
-	content="优软商城,B2B,B2C,行业门户,网上贸易,电子商务,网上贸易,网上交易,交易市场,在线交易,供求信息,采购,求购信息,供应信息" />
-<link href="static/img/all/u.png" rel="icon" type="image/x-icon" />
-<link rel="stylesheet" href="static/lib/bootstrap/css/bootstrap.min.css" />
-<link rel="stylesheet"
-	href="static/lib/fontawesome/css/font-awesome.min.css" />
-<link rel="stylesheet"
-	href="static/lib/jquery/themes/summernote/css/summernote.css" />
-<link rel="stylesheet" href="static/lib/iconfont/css/iconfont.css" />
-<link rel="stylesheet"
-	href="static/lib/jquery/themes/uploadify/uploadify.css" />
-<link rel="stylesheet" href="static/lib/angular/toaster.css" />
-<link rel="stylesheet" href="static/css/common.css" />
-<link rel="stylesheet" href="static/css/usercenter.css" />
-
-</head>
-<body>
-	<!-- 消息提示框  Start-->
-	<toaster-container
-		toaster-options="{'position-class': 'toast-bottom-center'}"></toaster-container>
-	<!-- 消息提示框 End -->
-	<!-- Loading Start -->
-	<div id="loading" class="loading">
-		<i></i>
-	</div>
-	<!-- Loading End -->
-
-	<!-- header 标题Logo和搜索框 Start -->
-	<div ng-include src="'static/view/common/header.html'"></div>
-	<!-- header 标题Logo和搜索框 End -->
-	<!-- navigation 导航栏 Start -->
-	<div ng-include src="'static/view/common/nav.html'"></div>
-	<!-- navigation 导航栏  End -->
-
-	<!-- Start -->
-	<div class="main-panel" id="main">
-		<div class="container">
-			<!-- 左侧导航栏 Start -->
-			<div class="left">
-				<div ng-include src="'static/view/usercenter/left.html'"></div>
-			</div>
-			<!-- 左侧导航栏 End -->
-			<!-- 核心内容 Start -->
-			<div class="right">
-				<div ui-view></div>
-			</div>
-			<!-- 核心内容 End -->
-		</div>
-	</div>
-	<!-- End -->
-	<!-- 页脚 Start -->
-	<div ng-include src="'static/view/common/footer.html'"></div>
-	<!-- 页脚 End -->
-
-	<!-- 侧边栏Start -->
-	<div ng-include src="'static/view/common/sidebar.html'"></div>
-	<!-- 侧边栏End -->
-
-	<script type="text/javascript" src="static/lib/require.js"
-		data-main="static/js/usercenter/main.js"></script>
-	<script type="text/ng-template" id="offer/image/insert.html">
-		<div class="modal-header">
-			<button type="button" class="close" ng-click="close()">×</button>
-			<h4 class="modal-title">插入图片</h4>
-		</div>
-		<div class="modal-body">
-			<div class="row">
-				<div class="col-xs-7" style="padding: 20px;">
-					<p class="help-block">提示:选择的图片单张大小不超过3MB,支持jpg,jpeg,gif,bmp,png</p>
-					<div class="upload-container" ng-disabled="getImages().length == images.length">
-						<div id="uploadify" on-success="onUploadSuccess($data)" uploadify="{buttonText:'选择图片'}"></div>
-					</div>
-				</div>
-				<div class="col-xs-5">
-					<h3>预览</h3>
-					<div class="image-content">
-						<img ng-src="{{image.src}}" class="img-thumbnail" style="width: 100px; height: 100px;">
-					</div>
-				</div>
-			</div>
-		</div>
-		<div class="modal-footer">
-			<div class="pull-right"><a ng-click="confirm()" class="btn btn-primary" ng-disabled="!image.src">确定</a></div>
-		</div>
-	</script>
-</body>
-</html>

+ 0 - 68
src/main/webapp/WEB-INF/views/normal/vendor_center-0323.html

@@ -1,68 +0,0 @@
-<!DOCTYPE HTML>
-<html lang="zh-CN">
-<head>
-<meta charset="utf-8">
-<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
-<meta name="renderer" content="webkit">
-<title>卖家中心-优软商城</title>
-<meta name="description" content="优软商城,电子元器件搜索引擎" />
-<meta name="keywords"
-	content="优软商城,B2B,B2C,行业门户,网上贸易,电子商务,网上贸易,网上交易,交易市场,在线交易,供求信息,采购,求购信息,供应信息" />
-<link href="static/img/all/u.png" rel="icon" type="image/x-icon" />
-<link rel="stylesheet" href="static/lib/bootstrap/css/bootstrap.min.css" />
-<link rel="stylesheet" href="static/lib/angular/ng-table.css" />
-<link rel="stylesheet"
-	href="static/lib/fontawesome/css/font-awesome.min.css" />
-<link rel="stylesheet" href="static/lib/iconfont/css/iconfont.css" />
-<link rel="stylesheet" href="static/lib/angular/toaster.css" />
-<link rel="stylesheet" href="static/css/common.css" />
-<link rel="stylesheet" href="static/css/vendor.css" />
-</head>
-<body>
-	<!-- 消息提示框  Start-->
-	<toaster-container
-		toaster-options="{'position-class': 'toast-bottom-center'}"></toaster-container>
-	<!-- 消息提示框 End -->
-	<!-- Loading Start -->
-	<div id="loading" class="loading">
-		<i></i>
-	</div>
-	<!-- Loading End -->
-
-	<!-- header 标题Logo和搜索框 Start -->
-	<div ng-include src="'static/view/common/header.html'"></div>
-	<!-- header 标题Logo和搜索框 End -->
-
-	<!-- navigation 导航栏 Start -->
-	<div ng-include src="'static/view/common/nav.html'"></div>
-	<!-- navigation 导航栏  End -->
-
-	<!-- 主体内容 Start -->
-	<div class="main-panel" id="main">
-		<div class="container">
-			<!-- 左侧导航栏 Start -->
-			<div class="left">
-				<div ng-include src="'static/view/vendor/left.html'"></div>
-			</div>
-			<!-- 左侧导航栏 End -->
-			<!-- 核心内容 Start -->
-			<div class="right">
-				<div ui-view></div>
-			</div>
-			<!-- 核心内容 End -->
-		</div>
-	</div>
-	<!-- 主体内容 End -->
-
-	<!-- 页脚 Start -->
-	<div ng-include src="'static/view/common/footer.html'"></div>
-	<!-- 页脚 End -->
-
-	<!-- 侧边栏Start -->
-	<div ng-include src="'static/view/common/sidebar.html'"></div>
-	<!-- 侧边栏End -->
-
-	<script type="text/javascript" src="static/lib/require.js"
-		data-main="static/js/vendor/main.js"></script>
-</body>
-</html>