diff --git a/mallinkBApi/src/main/java/com/simple/controller/BaseController.java b/mallinkBApi/src/main/java/com/simple/controller/BaseController.java index 2b07bd8f8..36ad754cc 100644 --- a/mallinkBApi/src/main/java/com/simple/controller/BaseController.java +++ b/mallinkBApi/src/main/java/com/simple/controller/BaseController.java @@ -10,9 +10,11 @@ import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig; import com.simple.domain.po.WxAppinfo; import com.simple.domain.po.WxCUser; +import com.simple.domain.po.WxMerchantBUser; import com.simple.interceptor.AuthorizationInterceptor; import com.simple.service.WxAppinfoService; import com.simple.service.WxCUserService; +import com.simple.service.WxMerchantBUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; @@ -25,7 +27,7 @@ import javax.servlet.http.HttpServletRequest; @RestController public class BaseController { @Autowired - private WxCUserService wxCUserService; + private WxMerchantBUserService wxMerchantBUserService; @Autowired private WxAppinfoService wxAppinfoService; @@ -53,17 +55,17 @@ public class BaseController { } - public WxCUser getUser() { + public WxMerchantBUser getUser() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); Long cUserId = (Long) request.getAttribute(AuthorizationInterceptor.LOGIN_USER_KEY); - WxCUser user = wxCUserService.getById(cUserId); + WxMerchantBUser user = wxMerchantBUserService.getById(cUserId); return user; } public String getTenantId() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); Long cUserId = (Long) request.getAttribute(AuthorizationInterceptor.LOGIN_USER_KEY); - WxCUser user = wxCUserService.getById(cUserId); + WxMerchantBUser user = wxMerchantBUserService.getById(cUserId); return user.getTenantId(); } diff --git a/mallinkBApi/src/main/java/com/simple/controller/WxAppinfoController.java b/mallinkBApi/src/main/java/com/simple/controller/WxAppinfoController.java deleted file mode 100644 index d228e669b..000000000 --- a/mallinkBApi/src/main/java/com/simple/controller/WxAppinfoController.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.simple.controller; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.Assert; -import org.springframework.web.bind.annotation.*; - -import com.github.pagehelper.PageInfo; -import com.simple.common.Result; -import com.simple.common.ResultData; - -import com.simple.domain.po.WxAppinfo; -import com.simple.service.WxAppinfoService; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; - -@RestController -@RequestMapping("wxAppinfo") -public class WxAppinfoController extends BaseController -{ - @Autowired - private WxAppinfoService wxAppinfoService; - - private Logger logger = Logger.getLogger(WxAppinfoController.class); - - @ApiOperation("分页列表接口") - @GetMapping("list") - @ApiImplicitParams({ - @ApiImplicitParam(name="pageNum",value="页数",dataType="int", paramType = "query",required=true), - @ApiImplicitParam(name="pageSize",value="每页条数",dataType="int", paramType = "query",required=true)}) - public ResultData list(@ModelAttribute WxAppinfo wxAppinfo,Integer pageNum, Integer pageSize) { - if (null == wxAppinfo) wxAppinfo = new WxAppinfo(); - final PageInfo page = wxAppinfoService.listAsPage(wxAppinfo, pageNum, pageSize); - return new ResultData(page); - } - - @ApiOperation("新增接口") - @PostMapping("add") - public ResultData add(@RequestBody WxAppinfo wxAppinfo) { - //Assert.notNull(wxAppinfo.getName(), "角色名不能为空"); - //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); - wxAppinfoService.saveOrUpdate(wxAppinfo); - return new ResultData(); - } - - @ApiOperation("根据id更新接口") - @PostMapping("update") - public ResultData update(@RequestBody WxAppinfo wxAppinfo) { - wxAppinfoService.saveOrUpdate(wxAppinfo); - return new ResultData(); - } - - @ApiOperation("根据id删除接口") - @GetMapping("/del") - @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true) - public ResultData delete(Long id) { - wxAppinfoService.deleteById(id); - return new ResultData(Result.SUCCESS, "删除成功", null); - } - - @ApiOperation("根据id查询接口") - @GetMapping("/findById") - @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true) - public ResultData findById(Long id) { - return new ResultData(Result.SUCCESS,"查询成功",wxAppinfoService.getById(id)); - } - - - -} diff --git a/mallinkBApi/src/main/java/com/simple/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/simple/controller/WxMerchantBUserController.java index 5b7ec6a03..00d80c806 100644 --- a/mallinkBApi/src/main/java/com/simple/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/simple/controller/WxMerchantBUserController.java @@ -1,5 +1,12 @@ package com.simple.controller; +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; +import com.simple.annotation.AuthIgnore; +import com.simple.common.ErrorCode; +import com.simple.utils.IPUtil; +import me.chanjar.weixin.common.error.WxErrorException; +import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; @@ -14,58 +21,79 @@ import com.simple.service.WxMerchantBUserService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; @RestController @RequestMapping("wxMerchantBUser") public class WxMerchantBUserController extends BaseController { + private Logger logger = Logger.getLogger(WxMerchantBUserController.class); + @Autowired private WxMerchantBUserService wxMerchantBUserService; - private Logger logger = Logger.getLogger(WxMerchantBUserController.class); - - @ApiOperation("分页列表接口") - @GetMapping("list") - @ApiImplicitParams({ - @ApiImplicitParam(name="pageNum",value="页数",dataType="int", paramType = "query",required=true), - @ApiImplicitParam(name="pageSize",value="每页条数",dataType="int", paramType = "query",required=true)}) - public ResultData list(@ModelAttribute WxMerchantBUser wxMerchantBUser,Integer pageNum, Integer pageSize) { - if (null == wxMerchantBUser) wxMerchantBUser = new WxMerchantBUser(); - final PageInfo page = wxMerchantBUserService.listAsPage(wxMerchantBUser, pageNum, pageSize); - return new ResultData(page); - } + /** + * 用户登录 + * @param map + * @return + */ + @AuthIgnore + @PostMapping("/login") + @ApiOperation(value="用户登录", notes="{\"appId\":\"string\",\"phone\":\"string\",\"password\":\"string\",\"scene\":\"string\",\"sceneAddress\":\"string\"}") + public ResultData userLogin(@RequestBody Map map) { + logger.debug(map.toString()); - @ApiOperation("新增接口") - @PostMapping("add") - public ResultData add(@RequestBody WxMerchantBUser wxMerchantBUser) { - //Assert.notNull(wxMerchantBUser.getName(), "角色名不能为空"); - //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); - wxMerchantBUserService.saveOrUpdate(wxMerchantBUser); - return new ResultData(); - } + Map resultMap = new HashMap(); - @ApiOperation("根据id更新接口") - @PostMapping("update") - public ResultData update(@RequestBody WxMerchantBUser wxMerchantBUser) { - wxMerchantBUserService.saveOrUpdate(wxMerchantBUser); - return new ResultData(); - } + String appId = map.get("appId"); + String phone = map.get("phone"); + String password = map.get("password"); + String scene = map.get("scene"); + String sceneAddress = map.get("sceneAddress"); + //登录凭证不能为空 + if (StringUtils.isBlank(phone)) { + return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "phone不能为空"); + } + if (StringUtils.isBlank(password)) { + return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "password不能为空"); + } - @ApiOperation("根据id删除接口") - @GetMapping("/del") - @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true) - public ResultData delete(Long id) { - wxMerchantBUserService.deleteById(id); - return new ResultData(Result.SUCCESS, "删除成功", null); - } - - @ApiOperation("根据id查询接口") - @GetMapping("/findById") - @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true) - public ResultData findById(Long id) { - return new ResultData(Result.SUCCESS,"查询成功",wxMerchantBUserService.getById(id)); + String token = null; + String session_key = null; + String openId = null; + HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); + String ipaddress = IPUtil.getIpAddr(request); + + WxMerchantBUser user = new WxMerchantBUser(); + user.setAppId(appId); + user.setPhone(phone); + user.setBUserPwd(password); + + try { + WxMerchantBUser user1 = wxMerchantBUserService.getById(user.getId()); + if (user1 != null) { + user1.createToken(new Date()); + token = user1.getToken(); + wxMerchantBUserService.saveOrUpdate(user1); + resultMap.put("token", token); + } else { + user.createToken(new Date()); + token = user.getToken(); + + wxMerchantBUserService.saveOrUpdate(user); + resultMap.put("token", token); + } + } catch (Exception e) { + logger.error(e.getMessage()); + return new ResultData(ErrorCode.DB_FAIL.getCode(), "wx_c_user数据库保存出错", resultMap); + } + return new ResultData(resultMap); } - - } diff --git a/mallinkBApi/src/main/java/com/simple/interceptor/AuthorizationInterceptor.java b/mallinkBApi/src/main/java/com/simple/interceptor/AuthorizationInterceptor.java index 2c71bafcf..9d58a5f47 100644 --- a/mallinkBApi/src/main/java/com/simple/interceptor/AuthorizationInterceptor.java +++ b/mallinkBApi/src/main/java/com/simple/interceptor/AuthorizationInterceptor.java @@ -4,8 +4,10 @@ package com.simple.interceptor; import com.simple.annotation.AuthIgnore; import com.simple.common.ErrorCode; import com.simple.domain.po.WxCUser; +import com.simple.domain.po.WxMerchantBUser; import com.simple.exception.MallinkException; import com.simple.service.WxCUserService; +import com.simple.service.WxMerchantBUserService; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -24,7 +26,7 @@ import javax.servlet.http.HttpServletResponse; @Component public class AuthorizationInterceptor extends HandlerInterceptorAdapter { @Autowired - private WxCUserService wxCUserService; + private WxMerchantBUserService wxMerchantBUserService; public static final String LOGIN_USER_KEY = "LOGIN_USER_KEY"; @@ -56,13 +58,13 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { ///// TODO use b端用户表 // 查询token信息 - WxCUser wxCUser = wxCUserService.getByToken(token); - if(wxCUser == null || wxCUser.getExpireTime().getTime() < System.currentTimeMillis()){ + WxMerchantBUser wxMerchantBUser = wxMerchantBUserService.getByToken(token); + if(wxMerchantBUser == null || wxMerchantBUser.getExpireTime().getTime() < System.currentTimeMillis()){ throw new MallinkException(ErrorCode.TOKEN_INVALID.getCode(), "URL:" + request.getRequestURL() + " token失效,请重新登录"); } //设置userId到request里,后续根据userId,获取用户信息 - request.setAttribute(LOGIN_USER_KEY, wxCUser.getId()); + request.setAttribute(LOGIN_USER_KEY, wxMerchantBUser.getId()); return true; } diff --git a/mallinkBApi/src/main/java/com/simple/resolver/LoginUserHandlerMethodArgumentResolver.java b/mallinkBApi/src/main/java/com/simple/resolver/LoginUserHandlerMethodArgumentResolver.java index a39617a98..7e637d62a 100644 --- a/mallinkBApi/src/main/java/com/simple/resolver/LoginUserHandlerMethodArgumentResolver.java +++ b/mallinkBApi/src/main/java/com/simple/resolver/LoginUserHandlerMethodArgumentResolver.java @@ -2,8 +2,9 @@ package com.simple.resolver; import com.simple.annotation.LoginUser; import com.simple.domain.po.WxCUser; +import com.simple.domain.po.WxMerchantBUser; import com.simple.interceptor.AuthorizationInterceptor; -import com.simple.service.WxCUserService; +import com.simple.service.WxMerchantBUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.MethodParameter; import org.springframework.stereotype.Component; @@ -22,7 +23,7 @@ import org.springframework.web.method.support.ModelAndViewContainer; @Component public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { @Autowired - private WxCUserService wxCUserService; + private WxMerchantBUserService wxMerchantBUserService; @Override public boolean supportsParameter(MethodParameter parameter) { @@ -39,7 +40,7 @@ public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgu } //获取用户信息 - WxCUser user = wxCUserService.getByToken((String)object); + WxMerchantBUser user = wxMerchantBUserService.getByToken((String)object); return user; } diff --git a/mallinkService/src/main/java/com/simple/domain/po/WxMerchantBUser.java b/mallinkService/src/main/java/com/simple/domain/po/WxMerchantBUser.java index b516c565b..f21a01e13 100644 --- a/mallinkService/src/main/java/com/simple/domain/po/WxMerchantBUser.java +++ b/mallinkService/src/main/java/com/simple/domain/po/WxMerchantBUser.java @@ -11,12 +11,14 @@ import java.io.Serializable; @Table(name = "wx_merchant_b_user") public class WxMerchantBUser implements Serializable { private static final long serialVersionUID = 1L; + //12小时后过期 + private final static int EXPIRE = 3600 * 12; @Id protected Long id; @Transient - protected List ids; + protected List ids; @Transient protected String sortColumns; @@ -32,10 +34,11 @@ public class WxMerchantBUser implements Serializable { return sortColumns; } - public List getIds() { + public List getIds() { return ids; } - public void setIds(List ids) { + + public void setIds(List ids) { this.ids = ids; } @@ -47,6 +50,9 @@ public class WxMerchantBUser implements Serializable { /*B端用户id**/ @io.swagger.annotations.ApiModelProperty(value="B端用户id",name="bUserId") private Long bUserId; + /*B端用户手机号**/ + @io.swagger.annotations.ApiModelProperty(value="B端用户手机号",name="phone") + private String phone; /***/ @io.swagger.annotations.ApiModelProperty(value="",name="bUserPwd") private String bUserPwd; @@ -59,6 +65,15 @@ public class WxMerchantBUser implements Serializable { /*更新时间**/ @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") private Date updateDate; + /*小程序的appId**/ + @io.swagger.annotations.ApiModelProperty(value="小程序的appId",name="appId") + private String appId; + /*用户登录用token**/ + @io.swagger.annotations.ApiModelProperty(value="用户登录用token",name="token") + private String token; + /*用户过期时间**/ + @io.swagger.annotations.ApiModelProperty(value="用户过期时间",name="expireTime") + private Date expireTime; public String getTenantId() { return tenantId; } @@ -71,6 +86,12 @@ public class WxMerchantBUser implements Serializable { public void setBUserId(Long _bUserId) { bUserId = _bUserId; } + public String getPhone() { + return phone; + } + public void setPhone(String _phone) { + phone = _phone; + } public String getBUserPwd() { return bUserPwd; } @@ -95,6 +116,24 @@ public class WxMerchantBUser implements Serializable { public void setUpdateDate(Date _updateDate) { updateDate = _updateDate; } + public String getAppId() { + return appId; + } + public void setAppId(String _appId) { + appId = _appId; + } + public String getToken() { + return token; + } + public void setToken(String _token) { + token = _token; + } + public Date getExpireTime() { + return expireTime; + } + public void setExpireTime(Date _expireTime) { + expireTime = _expireTime; + } @@ -103,10 +142,14 @@ public class WxMerchantBUser implements Serializable { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") ,TenantId_ASC("`tenantId` ASC"),TenantId_DESC("`tenantId` DESC") ,BUserId_ASC("`bUserId` ASC"),BUserId_DESC("`bUserId` DESC") + ,Phone_ASC("`phone` ASC"),Phone_DESC("`phone` DESC") ,BUserPwd_ASC("`bUserPwd` ASC"),BUserPwd_DESC("`bUserPwd` DESC") ,MerchantId_ASC("`merchantId` ASC"),MerchantId_DESC("`merchantId` DESC") ,CreateDate_ASC("`createDate` ASC"),CreateDate_DESC("`createDate` DESC") ,UpdateDate_ASC("`updateDate` ASC"),UpdateDate_DESC("`updateDate` DESC") + ,AppId_ASC("`appId` ASC"),AppId_DESC("`appId` DESC") + ,Token_ASC("`token` ASC"),Token_DESC("`token` DESC") + ,ExpireTime_ASC("`expireTime` ASC"),ExpireTime_DESC("`expireTime` DESC") ; private String value; Field(String value){ @@ -158,4 +201,16 @@ public class WxMerchantBUser implements Serializable { this.setSortColumns(Field.valueOf(sortColumns)); } } + + public void createToken(Date currentDate) { + if (expireTime == null || expireTime.getTime() < currentDate.getTime()) + { + //生成一个token + String token = UUID.randomUUID().toString(); + //过期时间 + Date expireTime = new Date(currentDate.getTime() + EXPIRE * 1000); + setToken(token); + setExpireTime(expireTime); + } + } } diff --git a/mallinkService/src/main/java/com/simple/mapper/WxMerchantBUserMapper.java b/mallinkService/src/main/java/com/simple/mapper/WxMerchantBUserMapper.java index aefde7bac..f7af25262 100644 --- a/mallinkService/src/main/java/com/simple/mapper/WxMerchantBUserMapper.java +++ b/mallinkService/src/main/java/com/simple/mapper/WxMerchantBUserMapper.java @@ -5,12 +5,12 @@ import com.simple.common.CommonMapper; import org.apache.ibatis.annotations.Param; import com.simple.domain.po.WxMerchantBUser; -public interface WxMerchantBUserMapper extends CommonMapper { +public interface WxMerchantBUserMapper extends CommonMapper { List findList(WxMerchantBUser wxMerchantBUser); - - + + WxMerchantBUser findByToken(String token); diff --git a/mallinkService/src/main/java/com/simple/service/WxMerchantBUserService.java b/mallinkService/src/main/java/com/simple/service/WxMerchantBUserService.java index 546a89063..5afbbaf26 100644 --- a/mallinkService/src/main/java/com/simple/service/WxMerchantBUserService.java +++ b/mallinkService/src/main/java/com/simple/service/WxMerchantBUserService.java @@ -10,8 +10,8 @@ public interface WxMerchantBUserService { * 根据实体查询分页列表 * * @param record - * @param offset - * @param limit + * @param pageIndex + * @param pageSize * @return */ PageInfo listAsPage(WxMerchantBUser record, Integer pageIndex, Integer pageSize); @@ -23,6 +23,14 @@ public interface WxMerchantBUserService { * @return */ WxMerchantBUser getById(Long id); + + /** + * 根据token获得实体 + * + * @param token + * @return + */ + WxMerchantBUser getByToken(String token); /** * 保存或更新实体 diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxMerchantBUserServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxMerchantBUserServiceImpl.java index 10702a947..f5279f232 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxMerchantBUserServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxMerchantBUserServiceImpl.java @@ -27,6 +27,11 @@ public class WxMerchantBUserServiceImpl implements WxMerchantBUserService { return wxMerchantBUserMapper.selectByPrimaryKey(id); } + @Override + public WxMerchantBUser getByToken(String token) { + return wxMerchantBUserMapper.findByToken(token); + } + @Override public void saveOrUpdate(WxMerchantBUser record) { if (record.getId() == null) { diff --git a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml index 8586e5a56..5e30b300e 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantBUserMapper.xml @@ -5,14 +5,18 @@ + + + + - `id`,`tenant_id`,`b_user_id`,`b_user_pwd`,`merchant_id`,`create_date`,`update_date` + `id`,`tenant_id`,`b_user_id`,`phone`,`b_user_pwd`,`merchant_id`,`create_date`,`update_date`,`app_id`,`token`,`expire_time` @@ -33,6 +37,11 @@ + + and `phone` like concat('%', #{phone},'%') + + + and `b_user_pwd` like concat('%', #{bUserPwd},'%') @@ -51,6 +60,21 @@ and `update_date` = #{updateDate} + + + + and `app_id` like concat('%', #{appId},'%') + + + + + and `token` like concat('%', #{token},'%') + + + + + and `expire_time` = #{expireTime} + and id in @@ -65,8 +89,11 @@ select from wx_merchant_b_user - - + +