Commit dd7a9d63 authored by jiaorz's avatar jiaorz

Merge branch 'master-activity-bk' into dev

# Conflicts:
#	ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/AppUserRelationBiz.java
#	xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityPopularizeBiz.java
parents d4ece992 3622479a
...@@ -15,6 +15,8 @@ public class RabbitConstant { ...@@ -15,6 +15,8 @@ public class RabbitConstant {
public static final String ORDER_TOPIC = ORDER+ TOPIC_EXC; public static final String ORDER_TOPIC = ORDER+ TOPIC_EXC;
public static final String INTEGRAL = "integral"; public static final String INTEGRAL = "integral";
public static final String INTEGRAL_TOPIC = INTEGRAL + TOPIC_EXC; public static final String INTEGRAL_TOPIC = INTEGRAL + TOPIC_EXC;
public static final String ACTIVITY_PRIZE="activity:prize";
public static final String ACTIVITY_PRIZE_TOPIC=ACTIVITY_PRIZE+TOPIC_EXC;
/**************************key*********************************/ /**************************key*********************************/
//用户 //用户
...@@ -35,11 +37,15 @@ public class RabbitConstant { ...@@ -35,11 +37,15 @@ public class RabbitConstant {
public static final String KEY_WALLET_WITH_DRAW="wallet.withdraw"; public static final String KEY_WALLET_WITH_DRAW="wallet.withdraw";
//抽奖
public static final String KEY_ACTIVITY_PRIZE_RECORD="prize:record";
static { static {
exchangeTopicSet = new HashSet<String>() {{ exchangeTopicSet = new HashSet<String>() {{
add(ADMIN_TOPIC); add(ADMIN_TOPIC);
add(ORDER_TOPIC); add(ORDER_TOPIC);
add(INTEGRAL_TOPIC); add(INTEGRAL_TOPIC);
add(ACTIVITY_PRIZE_TOPIC);
}}; }};
} }
} }
package com.github.wxiaoqi.security.admin.dto; package com.github.wxiaoqi.security.admin.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
...@@ -16,15 +18,21 @@ public class AppUserLogRemarkDTO { ...@@ -16,15 +18,21 @@ public class AppUserLogRemarkDTO {
private String remark; private String remark;
/** /**
* 创建时间 * 日志时间
*/ */
private Date crtTime; @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date time;
/** /**
* 用户id * 用户id
*/ */
private Integer levelId; private Integer levelId;
/**
* 照片url多张已","分割
*/
private String photos;
} }
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import tk.mybatis.mapper.annotation.KeySql; import tk.mybatis.mapper.annotation.KeySql;
import tk.mybatis.mapper.code.IdentityDialect; import tk.mybatis.mapper.code.IdentityDialect;
...@@ -22,9 +24,15 @@ public class AppStaffUser { ...@@ -22,9 +24,15 @@ public class AppStaffUser {
@Column(name = "su_id") @Column(name = "su_id")
@ApiModelProperty("员工app账号id") @ApiModelProperty("员工app账号id")
private Integer suId; private Integer suId;
@Column(name = "su_phone")
@ApiModelProperty("员工手机号")
private String suPhone;
@Column(name = "u_name") @Column(name = "u_name")
@ApiModelProperty("客户姓名") @ApiModelProperty("客户姓名")
private String uName; private String uName;
@Column(name = "u_id")
@ApiModelProperty("客户id")
private Integer uid;
@ApiModelProperty("客户手机") @ApiModelProperty("客户手机")
private String phone; private String phone;
@ApiModelProperty("客户公司") @ApiModelProperty("客户公司")
...@@ -40,4 +48,5 @@ public class AppStaffUser { ...@@ -40,4 +48,5 @@ public class AppStaffUser {
@Column(name = "is_del") @Column(name = "is_del")
@ApiModelProperty("状态:0-未删除 1-已删除") @ApiModelProperty("状态:0-未删除 1-已删除")
private Integer isDel; 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;
}
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column; import javax.persistence.Column;
...@@ -9,6 +11,7 @@ import javax.persistence.GeneratedValue; ...@@ -9,6 +11,7 @@ import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* APP员工客户日志备注表 * APP员工客户日志备注表
...@@ -32,4 +35,16 @@ public class AppUserLogRemark { ...@@ -32,4 +35,16 @@ public class AppUserLogRemark {
@Column(name = "level_id") @Column(name = "level_id")
private Integer levelId; private Integer levelId;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@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; package com.github.wxiaoqi.security.admin.biz;
import com.alibaba.druid.sql.visitor.functions.If; import cn.hutool.core.collection.CollectionUtil;
import com.github.wxiaoqi.security.admin.entity.AppStaffUser; 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.AppStaffUserVo;
import com.github.wxiaoqi.security.admin.entity.ModifiedUsers;
import com.github.wxiaoqi.security.admin.mapper.AppStaffUserMapper; import com.github.wxiaoqi.security.admin.mapper.AppStaffUserMapper;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; 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.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -19,16 +24,15 @@ import java.util.List; ...@@ -19,16 +24,15 @@ import java.util.List;
* @author Administrator * @author Administrator
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor_={@Autowired}) @RequiredArgsConstructor(onConstructor_ = {@Autowired})
@Slf4j
public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> { public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> {
private final AppUserLoginBiz appUserLoginBiz;
private final AppUserDetailBiz appUserDetailBiz; private final AppUserDetailBiz appUserDetailBiz;
private final Integer POSITION_ID=4;
public List<AppStaffUser> getAll(Integer id) { public List<AppStaffUser> getAll(Integer id, String username) {
Example example = new Example(AppStaffUser.class); return mapper.selectByBysuIdOrUsername(id,username);
example.createCriteria().andEqualTo("suId",id).andEqualTo("isDel",0);
return selectByExample(example);
} }
@Override @Override
...@@ -38,7 +42,6 @@ public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> { ...@@ -38,7 +42,6 @@ public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> {
} }
@Override @Override
public int updateSelectiveByIdRe(AppStaffUser appStaffUser) { public int updateSelectiveByIdRe(AppStaffUser appStaffUser) {
appStaffUser.setUpdTime(new Date()); appStaffUser.setUpdTime(new Date());
...@@ -46,32 +49,98 @@ public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> { ...@@ -46,32 +49,98 @@ public class AppStaffUserBiz extends BaseBiz<AppStaffUserMapper, AppStaffUser> {
} }
public AppStaffUser findOne(AppStaffUser appStaffUser) { public AppStaffUser findOne(AppStaffUser appStaffUser) {
Example example= new Example(AppStaffUser.class); Example example = new Example(AppStaffUser.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDel",0); criteria.andEqualTo("isDel", 0);
if (appStaffUser.getId()!=null) { if (appStaffUser.getId() != null) {
criteria.andEqualTo("id",appStaffUser.getId()); criteria.andEqualTo("id", appStaffUser.getId());
return mapper.selectOneByExample(example); }
if (appStaffUser.getPhone() != null) {
criteria.andEqualTo("phone", appStaffUser.getPhone());
} }
if (appStaffUser.getPhone()!=null){ List<AppStaffUser> appStaffUsers = mapper.selectByExample(example);
criteria.andEqualTo("phone",appStaffUser.getPhone());
AppStaffUser staffUser = mapper.selectOneByExample(example);
if (staffUser!=null) {
if (CollectionUtil.isNotEmpty(appStaffUsers)) {
AppStaffUser staffUser = appStaffUsers.get(0);
AppStaffUserVo appStaffUserVo = new AppStaffUserVo(); AppStaffUserVo appStaffUserVo = new AppStaffUserVo();
BeanUtils.copyProperties(staffUser,appStaffUserVo); BeanUtils.copyProperties(staffUser, appStaffUserVo);
Integer suId = staffUser.getSuId(); Integer suId = staffUser.getSuId();
AppUserVo userInfoById = appUserDetailBiz.getUserInfoById(suId); //上级员工信息
appStaffUserVo.setEmployeeName(userInfoById.getRealname()); if (suId != null && suId != 0 && appStaffUser.getPhone() != null){
appStaffUserVo.setEmployeePhone(userInfoById.getUsername()); 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 appStaffUserVo;
}
return null;
}
public boolean select(AppStaffUser appStaffUser) {
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;
} }
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);
} }
return null; 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 ...@@ -202,4 +202,9 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
org.springframework.beans.BeanUtils.copyProperties(appUserDetail,appUserVo); org.springframework.beans.BeanUtils.copyProperties(appUserDetail,appUserVo);
return appUserVo; return appUserVo;
} }
public AppUserVo getUser(Integer userId) {
return mapper.getUser(userId);
}
} }
package com.github.wxiaoqi.security.admin.biz; 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.dto.AppUserLogRemarkDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogRemark; import com.github.wxiaoqi.security.admin.entity.AppUserLogRemark;
import com.github.wxiaoqi.security.admin.mapper.AppUserLogRemarkMapper; import com.github.wxiaoqi.security.admin.mapper.AppUserLogRemarkMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -14,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -14,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Transactional @Transactional
@Service @Service
...@@ -44,8 +48,17 @@ public class AppUserLogRemarkBiz extends BaseBiz<AppUserLogRemarkMapper, AppUser ...@@ -44,8 +48,17 @@ public class AppUserLogRemarkBiz extends BaseBiz<AppUserLogRemarkMapper, AppUser
Example example = new Example(AppUserLogRemark.class); Example example = new Example(AppUserLogRemark.class);
example.createCriteria().andEqualTo("levelId", levelId); example.createCriteria().andEqualTo("levelId", levelId);
example.orderBy("time").desc().orderBy("crtTime").desc();
List<AppUserLogRemark> list = selectByExample(example); 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; return list;
} }
......
...@@ -11,6 +11,7 @@ import com.github.wxiaoqi.security.admin.vo.InviteMemberVo; ...@@ -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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.sun.corba.se.impl.orbutil.concurrent.Sync;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -57,6 +58,28 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe ...@@ -57,6 +58,28 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
@Autowired @Autowired
private AppUserPositionTempBiz positionTempBiz; private AppUserPositionTempBiz positionTempBiz;
@Autowired
private AppStaffUserBiz staffUserBiz;
private static final HashMap<Integer, Boolean> map = new HashMap<>();
private static final Object obj = new Object();
private boolean lock(Integer userId) {
synchronized (obj) {
if (map.get(userId) == null) {
map.put(userId, true);
return true;
}
}
return false;
}
private void unLock(Integer userId) {
synchronized (obj) {
map.remove(userId);
}
}
/** /**
* 关系绑定 * 关系绑定
* 规则A->B (B无有效上线+无有效下线) * 规则A->B (B无有效上线+无有效下线)
...@@ -64,22 +87,24 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe ...@@ -64,22 +87,24 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
* @param userId * @param userId
* @param parentId * @param parentId
*/ */
public void bindRelation(Integer userId, Integer parentId, Integer type) { public void bindRelation(Integer userId,Integer parentId,Integer type){
if (userId.equals(parentId)) { try {
log.info("----userId===" + userId + "----parentId====" + parentId + "----自己不能成为自己的上线"); if (userId.equals(parentId)){
log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线");
return; return;
} }
/* AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId);
/* AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId);
if (appUserVo==null){ if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在"); log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在");
return; return;
}*/ }*/
AppUserVo appUserVo = userDetailBiz.getUserInfoById(parentId); AppUserVo appUserVo=userDetailBiz.getUserInfoById(parentId);
if (appUserVo == null) { if (appUserVo==null){
log.info("----userId===" + userId + "----parentId====" + parentId + "----该上线用户不存在"); log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在");
return; return;
} }
if (lock(userId)) {
AppUserRelation relation = getMyBiz().getRelationByUserId(parentId); AppUserRelation relation = getMyBiz().getRelationByUserId(parentId);
Long time = System.currentTimeMillis(); Long time = System.currentTimeMillis();
if (relation == null) { if (relation == null) {
...@@ -99,6 +124,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe ...@@ -99,6 +124,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
relation.setBindType(type); relation.setBindType(type);
relation.setBindTime(time); relation.setBindTime(time);
insertSelective(relation); insertSelective(relation);
if (relation != null) {
AppStaffUserDTO staffUserDTO = new AppStaffUserDTO();
staffUserDTO.setSuId(relation.getParentId());
staffUserDTO.setUid(relation.getUserId());
staffUserBiz.addAppStaffUser(staffUserDTO);
}
} else { } else {
//判断用户是否有有效的上线 //判断用户是否有有效的上线
log.info("----userId===" + userId + "----bindTime====" + bindTime + "----relation.getBindTime()===" + relation.getBindTime()); log.info("----userId===" + userId + "----bindTime====" + bindTime + "----relation.getBindTime()===" + relation.getBindTime());
...@@ -111,6 +142,13 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe ...@@ -111,6 +142,13 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
} }
} }
} }
}catch (Exception e){
log.info("网络异常===" + e.getMessage());
}finally {
unLock(userId);
}
}
//首页关系绑定 //首页关系绑定
public ObjectRestResponse appBindRelation(Integer userId, String code) { public ObjectRestResponse appBindRelation(Integer userId, String code) {
...@@ -215,8 +253,8 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe ...@@ -215,8 +253,8 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper, AppUserRe
relationTemp.setIsValid(0); relationTemp.setIsValid(0);
relationTemp.setType(1); relationTemp.setType(1);
relationTemp.setIsDel(0); relationTemp.setIsDel(0);
relationTemp = relationTempBiz.selectOne(relationTemp); relationTemp=relationTempBiz.selectOne(relationTemp);
if (relationTemp == null) { if(relationTemp==null){
return; return;
} }
Integer parentId = relationTemp.getUserId(); Integer parentId = relationTemp.getUserId();
......
package com.github.wxiaoqi.security.admin.mapper; package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppStaffUser; 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 tk.mybatis.mapper.common.Mapper;
import javax.persistence.Id;
import java.util.List;
/** /**
* @author Administrator * @author Administrator
*/ */
public interface AppStaffUserMapper extends Mapper<AppStaffUser> { 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> { ...@@ -33,4 +33,6 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> {
List<AppUserVo> getUserByUserIdList(@Param("userIds") List<Integer> userIds); List<AppUserVo> getUserByUserIdList(@Param("userIds") List<Integer> userIds);
List<UserStaffBo> findAllStaffsByCompanyIdAndPostionId(StaffStatisticsFindDTO staffStatisticsFindDTO); List<UserStaffBo> findAllStaffsByCompanyIdAndPostionId(StaffStatisticsFindDTO staffStatisticsFindDTO);
AppUserVo getUser(Integer userId);
} }
\ No newline at end of file
package com.github.wxiaoqi.security.admin.rest; package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.AppStaffUserBiz; 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.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.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; 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;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
...@@ -27,7 +34,10 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS ...@@ -27,7 +34,10 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
private final UserAuthConfig authConfig; private final UserAuthConfig authConfig;
private final HttpServletRequest request; private final HttpServletRequest request;
private final PublicController publicController; 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;
/** /**
* 获取该用户所用的客户 * 获取该用户所用的客户
...@@ -37,8 +47,8 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS ...@@ -37,8 +47,8 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@GetMapping("/getAll") @GetMapping("/getAll")
public ObjectRestResponse<List<AppStaffUser>> getAll() throws Exception { public ObjectRestResponse<List<AppStaffUser>> getAll() throws Exception {
AppUserDTO userDTO = (AppUserDTO) publicController.userDetailByToken(authConfig.getToken(request)).getData(); AppUserDTO userDTO = (AppUserDTO) publicController.userDetailByToken(authConfig.getToken(request)).getData();
if (POSITION_NAME.equals(userDTO.getPositionName())) { if (POSITION_ID.equals(userDTO.getPositionId())) {
return ObjectRestResponse.succ(baseBiz.getAll(userDTO.getUserid())) ; return ObjectRestResponse.succ(baseBiz.getAll(userDTO.getUserid(),userDTO.getUsername())) ;
} }
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
...@@ -47,20 +57,32 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS ...@@ -47,20 +57,32 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@ApiOperation("添加") @ApiOperation("添加")
@PostMapping(value = "") @PostMapping(value = "")
public ObjectRestResponse<AppStaffUser> add(@RequestBody AppStaffUser appStaffUser) throws Exception { public ObjectRestResponse<AppStaffUser> add(@RequestBody AppStaffUser appStaffUser) throws Exception {
AppUserDTO userDTO = (AppUserDTO) publicController.userDetailByToken(authConfig.getToken(request)).getData(); IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(authConfig.getToken(request));
if (appStaffUser.getPhone().equals(userDTO.getUsername())) { Integer positionId = null;
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"不能绑定本人为客户"); 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(userDTO.getUserid()); appStaffUser.setSuId(Integer.valueOf(infoFromToken.getId()));
if (baseBiz.select(appStaffUser)) {
baseBiz.insertSelective(appStaffUser); baseBiz.insertSelective(appStaffUser);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"客户已存在");
}
@ApiOperation("查询一条") @ApiOperation("查询一条")
@GetMapping(value = "one") @GetMapping(value = "one")
public ObjectRestResponse<AppStaffUser> findOne(AppStaffUser appStaffUser) { public ObjectRestResponse<AppStaffUser> findOne(AppStaffUser appStaffUser) {
AppStaffUser staffUser = baseBiz.findOne(appStaffUser); AppStaffUser staffUser = baseBiz.findOne(appStaffUser);
if (staffUser!=null) { if (staffUser!=null) {
return ObjectRestResponse.succ(staffUser); return ObjectRestResponse.succ(staffUser);
} }
...@@ -69,11 +91,13 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS ...@@ -69,11 +91,13 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@ApiOperation("删除") @ApiOperation("删除")
@DeleteMapping(value = "delete/{id}") @DeleteMapping(value = "delete/{id}")
public ObjectRestResponse<AppStaffUser> delete(@PathVariable Integer id) { public ObjectRestResponse<AppStaffUser> delete(@PathVariable Integer id) throws Exception {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(authConfig.getToken(request));
String userid = infoFromToken.getId();
AppStaffUser staffUser = new AppStaffUser(); AppStaffUser staffUser = new AppStaffUser();
staffUser.setId(id); staffUser.setId(id);
staffUser.setIsDel(1); staffUser.setIsDel(1);
baseBiz.updateSelectiveById(staffUser); baseBiz.update(staffUser,Integer.valueOf(userid));
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
...@@ -82,10 +106,19 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS ...@@ -82,10 +106,19 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@RequestMapping(value = "/{id}",method = RequestMethod.PUT) @RequestMapping(value = "/{id}",method = RequestMethod.PUT)
@ResponseBody @ResponseBody
public ObjectRestResponse update(@RequestBody AppStaffUser appStaffUser) throws Exception { public ObjectRestResponse update(@RequestBody AppStaffUser appStaffUser) throws Exception {
AppUserDTO userDTO = (AppUserDTO) publicController.userDetailByToken(authConfig.getToken(request)).getData(); IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(authConfig.getToken(request));
if (appStaffUser.getPhone().equals(userDTO.getUsername())) { Integer positionId = null;
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"不能绑定本人为客户"); 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()));
baseBiz.updateSelectiveById(appStaffUser); baseBiz.updateSelectiveById(appStaffUser);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
......
...@@ -44,7 +44,7 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz, ...@@ -44,7 +44,7 @@ public class BaseUserMemberController extends BaseController<BaseUserMemberBiz,
* 房车助手下级用户日志新增 * 房车助手下级用户日志新增
*/ */
@RequestMapping(value = "admin/addAppUserLogRemark", method = RequestMethod.POST) @RequestMapping(value = "admin/addAppUserLogRemark", method = RequestMethod.POST)
public ObjectRestResponse addAppUserLogRemark(AppUserLogRemarkDTO appUserLogRemarkDTO) { public ObjectRestResponse addAppUserLogRemark(@RequestBody AppUserLogRemarkDTO appUserLogRemarkDTO) {
appUserLogRemarkBiz.addAppUserLogRemark(appUserLogRemarkDTO); appUserLogRemarkBiz.addAppUserLogRemark(appUserLogRemarkDTO);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
......
<?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= ...@@ -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 ) as `sell` on sell.user_id=saff.userId
order by sell.sellAmount desc order by sell.sellAmount desc
</select> </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> </mapper>
\ No newline at end of file
package com.xxfc.platform.activity.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/13 15:11
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ActivityLotteryDTO implements Serializable {
private static final long serialVersionUID = 1L;
private Integer userId;
private String phone;
private Integer serialNumber;
private Integer activityId;
private Integer prizeType;
private String prizeName;
private String iconPath;
private Integer hasWinning;
private String expiryDateCode;
private Date lotteryTime;
private Integer goodsId;
private Integer prizeGoodsType;
}
...@@ -24,4 +24,6 @@ public class ActivityLuckDrawFindDTO extends PageParam { ...@@ -24,4 +24,6 @@ public class ActivityLuckDrawFindDTO extends PageParam {
private Date endTime; private Date endTime;
private String phone; private String phone;
private Integer activityId; private Integer activityId;
private String parentPhone;
} }
...@@ -3,10 +3,7 @@ package com.xxfc.platform.activity.entity; ...@@ -3,10 +3,7 @@ package com.xxfc.platform.activity.entity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column; import javax.persistence.*;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
......
package com.xxfc.platform.activity.entity; package com.xxfc.platform.activity.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.Date; import javax.persistence.*;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
* 精彩活动 * 精彩活动
*
* @author Administrator * @author Administrator
*/ */
@Data @Data
...@@ -29,14 +30,14 @@ public class HomeActivities implements Serializable { ...@@ -29,14 +30,14 @@ public class HomeActivities implements Serializable {
* 创建时间 * 创建时间
*/ */
@Column(name = "crt_time") @Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true ) @ApiModelProperty(value = "创建时间", hidden = true)
private BigInteger crtTime; private BigInteger crtTime;
/** /**
* 更新时间 * 更新时间
*/ */
@Column(name = "upd_time") @Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true ) @ApiModelProperty(value = "更新时间", hidden = true)
private BigInteger updTime; private BigInteger updTime;
/** /**
...@@ -83,15 +84,27 @@ public class HomeActivities implements Serializable { ...@@ -83,15 +84,27 @@ public class HomeActivities implements Serializable {
private String picture; private String picture;
/** /**
* 活动页面链接 * 活动页面链接
*/ */
@Column(name = "url") @Column(name = "url")
@ApiModelProperty(value = "活动页面链接") @ApiModelProperty(value = "安卓链接")
private String url; private String url;
/**
* 活动页面链接
*/
@Column(name = "ios_url")
@ApiModelProperty(value = "苹果链接")
private String iosUrl;
/**
* 活动页面链接
*/
@Column(name = "p_url")
@ApiModelProperty(value = "小程序链接")
private String purl;
/** /**
* 是否删除:0-否,1-是 * 是否删除:0-否,1-是
...@@ -105,6 +118,4 @@ public class HomeActivities implements Serializable { ...@@ -105,6 +118,4 @@ public class HomeActivities implements Serializable {
*/ */
@Column(name = "time_type") @Column(name = "time_type")
private Integer timeType; private Integer timeType;
} }
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;
}
...@@ -10,7 +10,6 @@ import org.springframework.cache.annotation.EnableCaching; ...@@ -10,7 +10,6 @@ import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import tk.mybatis.spring.annotation.MapperScan; import tk.mybatis.spring.annotation.MapperScan;
...@@ -28,7 +27,6 @@ import tk.mybatis.spring.annotation.MapperScan; ...@@ -28,7 +27,6 @@ import tk.mybatis.spring.annotation.MapperScan;
"com.github.wxiaoqi.security.common.support" "com.github.wxiaoqi.security.common.support"
}) })
@EnableAspectJAutoProxy(exposeProxy = true) @EnableAspectJAutoProxy(exposeProxy = true)
@EnableAsync
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableScheduling @EnableScheduling
@EnableAceAuthClient @EnableAceAuthClient
......
...@@ -25,7 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -25,7 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.ValueOperations;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -202,8 +201,9 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor ...@@ -202,8 +201,9 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
timeStr}; timeStr};
} }
@Async
public void updateLotteryNumByActivityIdAndUserIdAndPrizeType(Integer activityId,Integer userId,Integer prizeType){ public void updateLotteryNumByActivityIdAndUserIdAndPrizeType(Integer activityId,Integer userId,Integer prizeType){
mapper.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityId,userId,prizeType); mapper.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityId,userId,prizeType);
} }
} }
\ No newline at end of file
package com.xxfc.platform.activity.biz; package com.xxfc.platform.activity.biz;
import cn.hutool.core.date.DateUtil; 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.util.excel.ExcelUtils;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO; 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.commons.collections.CollectionUtils;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row; 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.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Service; 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 org.springframework.transaction.annotation.Transactional;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
...@@ -106,4 +107,15 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ ...@@ -106,4 +107,15 @@ public class ActivityLuckyDrawBiz extends BaseBiz<ActivityLuckyDrawMapper, Activ
} }
return activityLuckyDraws; 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; ...@@ -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.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant; 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.dto.ApLogDTO;
import com.xxfc.platform.activity.entity.*; import com.xxfc.platform.activity.entity.*;
import com.xxfc.platform.activity.mapper.ActivityPopularizeMapper; import com.xxfc.platform.activity.mapper.ActivityPopularizeMapper;
import com.xxfc.platform.universal.feign.MQSenderFeign; import com.xxfc.platform.universal.feign.MQSenderFeign;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; 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_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
...@@ -36,6 +40,7 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TR ...@@ -36,6 +40,7 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TR
*/ */
@Service @Service
@Slf4j @Slf4j
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, ActivityPopularize> { public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, ActivityPopularize> {
@Autowired @Autowired
...@@ -53,6 +58,9 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act ...@@ -53,6 +58,9 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act
@Autowired @Autowired
ActivityPopularizeItemBiz activityPopularizeItemBiz; ActivityPopularizeItemBiz activityPopularizeItemBiz;
private final RedissonLock redissonLock;
@Autowired @Autowired
UserFeign userFeign; UserFeign userFeign;
...@@ -78,6 +86,11 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act ...@@ -78,6 +86,11 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act
}}); }});
log.info("活动邀请注册:activityPopularize = {}", activityPopularize.toString()); log.info("活动邀请注册:activityPopularize = {}", activityPopularize.toString());
if (activityPopularize != null) { if (activityPopularize != null) {
String lockKey = String.format("%s%d:%d:%d", registerQueueDTO.getAppUserId(), registerQueueDTO.getInParamDTO().getUsername(), activityPopularize.getId());
RLock rLock = redissonLock.getRLock(lockKey);
try {
boolean isSuccess = rLock.tryLock(5, 5, TimeUnit.SECONDS);
if (isSuccess) {
List<ActivityPopularizeItem> activityPopularizeItems = activityPopularizeItemBiz.selectByPopularizeId(activityPopularize.getId()); List<ActivityPopularizeItem> activityPopularizeItems = activityPopularizeItemBiz.selectByPopularizeId(activityPopularize.getId());
ActivityPopularizeItem activityPopularizeItem = activityPopularizeItems.get(activityPopularizeItems.size() - 1); ActivityPopularizeItem activityPopularizeItem = activityPopularizeItems.get(activityPopularizeItems.size() - 1);
Date now = DateUtil.date(); Date now = DateUtil.date();
...@@ -142,25 +155,30 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act ...@@ -142,25 +155,30 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act
setPopularizeId(activityPopularize.getId()); setPopularizeId(activityPopularize.getId());
}}); }});
double currentProgress = activityPopularizeUser.getCurrentProgress().doubleValue(); double currentProgress = activityPopularizeUser.getCurrentProgress().doubleValue();
log.info("用户原活动进度:currentProgress = {}", activityPopularizeUser.toString()); log.info("用户原活动进度:currentProgress = {}", currentProgress);
currentProgress += Double.parseDouble(a + ""); currentProgress += Double.parseDouble(a + "");
BigDecimal bigDecimal = new BigDecimal(currentProgress); BigDecimal bigDecimal = new BigDecimal(currentProgress);
log.info("用户现活动进度:newCurrentProgress = {}", currentProgress); log.info("用户现活动进度:newCurrentProgress = {}", currentProgress);
//修改当前进度 //修改当前进度
activityPopularizeUser.setCurrentProgress(bigDecimal); activityPopularizeUser.setCurrentProgress(bigDecimal);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser); popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
//任务没有完成 //任务没有完成 加锁
if (!SYS_TRUE.equals(activityPopularizeUser.getStatus())) { if (!SYS_TRUE.equals(activityPopularizeUser.getStatus())) {
// AwardDTO awardDTO = JSONUtil.toBean(activityPopularize.getValue(), AwardDTO.class); // AwardDTO awardDTO = JSONUtil.toBean(activityPopularize.getValue(), AwardDTO.class);
//检查是否满足奖励 //检查是否满足奖励
if (relationBiz.selectList(new ActivityPopularizeRelation() {{ if (relationBiz.selectList(new ActivityPopularizeRelation() {{
setMajorUserId(majorUserId); setMajorUserId(majorUserId);
setPopularizeId(activityPopularize.getId()); setPopularizeId(activityPopularize.getId());
}}).size() >= 10) { }}).size() >= 10 && popularizeUserBiz.selectCount(new ActivityPopularizeUser() {{
setPopularizeId(activityPopularize.getId());
setCurrentProgress(new BigDecimal("50"));
}}) <= activityPopularize.getNumLimit()) {
apLogDTO.setStatus(SYS_TRUE); apLogDTO.setStatus(SYS_TRUE);
popularizeLogBiz.updateSelectiveById(BeanUtil.toBean(apLogDTO, ActivityPopularizeLog.class)); popularizeLogBiz.updateSelectiveById(BeanUtil.toBean(apLogDTO, ActivityPopularizeLog.class));
activityPopularizeUser.setStatus(SYS_TRUE); activityPopularizeUser.setStatus(SYS_TRUE);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser); popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_WALLET_ADD, JSONUtil.toJsonStr(new MyWalletDetail() {{ mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_WALLET_ADD, JSONUtil.toJsonStr(new MyWalletDetail() {{
setAmount(new BigDecimal("50")); setAmount(new BigDecimal("50"));
setSource(SOURCE_ACTIVITY); setSource(SOURCE_ACTIVITY);
...@@ -172,6 +190,13 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act ...@@ -172,6 +190,13 @@ public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper, Act
}})); }}));
} }
} }
} else {
// 获取锁失败
log.info("tryLock fail, key = [{}]", lockKey);
}
} catch (InterruptedException e) {
log.error("tryLock fail, key = [{}]", lockKey);
}
} }
} }
} }
......
...@@ -4,15 +4,15 @@ import com.ace.cache.annotation.Cache; ...@@ -4,15 +4,15 @@ import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.ReferralCodeUtil; import com.github.wxiaoqi.security.common.util.ReferralCodeUtil;
import com.xxfc.platform.activity.config.RedissonLock; import com.xxfc.platform.activity.config.RedissonLock;
import com.xxfc.platform.activity.constant.PrizeGoodsTypeEnum; import com.xxfc.platform.activity.constant.PrizeGoodsTypeEnum;
import com.xxfc.platform.activity.constant.PrizeTypeEnum; import com.xxfc.platform.activity.constant.PrizeTypeEnum;
import com.xxfc.platform.activity.dto.ActivityLotteryDTO;
import com.xxfc.platform.activity.dto.CouponDTO; import com.xxfc.platform.activity.dto.CouponDTO;
import com.xxfc.platform.activity.dto.UserCouponSendDTO;
import com.xxfc.platform.activity.entity.ActivityPrize; import com.xxfc.platform.activity.entity.ActivityPrize;
import com.xxfc.platform.activity.entity.ActivityWinningRecord;
import com.xxfc.platform.activity.mapper.ActivityPrizeMapper; import com.xxfc.platform.activity.mapper.ActivityPrizeMapper;
import com.xxfc.platform.activity.util.LotteryUtils; import com.xxfc.platform.activity.util.LotteryUtils;
import com.xxfc.platform.activity.vo.ActivityPrizeVo; import com.xxfc.platform.activity.vo.ActivityPrizeVo;
...@@ -21,12 +21,12 @@ import lombok.RequiredArgsConstructor; ...@@ -21,12 +21,12 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.aop.framework.AopContext; import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.core.ValueOperations;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
...@@ -49,10 +49,9 @@ import java.util.stream.Collectors; ...@@ -49,10 +49,9 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize> { public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize> {
private final ActivityWinningRecordBiz activityWinningRecordBiz;
private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz; private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz;
private final UserCouponBiz userCouponBiz;
private final CouponBiz couponBiz; private final CouponBiz couponBiz;
private final RabbitTemplate rabbitTemplate;
private final RedisTemplate<String, Object> redisTemplate; private final RedisTemplate<String, Object> redisTemplate;
@Resource(name = "redisTemplate") @Resource(name = "redisTemplate")
private ValueOperations<String, Object> valueOperations; private ValueOperations<String, Object> valueOperations;
...@@ -157,6 +156,9 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -157,6 +156,9 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
*/ */
public LotteryVo activityLottery(Integer activityId, Integer prizeType, String lotteryDate, AppUserDTO appUserDTO) { public LotteryVo activityLottery(Integer activityId, Integer prizeType, String lotteryDate, AppUserDTO appUserDTO) {
LotteryVo lotteryVo = new LotteryVo(); LotteryVo lotteryVo = new LotteryVo();
ActivityLotteryDTO activityLotteryDTO = new ActivityLotteryDTO();
activityLotteryDTO.setHasWinning(0);
//查询奖品信息
List<ActivityPrize> activityPrizes = ((ActivityPrizeBiz) AopContext.currentProxy()).findActivityPrizeByType(prizeType); List<ActivityPrize> activityPrizes = ((ActivityPrizeBiz) AopContext.currentProxy()).findActivityPrizeByType(prizeType);
ActivityPrize notActivityPrize = activityPrizes.stream().filter(x -> x.getPrizeGoodsType() == 0).findFirst().orElseGet(() -> { ActivityPrize notActivityPrize = activityPrizes.stream().filter(x -> x.getPrizeGoodsType() == 0).findFirst().orElseGet(() -> {
ActivityPrize activityPrize = new ActivityPrize(); ActivityPrize activityPrize = new ActivityPrize();
...@@ -166,6 +168,8 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -166,6 +168,8 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
activityPrize.setSerialNumber(8); activityPrize.setSerialNumber(8);
return activityPrize; return activityPrize;
}); });
//用户对应活动类型抽奖次数
String lotteryNumKey = String.format("%s%d:%d:%d",USER_LOTTERY_PRE_KEY, appUserDTO.getUserid(), activityId, prizeType); String lotteryNumKey = String.format("%s%d:%d:%d",USER_LOTTERY_PRE_KEY, appUserDTO.getUserid(), activityId, prizeType);
Object lotteryNum = valueOperations.get(lotteryNumKey); Object lotteryNum = valueOperations.get(lotteryNumKey);
boolean hasLotteryNum = lotteryNum == null ? activityAttendanceRecordBiz.hasNumberOfLuckyDrawByType(activityId, prizeType, appUserDTO.getUserid()) : ((Integer) lotteryNum) > 0; boolean hasLotteryNum = lotteryNum == null ? activityAttendanceRecordBiz.hasNumberOfLuckyDrawByType(activityId, prizeType, appUserDTO.getUserid()) : ((Integer) lotteryNum) > 0;
...@@ -197,16 +201,13 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -197,16 +201,13 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
} }
} }
ActivityWinningRecord activityWinningRecord = new ActivityWinningRecord(); //判断是否有库存
activityWinningRecord.setActivityId(activityId);
activityWinningRecord.setPrizeType(prizeType);
activityWinningRecord.setUserId(appUserDTO.getUserid());
activityWinningRecord.setHasWinning(0);
boolean hasStock = activityPrize.getPrizeGoodsType() != PrizeGoodsTypeEnum.NO_PRIZE.getCode() boolean hasStock = activityPrize.getPrizeGoodsType() != PrizeGoodsTypeEnum.NO_PRIZE.getCode()
&& activityPrize.getTotalStock() != null && activityPrize.getTotalStock() != null
&& activityPrize.getTotalStock()!=0 && activityPrize.getTotalStock()!=0
&& prizeStock != null && prizeStock != null
&& (Integer) prizeStock != 0; && (Integer) prizeStock != 0;
if (hasStock) { if (hasStock) {
String lockKey = String.format("%s%d:%d:%d", LOTTERY_PRE_KEY, activityId, prizeType, activityPrize.getSerialNumber()); String lockKey = String.format("%s%d:%d:%d", LOTTERY_PRE_KEY, activityId, prizeType, activityPrize.getSerialNumber());
RLock rLock = redissonLock.getRLock(lockKey); RLock rLock = redissonLock.getRLock(lockKey);
...@@ -217,14 +218,12 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -217,14 +218,12 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
log.info("tryLock success, key = [{}]", lockKey); log.info("tryLock success, key = [{}]", lockKey);
try { try {
if (prizeStock != null && (Integer) prizeStock > 0) { if (prizeStock != null && (Integer) prizeStock > 0) {
//更新库存 //更新奖品的缓存库存
((ActivityPrizeBiz) AopContext.currentProxy()).updatePrizeStock(prizeType, activityPrize.getSerialNumber());
//更新缓存库存
valueOperations.decrement(prizeStockKey); valueOperations.decrement(prizeStockKey);
//设置为已中奖 //设置为已中奖
activityWinningRecord.setHasWinning(1); activityLotteryDTO.setHasWinning(1);
activityWinningRecord.setIconPath(activityPrize.getIconPath()); activityLotteryDTO.setIconPath(activityPrize.getIconPath());
activityWinningRecord.setLotteryTime(new Date()); activityLotteryDTO.setLotteryTime(new Date());
} else { } else {
activityPrize = notActivityPrize; activityPrize = notActivityPrize;
} }
...@@ -240,35 +239,35 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -240,35 +239,35 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
log.info("tryLock fail, key = [{}]", lockKey); log.info("tryLock fail, key = [{}]", lockKey);
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); log.error("tryLock fail, key = [{}]", lockKey);
} }
if (PrizeTypeEnum.LOCALE.getCode() == prizeType) { if (PrizeTypeEnum.LOCALE.getCode() == prizeType) {
//兑奖码生成 //兑奖码生成
String expireDateCodeKey = String.format("%s:%s%d",lotteryDate.substring(0,4),LOTTERY_PRE_KEY, activityId); String expireDateCodeKey = String.format("%s:%s%d",lotteryDate.substring(0,4),LOTTERY_PRE_KEY, activityId);
//兑奖次数自增
Long expireDateCodeCounter = valueOperations.increment(expireDateCodeKey); Long expireDateCodeCounter = valueOperations.increment(expireDateCodeKey);
if (expireDateCodeCounter == 1) { if (expireDateCodeCounter == 1) {
redisTemplate.expire(expireDateCodeKey, expirDays, TimeUnit.DAYS); redisTemplate.expire(expireDateCodeKey, expirDays, TimeUnit.DAYS);
} }
String expiryDateCode = ReferralCodeUtil.encode(expireDateCodeCounter.intValue()); String expiryDateCode = ReferralCodeUtil.encode(expireDateCodeCounter.intValue());
activityWinningRecord.setExpiryDateCode(expiryDateCode); activityLotteryDTO.setExpiryDateCode(expiryDateCode);
lotteryVo.setExpiryDateCode(expiryDateCode); lotteryVo.setExpiryDateCode(expiryDateCode);
} }
//发放优惠券
if (activityPrize.getPrizeGoodsType() == PrizeGoodsTypeEnum.COUPON.getCode()) {
UserCouponSendDTO userCouponSendDTO = new UserCouponSendDTO();
userCouponSendDTO.setCouponId(activityPrize.getGoodsId());
userCouponSendDTO.setCouponNum(1);
userCouponSendDTO.setPhone(appUserDTO.getUsername());
userCouponBiz.sendCoupon(userCouponSendDTO);
activityWinningRecord.setGoodsId(activityPrize.getGoodsId());
} }
} activityLotteryDTO.setActivityId(activityId);
activityWinningRecord.setPrizeName(activityPrize.getName()); activityLotteryDTO.setPrizeType(prizeType);
activityWinningRecordBiz.saveRecord(activityWinningRecord); activityLotteryDTO.setUserId(appUserDTO.getUserid());
activityLotteryDTO.setPhone(appUserDTO.getUsername());
activityLotteryDTO.setPrizeName(activityPrize.getName());
Optional.ofNullable(activityPrize.getGoodsId()).ifPresent(goodsId->activityLotteryDTO.setGoodsId(goodsId));
activityLotteryDTO.setSerialNumber(activityPrize.getSerialNumber());
activityLotteryDTO.setPrizeGoodsType(activityPrize.getPrizeGoodsType());
lotteryVo.setSerialNumber(activityPrize.getSerialNumber()); lotteryVo.setSerialNumber(activityPrize.getSerialNumber());
//更改对应抽奖类型的抽奖次数 //减少用户抽奖次数
activityAttendanceRecordBiz.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityId, appUserDTO.getUserid(), prizeType);
valueOperations.decrement(lotteryNumKey); valueOperations.decrement(lotteryNumKey);
//发送抽奖结果消息
rabbitTemplate.convertAndSend(RabbitConstant.ACTIVITY_PRIZE_TOPIC,RabbitConstant.KEY_ACTIVITY_PRIZE_RECORD,activityLotteryDTO);
} else { } else {
lotteryVo.setMessage("抽奖次数已用完!!!"); lotteryVo.setMessage("抽奖次数已用完!!!");
} }
...@@ -281,7 +280,6 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize ...@@ -281,7 +280,6 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
* @param prizeType * @param prizeType
* @param serialNumber * @param serialNumber
*/ */
@Async
public void updatePrizeStock(Integer prizeType, Integer serialNumber) { public void updatePrizeStock(Integer prizeType, Integer serialNumber) {
mapper.updatePrizeStock(prizeType, serialNumber); mapper.updatePrizeStock(prizeType, serialNumber);
} }
......
...@@ -8,7 +8,6 @@ import com.google.common.collect.Lists; ...@@ -8,7 +8,6 @@ import com.google.common.collect.Lists;
import com.xxfc.platform.activity.bo.ActivityWinningRecordBo; import com.xxfc.platform.activity.bo.ActivityWinningRecordBo;
import com.xxfc.platform.activity.bo.ActivityWinningRecordTotalVo; import com.xxfc.platform.activity.bo.ActivityWinningRecordTotalVo;
import com.xxfc.platform.activity.constant.PrizeTypeEnum; import com.xxfc.platform.activity.constant.PrizeTypeEnum;
import com.xxfc.platform.activity.dto.ActivityWinningRecordDTO;
import com.xxfc.platform.activity.dto.ActivityWinningRecordFindDTO; import com.xxfc.platform.activity.dto.ActivityWinningRecordFindDTO;
import com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO; import com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO;
import com.xxfc.platform.activity.entity.ActivityWinningRecord; import com.xxfc.platform.activity.entity.ActivityWinningRecord;
...@@ -18,7 +17,6 @@ import org.apache.commons.collections.CollectionUtils; ...@@ -18,7 +17,6 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -31,6 +29,7 @@ import java.io.IOException; ...@@ -31,6 +29,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
/** /**
...@@ -164,4 +163,11 @@ public class ActivityWinningRecordBiz extends BaseBiz<ActivityWinningRecordMappe ...@@ -164,4 +163,11 @@ public class ActivityWinningRecordBiz extends BaseBiz<ActivityWinningRecordMappe
activityWinningRecordPageDTO.getPositionName(),prizeType,activityWinningRecordPageDTO.getPrizeName(), activityWinningRecordPageDTO.getPositionName(),prizeType,activityWinningRecordPageDTO.getPrizeName(),
expiryDateCode,timeStr}; expiryDateCode,timeStr};
} }
public ActivityWinningRecordVo findActivityAttendanceRecordById(Long id) {
ActivityWinningRecordVo activityWinningRecordVo = new ActivityWinningRecordVo();
ActivityWinningRecord activityAttendanceRecord = mapper.selectByPrimaryKey(id);
Optional.ofNullable(activityAttendanceRecord).ifPresent(x->BeanUtils.copyProperties(x,activityWinningRecordVo));
return activityWinningRecordVo;
}
} }
\ No newline at end of file
...@@ -25,6 +25,7 @@ public class RabbitActivityConfig extends RabbitCommonConfig { ...@@ -25,6 +25,7 @@ public class RabbitActivityConfig extends RabbitCommonConfig {
//优惠券 //优惠券
public static final String COUPON_CANCEL_QUEUE = "coupon.cancel.queue"; public static final String COUPON_CANCEL_QUEUE = "coupon.cancel.queue";
public static final String PRIZE_RECORD_QUEUE="prize:record:queue";
static { static {
myQueue = new ArrayList<BindDTO>(){{ myQueue = new ArrayList<BindDTO>(){{
...@@ -35,6 +36,7 @@ public class RabbitActivityConfig extends RabbitCommonConfig { ...@@ -35,6 +36,7 @@ public class RabbitActivityConfig extends RabbitCommonConfig {
add(new BindDTO(ACTIVITY_NEW_QUEUE, ADMIN_TOPIC, KEY_APPUSER_AUTH)); add(new BindDTO(ACTIVITY_NEW_QUEUE, ADMIN_TOPIC, KEY_APPUSER_AUTH));
add(new BindDTO(INTEGRAL_HANDLE_QUEUE, INTEGRAL_TOPIC, INTEGRAL_ROUTING_KEY)); add(new BindDTO(INTEGRAL_HANDLE_QUEUE, INTEGRAL_TOPIC, INTEGRAL_ROUTING_KEY));
add(new BindDTO(COUPON_CANCEL_QUEUE, ORDER_TOPIC, KEY_ORDER_CANCEL)); add(new BindDTO(COUPON_CANCEL_QUEUE, ORDER_TOPIC, KEY_ORDER_CANCEL));
add(new BindDTO(PRIZE_RECORD_QUEUE,ACTIVITY_PRIZE_TOPIC,KEY_ACTIVITY_PRIZE_RECORD));
}}; }};
} }
......
package com.xxfc.platform.activity.handler;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.activity.biz.ActivityAttendanceRecordBiz;
import com.xxfc.platform.activity.biz.ActivityPrizeBiz;
import com.xxfc.platform.activity.biz.ActivityWinningRecordBiz;
import com.xxfc.platform.activity.biz.UserCouponBiz;
import com.xxfc.platform.activity.config.RabbitActivityConfig;
import com.xxfc.platform.activity.constant.PrizeGoodsTypeEnum;
import com.xxfc.platform.activity.dto.ActivityLotteryDTO;
import com.xxfc.platform.activity.dto.UserCouponSendDTO;
import com.xxfc.platform.activity.entity.ActivityWinningRecord;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/13 11:22
*/
@Component
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@Slf4j
public class ActivityPrizeMqHandler {
private final ActivityPrizeBiz activityPrizeBiz;
private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz;
private final ActivityWinningRecordBiz activityWinningRecordBiz;
private final UserCouponBiz userCouponBiz;
private final RedisTemplate<String, Object> redisTemplate;
@Resource(name = "redisTemplate")
private ValueOperations valueOperations;
private final String R_CONSUME = "lottery:reconsume";
private final int R_CONSUME_MAX_NUM = 3;
@RabbitListener(queues = RabbitActivityConfig.PRIZE_RECORD_QUEUE)
public void processActivityPrizeMsg(ActivityLotteryDTO activityLotteryDTO, Channel channel) {
log.info("抽奖消息的数据【{}】", activityLotteryDTO);
try {
if (activityLotteryDTO.getHasWinning() == 1) {
//更新库存
log.info("更新库存:参数【prizeType:{}==serialNumber:{}】", activityLotteryDTO.getPrizeType(), activityLotteryDTO.getSerialNumber());
activityPrizeBiz.updatePrizeStock(activityLotteryDTO.getPrizeType(), activityLotteryDTO.getSerialNumber());
//发放优惠券
if (activityLotteryDTO.getPrizeGoodsType() == PrizeGoodsTypeEnum.COUPON.getCode()) {
UserCouponSendDTO userCouponSendDTO = new UserCouponSendDTO();
userCouponSendDTO.setCouponId(activityLotteryDTO.getGoodsId());
userCouponSendDTO.setCouponNum(1);
userCouponSendDTO.setPhone(activityLotteryDTO.getPhone());
log.info("抽中优惠券发送:【参数:{}】", userCouponSendDTO);
userCouponBiz.sendCoupon(userCouponSendDTO);
}
}
ActivityWinningRecord activityWinningRecord = new ActivityWinningRecord();
BeanUtils.copyProperties(activityLotteryDTO, activityWinningRecord);
activityWinningRecord.setCrtTime(new Date());
log.info("抽奖记录【{}】", activityWinningRecord);
activityWinningRecordBiz.saveRecord(activityWinningRecord);
//更改对应抽奖类型的抽奖次数
log.info("更改对应抽奖类型的抽奖次数【activityId:{}==userId:{}==prizeType:{}】", activityLotteryDTO.getActivityId(), activityLotteryDTO.getUserId(), activityLotteryDTO.getPrizeType());
activityAttendanceRecordBiz.updateLotteryNumByActivityIdAndUserIdAndPrizeType(activityLotteryDTO.getActivityId(), activityLotteryDTO.getUserId(), activityLotteryDTO.getPrizeType());
} catch (Exception ex) {
log.error("抽奖消息消费失败【{}】", ex);
try {
Long reConsumeCounter = valueOperations.increment(R_CONSUME);
if (reConsumeCounter <= R_CONSUME_MAX_NUM) {
channel.basicRecover(false);
log.info("抽奖消息重回队列成功");
}
if (reConsumeCounter == 1) {
redisTemplate.expire(R_CONSUME, 1, TimeUnit.DAYS);
}
} catch (IOException e) {
log.error("消费抽奖消息重回队列失败【{}】", e);
}
}
}
}
...@@ -2,15 +2,11 @@ package com.xxfc.platform.activity.handler; ...@@ -2,15 +2,11 @@ package com.xxfc.platform.activity.handler;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO; import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import com.xxfc.platform.activity.biz.ActivityPopularizeBiz; import com.xxfc.platform.activity.biz.ActivityPopularizeBiz;
import com.xxfc.platform.activity.biz.ActivityUserJoinBiz; 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.config.RabbitActivityConfig;
import com.xxfc.platform.activity.entity.ActivityPopularize;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
......
...@@ -2,9 +2,11 @@ package com.xxfc.platform.activity.mapper; ...@@ -2,9 +2,11 @@ package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO; import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO;
import com.xxfc.platform.activity.entity.ActivityLuckyDraw; import com.xxfc.platform.activity.entity.ActivityLuckyDraw;
import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 活动抽奖报名表 * 活动抽奖报名表
...@@ -16,4 +18,6 @@ import java.util.List; ...@@ -16,4 +18,6 @@ import java.util.List;
public interface ActivityLuckyDrawMapper extends Mapper<ActivityLuckyDraw> { public interface ActivityLuckyDrawMapper extends Mapper<ActivityLuckyDraw> {
List<ActivityLuckyDraw> listLuckDrawWithPage(ActivityLuckDrawFindDTO activityLuckDrawFindDTO); List<ActivityLuckyDraw> listLuckDrawWithPage(ActivityLuckDrawFindDTO activityLuckDrawFindDTO);
List<ActivityLuckyDrawListVo> getAllByPage(Map<String, Object> param);
} }
package com.xxfc.platform.activity.rest; package com.xxfc.platform.activity.rest;
import cn.hutool.core.bean.BeanUtil; 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.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface; import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
...@@ -29,6 +30,7 @@ import tk.mybatis.mapper.entity.Example; ...@@ -29,6 +30,7 @@ import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls; import tk.mybatis.mapper.weekend.WeekendSqls;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -156,7 +158,14 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular ...@@ -156,7 +158,14 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
setUserId(getAppUser().getUserid()); setUserId(getAppUser().getUserid());
setPopularizeId(itemAddDTO.getPopularizeId()); 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) { if(null == activityPopularizeUser) {
activityPopularizeUser = popularizeUserBiz.insertSelectiveReT(new ActivityPopularizeUser(){{ activityPopularizeUser = popularizeUserBiz.insertSelectiveReT(new ActivityPopularizeUser(){{
......
package com.xxfc.platform.activity.rest; package com.xxfc.platform.activity.rest;
import com.xxfc.platform.activity.biz.ActivityAttendanceRecordBiz; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.biz.ActivityWinningRecordBiz;
import com.xxfc.platform.activity.vo.ActivityWinningRecordVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -17,6 +21,13 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -17,6 +21,13 @@ import org.springframework.web.bind.annotation.RestController;
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ActivityWinningRecordController { public class ActivityWinningRecordController {
private final ActivityAttendanceRecordBiz activityAttendanceRecordBiz;
private final ActivityWinningRecordBiz activityWinningRecordBiz;
@GetMapping("/{id}")
public ObjectRestResponse<ActivityWinningRecordVo> findActivityAttendanceRecordById(@PathVariable(value = "id") Long id){
ActivityWinningRecordVo activityWinningRecordVo = activityWinningRecordBiz.findActivityAttendanceRecordById(id);
return ObjectRestResponse.succ(activityWinningRecordVo);
}
} }
\ No newline at end of file
package com.xxfc.platform.activity.rest.admin; 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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.biz.ActivityLuckyDrawBiz; import com.xxfc.platform.activity.biz.ActivityLuckyDrawBiz;
import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO; import com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO;
import com.xxfc.platform.activity.entity.ActivityLuckyDraw; import com.xxfc.platform.activity.vo.ActivityLuckyDrawListVo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -38,9 +38,8 @@ public class ActivityLuckyDrawAdminController { ...@@ -38,9 +38,8 @@ public class ActivityLuckyDrawAdminController {
* @return * @return
*/ */
@PostMapping("/page") @PostMapping("/page")
public ObjectRestResponse<PageDataVO<ActivityLuckyDraw>> listActivtyLuckyDrawWithPage(@RequestBody ActivityLuckDrawFindDTO activityLuckDrawFindDTO) { public ObjectRestResponse<PageDataVO<ActivityLuckyDrawListVo>> listActivtyLuckyDrawWithPage(@RequestBody ActivityLuckDrawFindDTO activityLuckDrawFindDTO) {
PageDataVO<ActivityLuckyDraw> activityLuckyDrawPageDataVO = activityLuckyDrawBiz.listLuckDrawWithPage(activityLuckDrawFindDTO); return activityLuckyDrawBiz.getAll(activityLuckDrawFindDTO);
return ObjectRestResponse.succ(activityLuckyDrawPageDataVO);
} }
@PostMapping("/export") @PostMapping("/export")
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
aar.user_name as `userName`, aar.user_name as `userName`,
aar.phone, aar.phone,
aar.position_name as `positionName`, aar.position_name as `positionName`,
IFNULL(apr.inviteNum,0), IFNULL(apr.inviteNum,0) as `inviteNum`,
awr.prizes awr.prizes
from (select `user_id`,`popularize_id`,`current_progress`,`status`,`crt_time` from activity_popularize_user where from (select `user_id`,`popularize_id`,`current_progress`,`status`,`crt_time` from activity_popularize_user where
`popularize_id`=#{activityId} `popularize_id`=#{activityId}
......
...@@ -39,4 +39,32 @@ ...@@ -39,4 +39,32 @@
order by `crt_time` desc order by `crt_time` desc
</select> </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> </mapper>
\ No newline at end of file
...@@ -84,6 +84,10 @@ public class Banner { ...@@ -84,6 +84,10 @@ public class Banner {
@ApiModelProperty(value = "ios跳转地址") @ApiModelProperty(value = "ios跳转地址")
private String iosUrl; private String iosUrl;
@Column(name = "applet_url")
@ApiModelProperty("小程序跳转地址")
private String appletUrl;
/** /**
* 是否删除,0否,1是 * 是否删除,0否,1是
*/ */
......
...@@ -26,6 +26,8 @@ public class BannerVo { ...@@ -26,6 +26,8 @@ public class BannerVo {
private String iosUrl; private String iosUrl;
private String appletUrl;
/** /**
* seo html标签优化 * seo html标签优化
*/ */
......
...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.app.entity.Banner; import com.xxfc.platform.app.entity.Banner;
import com.xxfc.platform.app.entity.vo.BannerVo; import com.xxfc.platform.app.entity.vo.BannerVo;
import com.xxfc.platform.app.mapper.BannerMapper; import com.xxfc.platform.app.mapper.BannerMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Instant; import java.time.Instant;
...@@ -26,12 +27,7 @@ public class BannerBiz extends BaseBiz<BannerMapper,Banner> { ...@@ -26,12 +27,7 @@ public class BannerBiz extends BaseBiz<BannerMapper,Banner> {
List<Banner> banners = mapper.findBannerListByType(type,location,platform); List<Banner> banners = mapper.findBannerListByType(type,location,platform);
banners.forEach(banner -> { banners.forEach(banner -> {
BannerVo bannerVo = new BannerVo(); BannerVo bannerVo = new BannerVo();
bannerVo.setCover(banner.getCover()); BeanUtils.copyProperties(banner,bannerVo);
bannerVo.setUrl(banner.getUrl());
bannerVo.setTitle(banner.getTitle());
bannerVo.setId(banner.getId());
bannerVo.setAlt(banner.getAlt());
bannerVo.setIosUrl(banner.getIosUrl());
bannerVos.add(bannerVo); bannerVos.add(bannerVo);
}); });
return bannerVos; return bannerVos;
......
...@@ -44,8 +44,16 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive ...@@ -44,8 +44,16 @@ public class OrderMemberReceivedStatisticsBiz extends BaseBiz<OrderMemberReceive
* @param orderReceivedStatisticsFindDTO * @param orderReceivedStatisticsFindDTO
* @return * @return
*/ */
public List<OrderMemberReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) { public List<OrderMemberReceivedStatistics> selectOrderReceivedStatisticsGroupByDate(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderMemberReceivedStatistics(orderReceivedStatisticsFindDTO); return mapper.selectOrderMemberReceivedStatisticsGroupByDate(orderReceivedStatisticsFindDTO);
}
public List<OrderMemberReceivedStatistics> selectOrderReceivedStatisticsGroupByMonth(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderMemberReceivedStatisticsGroupByMonth(orderReceivedStatisticsFindDTO);
}
public List<OrderMemberReceivedStatistics> selectOrderReceivedStatisticsGroupByWeekOfYear(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderMemberReceivedStatisticsGroupByWeekOfYear(orderReceivedStatisticsFindDTO);
} }
/** /**
......
...@@ -41,8 +41,16 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi ...@@ -41,8 +41,16 @@ public class OrderRentVehicleReceivedStatisticsBiz extends BaseBiz<OrderRentVehi
* @param orderReceivedStatisticsFindDTO * @param orderReceivedStatisticsFindDTO
* @return * @return
*/ */
public List<OrderRentVehicleReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) { public List<OrderRentVehicleReceivedStatistics> selectOrderReceivedStatisticsGroupByDate(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderRentVehicleReceivedStatistics(orderReceivedStatisticsFindDTO); return mapper.selectOrderRentVehicleReceivedStatisticsGroupByDate(orderReceivedStatisticsFindDTO);
}
public List<OrderRentVehicleReceivedStatistics> selectOrderReceivedStatisticsGroupByMonth(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderRentVehicleReceivedStatisticsGroupByMonth(orderReceivedStatisticsFindDTO);
}
public List<OrderRentVehicleReceivedStatistics> selectOrderReceivedStatisticsGroupByWeekOfYear(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderRentVehicleReceivedStatisticsGroupByWeekOfYear(orderReceivedStatisticsFindDTO);
} }
/** /**
......
...@@ -31,8 +31,14 @@ public class OrderTourReceivedStatisticsBiz extends BaseBiz<OrderTourReceivedSta ...@@ -31,8 +31,14 @@ public class OrderTourReceivedStatisticsBiz extends BaseBiz<OrderTourReceivedSta
private final BaseOrderBiz baseOrderBiz; private final BaseOrderBiz baseOrderBiz;
private final OrderAccountBiz orderAccountBiz; private final OrderAccountBiz orderAccountBiz;
public List<OrderTourReceivedStatistics> selectOrderReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) { public List<OrderTourReceivedStatistics> selectOrderReceivedStatisticsGroupByDate(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderTourReceivedStatistics(orderReceivedStatisticsFindDTO); return mapper.selectOrderTourReceivedStatisticsGroupByDate(orderReceivedStatisticsFindDTO);
}
public List<OrderTourReceivedStatistics> selectOrderReceivedStatisticsGroupByMonth(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderTourReceivedStatisticsGroupByMonth(orderReceivedStatisticsFindDTO);
}
public List<OrderTourReceivedStatistics> selectOrderReceivedStatisticsGroupByWeekOfYear(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO) {
return mapper.selectOrderTourReceivedStatisticsGroupByWeekOfYear(orderReceivedStatisticsFindDTO);
} }
/** /**
......
...@@ -17,7 +17,8 @@ import java.util.List; ...@@ -17,7 +17,8 @@ import java.util.List;
*/ */
public interface OrderMemberReceivedStatisticsMapper extends Mapper<OrderMemberReceivedStatistics>, InsertListMapper<OrderMemberReceivedStatistics> { public interface OrderMemberReceivedStatisticsMapper extends Mapper<OrderMemberReceivedStatistics>, InsertListMapper<OrderMemberReceivedStatistics> {
List<OrderMemberReceivedStatistics> selectOrderMemberReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO); List<OrderMemberReceivedStatistics> selectOrderMemberReceivedStatisticsGroupByDate(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderMemberReceivedStatistics> selectOrderMemberReceivedStatisticsGroupByMonth(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderMemberReceivedStatistics> selectOrderMemberReceivedStatisticsGroupByWeekOfYear(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
void inserMemberReceivedtList(@Param("orderMembers") List<OrderMemberReceivedStatistics> orderMemberReceivedStatistics);
} }
...@@ -18,7 +18,9 @@ import java.util.List; ...@@ -18,7 +18,9 @@ import java.util.List;
*/ */
public interface OrderReceivedStatisticsMapper extends Mapper<OrderReceivedStatistics>, InsertListMapper<OrderReceivedStatistics> { public interface OrderReceivedStatisticsMapper extends Mapper<OrderReceivedStatistics>, InsertListMapper<OrderReceivedStatistics> {
List<OrderReceivedStatistics> selectOrderReceivedStatisticsList(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO); List<OrderReceivedStatistics> selectOrderReceivedStatisticsDateList(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderReceivedStatistics> selectOrderReceivedStatisticsMonthList(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderReceivedStatistics> selectOrderReceivedStatisticsWeekOfYearList(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<CompanyPerformanceBo> selectCompanyPerformanceWithDay(CompanyPerformanceFindDTO companyPerformanceFindDTO); List<CompanyPerformanceBo> selectCompanyPerformanceWithDay(CompanyPerformanceFindDTO companyPerformanceFindDTO);
......
...@@ -16,5 +16,7 @@ import java.util.List; ...@@ -16,5 +16,7 @@ import java.util.List;
*/ */
public interface OrderRentVehicleReceivedStatisticsMapper extends Mapper<OrderRentVehicleReceivedStatistics>, InsertListMapper<OrderRentVehicleReceivedStatistics> { public interface OrderRentVehicleReceivedStatisticsMapper extends Mapper<OrderRentVehicleReceivedStatistics>, InsertListMapper<OrderRentVehicleReceivedStatistics> {
List<OrderRentVehicleReceivedStatistics> selectOrderRentVehicleReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO); List<OrderRentVehicleReceivedStatistics> selectOrderRentVehicleReceivedStatisticsGroupByDate(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderRentVehicleReceivedStatistics> selectOrderRentVehicleReceivedStatisticsGroupByMonth(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderRentVehicleReceivedStatistics> selectOrderRentVehicleReceivedStatisticsGroupByWeekOfYear(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
} }
...@@ -16,5 +16,7 @@ import java.util.List; ...@@ -16,5 +16,7 @@ import java.util.List;
*/ */
public interface OrderTourReceivedStatisticsMapper extends Mapper<OrderTourReceivedStatistics>, InsertListMapper<OrderTourReceivedStatistics> { public interface OrderTourReceivedStatisticsMapper extends Mapper<OrderTourReceivedStatistics>, InsertListMapper<OrderTourReceivedStatistics> {
List<OrderTourReceivedStatistics> selectOrderTourReceivedStatistics(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO); List<OrderTourReceivedStatistics> selectOrderTourReceivedStatisticsGroupByDate(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderTourReceivedStatistics> selectOrderTourReceivedStatisticsGroupByMonth(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
List<OrderTourReceivedStatistics> selectOrderTourReceivedStatisticsGroupByWeekOfYear(OrderReceivedStatisticsFindDTO orderReceivedStatisticsFindDTO);
} }
...@@ -29,10 +29,12 @@ ...@@ -29,10 +29,12 @@
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderMemberReceivedStatistics" resultMap="orderMemberReceivedStatisticsMap"> <select id="selectOrderMemberReceivedStatisticsGroupByDate" resultType="com.xxfc.platform.order.entity.OrderMemberReceivedStatistics">
select * from `order_member_received_statistics` where 1=1 select `date`,`year`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity`,IFNULL(sum(`toal_common_ammount`),0) as `toalCommonAmmount`,
IFNULL(sum(`total_common_quantity`),0) as `totalCommonQuantity`,IFNULL(sum(`total_gold_amount`),0) as `totalGoldAmount`,IFNULL(sum(`total_gold_quantity`),0),
IFNULL(sum(`total_diamond_ammount`),0) as `totalDiamondAmmount`,IFNULL(sum(`total_diamond_quantity`),0) as `totalDiamondQuantity` from `order_member_received_statistics` where 1=1
<if test="orderState!=null"> <if test="orderState!=null">
and `is_finish`=#{orderState} and `has_pay`=#{orderState}
</if> </if>
<if test="orderOrigin!=null"> <if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin} and `order_origin`=#{orderOrigin}
...@@ -53,9 +55,67 @@ ...@@ -53,9 +55,67 @@
`date` <= #{endDate} `date` <= #{endDate}
]]> ]]>
</if> </if>
group by `year`, `date`
order by null
</select> </select>
<delete id="inserMemberReceivedtList"> <select id="selectOrderMemberReceivedStatisticsGroupByMonth" resultType="com.xxfc.platform.order.entity.OrderMemberReceivedStatistics">
select `year`,`month`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity`,IFNULL(sum(`toal_common_ammount`),0) as `toalCommonAmmount`,
IFNULL(sum(`total_common_quantity`),0) as `totalCommonQuantity`,IFNULL(sum(`total_gold_amount`),0) as `totalGoldAmount`,IFNULL(sum(`total_gold_quantity`),0),
IFNULL(sum(`total_diamond_ammount`),0) as `totalDiamondAmmount`,IFNULL(sum(`total_diamond_quantity`),0) as `totalDiamondQuantity` from `order_member_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `month`
order by null
</select>
</delete> <select id="selectOrderMemberReceivedStatisticsGroupByWeekOfYear" resultType="com.xxfc.platform.order.entity.OrderMemberReceivedStatistics">
select `year`,`week_of_year`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity`,IFNULL(sum(`toal_common_ammount`),0) as `toalCommonAmmount`
,IFNULL(sum(`total_common_quantity`),0) as `totalCommonQuantity`,IFNULL(sum(`total_gold_amount`),0) as `totalGoldAmount`,IFNULL(sum(`total_gold_quantity`),0),
IFNULL(sum(`total_diamond_ammount`),0) as `totalDiamondAmmount`,IFNULL(sum(`total_diamond_quantity`),0) as `totalDiamondQuantity` from `order_member_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `week_of_year`
order by null
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -31,10 +31,10 @@ ...@@ -31,10 +31,10 @@
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderReceivedStatisticsList" resultMap="orderReceivedStatisticsMap"> <select id="selectOrderReceivedStatisticsDateList" resultType="com.xxfc.platform.order.entity.OrderReceivedStatistics">
select * from `order_received_statistics` where 1=1 select `year`,`date`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_received_statistics` where 1=1
<if test="orderState!=null"> <if test="orderState!=null">
and `is_finish`=#{orderState} and `has_pay`=#{orderState}
</if> </if>
<if test="orderOrigin!=null"> <if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin} and `order_origin`=#{orderOrigin}
...@@ -56,6 +56,66 @@ ...@@ -56,6 +56,66 @@
`date` <= #{endDate} `date` <= #{endDate}
]]> ]]>
</if> </if>
group by `year`, `date`
order by null
</select>
<select id="selectOrderReceivedStatisticsMonthList" resultType="com.xxfc.platform.order.entity.OrderReceivedStatistics">
select `year`,`month`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `month`
order by null
</select>
<select id="selectOrderReceivedStatisticsWeekOfYearList" resultType="com.xxfc.platform.order.entity.OrderReceivedStatistics">
select `year`,`week_of_year`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `week_of_year`
order by null
</select> </select>
<!--按日统计--> <!--按日统计-->
......
...@@ -18,10 +18,10 @@ ...@@ -18,10 +18,10 @@
<result property="companyId" column="company_id"/> <result property="companyId" column="company_id"/>
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderRentVehicleReceivedStatistics" resultMap="orderRentVehicleReceivedStatisticsMap"> <select id="selectOrderRentVehicleReceivedStatisticsGroupByDate" resultType="com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics">
select * from `order_rent_vehicle_received_statistics` where 1=1 select `year`,`date`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_rent_vehicle_received_statistics` where 1=1
<if test="orderState!=null"> <if test="orderState!=null">
and `is_finish`=#{orderState} and `has_pay`=#{orderState}
</if> </if>
<if test="orderOrigin!=null"> <if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin} and `order_origin`=#{orderOrigin}
...@@ -42,6 +42,63 @@ ...@@ -42,6 +42,63 @@
`date` <= #{endDate} `date` <= #{endDate}
]]> ]]>
</if> </if>
group by `year`, `date`
order by null
</select> </select>
<select id="selectOrderRentVehicleReceivedStatisticsGroupByMonth" resultType="com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics">
select `year`,`month`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_rent_vehicle_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `month`
order by null
</select>
<select id="selectOrderRentVehicleReceivedStatisticsGroupByWeekOfYear" resultType="com.xxfc.platform.order.entity.OrderRentVehicleReceivedStatistics">
select `year`,`week_of_year`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_rent_vehicle_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `week_of_year`
order by null
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
</resultMap> </resultMap>
<select id="selectOrderTourReceivedStatistics" resultMap="orderTourReceivedStatisticsMap"> <select id="selectOrderTourReceivedStatisticsGroupByDate" resultType="com.xxfc.platform.order.entity.OrderTourReceivedStatistics">
select * from `order_tour_received_statistics` where 1=1 select `year`,`date`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_tour_received_statistics` where 1=1
<if test="orderState!=null"> <if test="orderState!=null">
and `is_finish`=#{orderState} and `has_pay`=#{orderState}
</if> </if>
<if test="orderOrigin!=null"> <if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin} and `order_origin`=#{orderOrigin}
...@@ -47,6 +47,63 @@ ...@@ -47,6 +47,63 @@
`date` <= #{endDate} `date` <= #{endDate}
]]> ]]>
</if> </if>
group by `year`, `date`
order by null
</select> </select>
<select id="selectOrderTourReceivedStatisticsGroupByMonth" resultType="com.xxfc.platform.order.entity.OrderTourReceivedStatistics">
select `year`,`month`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_tour_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `month`
order by null
</select>
<select id="selectOrderTourReceivedStatisticsGroupByWeekOfYear" resultType="com.xxfc.platform.order.entity.OrderTourReceivedStatistics">
select `year`,`week_of_year`,IFNULL(sum(`total_amount`),0) as `totalAmount`,IFNULL(sum(`total_quantity`),0) as `totalQuantity` from `order_tour_received_statistics` where 1=1
<if test="orderState!=null">
and `has_pay`=#{orderState}
</if>
<if test="orderOrigin!=null">
and `order_origin`=#{orderOrigin}
</if>
<if test="payWay!=null">
and `pay_way`=#{payWay}
</if>
<if test="startDate!=null and endDate!=null">
and `date` between #{startDate} and #{endDate}
</if>
<if test="startDate!=null and endDate==null">
and <![CDATA[
`date` >= #{startDate}
]]>
</if>
<if test="startDate==null and endDate!=null">
and <![CDATA[
`date` <= #{endDate}
]]>
</if>
group by `year`, `week_of_year`
order by null
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -62,19 +62,8 @@ public class VehicleModelHolidayPriceBiz extends BaseBiz<VehicleModelHolidayPric ...@@ -62,19 +62,8 @@ public class VehicleModelHolidayPriceBiz extends BaseBiz<VehicleModelHolidayPric
} }
//编辑 //编辑
if (Objects.nonNull(vehicleModelHolidayPriceSaveDTO.getId())) { if (Objects.nonNull(vehicleModelHolidayPriceSaveDTO.getId())) {
Example example = new Example(VehicleModelHolidayPrice.class); deleteById(vehicleModelHolidayPriceSaveDTO.getId());
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("festivalId", vehicleModelHolidayPriceSaveDTO.getId());
for (VehicleModelHolidayPrice modelHolidayPrice : vehicleModelHolidayPriceList) {
modelHolidayPrice.setUpdUserId(userId);
modelHolidayPrice.setUpdTime(new Date());
mapper.updateByExampleSelective(modelHolidayPrice, example);
} }
Festival festival = new Festival();
festival.setName(vehicleModelHolidayPriceSaveDTO.getFestival());
festival.setId(vehicleModelHolidayPriceSaveDTO.getId());
festivalBiz.add(festival);
} else {
Festival festival = new Festival(); Festival festival = new Festival();
festival.setName(vehicleModelHolidayPriceSaveDTO.getFestival()); festival.setName(vehicleModelHolidayPriceSaveDTO.getFestival());
festivalBiz.add(festival); festivalBiz.add(festival);
...@@ -85,7 +74,6 @@ public class VehicleModelHolidayPriceBiz extends BaseBiz<VehicleModelHolidayPric ...@@ -85,7 +74,6 @@ public class VehicleModelHolidayPriceBiz extends BaseBiz<VehicleModelHolidayPric
mapper.insertSelective(modelHolidayPrice); mapper.insertSelective(modelHolidayPrice);
} }
} }
}
/** /**
* @param multiple 倍数 * @param multiple 倍数
......
package com.xxfc.platform.vehicle.rest; 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.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
...@@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map; import java.util.Map;
...@@ -174,5 +176,17 @@ public class VehicleDepartureController { ...@@ -174,5 +176,17 @@ public class VehicleDepartureController {
return ObjectRestResponse.succ(reserveType); 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