| | |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.google.common.collect.Lists; |
| | | import com.sinata.common.enums.EnumMemberGrade; |
| | | import com.sinata.common.enums.mall.EnumMallGoodsGroupType; |
| | | import com.sinata.common.enums.mall.EnumMallOrderState; |
| | | import com.sinata.common.user.VoUserGradeParent; |
| | | import com.sinata.rest.common.ApiUtils; |
| | | import com.sinata.rest.core.juhe.TelecomUtil; |
| | | import com.sinata.rest.core.util.ToolUtil; |
| | | import com.sinata.rest.modular.mall.controller.body.BodyApplySaleUser; |
| | | import com.sinata.rest.modular.mall.controller.body.BodyUserAuthentication; |
| | | import com.sinata.rest.modular.mall.controller.vo.*; |
| | | import com.sinata.rest.modular.mall.model.MallGoods; |
| | | import com.sinata.rest.modular.mall.model.MallOrder; |
| | | import com.sinata.rest.modular.mall.model.MallVipEquity; |
| | | import com.sinata.rest.modular.mall.model.MyUserSubstanceCoupon; |
| | | import com.sinata.rest.modular.mall.service.IMallGoodsService; |
| | | import com.sinata.rest.modular.mall.service.IMallOrderService; |
| | | import com.sinata.rest.modular.mall.service.IMallVipEquityService; |
| | | import com.sinata.rest.modular.member.model.MemUser; |
| | |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import java.util.Optional; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | @RestController |
| | | @RequestMapping("/mall/goodsGroup") |
| | | @Api(tags = "商城-套餐商品") |
| | | @SuppressWarnings("unchecked") |
| | | public class MallGoodsGroupController { |
| | | |
| | | @Autowired |
| | |
| | | @Autowired |
| | | private TelecomUtil telecomUtil; |
| | | |
| | | @Autowired |
| | | private IMallGoodsService mallGoodsService; |
| | | @GetMapping(value = "/purchase-auth") |
| | | @ApiOperation(value = "营销员购买套餐权限校验") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "userId", value = "用户ID", defaultValue = "1", dataType = "Int", paramType = "query", required = true), |
| | | @ApiImplicitParam(name = "shareUserId", value = "分享套餐用户ID", defaultValue = "1", dataType = "Int", paramType = "query", required = true) |
| | | }) |
| | | public ApiUtils purchaseAuth(@RequestParam(value = "userId") Integer userId,@RequestParam("shareUserId") Integer shareUserId) { |
| | | MemUser user = memUserService.getById(userId); |
| | | MemUser shareUser = memUserService.getById(shareUserId); |
| | | Integer isLeaveOffice = user.getIsLeaveOffice(); |
| | | Integer memberGradeId = user.getMemberGradeId(); |
| | | if (ToolUtil.isNotEmpty(user) && ToolUtil.isNotEmpty(shareUser)) { |
| | | // 营销员不可购买营销员分享的套餐 |
| | | if (isLeaveOffice == 0 && memberGradeId >= EnumMemberGrade.G_3.index |
| | | && shareUser.getIsLeaveOffice() == 0 && shareUser.getMemberGradeId()>= EnumMemberGrade.G_3.index) { |
| | | if (!userId.equals(shareUserId)) { |
| | | return ApiUtils.returnNG("营销员只能购买自己分享的套餐!"); |
| | | } |
| | | } |
| | | } |
| | | return ApiUtils.returnOK(); |
| | | } |
| | | @GetMapping(value = "/myShare") |
| | | @ApiOperation(value = "我的推广") |
| | | @ApiImplicitParams({ |
| | |
| | | .ne(MallOrder::getOrderType, EnumMallGoodsGroupType.GOODS.index) |
| | | .eq(MallOrder::getUserId, userId) |
| | | // 订单材料受益人,0未申请入司 |
| | | .eq(MallOrder::getUseUserId, 0) |
| | | // .eq(MallOrder::getUseUserId, 0) |
| | | .in(MallOrder::getState, Arrays.asList( |
| | | EnumMallOrderState.WAIT_CHECK.index, |
| | | EnumMallOrderState.USE.index, |
| | | EnumMallOrderState.SUCCESS.index |
| | | )) |
| | | )).orderByAsc(MallOrder::getUseUserId) |
| | | ); |
| | | |
| | | // 权益列表 |
| | | List<MallVipEquity> vipEquityList = mallVipEquityService.list(); |
| | | |
| | | List<VoMallOrderEquity> voList = BeanUtil.copyToList(list, VoMallOrderEquity.class); |
| | | voList.stream().map(o -> { |
| | | List<String> contentList = new ArrayList(); |
| | | for (MallVipEquity eq : vipEquityList) { |
| | | if (o.getOrderType().equals(eq.getGroupType())) { |
| | | contentList.add(eq.getContent()); |
| | | voList.stream().map(o -> toVoMallOrderEquity(o, vipEquityList)).collect(Collectors.toList()); |
| | | for (VoMallOrderEquity voMallOrderEquity : voList) { |
| | | for (MallOrder mallOrder : list) { |
| | | if (voMallOrderEquity.getOrderNo().equals(mallOrder.getOrderNo())) { |
| | | voMallOrderEquity.setPriceSale(mallOrder.getPayMoney()); |
| | | } |
| | | } |
| | | o.setEquityContent(contentList); |
| | | |
| | | // 销售人员ID |
| | | MemUser saleUser = memUserService.getById(o.getSaleUserId()); |
| | | if (saleUser != null) { |
| | | o.setSaleUserNickName(saleUser.getNickName()); |
| | | o.setSaleUserRealName(saleUser.getRealName()); |
| | | } |
| | | |
| | | return o; |
| | | }).collect(Collectors.toList()); |
| | | |
| | | } |
| | | return ApiUtils.returnOK(voList); |
| | | } |
| | | private VoMallOrderEquity toVoMallOrderEquity(VoMallOrderEquity o,List<MallVipEquity> vipEquityList) { |
| | | List<String> contentList = new ArrayList(); |
| | | for (MallVipEquity eq : vipEquityList) { |
| | | if (o.getOrderType().equals(eq.getGroupType())) { |
| | | contentList.add(eq.getContent()); |
| | | } |
| | | } |
| | | o.setEquityContent(contentList); |
| | | |
| | | // 销售人员ID |
| | | MemUser saleUser = memUserService.getById(o.getSaleUserId()); |
| | | if (saleUser != null) { |
| | | o.setSaleUserNickName(saleUser.getNickName()); |
| | | o.setSaleUserRealName(saleUser.getRealName()); |
| | | } |
| | | MallGoods goods = mallGoodsService.getById(o.getGoodsId()); |
| | | Optional.ofNullable(goods).ifPresent(item ->{ |
| | | o.setGoodsName(item.getGoodsName()); |
| | | o.setGoodsImage(item.getGoodsImage()); |
| | | }); |
| | | return o; |
| | | } |
| | | @PostMapping(value = "/applySaleUser") |
| | | @ApiOperation(value = "推荐他人入司") |
| | | public ApiUtils applySaleUser(@RequestBody BodyApplySaleUser body) { |