From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 08 五月 2025 09:21:57 +0800 Subject: [PATCH] bug修改 --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java | 520 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 484 insertions(+), 36 deletions(-) diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java index df6e422..cb753c5 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java @@ -9,34 +9,39 @@ import com.dsh.course.feignClient.account.model.CityManager; import com.dsh.course.feignClient.account.model.QueryByNamePhone; import com.dsh.course.feignClient.account.model.TAppUser; +import com.dsh.course.feignClient.account.model.TCityManager; import com.dsh.course.feignClient.activity.CouponClient; import com.dsh.course.feignClient.activity.PointMercharsClient; import com.dsh.course.feignClient.activity.model.*; +import com.dsh.course.feignClient.course.CourseClient; +import com.dsh.course.feignClient.course.CoursePackageClient; +import com.dsh.course.feignClient.course.model.CoursePackagePaymentConfig; +import com.dsh.course.feignClient.course.model.TCoursePackage; import com.dsh.guns.config.UserExt; +import com.dsh.guns.core.base.controller.BaseController; +import com.dsh.guns.core.base.tips.ErrorTip; import com.dsh.guns.core.base.tips.SuccessTip; import com.dsh.guns.core.common.constant.factory.PageFactory; import com.dsh.guns.core.util.ToolUtil; -import com.dsh.guns.modular.system.model.CouponDataVo; -import com.dsh.guns.modular.system.model.Region; -import com.dsh.guns.modular.system.model.TCity; -import com.dsh.guns.modular.system.model.TStore; +import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.IRegionService; import com.dsh.guns.modular.system.service.IStoreService; +import com.dsh.guns.modular.system.service.ITSiteService; import com.dsh.guns.modular.system.util.OBSUploadUtil; 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.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.IOException; +import java.math.BigDecimal; +import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @@ -46,16 +51,18 @@ @Controller @RequestMapping("/tGoods") -public class TGoodsController { +public class TGoodsController extends BaseController { private String PREFIX = "/system/tGoods/"; + private String PREFIX1 = "/system/tGoodsAudit/"; @Resource private IRegionService regiService; - + @Autowired + private ITSiteService siteService; @Resource private IStoreService storeService; @@ -70,6 +77,11 @@ @Autowired private ICityService cityService; + @Autowired + private CourseClient courseClient; + @Autowired + private CoursePackageClient coursePackageClient; + @Resource private PointMercharsClient pointMercharsClient; @@ -83,6 +95,11 @@ return PREFIX + "TGoods.html"; } + @RequestMapping("/audit") + public String audit(Model model) { + + return PREFIX1 + "TGoodsAudit.html"; + } /** * 跳转到添加 @@ -94,20 +111,90 @@ model.addAttribute("userType",objectType); List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); model.addAttribute("list",list); + List<Map<String,Object>> listOne = courseClient.getPageageType(); + model.addAttribute("courseType",listOne); + + return PREFIX + "TGoods_add.html"; } + /** + * 跳转到添加 + */ + @RequestMapping("/tGoods_info") + public String tGoodsInfo(Model model) { + Integer objectType = UserExt.getUser().getObjectType(); + System.out.println(objectType); + model.addAttribute("userType",objectType); + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + return PREFIX + "TGoods_detail_one.html"; + } + + @RequestMapping("/goods_info/{id}") + public String memberCouponInfo(@PathVariable Integer id, Model model) { + PointsMerchandise pointMercharsVo = pointMercharsClient.queryPointMerchaseById(id); + model.addAttribute("item",pointMercharsVo); + if(pointMercharsVo.getType()==2){ + Date startTime = pointMercharsVo.getStartTime(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + model.addAttribute("sTime",format.format(startTime)); + model.addAttribute("eTime",format.format(pointMercharsVo.getEndTime())); + Integer shopId = pointMercharsClient.getshopName(id); + TStore byId = storeService.getById(shopId); + model.addAttribute("shopName",byId.getName()); + Integer coursePackageId = pointMercharsVo.getCoursePackageId(); + List<String> name = courseClient.queryPackageById(coursePackageId); + if(null != name){ + model.addAttribute("typeName",name.get(0)); + model.addAttribute("pageName",name.get(1)); + }else{ + model.addAttribute("typeName", ""); + model.addAttribute("pageName", ""); + } + Integer coursePackageId1 = pointMercharsVo.getCoursePackageId(); + List<CoursePackagePaymentConfig> hoursByPackageId = courseClient.getHoursByPackageId(coursePackageId1); + + model.addAttribute("classHours",hoursByPackageId); + String productImages = pointMercharsVo.getProductImages(); + ArrayList<String> strings = new ArrayList<>(); + for (String s : productImages.split(",")) { + strings.add(s); + } + model.addAttribute("pictures",strings); + return PREFIX + "TGoods_detail_two.html"; + }else { + GoodsInfoOneVo infoOneVo = pointMercharsClient.queryDetailsOfGoods(id); + System.out.println("pointMercharsVo:"+infoOneVo); + model.addAttribute("item",infoOneVo); + String[] split = infoOneVo.getPics().split(","); + List<String> list = Arrays.asList(split); + if (infoOneVo.getUseScope() == 2){ + List<StoreVos> provinces = pointMercharsClient.getProvinces(id); + model.addAttribute("city",provinces); + } + if (infoOneVo.getUseScope() == 3){ + List<StoreVos> storeVos = pointMercharsClient.getStoreList(id); + model.addAttribute("store",storeVos); + } + // 门票选的指定场地 + if (infoOneVo.getUseScope() == 4){ + List<StoreVos> storeVos = pointMercharsClient.getStoreList(id); + model.addAttribute("sites",storeVos); + } + model.addAttribute("pictures",list); + model.addAttribute("exchangeMethod",infoOneVo.getExchangeMethod()); + return PREFIX + "TGoods_detail_one.html"; + } + } @RequestMapping("/coupon_record/{id}") public String memberCouponAdd(@PathVariable Integer id,Model model) { Coupon coupon = client.queryCouponById(id); - model.addAttribute("id",id); model.addAttribute("type",coupon.getType()); return PREFIX + "TCouponRecord.html"; } - - @RequestMapping("/coupon_detail/{id}") public String memberCouponDetail(@PathVariable Integer id,Model model) { @@ -172,7 +259,27 @@ */ @RequestMapping("/storeList") public String storePage(Model model) { + List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",provinceList); return PREFIX + "TStoreList.html"; + } + + + /** + * 跳转到门店管理列表页 + */ + @RequestMapping("/storeList1") + public String storePage1(Model model) { + List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",provinceList); + return PREFIX + "TStoreListOne.html"; + } + // 场地列表 + @RequestMapping("/siteList1") + public String storePage2(Model model) { + List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",provinceList); + return PREFIX + "TSiteListOne.html"; } @RequestMapping("/updateType") @ResponseBody @@ -215,23 +322,6 @@ return storeList; } -// /** -// * 获取 优惠券管理 -// */ -// @RequestMapping(value = "/list") -// @ResponseBody -// public Object listOfDatas(String name, Integer type, Integer distributionMethod , Integer userPopulation, Integer status, Integer state) { -// Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); -// CouponListOfSearch ofSearch = new CouponListOfSearch(); -// ofSearch.setPage(page); -// ofSearch.setName(name); -// ofSearch.setType(type); -// ofSearch.setDistributionMethod(distributionMethod); -// ofSearch.setUserPopulation(userPopulation); -// ofSearch.setStatus(status); -// ofSearch.setState(state); -// return client.getCouponListOfSearch(ofSearch); -// } @RequestMapping(value = "/listRecord") @ResponseBody public Object listRecord(Integer id,String name, Integer type, String phone) { @@ -318,15 +408,199 @@ client.insertIntoData(dataVo); return new SuccessTip<>(); } + + /** + * 编辑 商品详情 + * @param pointMerchandiseId 商品Id + * @param quantityIssued 发放数量 + * @param pickUpQuantity 限领数量 + * @param redemptionInstructions 说明 + * @param cover 封面图 + * @param productImages 商品图片 + * @param sort 排序 + * @return + */ @PostMapping(value = "/update") @ResponseBody - public Object update( Integer id,Integer num,Integer num1,String text){ - Coupon coupon = client.queryCouponById(id); - coupon.setQuantityIssued(num); - coupon.setPickUpQuantity(num1); - coupon.setIllustrate(text); - client.updateCouponData(coupon); + public Object update(String name, Integer pointMerchandiseId,Integer quantityIssued,Integer pickUpQuantity, + String redemptionInstructions,String cover,String productImages,Integer sort){ + Map<String, Object> stringObjectHashMap = new HashMap<>(); + stringObjectHashMap.put("name",name); + stringObjectHashMap.put("pointMerchandiseId",pointMerchandiseId); + stringObjectHashMap.put("quantityIssued",quantityIssued); + stringObjectHashMap.put("pickUpQuantity",pickUpQuantity); + stringObjectHashMap.put("redemptionInstructions",redemptionInstructions); + stringObjectHashMap.put("cover",cover); + stringObjectHashMap.put("productImages",productImages); + stringObjectHashMap.put("sort",sort); + stringObjectHashMap.put("type",UserExt.getUser().getObjectType()); + System.out.println(stringObjectHashMap); + pointMercharsClient.updateGoodsDetail(stringObjectHashMap); return new SuccessTip<>(); + } + /* + ajax.set("typeAll",typeAll); + ajax.set("provinceCode",pCode); + ajax.set("cityCode",cCode); + ajax.set("storeId",storeId); + ajax.set("coursePackageTypeId",coursePackageTypeId); + ajax.set("coursePackageId",coursePackageId); + ajax.set("coursePackageConfigId",coursePackageConfigId); + ajax.set("price",price); + ajax.set("type",type); + ajax.set("integral",integral); + ajax.set("cash",cash); + ajax.set("cover",cover1); + ajax.set("imgOne",imgOne); + ajax.set("userPopulation",userPopulation); + ajax.set("quantityIssued",quantityIssued); + ajax.set("pickUpQuantity",pickUpQuantity); + ajax.set("startTime",startTime); + ajax.set("text",text); + ajax.set("sort",sort); + ajax.set("useScope",company); + ajax.set("cityIds",cts); + ajax.set("storeIds",stores); + */ + @PostMapping(value = "/add") + @ResponseBody + public Object add( Integer typeAll,String provinceCode,String cityCode,Integer storeId,Integer coursePackageTypeId,Integer coursePackageId,Integer coursePackageConfigId, + Double price,Integer type,Integer integral,Double cash,String cover,String imgOne,Integer userPopulation,Integer quantityIssued,Integer pickUpQuantity, + String startTime,String text,Integer sort,String name,Integer useScope,String cityIds,String storeIds,String sites,Integer cardType + ) throws ParseException { + // 判断当前选择的课包 是不是假期课 然后判断选择的有效期是否在假期课有效期内 + if (coursePackageId!=null){ + TCoursePackage tCoursePackage = coursePackageClient.queryById(coursePackageId); + if (tCoursePackage.getType()==2){ + // 如果是假期课 获取到当前课包的开始时间和结束时间 + Date endTime = tCoursePackage.getEndTime(); + Date startTime1 = tCoursePackage.getStartTime(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date s = format.parse(startTime.split(" - ")[0]); + Date e = format.parse(startTime.split(" - ")[1]); + if (s.before(startTime1)){ + // 有效期开始时间小于假期课开始时间 + return 5009; + } + if (e.after(endTime)){ + // 有效期结束时间大于假期课结束时间 + return 5008; + } + } + } + PointsMerchandise pointsMerchandise = new PointsMerchandise(); + pointsMerchandise.setAddUserId(UserExt.getUser().getObjectId()); + pointsMerchandise.setAddType(UserExt.getUser().getObjectType()); + pointsMerchandise.setType(typeAll); + pointsMerchandise.setName(name); + pointsMerchandise.setCoursePackageId(coursePackageId); + pointsMerchandise.setPrice(new BigDecimal(price)); + pointsMerchandise.setRedemptionMethod(type); + if(type==2 || type==3){ + pointsMerchandise.setCash(new BigDecimal(cash)); + } + if(type==1 || type==2){ + pointsMerchandise.setIntegral(integral); + } + pointsMerchandise.setCover(cover); + pointsMerchandise.setProductImages(imgOne); + pointsMerchandise.setUserPopulation(userPopulation); + pointsMerchandise.setCardType(cardType); + pointsMerchandise.setQuantityIssued(quantityIssued); + pointsMerchandise.setPickUpQuantity(pickUpQuantity); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + pointsMerchandise.setStartTime(format.parse(startTime.split(" - ")[0])); + pointsMerchandise.setEndTime(format.parse(startTime.split(" - ")[1])); + if (UserExt.getUser().getObjectType()==3){ + if (StringUtils.hasLength(sites)){ + useScope = 4; + storeIds=""; + pointsMerchandise.setUseScope(4); + }else{ + useScope = 3; + pointsMerchandise.setUseScope(3); + } + }else{ + pointsMerchandise.setUseScope(useScope); + + } + if(ToolUtil.isNotEmpty(provinceCode)){ + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, provinceCode)); + pointsMerchandise.setProvinceCode(provinceCode); + pointsMerchandise.setProvince(one.getName()); + } + if(ToolUtil.isNotEmpty(cityCode)){ + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode)); + pointsMerchandise.setCityCode(cityCode); + pointsMerchandise.setCity(one.getName()); + } + pointsMerchandise.setRedemptionInstructions(text); + pointsMerchandise.setSort(sort); + pointsMerchandise.setState(1); + pointsMerchandise.setInsertTime(new Date()); + pointsMerchandise.setCoursePackageConfigId(coursePackageConfigId); + if(UserExt.getUser().getObjectType()!=1){ + pointsMerchandise.setStatus(2); + } + // 代替storeId + pointsMerchandise.setShelves(1); + if(typeAll!=2){ + if(useScope==2){ + ArrayList<Map<String,String>> objects = new ArrayList<>(); + for (String s : cityIds.split(",")) { + TCity tCity = cityService.getById(Integer.valueOf(s)); + HashMap<String, String> map = new HashMap<>(); + TCity pCity = cityService.getById(tCity.getParentId()); + map.put("pName",pCity.getName()); + map.put("pCode",pCity.getCode()); + map.put("cName",tCity.getName()); + map.put("cCode",tCity.getCode()); + map.put("id","0"); + objects.add(map); + } + pointMercharsClient.addCitys(objects); + }else if(useScope==3||useScope==4){ + if(UserExt.getUser().getObjectType()==3){ + storeIds=UserExt.getUser().getObjectId().toString(); + } + if (useScope==4){ + storeIds =""; + } + if (useScope==3){ + sites =""; + } + if (StringUtils.hasLength(storeIds)){ + Integer oid=null; + String[] split = storeIds.split(","); + for (int i = 0; i < split.length; i++) { + if(i==0){ + Integer operatorId = storeService.getById(split[0]).getOperatorId(); + oid=operatorId; + } + Integer operatorId = storeService.getById(split[i]).getOperatorId(); + if(oid!=operatorId){ + return "5003"; + } + } + } + Integer id = pointMercharsClient.add(pointsMerchandise); + String pam = id+"_"+storeIds+"_"+sites; + // 添加多个城市 门店 场地 + try{ + pointMercharsClient.addOther(pam); + }catch (Exception e){ + e.printStackTrace(); + } + }else if(useScope==1){ + Integer id = pointMercharsClient.add(pointsMerchandise); + } + }else { + pointsMerchandise.setShelves(storeId); + pointsMerchandise.setUseScope(3); + Integer id = pointMercharsClient.add(pointsMerchandise); + } + return new SuccessTip<>(); + } @@ -349,6 +623,180 @@ System.out.println(ofSearch); return pointMercharsClient.getIntegralGoodsListOfSearch(ofSearch); } + @RequestMapping(value = "/listAudit") + @ResponseBody + public Object listOfIntegralGoodsAudit(String name, Integer type, Integer redemptionMethod , Integer userPopulation, Integer activeStatus) { + Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(); + IntegralGoodsOfSearch ofSearch = new IntegralGoodsOfSearch(); + ofSearch.setPage(page); + ofSearch.setName(name); + ofSearch.setType(type); + ofSearch.setRedemptionMethod(redemptionMethod); + ofSearch.setUserPopulation(userPopulation); + ofSearch.setActiveStatus(activeStatus); + return pointMercharsClient.getIntegralGoodsListOfSearchAudit(ofSearch); + } + + + + + + + + + @RequestMapping(value = "/updateTypeOne") + @ResponseBody + public Object updateTypeOne(Integer id, Integer type, String remark) { + Object o = pointMercharsClient.updateType(id + "_" + type + "_" + remark); + return SUCCESS_TIP; + } + + + + /** + * 跳转到修改商品详情 + */ + @RequestMapping("/tGoods_update/{id}") + public String tCityUpdate(@PathVariable Integer id, Model model) { + System.out.println("id:"+id); + PointMercharsVo pointMercharsVo = pointMercharsClient.queryPointMerchaseDetailOfId(id); + + System.out.println("pointMercharsVo:"+pointMercharsVo); + String[] split = pointMercharsVo.getPics().split(","); + StringBuilder concatenatedString = new StringBuilder(); + for (String element : split) { + concatenatedString.append(element).append(","); + } + // 去除末尾的逗号 + if (concatenatedString.length() > 0) { + concatenatedString.setLength(concatenatedString.length() - 1); + } + String result = concatenatedString.toString(); + model.addAttribute("id",id); + model.addAttribute("item",pointMercharsVo); + model.addAttribute("pictures",result); + return PREFIX + "TGoods_edit.html"; + } + + /** + * 上下架处理操作 + * @param id 商品id + * @param type 1=上架操作 2=下架操作 + * @return + */ + @RequestMapping("/grounding") + @ResponseBody + public Object updateGrounding(Integer id,Integer type) { + System.out.println(id); + System.out.println(type); + Map<String,Integer> map = new HashMap<>(); + map.put("id",id); + map.put("type",type); + boolean b = pointMercharsClient.updateGoodsGroudingStatus(map); + System.out.println(b); + return new SuccessTip<>(); + } + + + + /** + * 购买详情 + * @param id 商品id + * @return + */ + @RequestMapping("/tPay_detail/{id}") + public String payOfDetails(@PathVariable(value = "id") Integer id,Model model) { + System.out.println(id); + model.addAttribute("id",id); + PointsMerchandise byId = pointMercharsClient.getById(id); + model.addAttribute("type",byId.getType()); + return PREFIX + "TGoods_pay.html"; + } + /** + * 购买详情 + * @param id 商品id + * @return + */ + @RequestMapping("/tPay_detail1/{id}") + public String payOfDetailsOne(@PathVariable(value = "id") Integer id,Model model) { + System.out.println(id); + model.addAttribute("id",id); + return PREFIX + "TGoods_payOne.html"; + } + /** + * 获取 购买记录列表 + */ + @ResponseBody + @RequestMapping(value = "/payList/{id}") + public Object payList(@PathVariable(value = "id") Integer id, String name, String phone, Integer status) { + PointMercharsPayedVo payedVo = new PointMercharsPayedVo(); + payedVo.setId(id); + payedVo.setName(name); + payedVo.setPhone(phone); + payedVo.setStatus(status); + List<Map<String,Object>> points = pointMercharsClient.queryUserPayedGoodsList(payedVo); + System.out.println(points); + if (points.size() > 0 ){ + + for (Map<String, Object> point : points) { + Object id1 = point.get("id"); + String idAsString = String.valueOf(id1); + + // 移除原始的 "id" 键 + point.remove("id"); + + // 将字符串类型的 "id" 放回 Map 对象中 + point.put("id", idAsString); + Integer userId = (Integer) point.get("userId"); + TAppUser tAppUser = appUserClient.queryById(userId); + if (ToolUtil.isNotEmpty(tAppUser)){ + point.put("name",tAppUser.getName()); + point.put("phone",tAppUser.getPhone()); + } + } + if (ToolUtil.isNotEmpty(name)){ + points = points.stream() + .filter(data -> { + String obtName = (String) data.get("name"); + return obtName != null && obtName.contains(name); + }) + .collect(Collectors.toList()); + } + if (ToolUtil.isNotEmpty(phone)){ + points = points.stream() + .filter(data -> { + String obtPhone = (String) data.get("phone"); + return obtPhone != null && obtPhone.contains(phone); + }) + .collect(Collectors.toList()); + } + } + return points; + } + + /** + * 核销操作 + * @param id 商品id + * @return + */ + @RequestMapping("/write_off") + @ResponseBody + public Object GoodsWriteOff(String id){ + Integer objectType = UserExt.getUser().getObjectType(); + Map<String, Object> stringObjectHashMap = new HashMap<>(); + stringObjectHashMap.put("goodsId",id); + stringObjectHashMap.put("managerId",objectType); + boolean b = pointMercharsClient.writeOffGoodsStatus(stringObjectHashMap); + System.out.println(b); + if (b){ + return new SuccessTip<>(); + }else { + return ERROR; + } + + } + + -- Gitblit v1.7.1