Commit c84a609c authored by libin's avatar libin

Merge branch 'master' into campsite-fix

parents b595c2f2 22f44512
......@@ -29,7 +29,10 @@ public class AppUserLogRemarkDTO {
*/
private Integer levelId;
/**
* 照片url多张已","分割
*/
private String photos;
}
package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import tk.mybatis.mapper.annotation.KeySql;
import tk.mybatis.mapper.code.IdentityDialect;
......@@ -22,9 +24,15 @@ public class AppStaffUser {
@Column(name = "su_id")
@ApiModelProperty("员工app账号id")
private Integer suId;
@Column(name = "su_phone")
@ApiModelProperty("员工手机号")
private String suPhone;
@Column(name = "u_name")
@ApiModelProperty("客户姓名")
private String uName;
@Column(name = "u_id")
@ApiModelProperty("客户id")
private Integer uid;
@ApiModelProperty("客户手机")
private String phone;
@ApiModelProperty("客户公司")
......@@ -40,4 +48,5 @@ public class AppStaffUser {
@Column(name = "is_del")
@ApiModelProperty("状态:0-未删除 1-已删除")
private Integer isDel;
private Integer status;
}
package com.github.wxiaoqi.security.admin.entity;
import lombok.Data;
/**
* @Auther: Administrator
* @Date: 2019/12/17 15:35
* @Description:
*/
@Data
public class AppStaffUserDTO {
/**
* 员工id
*/
private Integer suId;
/**
* 员工手机号
*/
private String suPhone;
/**
* 客户id
*/
private Integer uid;
/**
* 下级客户姓名
*/
private String uName;
/**
* 下级客户手机号
*/
private String phone;
/**
* 下级身份
*/
private Integer positionId;
}
......@@ -11,6 +11,7 @@ import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
/**
* APP员工客户日志备注表
......@@ -38,4 +39,12 @@ public class AppUserLogRemark {
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date time;
/**
* 照片url地址","分割
*/
private String photos;
/**
* 照片url地址
*/
private List<String> photoList;
}
package com.github.wxiaoqi.security.admin.entity;
import lombok.Data;
/**
* 修改后的用户信息
* @author Administrator
* @Auther: Administrator
* @Date: 2019/12/17 18:24
* @Description:
*/
@Data
public class ModifiedUsers {
private Integer userid;
private String phone;
private String name;
private Integer positionId;
}
package com.github.wxiaoqi.security.admin.biz;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.druid.sql.visitor.functions.If;
import com.github.wxiaoqi.security.admin.entity.AppStaffUser;
import com.github.wxiaoqi.security.admin.entity.AppStaffUserDTO;
import com.github.wxiaoqi.security.admin.entity.AppStaffUserVo;
import com.github.wxiaoqi.security.admin.entity.ModifiedUsers;
import com.github.wxiaoqi.security.admin.mapper.AppStaffUserMapper;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.im.utils.StringUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -20,16 +24,15 @@ import java.util.List;
* @author Administrator
*/
@Service
@RequiredArgsConstructor(onConstructor_={@Autowired})
@RequiredArgsConstructor(onConstructor_ = {@Autowired})
@Slf4j
public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> {
private final AppUserLoginBiz appUserLoginBiz;
private final AppUserDetailBiz appUserDetailBiz;
private final Integer POSITION_ID=4;
public List<AppStaffUser> getAll(Integer id) {
Example example = new Example(AppStaffUser.class);
example.createCriteria().andEqualTo("suId",id).andEqualTo("isDel",0);
return selectByExample(example);
public List<AppStaffUser> getAll(Integer id, String username) {
return mapper.selectByBysuIdOrUsername(id,username);
}
@Override
......@@ -39,7 +42,6 @@ public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> {
}
@Override
public int updateSelectiveByIdRe(AppStaffUser appStaffUser) {
appStaffUser.setUpdTime(new Date());
......@@ -47,46 +49,98 @@ public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> {
}
public AppStaffUser findOne(AppStaffUser appStaffUser) {
Example example= new Example(AppStaffUser.class);
Example example = new Example(AppStaffUser.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDel",0);
if (appStaffUser.getId()!=null) {
criteria.andEqualTo("id",appStaffUser.getId());
return mapper.selectOneByExample(example);
criteria.andEqualTo("isDel", 0);
if (appStaffUser.getId() != null) {
criteria.andEqualTo("id", appStaffUser.getId());
}
if (appStaffUser.getPhone()!=null){
criteria.andEqualTo("phone",appStaffUser.getPhone());
List<AppStaffUser> appStaffUsers = mapper.selectByExample(example);
if (CollectionUtil.isNotEmpty(appStaffUsers)) {
AppStaffUser staffUser = appStaffUsers.get(0);
AppStaffUserVo appStaffUserVo = new AppStaffUserVo();
BeanUtils.copyProperties(staffUser,appStaffUserVo);
Integer suId = staffUser.getSuId();
AppUserVo userInfoById = appUserDetailBiz.getUserInfoById(suId);
appStaffUserVo.setEmployeeName(userInfoById.getRealname());
appStaffUserVo.setEmployeePhone(userInfoById.getUsername());
return appStaffUserVo;
}
if (appStaffUser.getPhone() != null) {
criteria.andEqualTo("phone", appStaffUser.getPhone());
}
return null;
List<AppStaffUser> appStaffUsers = mapper.selectByExample(example);
if (CollectionUtil.isNotEmpty(appStaffUsers)) {
AppStaffUser staffUser = appStaffUsers.get(0);
AppStaffUserVo appStaffUserVo = new AppStaffUserVo();
BeanUtils.copyProperties(staffUser, appStaffUserVo);
Integer suId = staffUser.getSuId();
//上级员工信息
if (suId != null && suId != 0 && appStaffUser.getPhone() != null){
AppUserVo spuser = appUserDetailBiz.getUserInfoById(suId);
appStaffUserVo.setEmployeeName(spuser.getRealname());
appStaffUserVo.setEmployeePhone(spuser.getUsername());
}
//客户信息
Integer uid = staffUser.getUid();
if (uid != null && uid > 0){
AppUserVo user = appUserDetailBiz.getUserInfoById(uid);
appStaffUserVo.setUName(StringUtil.isEmpty(user.getRealname())?user.getNickname():user.getRealname());
appStaffUserVo.setPhone(user.getUsername());
}
return appStaffUserVo;
}
return null;
}
public boolean select(AppStaffUser appStaffUser) {
Example example=new Example(AppStaffUser.class);
example.createCriteria().andEqualTo("uName",appStaffUser.getUName())
.andEqualTo("phone",appStaffUser.getPhone())
.andEqualTo("isDel",0);
Example example = new Example(AppStaffUser.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("phone", appStaffUser.getPhone())
.andEqualTo("isDel", 0);
List<AppStaffUser> appStaffUsers = mapper.selectByExample(example);
return CollectionUtil.isEmpty(appStaffUsers)?true:false;
return CollectionUtil.isEmpty(appStaffUsers) ? true : false;
}
public void update(AppStaffUser staffUser, Integer userid) {
Example example = new Example(AppStaffUser.class);
example.createCriteria().andEqualTo("id",staffUser.getId()).andEqualTo("suId",userid);
mapper.updateByExampleSelective(staffUser,example);
example.createCriteria().andEqualTo("id", staffUser.getId()).andEqualTo("suId", userid);
mapper.updateByExampleSelective(staffUser, example);
}
public void updateByPhone(AppStaffUser staffUser) {
Example example = new Example(AppStaffUser.class);
example.createCriteria().andEqualTo("phone",staffUser.getPhone());
mapper.updateByExampleSelective(staffUser, example);
}
/**
* 添加用户关系
* @param staffUserDTO
*/
public void addAppStaffUser(AppStaffUserDTO staffUserDTO){
log.info("staffUserDTO={}",staffUserDTO);
AppUserVo superAppUserVo= appUserDetailBiz.getUserInfoById(staffUserDTO.getSuId());
AppUserVo userInfoById = appUserDetailBiz.getUser(staffUserDTO.getUid());
log.info("userInfoById={}",userInfoById);
AppStaffUser appStaffUser = new AppStaffUser();
appStaffUser.setSuId(superAppUserVo.getUserid());
appStaffUser.setSuPhone(superAppUserVo.getUsername());
appStaffUser.setUid(staffUserDTO.getUid());
appStaffUser.setUName(StringUtil.isEmpty(userInfoById.getRealname()) ? userInfoById.getNickname() : userInfoById.getRealname());
appStaffUser.setPhone(userInfoById.getUsername());
appStaffUser.setStatus(1);
if (select(appStaffUser)) {
insertSelective(appStaffUser);
}else {
updateByPhone(appStaffUser);
}
}
/**
* 修改客户关系,根据修改后的用户信息
* @param modifiedUsers
*/
public void updateByModifiedUsers(ModifiedUsers modifiedUsers){
if (POSITION_ID.equals(modifiedUsers.getPositionId())) {
mapper.updateByPositionId(modifiedUsers);
}else {
mapper.update(modifiedUsers);
}
}
}
......@@ -202,4 +202,9 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
org.springframework.beans.BeanUtils.copyProperties(appUserDetail,appUserVo);
return appUserVo;
}
public AppUserVo getUser(Integer userId) {
return mapper.getUser(userId);
}
}
package com.github.wxiaoqi.security.admin.biz;
import cn.hutool.core.collection.CollectionUtil;
import com.github.wxiaoqi.security.admin.dto.AppUserLogRemarkDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogRemark;
import com.github.wxiaoqi.security.admin.mapper.AppUserLogRemarkMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -14,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Transactional
@Service
......@@ -44,9 +48,17 @@ public class AppUserLogRemarkBiz extends BaseBiz<AppUserLogRemarkMapper, AppUser
Example example = new Example(AppUserLogRemark.class);
example.createCriteria().andEqualTo("levelId", levelId);
example.orderBy("time").desc();
example.orderBy("time").desc().orderBy("crtTime").desc();
List<AppUserLogRemark> list = selectByExample(example);
if (CollectionUtil.isNotEmpty(list)) {
list.parallelStream().peek(e -> {
if (!Objects.isNull(e)) {
e.setPhotoList(Lists.newArrayList(e.getPhotos().split(",")));
}
}).count();
}
return list;
}
......
......@@ -11,6 +11,7 @@ import com.github.wxiaoqi.security.admin.vo.InviteMemberVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.sun.corba.se.impl.orbutil.concurrent.Sync;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
......@@ -20,6 +21,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.mapper.AppUserRelationMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
......@@ -57,6 +60,49 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
@Autowired
private AppUserPositionTempBiz positionTempBiz;
@Autowired
private AppStaffUserBiz staffUserBiz;
private static final HashMap<Integer, Boolean> map = new HashMap<>();
private static final HashMap<Integer, Boolean> parentMap = new HashMap<>();
private static final Object obj = new Object();
private static final Object parentObj = new Object();
private boolean lock(Integer userId) {
synchronized (obj) {
if (map.get(userId) == null) {
map.put(userId, true);
return true;
}
}
return false;
}
private boolean parentLock(Integer userId) {
log.info("---进锁前---parentId===="+userId);
synchronized (parentObj) {
log.info("---进锁---parentId===="+userId);
if (parentMap.get(userId) == null) {
log.info("---进锁处理---parentId===="+userId);
parentMap.put(userId, true);
return true;
}
}
return false;
}
private void unParentLock(Integer userId) {
log.info("---解锁处理---parentId===="+userId);
synchronized (parentObj) {
parentMap.remove(userId);
}
}
private void unLock(Integer userId) {
synchronized (obj) {
map.remove(userId);
}
}
/**
* 关系绑定
* 规则A->B (B无有效上线+无有效下线)
......@@ -64,51 +110,80 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
* @param userId
* @param parentId
*/
public void bindRelation(Integer userId, Integer parentId, Integer type) {
if (userId.equals(parentId)) {
log.info("----userId===" + userId + "----parentId====" + parentId + "----自己不能成为自己的上线");
return;
}
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void bindRelation(Integer userId,Integer parentId,Integer type){
try {
if (userId.equals(parentId)){
log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线");
return;
}
/* AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId);
if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在");
return;
}*/
AppUserVo appUserVo = userDetailBiz.getUserInfoById(parentId);
if (appUserVo == null) {
log.info("----userId===" + userId + "----parentId====" + parentId + "----该上线用户不存在");
return;
}
AppUserRelation relation = getMyBiz().getRelationByUserId(parentId);
Long time = System.currentTimeMillis();
if (relation == null) {
relation = new AppUserRelation();
relation.setUserId(parentId);
relation.setBindType(type);
insertSelective(relation);
AppUserVo appUserVo=userDetailBiz.getUserInfoById(parentId);
if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在");
return;
}
if (lock(userId)) {
AppUserRelation relation = getMyBiz().getRelationByUserId(parentId);
Long time = System.currentTimeMillis();
if (relation == null) {
insertLock(parentId, type);
}
Long bindTime = time - validTime;
//判断用户是否有有效的下线
if (getCountByParentId(userId, bindTime) == 0L) {
relation = getMyBiz().getRelationByUserId(userId);
if (relation == null) {
relation = new AppUserRelation();
relation.setUserId(userId);
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
insertSelective(relation);
AppStaffUserDTO staffUserDTO = new AppStaffUserDTO();
staffUserDTO.setSuId(relation.getParentId());
staffUserDTO.setUid(relation.getUserId());
staffUserBiz.addAppStaffUser(staffUserDTO);
} else {
//判断用户是否有有效的上线
log.info("----userId===" + userId + "----bindTime====" + bindTime + "----relation.getBindTime()===" + relation.getBindTime());
if (relation.getParentId() == null || relation.getParentId() == 0 || (relation.getIsForever() != 1 && validTime > 0 && relation.getBindTime() < bindTime)) {
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
getMyBiz().updRelation(relation);
}
}
}
}
}catch (Exception e){
log.info("网络异常===" + e.getMessage());
}finally {
unLock(userId);
}
Long bindTime = time - validTime;
//判断用户是否有有效的下线
if (getCountByParentId(userId, bindTime) == 0L) {
relation = getMyBiz().getRelationByUserId(userId);
if (relation == null) {
relation = new AppUserRelation();
relation.setUserId(userId);
relation.setParentId(parentId);
relation.setBindType(type);
relation.setBindTime(time);
insertSelective(relation);
} else {
//判断用户是否有有效的上线
log.info("----userId===" + userId + "----bindTime====" + bindTime + "----relation.getBindTime()===" + relation.getBindTime());
if (relation.getParentId() == null || relation.getParentId() == 0 || (relation.getIsForever() != 1 && validTime > 0 && relation.getBindTime() < bindTime)) {
relation.setParentId(parentId);
}
private void insertLock(Integer userId, Integer type) {
try {
if (parentLock(userId)) {
AppUserRelation relation = getMyBiz().getRelationByUserId(userId);
if (relation == null) {
log.info("insertLock----parentId===" +userId);
relation = new AppUserRelation();
relation.setUserId(userId);
relation.setBindType(type);
relation.setBindTime(time);
getMyBiz().updRelation(relation);
insertSelective(relation);
}
}
}catch (Exception e){
}finally {
unParentLock(userId);
}
}
......@@ -215,9 +290,9 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
relationTemp.setIsValid(0);
relationTemp.setType(1);
relationTemp.setIsDel(0);
relationTemp = relationTempBiz.selectOne(relationTemp);
if (relationTemp == null) {
return;
relationTemp=relationTempBiz.selectOne(relationTemp);
if(relationTemp==null){
return;
}
Integer parentId = relationTemp.getUserId();
bindRelation(platform_userid, parentId, 2);
......@@ -232,9 +307,15 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
*/
@Cache(key = "user:relation{1}")
public AppUserRelation getRelationByUserId(Integer userId) {
AppUserRelation relation = new AppUserRelation();
relation.setUserId(userId);
return selectOne(relation);
/* AppUserRelation relation = new AppUserRelation();
relation.setUserId(userId);*/
Example example=new Example(AppUserRelation.class);
example.createCriteria().andEqualTo("userId",userId);
List<AppUserRelation> list=selectByExample(example);
if (list.size()>0){
return list.get(0);
}
return null;
}
//获取有效的上线
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppStaffUser;
import com.github.wxiaoqi.security.admin.entity.ModifiedUsers;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;
import javax.persistence.Id;
import java.util.List;
/**
* @author Administrator
*/
public interface AppStaffUserMapper extends Mapper<AppStaffUser> {
List<AppStaffUser> selectByBysuIdOrUsername(@Param("id") Integer id,@Param("username") String username);
void updateByPositionId(ModifiedUsers modifiedUsers);
void update(ModifiedUsers modifiedUsers);
}
......@@ -33,4 +33,6 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> {
List<AppUserVo> getUserByUserIdList(@Param("userIds") List<Integer> userIds);
List<UserStaffBo> findAllStaffsByCompanyIdAndPostionId(StaffStatisticsFindDTO staffStatisticsFindDTO);
AppUserVo getUser(Integer userId);
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppStaffUserBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.entity.AppStaffUser;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
......@@ -30,8 +34,10 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
private final UserAuthConfig authConfig;
private final HttpServletRequest request;
private final PublicController publicController;
private final String POSITION_NAME="员工";
private final Integer POSITION_ID=4;
private final UserAuthUtil userAuthUtil;
private final AppUserLoginBiz appUserLoginBiz;
private final AppUserDetailBiz appUserDetailBiz;
/**
* 获取该用户所用的客户
......@@ -41,8 +47,8 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@GetMapping("/getAll")
public ObjectRestResponse<List<AppStaffUser>> getAll() throws Exception {
AppUserDTO userDTO = (AppUserDTO) publicController.userDetailByToken(authConfig.getToken(request)).getData();
if (POSITION_NAME.equals(userDTO.getPositionName())) {
return ObjectRestResponse.succ(baseBiz.getAll(userDTO.getUserid())) ;
if (POSITION_ID.equals(userDTO.getPositionId())) {
return ObjectRestResponse.succ(baseBiz.getAll(userDTO.getUserid(),userDTO.getUsername())) ;
}
return ObjectRestResponse.succ();
}
......@@ -52,8 +58,17 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@PostMapping(value = "")
public ObjectRestResponse<AppStaffUser> add(@RequestBody AppStaffUser appStaffUser) throws Exception {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(authConfig.getToken(request));
if (appStaffUser.getPhone().equals(infoFromToken.getUniqueName())) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"不能绑定本人为客户");
Integer positionId = null;
try {
positionId = appUserDetailBiz.getUserInfoById(
appUserLoginBiz.getUserByUsername(appStaffUser.getPhone()).getId()
).getPositionId();
} catch (Exception e) {
e.printStackTrace();
}
if (POSITION_ID.equals(positionId)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"绑定错误");
}
appStaffUser.setSuId(Integer.valueOf(infoFromToken.getId()));
if (baseBiz.select(appStaffUser)) {
......@@ -92,15 +107,20 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@ResponseBody
public ObjectRestResponse update(@RequestBody AppStaffUser appStaffUser) throws Exception {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(authConfig.getToken(request));
if (appStaffUser.getPhone().equals(infoFromToken.getUniqueName())) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"不能绑定本人为客户");
Integer positionId = null;
try {
positionId = appUserDetailBiz.getUserInfoById(
appUserLoginBiz.getUserByUsername(appStaffUser.getPhone()).getId()
).getPositionId();
} catch (Exception e) {
e.printStackTrace();
}
if (appStaffUser.getPhone().equals(infoFromToken.getUniqueName())||POSITION_ID.equals(positionId)) {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"绑定错误");
}
appStaffUser.setSuId(Integer.valueOf(infoFromToken.getId()));
if (baseBiz.select(appStaffUser)) {
baseBiz.updateSelectiveById(appStaffUser);
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"客户已存在");
}
}
......@@ -8,6 +8,7 @@ import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
import com.github.wxiaoqi.security.api.vo.user.AppUserInfo;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
......@@ -276,4 +277,12 @@ public class AppUserRest {
}
/*@GetMapping("/app/unauth/test")
@IgnoreUserToken
public ObjectRestResponse test(){
appPermissionService.test();
return ObjectRestResponse.succ();
}
*/
}
......@@ -44,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.*;
......@@ -323,6 +324,7 @@ public class AppPermissionService {
parentId=appUserDetailBiz.getUserByCode(code);
}
if(parentId!=null&&parentId>0){
rsUserDetail.setSource(1);
relationBiz.bindRelation(userid, parentId, 1);
if(StringUtils.isNotBlank(activityCode)){
rsUserDetail.setInviterAccount(parentId);
......@@ -390,6 +392,53 @@ public class AppPermissionService {
}
}
public void test(){
Example example=new Example(AppUserLogin.class);
example.createCriteria().andEqualTo("imUserid",0);
List<AppUserLogin> list=appUserLoginBiz.selectByExample(example);
for (AppUserLogin userLogin:list) {
Long now = System.currentTimeMillis() / 1000;
Integer userId = userLogin.getId();
String username = userLogin.getUsername();
String ip = getIp();
String nickname = SystemConfig.USER_NIKENAME_DEFAULT + (int) ((Math.random() * 9 + 1) * 100000);
AppUserDetail rsUserDetail = new AppUserDetail();
rsUserDetail.setUserid(userId);
rsUserDetail = appUserDetailBiz.selectOne(rsUserDetail);
if (rsUserDetail == null) {
rsUserDetail=new AppUserDetail();
rsUserDetail.setUserid(userId);
rsUserDetail.setNickname(nickname);
rsUserDetail.setHeadimgurl(SystemConfig.USER_HEADER_URL_DEFAULT); // 默认路径,待写
rsUserDetail.setCreatetime(now);
rsUserDetail.setUpdatetime(now);
rsUserDetail.setIsdel(0);
rsUserDetail.setCrtHost(ip);
//生成邀请码 长度改为8 不然重复率太高
rsUserDetail.setCode(ReferralCodeUtil.encode(userId));
appUserDetailBiz.insertSelective(rsUserDetail);
} else {
nickname=rsUserDetail.getNickname();
}
Map<String, Object> map = registerIm(userLogin.getUsername(), userLogin.getPassword(), nickname);
if (map != null) {
Integer imUserId = Integer.parseInt(map.get("userId").toString());
String imPassword = map.get("password").toString();
if (imUserId != null && imUserId > 0 && StringUtils.isNotBlank(imPassword)) {
AppUserLogin userLogin1 = new AppUserLogin();
userLogin1.setId(userId);
userLogin1.setImPassword(imPassword);
userLogin1.setImUserid(imUserId);
userLogin1.setUsername(username);
appUserLoginBiz.updateSelectiveById(userLogin1);
log.info(username + "----userLogin updateSelectiveById---username=====" + username + "----imPassword====" + imPassword);
}
}
}
}
private void sendQueue(String username, String password, String headimgurl, String nickname, String mobilecode, String openId, String unionid, Integer type, String code, String activityCode, Integer userid,Integer sign) {
try {
RegisterQueueDTO registerQueueDTO = new RegisterQueueDTO();
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.github.wxiaoqi.security.admin.mapper.AppStaffUserMapper">
<select id="selectByBysuIdOrUsername" resultType="com.github.wxiaoqi.security.admin.entity.AppStaffUser">
SELECT
s.id,
s.su_id,
s.u_id,
s.company,
s.remarks,
s.crt_time,
s.upd_time,
s.is_del,
s.`status`,
(CASE
WHEN ld.realname IS NOT NULL THEN
ld.realname
WHEN ld.nickname IS NOT NULL THEN
ld.nickname
ELSE
s.u_name
END
) AS u_name,
(
CASE
WHEN ld.username IS NOT NULL THEN
ld.username
ELSE
s.phone
END
) AS phone
FROM
app_staff_user s
LEFT JOIN (
SELECT
l.id,
l.username,
d.nickname,
d.realname
FROM
app_user_login l
LEFT JOIN app_user_detail d ON l.id = d.userid
) ld ON s.u_id = ld.id
WHERE is_del = 0 and (su_id=#{id} or su_phone=#{username})
</select>
<update id="updateByPositionId" parameterType="com.github.wxiaoqi.security.admin.entity.ModifiedUsers">
update app_staff_user set su_phone=#{phone} where su_id=#{userid}
</update>
<update id="update" parameterType="com.github.wxiaoqi.security.admin.entity.ModifiedUsers">
update app_staff_user set u_name=#{name}, phone= #{phone} where u_id=#{userid}
</update>
</mapper>
\ No newline at end of file
......@@ -322,4 +322,10 @@ from `app_user_detail` as `aud` left join `app_user_login` as `aul` on aul.id=
) as `sell` on sell.user_id=saff.userId
order by sell.sellAmount desc
</select>
<select id="getUser" resultMap="AppUserVoMap">
select l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.* from app_user_login l
left join app_user_detail d
on d.userid = l.id
where l.id = #{userId} limit 1
</select>
</mapper>
\ No newline at end of file
......@@ -24,4 +24,6 @@ public class ActivityLuckDrawFindDTO extends PageParam {
private Date endTime;
private String phone;
private Integer activityId;
private String parentPhone;
}
package com.xxfc.platform.activity.vo;
import com.xxfc.platform.activity.entity.ActivityLuckyDraw;
import lombok.Data;
@Data
public class ActivityLuckyDrawListVo extends ActivityLuckyDraw {
private String positionName;
private String parentPhone;
private String parentName;
}
package com.xxfc.platform.activity.biz;
import cn.hutool.core.date.DateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.excel.ExcelUtils;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO;
import com.xxfc.platform.activity.entity.ActivityLuckyDraw;
import com.xxfc.platform.activity.mapper.ActivityLuckyDrawMapper;
import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service;
import com.xxfc.platform.activity.entity.ActivityLuckyDraw;
import com.xxfc.platform.activity.mapper.ActivityLuckyDrawMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.ServletOutputStream;
......@@ -50,7 +51,7 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ
*
* @param activityLuckDrawFindDTO
* @return
*/
*/
public PageDataVO<ActivityLuckyDraw> listLuckDrawWithPage(ActivityLuckDrawFindDTO activityLuckDrawFindDTO) {
PageDataVO<ActivityLuckyDraw> dataVO = PageDataVO.pageInfo(activityLuckDrawFindDTO.getPage(), activityLuckDrawFindDTO.getLimit(), () -> mapper.listLuckDrawWithPage(activityLuckDrawFindDTO));
List<ActivityLuckyDraw> data = dataVO.getData();
......@@ -106,4 +107,15 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ
}
return activityLuckyDraws;
}
public ObjectRestResponse<PageDataVO<ActivityLuckyDrawListVo>> getAll(ActivityLuckDrawFindDTO activityLuckDrawFindDTO) {
Integer page = activityLuckDrawFindDTO.getPage() == null ? 1 : activityLuckDrawFindDTO.getPage();
Integer limit = activityLuckDrawFindDTO.getLimit() == null ? 10 : activityLuckDrawFindDTO.getLimit();
activityLuckDrawFindDTO.setPage(page);
activityLuckDrawFindDTO.setLimit(limit);
Query query = new Query(activityLuckDrawFindDTO);
PageDataVO<ActivityLuckyDrawListVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllByPage(query.getSuper()));
return ObjectRestResponse.succ(pageDataVO);
//添加个人积分状态
}
}
\ No newline at end of file
......@@ -11,18 +11,22 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import com.xxfc.platform.activity.config.RedissonLock;
import com.xxfc.platform.activity.dto.ApLogDTO;
import com.xxfc.platform.activity.entity.*;
import com.xxfc.platform.activity.mapper.ActivityPopularizeMapper;
import com.xxfc.platform.universal.feign.MQSenderFeign;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
......@@ -36,144 +40,170 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TR
*/
@Service
@Slf4j
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, ActivityPopularize> {
@Autowired
ActivityPopularizeRelationBiz relationBiz;
@Autowired
ActivityPopularizeBiz popularizeBiz;
@Autowired
ActivityPopularizeUserBiz popularizeUserBiz;
@Autowired
ActivityPopularizeLogBiz popularizeLogBiz;
@Autowired
ActivityPopularizeItemBiz activityPopularizeItemBiz;
@Autowired
UserFeign userFeign;
@Autowired
MQSenderFeign mqSenderFeign;
public static final String POPULARIZE_0101 = "0101";
public static final String PREFIX = "P";
public static final Integer INVITE_ITEMID = 3;
public void handleRegister(RegisterQueueDTO registerQueueDTO) {
log.info("活动码注册成功:registerQueueDTO = {}", registerQueueDTO.toString());
if (StringUtils.isNotBlank(registerQueueDTO.getInParamDTO().getActivityCode())) {
String activityCode = registerQueueDTO.getInParamDTO().getActivityCode().replace(PREFIX, "").replace("p", "");
AppUserDTO appUserDTO = userFeign.userDetailById(registerQueueDTO.getAppUserId()).getData();
//获取活动code,并且注册来源是app 并且 非普通登录
if (!RegisterQueueDTO.SIGN_LOGIN.equals(registerQueueDTO.getSign()) && StringUtils.isNotBlank(activityCode)) {
//查询出活动
ActivityPopularize activityPopularize = popularizeBiz.selectOne(new ActivityPopularize() {{
setCode(activityCode);
}});
log.info("活动邀请注册:activityPopularize = {}", activityPopularize.toString());
if (activityPopularize != null) {
List<ActivityPopularizeItem> activityPopularizeItems = activityPopularizeItemBiz.selectByPopularizeId(activityPopularize.getId());
ActivityPopularizeItem activityPopularizeItem = activityPopularizeItems.get(activityPopularizeItems.size() - 1);
Date now = DateUtil.date();
Date start = DateUtil.date(activityPopularize.getStartTime());
Date end = DateUtil.date(activityPopularize.getEndTime());
//判断是否活动超时
if (now.before(start) || now.after(end)) {
log.error("不在活动范围内 入参Json:" + JSONUtil.toJsonStr(registerQueueDTO));
return;
}
Integer majorUserId = Integer.valueOf(appUserDTO.getInviterAccount());
ActivityPopularizeRelation activityPopularizeRelation = new ActivityPopularizeRelation() {{
setMajorUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}};
//新增第几个邀请人和邀请金额字段
Integer num = relationBiz.getByUserIdAndPopularizeId(activityPopularizeRelation);
double amount = 0;
JSONObject jsonObject = JSONObject.parseObject(activityPopularizeItem.getDetail());
if (jsonObject != null && StringUtils.isNotBlank(jsonObject.getString("detail"))) {
JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("detail"));
if (jsonArray != null) {
JSONObject jsonObject1 = jsonArray.getJSONObject(num - 1);
if (jsonObject1 != null) {
double amountString = jsonObject1.getDouble("amount");
amount = amount + amountString;
}
}
}
double a = amount;
//添加活动关系
relationBiz.insertSelective(new ActivityPopularizeRelation() {{
setPopularizeId(activityPopularize.getId());
setMajorUserId(majorUserId);
setMinorUserId(appUserDTO.getUserid());
setNum(num);
setAmount(new BigDecimal(a));
}});
ApLogDTO apLogDTO = popularizeLogBiz.selectOneApLogDTO(new ActivityPopularizeLog() {{
setUserId(majorUserId);
setItemId(activityPopularizeItem.getId());
}});
//生成任务项
if (null == apLogDTO) {
popularizeLogBiz.insertSelectiveRe(new ActivityPopularizeLog() {{
setItemId(activityPopularizeItem.getId());
setUserId(majorUserId);
setStatus(SYS_FALSE);
setPopularizeId(activityPopularize.getId());
}});
}
//查出majorUser参与活动信息
ActivityPopularizeUser activityPopularizeUser = popularizeUserBiz.selectOne(new ActivityPopularizeUser() {{
setUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}});
double currentProgress = activityPopularizeUser.getCurrentProgress().doubleValue();
log.info("用户原活动进度:currentProgress = {}", currentProgress);
currentProgress += Double.parseDouble(a + "");
BigDecimal bigDecimal = new BigDecimal(currentProgress);
log.info("用户现活动进度:newCurrentProgress = {}", currentProgress);
//修改当前进度
activityPopularizeUser.setCurrentProgress(bigDecimal);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
//任务没有完成
if (!SYS_TRUE.equals(activityPopularizeUser.getStatus())) {
@Autowired
ActivityPopularizeRelationBiz relationBiz;
@Autowired
ActivityPopularizeBiz popularizeBiz;
@Autowired
ActivityPopularizeUserBiz popularizeUserBiz;
@Autowired
ActivityPopularizeLogBiz popularizeLogBiz;
@Autowired
ActivityPopularizeItemBiz activityPopularizeItemBiz;
private final RedissonLock redissonLock;
@Autowired
UserFeign userFeign;
@Autowired
MQSenderFeign mqSenderFeign;
public static final String POPULARIZE_0101 = "0101";
public static final String PREFIX = "P";
public static final Integer INVITE_ITEMID = 3;
public void handleRegister(RegisterQueueDTO registerQueueDTO) {
log.info("活动码注册成功:registerQueueDTO = {}", registerQueueDTO.toString());
if (StringUtils.isNotBlank(registerQueueDTO.getInParamDTO().getActivityCode())) {
String activityCode = registerQueueDTO.getInParamDTO().getActivityCode().replace(PREFIX, "").replace("p", "");
AppUserDTO appUserDTO = userFeign.userDetailById(registerQueueDTO.getAppUserId()).getData();
//获取活动code,并且注册来源是app 并且 非普通登录
if (!RegisterQueueDTO.SIGN_LOGIN.equals(registerQueueDTO.getSign()) && StringUtils.isNotBlank(activityCode)) {
//查询出活动
ActivityPopularize activityPopularize = popularizeBiz.selectOne(new ActivityPopularize() {{
setCode(activityCode);
}});
log.info("活动邀请注册:activityPopularize = {}", activityPopularize.toString());
if (activityPopularize != null) {
String lockKey = String.format("%s%d%d", registerQueueDTO.getInParamDTO().getActivityCode(), appUserDTO.getInviterAccount(), activityPopularize.getId());
RLock rLock = redissonLock.getRLock(lockKey);
try {
boolean isSuccess = rLock.tryLock(5, 5, TimeUnit.SECONDS);
if (isSuccess) {
log.info("1, {}", System.currentTimeMillis());
Thread.sleep(1000);
log.info("2, {}", System.currentTimeMillis());
List<ActivityPopularizeItem> activityPopularizeItems = activityPopularizeItemBiz.selectByPopularizeId(activityPopularize.getId());
ActivityPopularizeItem activityPopularizeItem = activityPopularizeItems.get(activityPopularizeItems.size() - 1);
Date now = DateUtil.date();
Date start = DateUtil.date(activityPopularize.getStartTime());
Date end = DateUtil.date(activityPopularize.getEndTime());
//判断是否活动超时
if (now.before(start) || now.after(end)) {
log.error("不在活动范围内 入参Json:" + JSONUtil.toJsonStr(registerQueueDTO));
return;
}
Integer majorUserId = Integer.valueOf(appUserDTO.getInviterAccount());
ActivityPopularizeRelation activityPopularizeRelation = new ActivityPopularizeRelation() {{
setMajorUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}};
//新增第几个邀请人和邀请金额字段
Integer num = relationBiz.getByUserIdAndPopularizeId(activityPopularizeRelation);
double amount = 0;
JSONObject jsonObject = JSONObject.parseObject(activityPopularizeItem.getDetail());
if (jsonObject != null && StringUtils.isNotBlank(jsonObject.getString("detail"))) {
JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("detail"));
if (jsonArray != null) {
JSONObject jsonObject1 = jsonArray.getJSONObject(num - 1);
if (jsonObject1 != null) {
double amountString = jsonObject1.getDouble("amount");
amount = amount + amountString;
}
}
}
double a = amount;
//添加活动关系
relationBiz.insertSelective(new ActivityPopularizeRelation() {{
setPopularizeId(activityPopularize.getId());
setMajorUserId(majorUserId);
setMinorUserId(appUserDTO.getUserid());
setNum(num);
setAmount(new BigDecimal(a));
}});
ApLogDTO apLogDTO = popularizeLogBiz.selectOneApLogDTO(new ActivityPopularizeLog() {{
setUserId(majorUserId);
setItemId(activityPopularizeItem.getId());
}});
//生成任务项
if (null == apLogDTO) {
popularizeLogBiz.insertSelectiveRe(new ActivityPopularizeLog() {{
setItemId(activityPopularizeItem.getId());
setUserId(majorUserId);
setStatus(SYS_FALSE);
setPopularizeId(activityPopularize.getId());
}});
}
//查出majorUser参与活动信息
ActivityPopularizeUser activityPopularizeUser = popularizeUserBiz.selectOne(new ActivityPopularizeUser() {{
setUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}});
double currentProgress = activityPopularizeUser.getCurrentProgress().doubleValue();
log.info("用户原活动进度:currentProgress = {}", currentProgress);
currentProgress += Double.parseDouble(a + "");
BigDecimal bigDecimal = new BigDecimal(currentProgress);
log.info("用户现活动进度:newCurrentProgress = {}", currentProgress);
//修改当前进度
activityPopularizeUser.setCurrentProgress(bigDecimal);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
//任务没有完成 加锁
if (!SYS_TRUE.equals(activityPopularizeUser.getStatus())) {
// AwardDTO awardDTO = JSONUtil.toBean(activityPopularize.getValue(), AwardDTO.class);
//检查是否满足奖励
if (relationBiz.selectList(new ActivityPopularizeRelation() {{
setMajorUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}}).size() >= 10) {
apLogDTO.setStatus(SYS_TRUE);
popularizeLogBiz.updateSelectiveById(BeanUtil.toBean(apLogDTO, ActivityPopularizeLog.class));
activityPopularizeUser.setStatus(SYS_TRUE);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_WALLET_ADD, JSONUtil.toJsonStr(new MyWalletDetail() {{
setAmount(new BigDecimal("50"));
setSource(SOURCE_ACTIVITY);
setUserId(majorUserId);
setActivityId(activityPopularize.getId());
setActivityName(activityPopularize.getName());
setType(TYPE_POPULARIZE);
setItype(ITYPE_IN);
}}));
}
}
}
}
}
}
//检查是否满足奖励
if (relationBiz.selectList(new ActivityPopularizeRelation() {{
setMajorUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}}).size() >= 10 && popularizeUserBiz.selectCount(new ActivityPopularizeUser() {{
setPopularizeId(activityPopularize.getId());
setCurrentProgress(new BigDecimal("50"));
}}) <= activityPopularize.getNumLimit()) {
apLogDTO.setStatus(SYS_TRUE);
popularizeLogBiz.updateSelectiveById(BeanUtil.toBean(apLogDTO, ActivityPopularizeLog.class));
activityPopularizeUser.setStatus(SYS_TRUE);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_WALLET_ADD, JSONUtil.toJsonStr(new MyWalletDetail() {{
setAmount(new BigDecimal("50"));
setSource(SOURCE_ACTIVITY);
setUserId(majorUserId);
setActivityId(activityPopularize.getId());
setActivityName(activityPopularize.getName());
setType(TYPE_POPULARIZE);
setItype(ITYPE_IN);
}}));
}
}
} else {
// 获取锁失败
log.info("tryLock fail, key = [{}]", lockKey);
}
} catch (InterruptedException e) {
log.error("tryLock fail, key = [{}]", lockKey);
} finally {
log.info("执行结束, {}", System.currentTimeMillis());
}
}
}
}
}
}
\ No newline at end of file
......@@ -2,15 +2,11 @@ package com.xxfc.platform.activity.handler;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.activity.biz.ActivityPopularizeBiz;
import com.xxfc.platform.activity.biz.ActivityUserJoinBiz;
import com.xxfc.platform.activity.biz.IntegralUserRecordBiz;
import com.xxfc.platform.activity.config.RabbitActivityConfig;
import com.xxfc.platform.activity.entity.ActivityPopularize;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.Message;
......
......@@ -2,9 +2,11 @@ package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO;
import com.xxfc.platform.activity.entity.ActivityLuckyDraw;
import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
/**
* 活动抽奖报名表
......@@ -16,4 +18,6 @@ import java.util.List;
public interface ActivityLuckyDrawMapper extends Mapper<ActivityLuckyDraw> {
List<ActivityLuckyDraw> listLuckDrawWithPage(ActivityLuckDrawFindDTO activityLuckDrawFindDTO);
List<ActivityLuckyDrawListVo> getAllByPage(Map<String, Object> param);
}
package com.xxfc.platform.activity.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
......@@ -29,6 +30,7 @@ import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -156,7 +158,14 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
setUserId(getAppUser().getUserid());
setPopularizeId(itemAddDTO.getPopularizeId());
}});
Date now = DateUtil.date();
Date start = DateUtil.date(ap.getStartTime());
Date end = DateUtil.date(ap.getEndTime());
//判断是否活动超时
if (now.before(start) || now.after(end)) {
return ObjectRestResponse.createFailedResult(2005,"活动已结束");
}
//添加用户活动关系
if(null == activityPopularizeUser) {
activityPopularizeUser = popularizeUserBiz.insertSelectiveReT(new ActivityPopularizeUser(){{
......
package com.xxfc.platform.activity.rest.admin;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.biz.ActivityLuckyDrawBiz;
import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO;
import com.xxfc.platform.activity.entity.ActivityLuckyDraw;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -38,9 +38,8 @@ public class ActivityLuckyDrawAdminController {
* @return
*/
@PostMapping("/page")
public ObjectRestResponse<PageDataVO<ActivityLuckyDraw>> listActivtyLuckyDrawWithPage(@RequestBody ActivityLuckDrawFindDTO activityLuckDrawFindDTO) {
PageDataVO<ActivityLuckyDraw> activityLuckyDrawPageDataVO = activityLuckyDrawBiz.listLuckDrawWithPage(activityLuckDrawFindDTO);
return ObjectRestResponse.succ(activityLuckyDrawPageDataVO);
public ObjectRestResponse<PageDataVO<ActivityLuckyDrawListVo>> listActivtyLuckyDrawWithPage(@RequestBody ActivityLuckDrawFindDTO activityLuckDrawFindDTO) {
return activityLuckyDrawBiz.getAll(activityLuckDrawFindDTO);
}
@PostMapping("/export")
......
......@@ -39,4 +39,32 @@
order by `crt_time` desc
</select>
<select id="getAllByPage" resultType="com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo" parameterType="Map">
select * from `activity_lucky_draw_list` where 1=1
<if test="activityId != null">
and `activity_id`=#{activityId}
</if>
<if test= "phone != null and phone != ''">
and `phone`=#{phone}
</if>
<if test="parentPhone!=null and parentPhone!=''">
and `parentPhone`=#{parentPhone}
</if>
<if test="startTime != null and endTime != null">
and `crt_time` between #{startTime} and #{endTime}
</if>
<if test="startTime != null and endTime == null">
and <![CDATA[
`crt_time` >= #{startTime}
]]>
</if>
<if test="startTime==null and endTime!=null">
and <![CDATA[
`crt_time`<=#{endTime}
]]>
</if>
order by `crt_time` desc
</select>
</mapper>
\ No newline at end of file
package com.xxfc.platform.vehicle.rest;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
......@@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -167,9 +169,21 @@ public class VehicleDepartureController {
@GetMapping("findReserveType")
public ObjectRestResponse<OrderPageVO> getOrderDetail() {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
String reserveType = dictionaryMap.get(VEHICE_ORDER + "_" + RESERVE).getName();
String reserveType = dictionaryMap.get(VEHICE_ORDER + "_" + RESERVE).getDetail();
return ObjectRestResponse.succ(reserveType);
}
/**
* 车辆用途字典查询
* 除去用户租车
*/
@GetMapping("findReservePartType")
public ObjectRestResponse<OrderPageVO> getOrderPartDetail() {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
String reserveType = dictionaryMap.get(VEHICE_ORDER + "_" + RESERVE).getDetail();
HashMap<String, List<Map<String, String>>> map = JSONUtil.toBean(reserveType, HashMap.class);
List<Map<String, String>> type = map.get("type");
type.remove(0);
return ObjectRestResponse.succ(type);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment