Commit 2111c315 authored by hezhen's avatar hezhen

123

parent a71f3752
......@@ -2,10 +2,7 @@ package com.github.wxiaoqi.security.admin.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;
/**
* 用户登录信息表
......@@ -46,4 +43,8 @@ public class AppUserLogin {
@Column(name = "last_time")
private Long lastTime;
@Transient
private String realname;
}
......@@ -3,10 +3,12 @@ package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
......@@ -42,12 +44,6 @@ public class BaseUserMemberLevel implements Serializable {
@ApiModelProperty(value = "等级")
private Integer level;
@Column(name = "extract")
@ApiModelProperty(value = "提成比例")
private Integer extract;
//描述
@Column(name = "describes")
@ApiModelProperty(value = "描述")
......@@ -68,21 +64,6 @@ public class BaseUserMemberLevel implements Serializable {
@ApiModelProperty(value = "折扣")
private Integer discount;
@Column(name = "share_amount")
@ApiModelProperty(value = "分红金额")
private BigDecimal shareAmount;
@Column(name = "is_share")
@ApiModelProperty(value = "是否分红:0-否;1-是")
private Integer isShare;
@Column(name = "is_show")
@ApiModelProperty(value = "是否显示:0-不显示;1-显示")
private Integer isShow;
//是否删除;0-正常;1-删除
@Column(name = "isdel")
@ApiModelProperty(value = "是否删除;0-正常;1-删除")
......@@ -112,8 +93,4 @@ public class BaseUserMemberLevel implements Serializable {
@ApiModelProperty(value = "会员商品图片")
private String itemImg;
@Transient
private BigDecimal showShareAmount;
}
......@@ -264,7 +264,7 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
public Map<Integer, AppUserLogin> findUserIdAndUserLoginMapByMemberIds(List<Integer> memberIds) {
Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = new HashMap<>();
List<AppUserLogin> appUserLogins = mapper.selectByIdList(memberIds);
List<AppUserLogin> appUserLogins = mapper.selectByIds(memberIds);
if (CollectionUtils.isNotEmpty(appUserLogins)) {
userIdAndAppUserLoginMap = appUserLogins.stream().collect(Collectors.toMap(AppUserLogin::getId, Function.identity()));
}
......
......@@ -26,6 +26,8 @@ public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdList
List<AppUserLogin> selectbyPhones(@Param("phones") List<String> phones);
List<AppUserLogin> selectByIds(@Param("userIds") List<Integer> userIds);
int bindOpenId(AppUserLogin appUserLogin);
......@@ -39,4 +41,6 @@ public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdList
List<UserBo> selectByUserIds(@Param("userIds") List<Integer> uids);
AppUserManageVo selectByParentId(@Param("parentId") Integer parentId);
}
\ No newline at end of file
......@@ -9,6 +9,16 @@
</foreach>
</select>
<select id="selectByIds" resultType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
select l.*,IFNULL(d.realname,nickname) as realname
from app_user_login l
left join app_user_detail d on l.id=d.userid
where l.id in
<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId}
</foreach>
</select>
<update id="bindOpenId" parameterType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
UPDATE app_user_login SET wx_openid=#{wxOpenid},unionid=#{unionid},openid=#{openid} where id=#{id}
</update>
......@@ -17,7 +27,7 @@
SELECT `id` FROM `app_user_login` WHERE `isdel`=0;
</select>
<select id="getUserByUsernameAndRealName" resultType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
select l.* from app_user_login l left join app_user_detail d on l.id=d.userid where 1=1
select l.*,IFNULL(d.realname,nickname) as realname from app_user_login l left join app_user_detail d on l.id=d.userid where 1=1
<if test="username!=null ">
and l.username like concat('%',#{username},'%')
......
package com.xxfc.platform.order.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/30 14:48
*/
@Data
public class ActivityOrderFindDTO extends PageParam {
private String orderNo;
private String name;
private String phone;
private Long startPayTime;
private Long endPayTime;
private String leaderPhone;
private List<Integer> userIds;
private List<Integer> parentUserIds;
private Integer status;
private Integer type;
private Integer activityId;
}
package com.xxfc.platform.order.pojo.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OrderActivityInfoStaticVo {
private BigDecimal totalAmount;
private BigDecimal totalComissonAmount;
}
package com.xxfc.platform.order.pojo.vo;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderActivityDetail;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class OrderActivityInfoVo extends BaseOrder {
private Integer activityId;
private String activityInfo;
private String rentFreeNum;
private Integer parentUserId;
private BigDecimal parentComisson;
private String parentPhone;
private String parentName;
private String phone;
private String realName;
}
package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.entity.OrderActivityDetail;;
import com.xxfc.platform.order.mapper.OrderActivityDetailMapper;
import com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO;
import com.xxfc.platform.order.pojo.vo.OrderActivityInfoStaticVo;
import com.xxfc.platform.order.pojo.vo.OrderActivityInfoVo;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Slf4j
@Api("活动订单详情")
public class OrderActivityInfoDetailBiz extends BaseBiz<OrderActivityDetailMapper, OrderActivityDetail> {
@Autowired
UserFeign userFeign;
public OrderActivityDetail getOne(Integer orderId) {
Example example = new Example(OrderActivityDetail.class);
example.createCriteria().andEqualTo("orderId", orderId);
return mapper.selectOneByExample(example);
}
public List<OrderActivityInfoVo> getList(ActivityOrderFindDTO activityOrderFindDTO){
return mapper.selectList(activityOrderFindDTO);
}
public PageDataVO<OrderActivityInfoVo> selectList(ActivityOrderFindDTO activityOrderFindDTO) {
PageDataVO<OrderActivityInfoVo> dataVO = new PageDataVO<>();
dataVO.setPageNum(activityOrderFindDTO.getPage());
dataVO.setPageSize(activityOrderFindDTO.getLimit());
dataVO.setData(Collections.EMPTY_LIST);
List<AppUserLogin> parentUserLogins = null;
if (StringUtils.isNotEmpty(activityOrderFindDTO.getLeaderPhone())) {
parentUserLogins = userFeign.getOne(activityOrderFindDTO.getLeaderPhone(),null);
if (parentUserLogins == null || parentUserLogins.size() == 0 )
return dataVO;
List<Integer> userIds = parentUserLogins.stream().map(AppUserLogin::getId).distinct().collect(Collectors.toList());
activityOrderFindDTO.setParentUserIds(userIds);
}
List<AppUserLogin> userLogins = null;
if (StringUtils.isNotEmpty(activityOrderFindDTO.getName()) || StringUtils.isNotEmpty(activityOrderFindDTO.getPhone())) {
userLogins = userFeign.getOne(activityOrderFindDTO.getPhone(),activityOrderFindDTO.getName());
if (userLogins == null || userLogins.size() == 0 )
return dataVO;
List<Integer> userIds = userLogins.stream().map(AppUserLogin::getId).distinct().collect(Collectors.toList());
activityOrderFindDTO.setUserIds(userIds);
}
dataVO = PageDataVO.pageInfo(activityOrderFindDTO.getPage(), activityOrderFindDTO.getLimit(), () -> getList(activityOrderFindDTO));
List<OrderActivityInfoVo> data = dataVO.getData();
if (CollectionUtils.isEmpty(data)) {
return dataVO;
}
Map<Integer, AppUserLogin> parentUserLoginMap = new HashMap<>();
if (parentUserLogins == null ) {
List<Integer> userIds = data.stream().map(OrderActivityInfoVo::getParentUserId).distinct().collect(Collectors.toList());
parentUserLoginMap = userFeign.findAppUsersByUserIds(userIds);
}else {
for (AppUserLogin appUserLogin : parentUserLogins){
parentUserLoginMap.put(appUserLogin.getId(),appUserLogin);
}
}
Map<Integer, AppUserLogin> userLoginMap = new HashMap<>();
if (userLogins == null ) {
List<Integer> userIds = data.stream().map(OrderActivityInfoVo::getUserId).distinct().collect(Collectors.toList());
userLoginMap = userFeign.findAppUsersByUserIds(userIds);
}else {
for (AppUserLogin appUserLogin : userLogins){
userLoginMap.put(appUserLogin.getId(),appUserLogin);
}
}
for (OrderActivityInfoVo orderActivityInfoVo : data) {
if (orderActivityInfoVo.getParentUserId() != null ){
AppUserLogin userLogin = parentUserLoginMap.get(orderActivityInfoVo.getParentUserId());
if (userLogin != null ){
orderActivityInfoVo.setParentPhone(userLogin.getUsername());
orderActivityInfoVo.setParentName(userLogin.getRealname());
}
}
AppUserLogin userLogin = userLoginMap.get(orderActivityInfoVo.getUserId());
if (userLogin != null ){
orderActivityInfoVo.setPhone(userLogin.getUsername());
orderActivityInfoVo.setRealName(userLogin.getRealname());
}
}
return dataVO;
}
public OrderActivityInfoStaticVo selectListStatic(ActivityOrderFindDTO activityOrderFindDTO) {
OrderActivityInfoStaticVo orderActivityInfoStaticVo = new OrderActivityInfoStaticVo();
List<AppUserLogin> parentUserLogins = null;
if (StringUtils.isNotEmpty(activityOrderFindDTO.getLeaderPhone())) {
parentUserLogins = userFeign.getOne(activityOrderFindDTO.getLeaderPhone(),null);
if (parentUserLogins == null || parentUserLogins.size() == 0 )
return orderActivityInfoStaticVo;
List<Integer> userIds = parentUserLogins.stream().map(AppUserLogin::getId).distinct().collect(Collectors.toList());
activityOrderFindDTO.setParentUserIds(userIds);
}
List<AppUserLogin> userLogins = null;
if (StringUtils.isNotEmpty(activityOrderFindDTO.getName()) || StringUtils.isNotEmpty(activityOrderFindDTO.getPhone())) {
userLogins = userFeign.getOne(activityOrderFindDTO.getPhone(),activityOrderFindDTO.getName());
if (userLogins == null || userLogins.size() == 0 )
return orderActivityInfoStaticVo;
List<Integer> userIds = userLogins.stream().map(AppUserLogin::getId).distinct().collect(Collectors.toList());
activityOrderFindDTO.setUserIds(userIds);
}
orderActivityInfoStaticVo = getListStatic(activityOrderFindDTO);
return orderActivityInfoStaticVo;
}
public OrderActivityInfoStaticVo getListStatic(ActivityOrderFindDTO activityOrderFindDTO){
return mapper.selectListStatic(activityOrderFindDTO);
}
}
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderActivityDetail;
import com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO;
import com.xxfc.platform.order.pojo.vo.OrderActivityInfoStaticVo;
import com.xxfc.platform.order.pojo.vo.OrderActivityInfoVo;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
*
*
......@@ -12,4 +17,9 @@ import tk.mybatis.mapper.common.Mapper;
*/
public interface OrderActivityDetailMapper extends Mapper<OrderActivityDetail> {
List<OrderActivityInfoVo> selectList(ActivityOrderFindDTO activityOrderFindDTO);
OrderActivityInfoStaticVo selectListStatic(ActivityOrderFindDTO activityOrderFindDTO);
}
......@@ -6,20 +6,20 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderActivityInfoDetailBiz;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderActivityDetail;
import com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO;
import com.xxfc.platform.order.pojo.order.ActivityInfoBO;
import com.xxfc.platform.order.service.OrderActivityInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
@RestController
@RequestMapping("tainde/orderActivity")
@Api(value = "活动订单", tags = {"活动订单"})
@IgnoreClientToken
public class OrderActivityInfoController extends BaseController<OrderActivityInfoDetailBiz, OrderActivityDetail> {
@Autowired
......@@ -29,12 +29,24 @@ public class OrderActivityInfoController extends BaseController<OrderActivityInf
UserFeign userFeign;
@RequestMapping(value = "add", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "确认订单")
@IgnoreClientToken
public ObjectRestResponse<BaseOrder> add(@RequestBody ActivityInfoBO bo) {
bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData());
//查询优惠券
activityInfoService.createOrder(bo);
return ObjectRestResponse.succ(bo.getOrder());
}
@GetMapping(value = "selectList")
public ObjectRestResponse selectList(ActivityOrderFindDTO activityOrderFindDTO) {
activityOrderFindDTO.setType(OrderTypeEnum.ACTIVITY.getCode());
return ObjectRestResponse.succ(baseBiz.selectList(activityOrderFindDTO));
}
@GetMapping(value = "selectListStatic")
public ObjectRestResponse selectListStatic(ActivityOrderFindDTO activityOrderFindDTO) {
activityOrderFindDTO.setType(OrderTypeEnum.ACTIVITY.getCode());
return ObjectRestResponse.succ(baseBiz.selectListStatic(activityOrderFindDTO));
}
}
\ No newline at end of file
<?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.xxfc.platform.order.mapper.OrderActivityDetailMapper" >
<select id="selectListStatic" resultType="com.xxfc.platform.order.pojo.vo.OrderActivityInfoStaticVo" parameterType="com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO">
select
IFNULL(SUM(bo.real_amount),0) as totalAmount,
IFNULL(SUM(IF(oad.parent_user_id > 0 ,oad.parent_comisson,0)),0) as totalComissonAmount
from order_activity_detail oad
LEFT JOIN base_order bo on bo.id = oad.order_id
<where>
<if test="orderNo != null and orderNo != ''">
and bo.no like concat('%', #{orderNo}, '%')
</if>
<if test="activityId != null and activityId > 0">
and oad.activity_id = #{activityId}
</if>
<if test="userIds != null and userIds.size() > 0">
and bo.`user_id` IN
<foreach collection="userIds" item="userId" separator="," open="(" close=")">
#{userId}
</foreach>
</if>
<if test="parentUserIds != null and parentUserIds.size() > 0">
and oad.`parent_user_id` IN
<foreach collection="parentUserIds" item="userId" separator="," open="(" close=")">
#{userId}
</foreach>
</if>
<if test="type != null and type > 0">
and bo.type = #{type}
</if>
<if test="startPayTime != null and endPayTime != null">
and bo.pay_time between #{startPayTime} and #{endPayTime}
</if>
<if test="status != null and status > 0">
and bo.status = #{status}
</if>
</where>
order By bo.crt_time DESC
</select>
<select id="selectList" resultType="com.xxfc.platform.order.pojo.vo.OrderActivityInfoVo" parameterType="com.xxfc.platform.order.pojo.dto.ActivityOrderFindDTO">
select
bo.*,
oad.activity_id as activityId,
oad.activity_info as activityInfo,
oad.rent_free_num as rentFreeNum,
oad.parent_user_id as parentUserId,
IF(oad.parent_user_id > 0 ,oad.parent_comisson,0) as parentComisson
from order_activity_detail oad
LEFT JOIN base_order bo on bo.id = oad.order_id
<where>
<if test="orderNo != null and orderNo != ''">
and bo.no like concat('%', #{orderNo}, '%')
</if>
<if test="activityId != null and activityId > 0">
and oad.activity_id = #{activityId}
</if>
<if test="userIds != null and userIds.size() > 0">
and bo.`user_id` IN
<foreach collection="userIds" item="userId" separator="," open="(" close=")">
#{userId}
</foreach>
</if>
<if test="parentUserIds != null and parentUserIds.size() > 0">
and oad.`parent_user_id` IN
<foreach collection="parentUserIds" item="userId" separator="," open="(" close=")">
#{userId}
</foreach>
</if>
<if test="type != null and type > 0">
and bo.type = #{type}
</if>
<if test="startPayTime != null and endPayTime != null">
and bo.pay_time between #{startPayTime} and #{endPayTime}
</if>
<if test="status != null and status > 0">
and bo.status = #{status}
</if>
</where>
</select>
</mapper>
\ No newline at end of file
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