Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
@@ -1,46 +1,44 @@
|
||||
|
||||
package cn.ysk.cashier.config.security.rest;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.ysk.cashier.annotation.rest.AnonymousDeleteMapping;
|
||||
import cn.ysk.cashier.annotation.rest.AnonymousGetMapping;
|
||||
import cn.ysk.cashier.annotation.rest.AnonymousPostMapping;
|
||||
import cn.ysk.cashier.config.RsaProperties;
|
||||
import cn.ysk.cashier.config.security.config.bean.LoginCodeEnum;
|
||||
import cn.ysk.cashier.config.security.config.bean.LoginProperties;
|
||||
import cn.ysk.cashier.config.security.config.bean.SecurityProperties;
|
||||
import cn.ysk.cashier.config.security.security.TokenProvider;
|
||||
import cn.ysk.cashier.config.security.service.OnlineUserService;
|
||||
import cn.ysk.cashier.config.security.service.dto.AuthUserDto;
|
||||
import cn.ysk.cashier.config.security.service.dto.JwtUserDto;
|
||||
import cn.ysk.cashier.exception.BadRequestException;
|
||||
import cn.ysk.cashier.mybatis.mapper.MpShopInfoMapper;
|
||||
import cn.ysk.cashier.mybatis.mapper.TbMerchantAccountMapper;
|
||||
import cn.ysk.cashier.mybatis.service.MpShopUserService;
|
||||
import cn.ysk.cashier.pojo.TbToken;
|
||||
import cn.ysk.cashier.pojo.shop.TbMerchantAccount;
|
||||
import cn.ysk.cashier.pojo.shop.TbPlussShopStaff;
|
||||
import cn.ysk.cashier.pojo.shop.TbShopInfo;
|
||||
import cn.ysk.cashier.repository.TbTokenRepository;
|
||||
import cn.ysk.cashier.repository.shop.TbMerchantAccountRepository;
|
||||
import cn.ysk.cashier.repository.shop.TbPlussShopStaffRepository;
|
||||
import cn.ysk.cashier.utils.*;
|
||||
import cn.ysk.cashier.repository.shop.TbShopInfoRepository;
|
||||
import cn.ysk.cashier.utils.RedisUtils;
|
||||
import cn.ysk.cashier.utils.RsaUtils;
|
||||
import cn.ysk.cashier.utils.SecurityUtils;
|
||||
import cn.ysk.cashier.utils.StringUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.wf.captcha.base.Captcha;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import cn.ysk.cashier.annotation.Log;
|
||||
import cn.ysk.cashier.annotation.rest.AnonymousDeleteMapping;
|
||||
import cn.ysk.cashier.annotation.rest.AnonymousGetMapping;
|
||||
import cn.ysk.cashier.annotation.rest.AnonymousPostMapping;
|
||||
import cn.ysk.cashier.config.RsaProperties;
|
||||
import cn.ysk.cashier.exception.BadRequestException;
|
||||
|
||||
import cn.ysk.cashier.config.security.config.bean.LoginProperties;
|
||||
import cn.ysk.cashier.config.security.config.bean.SecurityProperties;
|
||||
import cn.ysk.cashier.config.security.service.dto.AuthUserDto;
|
||||
import cn.ysk.cashier.config.security.service.dto.JwtUserDto;
|
||||
import cn.ysk.cashier.config.security.service.OnlineUserService;
|
||||
import cn.ysk.cashier.pojo.shop.TbShopInfo;
|
||||
import cn.ysk.cashier.repository.shop.TbShopInfoRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.security.core.Authentication;
|
||||
@@ -50,10 +48,9 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
@@ -99,8 +96,8 @@ public class AuthorizationController {
|
||||
if (authUser.isChecked() && StringUtils.isBlank(authUser.getCode()) || authUser.isChecked() && !authUser.getCode().equalsIgnoreCase(code)) {
|
||||
throw new BadRequestException("验证码错误");
|
||||
}
|
||||
String loginpre="";
|
||||
String shopId="";
|
||||
String loginpre = "";
|
||||
String shopId = "";
|
||||
// 判断是否是员工登录
|
||||
if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) {
|
||||
if (StrUtil.isBlank(authUser.getMerchantName())) {
|
||||
@@ -117,7 +114,7 @@ public class AuthorizationController {
|
||||
|
||||
//生成token
|
||||
UsernamePasswordAuthenticationToken authenticationToken =
|
||||
new UsernamePasswordAuthenticationToken(loginpre+authUser.getUsername(), password);
|
||||
new UsernamePasswordAuthenticationToken(loginpre + authUser.getUsername(), password);
|
||||
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
|
||||
SecurityContextHolder.getContext().setAuthentication(authentication);
|
||||
// 生成令牌与第三方系统获取令牌方式
|
||||
@@ -128,7 +125,7 @@ public class AuthorizationController {
|
||||
// TbShopInfo byAccount = tbShopInfoRepository.findByAccount(jwtUserDto.getUsername());
|
||||
TbPlussShopStaff tbPlussShopStaff;
|
||||
if (authUser.getLoginType() != null && "staff".equals(authUser.getLoginType())) {
|
||||
tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername(),shopId);
|
||||
tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername(), shopId);
|
||||
} else {
|
||||
tbPlussShopStaff = staffRepository.queryByAccount(authUser.getUsername());
|
||||
}
|
||||
@@ -151,8 +148,8 @@ public class AuthorizationController {
|
||||
put("user", jwtUserDto);
|
||||
if (byAccount != null) {
|
||||
put("shopId", byAccount.getId());
|
||||
put("mainId", org.apache.commons.lang3.StringUtils.isNotBlank(byAccount.getMainId())?byAccount.getMainId():byAccount.getId());
|
||||
put("loginType", org.apache.commons.lang3.StringUtils.isNotBlank(authUser.getLoginType())?authUser.getLoginType():"merchant");
|
||||
put("mainId", org.apache.commons.lang3.StringUtils.isNotBlank(byAccount.getMainId()) ? byAccount.getMainId() : byAccount.getId());
|
||||
put("loginType", org.apache.commons.lang3.StringUtils.isNotBlank(authUser.getLoginType()) ? authUser.getLoginType() : "merchant");
|
||||
put("shopName", byAccount.getShopName());
|
||||
put("logo", byAccount.getLogo());
|
||||
}
|
||||
@@ -165,6 +162,19 @@ public class AuthorizationController {
|
||||
//踢掉之前已经登录的token
|
||||
onlineUserService.checkLoginOnUser(authUser.getUsername(), token);
|
||||
}
|
||||
// 店铺使用有效期是否过期
|
||||
authInfo.put("expireDate", null);
|
||||
if (tbPlussShopStaff != null) {
|
||||
TbShopInfo shopInfo = shopInfoMapper.selectById(tbPlussShopStaff.getShopId());
|
||||
if (shopInfo != null && shopInfo.getExpireAt() != null) {
|
||||
Long expireAt = shopInfo.getExpireAt();
|
||||
Date time = DateUtil.calendar(expireAt).getTime();
|
||||
authInfo.put("expireDate", DateUtil.formatDate(time));
|
||||
if (DateUtil.compare(new Date(), time) > 0) {
|
||||
throw new BadRequestException("店铺已到期,请联系区域经理续费");
|
||||
}
|
||||
}
|
||||
}
|
||||
return ResponseEntity.ok(authInfo);
|
||||
}
|
||||
|
||||
@@ -188,7 +198,7 @@ public class AuthorizationController {
|
||||
// Integer staffId = shopStaff.getId();
|
||||
// List<TbToken> onlineUserList = tbTokenRepository.findListByAccountIdAndStaffId(accountId, staffId);
|
||||
shopStaff.setPassword(null);
|
||||
return ResponseEntity.ok(new HashMap<String, Object>(){{
|
||||
return ResponseEntity.ok(new HashMap<String, Object>() {{
|
||||
put("shopInfo", shopInfo);
|
||||
put("shopStaff", shopStaff);
|
||||
}});
|
||||
@@ -231,6 +241,19 @@ public class AuthorizationController {
|
||||
//踢掉之前已经登录的token
|
||||
onlineUserService.checkLoginOnUser(authUser.getUsername(), token);
|
||||
}
|
||||
// 店铺使用有效期是否过期
|
||||
authInfo.put("expireDate", null);
|
||||
if (byAccount != null) {
|
||||
TbShopInfo shopInfo = shopInfoMapper.selectById(byAccount.getId());
|
||||
if (shopInfo != null && shopInfo.getExpireAt() != null) {
|
||||
Long expireAt = shopInfo.getExpireAt();
|
||||
Date time = DateUtil.calendar(expireAt).getTime();
|
||||
authInfo.put("expireDate", DateUtil.formatDate(time));
|
||||
if (DateUtil.compare(new Date(), time) > 0) {
|
||||
throw new BadRequestException("店铺已到期,请联系区域经理续费");
|
||||
}
|
||||
}
|
||||
}
|
||||
return ResponseEntity.ok(authInfo);
|
||||
}
|
||||
|
||||
@@ -275,4 +298,5 @@ public class AuthorizationController {
|
||||
onlineUserService.logout(tokenProvider.getToken(request));
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package cn.ysk.cashier.controller;
|
||||
|
||||
import cn.ysk.cashier.annotation.Log;
|
||||
import cn.ysk.cashier.annotation.rest.AnonymousGetMapping;
|
||||
import cn.ysk.cashier.dto.TbVersionQueryCriteria;
|
||||
import cn.ysk.cashier.pojo.TbVersion;
|
||||
import cn.ysk.cashier.service.TbVersionService;
|
||||
@@ -27,6 +28,12 @@ public class TbVersionController {
|
||||
return new ResponseEntity<>(tbVersionService.queryAllPage(criteria),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@AnonymousGetMapping("findBySource")
|
||||
@ApiOperation("查询所属渠道升级版本")
|
||||
public ResponseEntity<Object> findBySource(String source){
|
||||
return new ResponseEntity<>(tbVersionService.findBySource(source),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("版本管理 新增")
|
||||
@ApiOperation("新增版本")
|
||||
|
||||
@@ -32,6 +32,8 @@ public interface TbVersionService {
|
||||
*/
|
||||
List<TbVersionDto> queryAll(TbVersionQueryCriteria criteria);
|
||||
|
||||
TbVersion findBySource(String source);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
* @param id ID
|
||||
|
||||
@@ -8,17 +8,21 @@ import cn.ysk.cashier.pojo.TbVersion;
|
||||
import cn.ysk.cashier.repository.TbVersionRepository;
|
||||
import cn.ysk.cashier.service.TbVersionService;
|
||||
import cn.ysk.cashier.utils.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.persistence.criteria.Predicate;
|
||||
import java.time.Instant;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author ww
|
||||
@@ -47,6 +51,22 @@ public class TbVersionServiceImpl implements TbVersionService {
|
||||
return tbVersionMapper.toDto(tbVersionRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TbVersion findBySource(String source) {
|
||||
Specification<TbVersion> spec = (root, criteriaQuery, criteriaBuilder) -> {
|
||||
Predicate param1 = criteriaBuilder.equal(root.get("source"), source);
|
||||
Predicate param2 = criteriaBuilder.equal(root.get("sel"), 1);
|
||||
// 使用or方法将两个条件组合起来,表示满足其中一个条件即可
|
||||
return criteriaBuilder.and(param1, param2);
|
||||
};
|
||||
Optional<TbVersion> one = tbVersionRepository.findOne(spec);
|
||||
if(one.isPresent()){
|
||||
return one.get();
|
||||
}else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public TbVersionDto findById(Integer id) {
|
||||
@@ -58,17 +78,12 @@ public class TbVersionServiceImpl implements TbVersionService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public TbVersionDto create(TbVersion resources) {
|
||||
int exist = tbVersionRepository.isExist(resources.getSource(), resources.getVersion());
|
||||
int exist = tbVersionRepository.isExist(resources.getSource(), resources.getVersion());
|
||||
if (exist > 0) {
|
||||
throw new BadRequestException("该版本已存在。");
|
||||
}
|
||||
resources.setCreatedAt(Instant.now().toEpochMilli());
|
||||
TbVersionDto dto = tbVersionMapper.toDto(tbVersionRepository.save(resources));
|
||||
// if (dto.getIsUp() == 1) {
|
||||
// //产品标识:型号:版本
|
||||
// //VERSION:PC::version 存在即需要强制更新
|
||||
// redisUtils.set(CacheKey.VERSION + dto.getSource() + ":" + dto.getVersion(), dto);
|
||||
// }
|
||||
return dto;
|
||||
}
|
||||
|
||||
@@ -77,23 +92,15 @@ public class TbVersionServiceImpl implements TbVersionService {
|
||||
public void update(TbVersion resources) {
|
||||
TbVersion tbVersion = tbVersionRepository.findById(resources.getId()).orElseGet(TbVersion::new);
|
||||
ValidationUtil.isNull(tbVersion.getId(), "TbVersion", "id", resources.getId());
|
||||
// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion());
|
||||
tbVersion.copy(resources);
|
||||
tbVersion.setUpdatedAt(Instant.now().toEpochMilli());
|
||||
tbVersionRepository.save(tbVersion);
|
||||
// if (resources.getIsUp() == 1) {
|
||||
// //产品标识:型号:版本
|
||||
// //LDBL_APP_VERSION:ios:version 存在即需要强制更新
|
||||
// redisUtils.set(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion(), tbVersion.getMessage());
|
||||
// } else {
|
||||
// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion());
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateSel(TbVersion resources) {
|
||||
tbVersionRepository.updateSelBySource(resources.getSource(),resources.getId());
|
||||
tbVersionRepository.updateSelBySource(resources.getSource(), resources.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -102,9 +109,6 @@ public class TbVersionServiceImpl implements TbVersionService {
|
||||
TbVersion tbVersion = tbVersionRepository.findById(id).orElseGet(TbVersion::new);
|
||||
ValidationUtil.isNull(tbVersion.getId(), "TbVersion", "id", id);
|
||||
tbVersionRepository.deleteById(id);
|
||||
// if (tbVersion.getIsUp() == 1) {
|
||||
// redisUtils.del(tbVersion.getSource() + "_VERSION:" + tbVersion.getType() + ":" + tbVersion.getVersion());
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user