package com.dsh.guns.modular.system.controller.code;
|
|
import com.dsh.course.feignClient.account.AppUserClient;
|
import com.dsh.course.feignClient.account.model.QueryByNamePhone;
|
import com.dsh.course.feignClient.account.model.TAppUser;
|
import com.dsh.course.feignClient.activity.CouponClient;
|
import com.dsh.guns.config.UserExt;
|
import com.dsh.guns.core.base.controller.BaseController;
|
import com.dsh.guns.modular.system.model.TOperator;
|
import com.dsh.guns.modular.system.model.TSite;
|
import com.dsh.guns.modular.system.model.TStore;
|
import com.dsh.guns.modular.system.model.Vip;
|
import com.dsh.guns.modular.system.model.dto.VipDetailDto;
|
import com.dsh.guns.modular.system.model.vo.VipDetailVO;
|
import com.dsh.guns.modular.system.service.IStoreService;
|
import com.dsh.guns.modular.system.service.ITSiteService;
|
import com.dsh.guns.modular.system.service.IVipService;
|
import com.dsh.guns.modular.system.service.TOperatorService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2023/8/1 14:02
|
*/
|
@Controller
|
@RequestMapping("/vipPayment")
|
public class TVipPaymentController extends BaseController {
|
|
@Autowired
|
private IVipService vipService;
|
@Autowired
|
private CouponClient couponClient;
|
@Autowired
|
private IStoreService storeService;
|
@Autowired
|
private AppUserClient appUserClient;
|
@Autowired
|
private ITSiteService siteService;
|
@Autowired
|
private TOperatorService operatorService;
|
private String PREFIX = "/system/vip/";
|
|
|
/**
|
* 跳转到优惠券管理首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
Integer objectType = UserExt.getUser().getObjectType();
|
Integer objectId = UserExt.getUser().getObjectId();
|
if (objectType!=1){
|
List<TOperator> list = operatorService.lambdaQuery().eq(TOperator::getId, objectId).list();
|
model.addAttribute("list",list);
|
}else{
|
List<TOperator> list = operatorService.lambdaQuery().ne(TOperator::getState,3).list();
|
model.addAttribute("list",list);
|
}
|
model.addAttribute("objectType",objectType);
|
return PREFIX + "vip_detail.html";
|
}
|
|
/**
|
* 获取 会员权益使用明细列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public List<VipDetailVO> list(String vipName, Integer type
|
, String phone, String storeName
|
, Integer operatorId, Integer status
|
, String time
|
, String useTime) {
|
Integer objectType = UserExt.getUser().getObjectType();
|
Integer objectId = UserExt.getUser().getObjectId();
|
VipDetailDto vipDetailDto = new VipDetailDto();
|
vipDetailDto.setOperatorId(operatorId);
|
vipDetailDto.setStatus(status);
|
vipDetailDto.setType(type);
|
vipDetailDto.setObjectType(objectType);
|
if (objectType == 2){
|
vipDetailDto.setStatus(2);
|
}
|
|
if (StringUtils.hasLength(vipName)){
|
List<Integer> vipIds = vipService.lambdaQuery().like(Vip::getVipName, vipName)
|
.list().stream().map(Vip::getId).collect(Collectors.toList());
|
if (vipIds.isEmpty()){
|
vipIds.add(-1);
|
}
|
vipDetailDto.setVipIds(vipIds);
|
}
|
if (StringUtils.hasLength(phone)){
|
QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
|
queryByNamePhone.setPhone( phone);
|
List<Integer> userIds = appUserClient.queryByNamePhone(queryByNamePhone).stream().map(TAppUser::getId)
|
.collect(Collectors.toList());
|
if (userIds.isEmpty()){
|
userIds.add(-1);
|
}
|
vipDetailDto.setUserIds(userIds);
|
|
}
|
if (StringUtils.hasLength(storeName)){
|
List<Integer> storeIds = storeService.lambdaQuery().like(TStore::getName, storeName)
|
.eq(objectType!=1,TStore::getOperatorId,objectId ).list()
|
.stream().map(TStore::getId).collect(Collectors.toList());
|
if (storeIds.isEmpty()){
|
storeIds.add(-1);
|
}
|
vipDetailDto.setStoreIds(storeIds);
|
}
|
|
if (StringUtils.hasLength(time)){
|
String stareTime = null;
|
String endTime = null;
|
stareTime = time.split(" - ")[0] + " 00:00:00";
|
endTime = time.split(" - ")[1] + " 23:59:59";
|
vipDetailDto.setStartTime(stareTime);
|
vipDetailDto.setEndTime(endTime);
|
}
|
if (StringUtils.hasLength(useTime)){
|
String stareTime = null;
|
String endTime = null;
|
stareTime = time.split(" - ")[0] + " 00:00:00";
|
endTime = time.split(" - ")[1] + " 23:59:59";
|
vipDetailDto.setUseStartTime(stareTime);
|
vipDetailDto.setUseEndTime(endTime);
|
}
|
List<VipDetailVO> res = couponClient.vipDetail(vipDetailDto);
|
QueryByNamePhone queryByNamePhone = new QueryByNamePhone();
|
List<TAppUser> tAppUsers = appUserClient.queryByNamePhone(queryByNamePhone);
|
List<Vip> vipList = vipService.list();
|
List<TStore> storeList = storeService.list();
|
List<TSite> siteList = siteService.list();
|
List<TOperator> operatorList = operatorService.list();
|
for (VipDetailVO re : res) {
|
TAppUser tAppUser = tAppUsers.stream().filter(e -> e.getId().equals(re.getAppUserId())).findFirst().orElse(null);
|
if (tAppUser!=null){
|
re.setAppUserName(tAppUser.getName());
|
re.setAppUserPhone(tAppUser.getPhone());
|
}
|
Vip vip = vipList.stream().filter(e -> e.getId().equals(re.getVipId())).findFirst().orElse(null);
|
if (vip!=null){
|
re.setVipName(vip.getVipName());
|
}
|
if (re.getUseSiteId()!=null){
|
TSite site = siteList.stream().filter(e -> e.getId().equals(re.getUseSiteId())).findFirst().orElse(null);
|
if (site!=null){
|
re.setGoodsName(site.getName());
|
}
|
}
|
if (re.getUseStoreId()!=null){
|
TStore store = storeList.stream().filter(e -> e.getId().equals(re.getUseStoreId())).findFirst().orElse(null);
|
if (store!=null){
|
re.setStoreName(store.getName());
|
}
|
}
|
if (re.getOperatorId()!=null){
|
if (re.getOperatorId()==0){
|
re.setOperatorName("总平台");
|
}else{
|
TOperator operator = operatorList.stream().filter(e -> e.getId().equals(re.getOperatorId())).findFirst().orElse(null);
|
if (operator!=null){
|
re.setOperatorName(operator.getName());
|
}
|
}
|
|
}
|
}
|
return res;
|
}
|
|
|
}
|