From aca52db249c7ddcd84e1d4125573a6bb3524670f Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期一, 07 八月 2023 21:29:50 +0800 Subject: [PATCH] app端:商品详情列表数据的处理bug --- cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 32 ++++ cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/CityDataAndProvinceDataVo.java | 17 ++ cloud-server-other/src/main/resources/mapper/RegionMapper.xml | 5 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 12 + cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js | 2 cloud-server-other/src/main/java/com/dsh/other/entity/Region.java | 116 ++++++++++++++++ cloud-server-other/src/main/java/com/dsh/other/service/impl/RegionServiceImpl.java | 12 + cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/RegionClient.java | 17 ++ cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html | 16 - cloud-server-other/src/main/java/com/dsh/other/service/IRegionService.java | 16 ++ cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 13 + cloud-server-other/src/main/java/com/dsh/other/controller/TRegionController.java | 50 +++++++ cloud-server-other/src/main/java/com/dsh/other/model/CityDataAndProvinceDataVo.java | 17 ++ cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js | 34 ++++ cloud-server-other/src/main/java/com/dsh/other/mapper/RegionMapper.java | 10 + 15 files changed, 346 insertions(+), 23 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java index 5c2700b..275b2da 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java @@ -792,9 +792,16 @@ .collect(Collectors.toList()); } } - Pageable pageable = PageRequest.of(request.getPageNum() - 1, request.getPageSize()); - Page<Goods> page = getPage(goods, pageable); - return page.getContent(); + + //当前第几页 + int pageNo = request.getPageNum(); + //一页五条 + int size = request.getPageSize(); + + //分页 + goods = goods.stream().skip((pageNo - 1) * size).limit(size). + collect(Collectors.toList()); + return goods; } // 对数据进行分页处理的方法 diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java index 885bba2..55f41f0 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java @@ -14,7 +14,9 @@ import com.dsh.activity.feignclient.account.model.TStoreStaff; import com.dsh.activity.feignclient.model.CouponExamineListSearch; import com.dsh.activity.feignclient.model.CouponListOfSearch; +import com.dsh.activity.feignclient.other.RegionClient; import com.dsh.activity.feignclient.other.StoreClient; +import com.dsh.activity.feignclient.other.model.CityDataAndProvinceDataVo; import com.dsh.activity.feignclient.other.model.Store; import com.dsh.activity.model.CouponListVo; import com.dsh.activity.model.request.CommodityRequest; @@ -70,6 +72,10 @@ @Resource private StoreClient stoClient; + + + @Resource + private RegionClient regionClient; @Resource private CouponStoreService couStoreService; @@ -425,7 +431,31 @@ if (dataVo.getUserType() == 1){ coupon.setCityManagerId(dataVo.getCityManagerId()); } - return couponService.save(coupon); + boolean save = couponService.save(coupon); + if (save){ + if (dataVo.getCompany() == 2){ + for (Integer storeId : dataVo.getStoreIds()) { + CouponStore couponStore = new CouponStore(); + couponStore.setCouponId(coupon.getId()); + couponStore.setStoreId(storeId); + couStoreService.save(couponStore); + } + } + List<Integer> cityIds = dataVo.getCityIds(); + if (dataVo.getCompany() == 3 && cityIds.size() > 0 ){ + List<CityDataAndProvinceDataVo> cityAndProvince = regionClient.getCityAndProvince(cityIds); + for (CityDataAndProvinceDataVo cityId : cityAndProvince) { + CouponCity couponCity = new CouponCity(); + couponCity.setCouponId(coupon.getId()); + couponCity.setCityCode(cityId.getCityCode()); + couponCity.setCity(cityId.getCityName()); + couponCity.setProvinceCode(cityId.getProvinceCode()); + couponCity.setProvince(cityId.getProvinceName()); + cityService.save(couponCity); + } + } + } + return true; }catch (Exception e){ return false; } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java index cb9957e..b6e5926 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java @@ -138,8 +138,9 @@ CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId()); detailsVo.setGoodId(coursePackage.getId()); - List<String> list1 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ",")); + List<String> list1 = new ArrayList<>(); list1.add(coursePackage.getCoverDrawing()); + list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","))); detailsVo.setPics(list1); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coursePackage.getCoverDrawing())) { @@ -199,8 +200,10 @@ case 3: detailsVo.setGoodId(merchandise.getId()); - List<String> list2 = Arrays.asList(StrUtils.splitStr2StrArr(merchandise.getProductImages(), ",")); - list2.add(merchandise.getCover()); + List<String> list2 = new ArrayList<>(); + String cover = merchandise.getCover(); + list2.add(cover); + list2.addAll(Arrays.asList(StrUtils.splitStr2StrArr(merchandise.getProductImages(), ","))); detailsVo.setPics(list2); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(merchandise.getCover())) { @@ -248,8 +251,9 @@ // 优惠券 Coupon coupon = iCouponService.getById(detailRequest.getGoodId()); detailsVo.setGoodId(coupon.getId()); - List<String> list3 = Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")); + List<String> list3 = new ArrayList<>(); list3.add(coupon.getCover()); + list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ","))); detailsVo.setPics(list3); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coupon.getCover())) { diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/RegionClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/RegionClient.java new file mode 100644 index 0000000..5e11259 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/RegionClient.java @@ -0,0 +1,17 @@ +package com.dsh.activity.feignclient.other; + + +import com.dsh.activity.feignclient.other.model.CityDataAndProvinceDataVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@FeignClient("mb-cloud-other") +public interface RegionClient { + + + @PostMapping("/base/region/getCityAndProvince") + public List<CityDataAndProvinceDataVo> getCityAndProvince(List<Integer> ids); +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/CityDataAndProvinceDataVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/CityDataAndProvinceDataVo.java new file mode 100644 index 0000000..b611693 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/CityDataAndProvinceDataVo.java @@ -0,0 +1,17 @@ +package com.dsh.activity.feignclient.other.model; + + +import lombok.Data; + +@Data +public class CityDataAndProvinceDataVo { + + String cityName; + + String cityCode; + + String provinceName; + + String provinceCode; + +} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html index 5dcd606..6c0b44d 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html @@ -227,8 +227,8 @@ <el-upload class="avatar-uploader" action="/tCouponManage/uploadPic" - :show-file-list="false" :on-success="handleAvatarSuccess" + accept=".jpg,.jpeg,.png,.JPG,.JPEG" :on-remove="handleRemove" :before-upload="beforeAvatarUpload"> <img v-if="imageUrl" :src="imageUrl" class="avatar"> @@ -250,7 +250,7 @@ class="avatar-uploader" action="/tCouponManage/uploadPic" list-type="picture-card" - accept="." + accept=".jpg,.jpeg,.png,.JPG,.JPEG" :on-success="handleAvatarSuccess" :on-remove="handleRemove"> <i class="el-icon-plus"></i> @@ -369,10 +369,12 @@ data: { autoUpload: true,//自动上传 imageUrl: '',//模型数据,用于上传图片完成后图片预览 + dialogVisible: false }, methods: { handleAvatarSuccess(res, file) { - couponInfoDlg.goodsCover = URL.createObjectURL(file.raw); + this.imageUrl = URL.createObjectURL(file.raw); + couponInfoDlg.goodsCover = file.response; }, beforeAvatarUpload(file) { const isLt2M = file.size / 1024 / 1024 < 10; @@ -383,6 +385,7 @@ }, handleRemove(file, fileList) { couponInfoDlg.goodsCover = ''; + console.log(couponInfoDlg.goodsCover) }, }, created() { @@ -391,13 +394,6 @@ var vue2 = new Vue({ el: '#app1', - props: { - // 数量限制 - limit: { - type: Number, - default: 2 - }, - }, data: { autoUpload: true,//自动上传 imageUrl1: '',//模型数据,用于上传图片完成后图片预览 diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js index 66943ad..02d3589 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js @@ -4,7 +4,8 @@ var couponInfoDlg = { couponInfoData: {}, goodsPicArray: [], //商品图片数组 - goodsCover: '' //商品封面图 + goodsCover: '', //商品封面图 + storeIds: [], }; /** @@ -214,6 +215,7 @@ var num = 0; couponInfoDlg.addBranch = function () { + num=num+1; var a= ""; a = "<div style=\'margin-left: 25%\' class=\"col-sm-9 control-label\">\n" + " <select class=\"col-sm-1\" id=\'provinceData"+num+"\' style=\"margin-top: 1%;width: 25%\" onchange=\'changeCity("+num+")\'>\n" + @@ -228,7 +230,6 @@ " </div>"; $("#cityDemo").append($(a)); getProvince(num); - num=num+1 } @@ -242,7 +243,7 @@ */ couponInfoDlg.addSubmit = function () { - var resultData = {}; + var cityIds = []; // 优惠券名称 var couponName = $('#name').val(); // 优惠券类型 @@ -266,6 +267,29 @@ let exchangeMethod = $(':radio[name="exchangeMethod"]:checked').val(); var requiredCash = $('#requiredCash').val(); + + var company = $('#company').val(); + if (company === '2'){ + var myselect=document.getElementById('cityData'); + var seCity = myselect.options[myselect.selectedIndex].value; + if (seCity === null || seCity === undefined || seCity === ''){ + return Feng.error('请选中一个省市'); + } + cityIds.push(seCity); + if (this.num > 0){ + for (let i = 1; i <= num; i++) { + var insSelect=document.getElementById('cityData'+i); + var inData = insSelect.options[insSelect.selectedIndex].value; + if (inData !== undefined || inData !== null || inData !== ''){ + cityIds.push(inData); + } + } + } + } + + if (company === '3'){ + + } console.log('11111111') @@ -297,8 +321,8 @@ ajax.set("goodImg",this.goodsCover); ajax.set("goodImgs",this.goodsPicArray); ajax.set("company",$('#company').val()); - ajax.set("cityIds",[]); - ajax.set("storeIds",[]); + ajax.set("cityIds",cityIds); + ajax.set("storeIds",this.storeIds); ajax.start(); } diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js index e8f1904..6ecfd31 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js @@ -44,6 +44,8 @@ function saveSelectStores(){ + + } diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/TRegionController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/TRegionController.java new file mode 100644 index 0000000..528f178 --- /dev/null +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/TRegionController.java @@ -0,0 +1,50 @@ +package com.dsh.other.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.dsh.other.entity.Region; +import com.dsh.other.model.CityDataAndProvinceDataVo; +import com.dsh.other.service.IRegionService; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("") +public class TRegionController { + + + + @Resource + private IRegionService regionService; + + + @PostMapping("/base/region/getCityAndProvince") + public List<CityDataAndProvinceDataVo> getCityAndProvince(@RequestBody List<Integer> ids){ + List<CityDataAndProvinceDataVo> cityDataAndProvinceDataVos = new ArrayList<>(); + try { + List<Region> list = regionService.list(new LambdaQueryWrapper<Region>() + .in(Region::getId, ids)); + if (list.size() > 0) { + for (Region region : list) { + CityDataAndProvinceDataVo dataVo = new CityDataAndProvinceDataVo(); + dataVo.setCityCode(region.getCode()); + dataVo.setCityName(region.getName()); + Region byId = regionService.getById(region.getParentId()); + dataVo.setProvinceCode(byId.getCode()); + dataVo.setProvinceName(byId.getName()); + cityDataAndProvinceDataVos.add(dataVo); + } + } + return cityDataAndProvinceDataVos; + }catch (Exception e){ + return cityDataAndProvinceDataVos; + } + } + +} diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/Region.java b/cloud-server-other/src/main/java/com/dsh/other/entity/Region.java new file mode 100644 index 0000000..9931cde --- /dev/null +++ b/cloud-server-other/src/main/java/com/dsh/other/entity/Region.java @@ -0,0 +1,116 @@ +package com.dsh.other.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; + +/** + * <p> + * 省市区三级联动 + * </p> + * + * @author 吕雪 + * @since 2019-12-30 + */ +@TableName("t_region") +public class Region extends Model<Region> { + + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 城市名称 + */ + @TableField("name") + private String name; + + @TableField("code") + private String code; + + @TableField("citycode") + private String citycode; + /** + * 父级ID + */ + @TableField("parent_id") + private Integer parentId; + /** + * 英文名称 + */ + @TableField("english") + private String english; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getCitycode() { + return citycode; + } + + public void setCitycode(String citycode) { + this.citycode = citycode; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + public String getEnglish() { + return english; + } + + public void setEnglish(String english) { + this.english = english; + } + + @Override + protected Serializable pkVal() { + return this.id; + } + + @Override + public String toString() { + return "Region{" + + "id=" + id + + ", name=" + name + + ", code=" + code + + ", citycode=" + citycode + + ", parentId=" + parentId + + ", english=" + english + + "}"; + } +} diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/RegionMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/RegionMapper.java new file mode 100644 index 0000000..421b4dd --- /dev/null +++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/RegionMapper.java @@ -0,0 +1,10 @@ +package com.dsh.other.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.other.entity.Region; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RegionMapper extends BaseMapper<Region> { + +} diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/CityDataAndProvinceDataVo.java b/cloud-server-other/src/main/java/com/dsh/other/model/CityDataAndProvinceDataVo.java new file mode 100644 index 0000000..e631483 --- /dev/null +++ b/cloud-server-other/src/main/java/com/dsh/other/model/CityDataAndProvinceDataVo.java @@ -0,0 +1,17 @@ +package com.dsh.other.model; + + +import lombok.Data; + +@Data +public class CityDataAndProvinceDataVo { + + String cityName; + + String cityCode; + + String provinceName; + + String provinceCode; + +} diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/IRegionService.java b/cloud-server-other/src/main/java/com/dsh/other/service/IRegionService.java new file mode 100644 index 0000000..246eb77 --- /dev/null +++ b/cloud-server-other/src/main/java/com/dsh/other/service/IRegionService.java @@ -0,0 +1,16 @@ +package com.dsh.other.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.other.entity.Region; + +/** + * 字典服务 + * + * @author fengshuonan + * @date 2017-04-27 17:00 + */ +public interface IRegionService extends IService<Region> { + + +} diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/RegionServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/RegionServiceImpl.java new file mode 100644 index 0000000..e5b1b72 --- /dev/null +++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/RegionServiceImpl.java @@ -0,0 +1,12 @@ +package com.dsh.other.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.other.entity.Region; +import com.dsh.other.mapper.RegionMapper; +import com.dsh.other.service.IRegionService; +import org.springframework.stereotype.Service; + +@Service +public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements IRegionService { + +} diff --git a/cloud-server-other/src/main/resources/mapper/RegionMapper.xml b/cloud-server-other/src/main/resources/mapper/RegionMapper.xml new file mode 100644 index 0000000..0d8eada --- /dev/null +++ b/cloud-server-other/src/main/resources/mapper/RegionMapper.xml @@ -0,0 +1,5 @@ +<?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.dsh.course.mapper.RegionMapper"> + +</mapper> \ No newline at end of file -- Gitblit v1.7.1