diff --git a/admin-pc/src/views/commonDistributionRatio/CommonDistributionRatioList.vue b/admin-pc/src/views/commonDistributionRatio/CommonDistributionRatioList.vue new file mode 100644 index 0000000..2fd082a --- /dev/null +++ b/admin-pc/src/views/commonDistributionRatio/CommonDistributionRatioList.vue @@ -0,0 +1,193 @@ + + + + \ No newline at end of file diff --git a/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioForm.vue b/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioForm.vue new file mode 100644 index 0000000..bb0a096 --- /dev/null +++ b/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioForm.vue @@ -0,0 +1,133 @@ + + + \ No newline at end of file diff --git a/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioModal.Style#Drawer.vue b/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioModal.Style#Drawer.vue new file mode 100644 index 0000000..a2cacd7 --- /dev/null +++ b/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioModal.vue b/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioModal.vue new file mode 100644 index 0000000..332d04e --- /dev/null +++ b/admin-pc/src/views/commonDistributionRatio/modules/CommonDistributionRatioModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/module-base/base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java b/module-base/base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java index 770be18..03518ad 100644 --- a/module-base/base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java +++ b/module-base/base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java @@ -36,7 +36,7 @@ import org.jeecg.common.util.oConvertUtils; public class JwtUtil { /**Token有效期为1小时(Token在reids中缓存时间为两倍)*/ - public static final long EXPIRE_TIME = 600 * 600 * 1000; + public static final long EXPIRE_TIME = 3000 * 600 * 600 * 1000; static final String WELL_NUMBER = SymbolConstant.WELL_NUMBER + SymbolConstant.LEFT_CURLY_BRACKET; /** diff --git a/module-base/base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java b/module-base/base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java index b7e0c37..cdeef53 100644 --- a/module-base/base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java +++ b/module-base/base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java @@ -272,6 +272,6 @@ public class HanHaiMember implements Serializable { @Excel(name = "推广官类型", width = 15) @ApiModelProperty(value = "推广官类型") - @Dict(dicCode = "tui_type") + @Dict(dictTable = "common_distribution_ratio", dicCode = "id", dicText = "title") private java.lang.String isTuiType; } diff --git a/module-common/src/main/java/org/jeecg/api/controller/AppletClassController.java b/module-common/src/main/java/org/jeecg/api/controller/AppletClassController.java index 9e27c9a..c68e88b 100644 --- a/module-common/src/main/java/org/jeecg/api/controller/AppletClassController.java +++ b/module-common/src/main/java/org/jeecg/api/controller/AppletClassController.java @@ -59,8 +59,8 @@ public class AppletClassController { //根据商品标识查询商品可回品牌 @ApiOperation(value="根据商品标识查询商品可回品牌", notes="根据商品标识查询商品可回品牌") @GetMapping(value = "/getGoodsBrandList") - public Result getGoodsBrandList(String name,String iconId,PageBean pageBean){ - return appletClassService.getGoodsBrandList(name,iconId,pageBean); + public Result getGoodsBrandList(String name,String productId,PageBean pageBean){ + return appletClassService.getGoodsBrandList(name,productId,pageBean); } diff --git a/module-common/src/main/java/org/jeecg/api/controller/AppletIndexController.java b/module-common/src/main/java/org/jeecg/api/controller/AppletIndexController.java index 2c21a2c..31faf12 100644 --- a/module-common/src/main/java/org/jeecg/api/controller/AppletIndexController.java +++ b/module-common/src/main/java/org/jeecg/api/controller/AppletIndexController.java @@ -58,6 +58,14 @@ public class AppletIndexController { } + //查询回收去向 + @ApiOperation(value="查询回收去向", notes="查询回收去向") + @GetMapping(value = "/getRecyclingDestination") + public Result getRecyclingDestination(){ + return appletIndexService.getRecyclingDestination(); + } + + //查询最近回收商品 @ApiOperation(value="查询最近回收商品", notes="查询最近回收商品") @GetMapping(value = "/getRecentGoodsList") diff --git a/module-common/src/main/java/org/jeecg/api/controller/AppletOrderController.java b/module-common/src/main/java/org/jeecg/api/controller/AppletOrderController.java index 2f8a67c..d16e31e 100644 --- a/module-common/src/main/java/org/jeecg/api/controller/AppletOrderController.java +++ b/module-common/src/main/java/org/jeecg/api/controller/AppletOrderController.java @@ -78,4 +78,18 @@ public class AppletOrderController { return appletOrderService.getCumulativeRecoveryCount(token); } + //检验订单通过 + @ApiOperation(value="检验订单通过", notes="检验订单通过") + @GetMapping(value = "/checkoutOrder") + public Result checkoutOrder(@RequestHeader("X-Access-Token") String token, String id, String list) { + return appletOrderService.checkoutOrder(token, id, list); + } + + //获取检验理由列表 + @ApiOperation(value="获取检验理由列表", notes="获取检验理由列表") + @GetMapping(value = "/getcheckoutReasons") + public Result getcheckoutReasons(@RequestHeader("X-Access-Token") String token, String classId, String type) { + return appletOrderService.getCeckoutReasons(token, classId, type); + } + } diff --git a/module-common/src/main/java/org/jeecg/api/req/s.js b/module-common/src/main/java/org/jeecg/api/req/s.js new file mode 100644 index 0000000..8ff0404 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/api/req/s.js @@ -0,0 +1,22 @@ + + +let a = { + id : 1565465498,//一级订单id + list : [ + { + id : 1565465452,//二级订单id + price : 44.1,//价格 + qualifiedNum : 2,//合格数量 + noQualifiedNum : 1,//不合格数量 + unrecyclable : 1,//不可回收数量 + commonOrderList : [ + { + id : 354616854,//三级订单id + testingInstructions : '199168761,654651745,61541684',//检测说明,多个id用逗号分割 + testingImages : 'https://xxxx,https://xxxx',//检测报告图片 + testingStatus : 0,//【质检合格:0】【质量问题:1】【不可回收:2】 + } + ] + } + ] +} \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/api/service/AppletClassService.java b/module-common/src/main/java/org/jeecg/api/service/AppletClassService.java index 9d0a3d8..b590f01 100644 --- a/module-common/src/main/java/org/jeecg/api/service/AppletClassService.java +++ b/module-common/src/main/java/org/jeecg/api/service/AppletClassService.java @@ -23,7 +23,7 @@ public interface AppletClassService { //根据商品标识查询商品可回品牌 - Result getGoodsBrandList(String name,String iconId,PageBean pageBean); + Result getGoodsBrandList(String name,String productId,PageBean pageBean); diff --git a/module-common/src/main/java/org/jeecg/api/service/AppletIndexService.java b/module-common/src/main/java/org/jeecg/api/service/AppletIndexService.java index 38164f6..e27e14d 100644 --- a/module-common/src/main/java/org/jeecg/api/service/AppletIndexService.java +++ b/module-common/src/main/java/org/jeecg/api/service/AppletIndexService.java @@ -27,5 +27,5 @@ public interface AppletIndexService { Result getQualityReport(String goodsId); - + Result getRecyclingDestination(); } diff --git a/module-common/src/main/java/org/jeecg/api/service/AppletOrderService.java b/module-common/src/main/java/org/jeecg/api/service/AppletOrderService.java index 18f9d1e..df406f8 100644 --- a/module-common/src/main/java/org/jeecg/api/service/AppletOrderService.java +++ b/module-common/src/main/java/org/jeecg/api/service/AppletOrderService.java @@ -22,4 +22,8 @@ public interface AppletOrderService { Result createOrder(String token, String list, String addressId, String strTime); Result getCumulativeRecoveryCount(String token); + + Result checkoutOrder(String token, String id, String list); + + Result getCeckoutReasons(String token, String classId, String type); } diff --git a/module-common/src/main/java/org/jeecg/api/service/impl/AppletClassServiceImpl.java b/module-common/src/main/java/org/jeecg/api/service/impl/AppletClassServiceImpl.java index e585051..9b3965d 100644 --- a/module-common/src/main/java/org/jeecg/api/service/impl/AppletClassServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/api/service/impl/AppletClassServiceImpl.java @@ -2,6 +2,7 @@ package org.jeecg.api.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang.StringUtils; import org.jeecg.api.bean.PageBean; import org.jeecg.api.service.AppletClassService; import org.jeecg.common.api.vo.Result; @@ -71,20 +72,22 @@ public class AppletClassServiceImpl implements AppletClassService { //根据商品标识查询商品可回品牌 @Override - public Result getGoodsBrandList(String name,String iconId,PageBean pageBean){ + public Result getGoodsBrandList(String name,String productId,PageBean pageBean){ + + CommonShop byId = commonShopService.getById(productId); + + if (byId == null){ + Result.error("商品不存在"); + } + + String[] vids = byId.getShopCion() == null ? null : byId.getShopCion().split(","); + Page page = new Page<>(pageBean.getPageNo(),pageBean.getPageSize()); IPage pageList = commonVipService .lambdaQuery() -// .eq(CommonVip::getPid, iconId) + .in(vids != null, CommonVip::getId, vids) + .like(StringUtils.isNotBlank(name), CommonVip::getName, name) .page(page); - //如果名称不为空 - if(name != null){ - pageList = commonVipService - .lambdaQuery() -// .eq(CommonVip::getPid, iconId) - .like(CommonVip::getName, name) - .page(page); - } return Result.OK("商品品牌",pageList); } diff --git a/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java b/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java index 0ad6990..610c51c 100644 --- a/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/api/service/impl/AppletIndexServiceImpl.java @@ -8,6 +8,7 @@ import org.jeecg.api.bean.PageBean; import org.jeecg.api.service.AppletIndexService; import org.jeecg.common.api.vo.Result; import org.jeecg.config.shiro.ShiroRealm; +import org.jeecg.modules.CommonRecyclingDestination.service.ICommonRecyclingDestinationService; import org.jeecg.modules.commonBanner.entity.CommonBanner; import org.jeecg.modules.commonBanner.service.ICommonBannerService; import org.jeecg.modules.commonBook.entity.CommonBook; @@ -71,6 +72,8 @@ public class AppletIndexServiceImpl implements AppletIndexService { private ICommonGetService commonGetService; @Autowired private ICommonOrderService commonOrderService; + @Autowired + private ICommonRecyclingDestinationService commonRecyclingDestinationService; // 获取首页banner @Override @@ -97,18 +100,7 @@ public class AppletIndexServiceImpl implements AppletIndexService { @Override public Result getFreeCityList(){ - List list = commonCityService - .lambdaQuery() - .eq(CommonCity::getPid,"0") - .list(); - //循环数据得到子集 - for (CommonCity commonCity : list) { - List children = commonCityService - .lambdaQuery() - .eq(CommonCity::getPid,commonCity.getId()) - .list(); - commonCity.setChildren(children); - } + List list = commonCityService.buildOpenCityTree(); return Result.OK("已开通包邮城市",list); } @@ -132,4 +124,9 @@ public class AppletIndexServiceImpl implements AppletIndexService { return Result.OK("质量检测报告",one); } + @Override + public Result getRecyclingDestination() { + return Result.OK(commonRecyclingDestinationService.list()); + } + } diff --git a/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java b/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java index 5ba9543..c862310 100644 --- a/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/api/service/impl/AppletOrderServiceImpl.java @@ -25,9 +25,14 @@ import org.jeecg.modules.commonShop.entity.CommonShop; import org.jeecg.modules.commonShop.service.ICommonShopService; import org.jeecg.modules.commonText.entity.CommonText; import org.jeecg.modules.commonText.service.ICommonTextService; +import org.jeecg.modules.common_reasons.entity.CommonReasons; +import org.jeecg.modules.common_reasons.service.ICommonReasonsService; +import org.jeecg.modules.commonCity.entity.CommonCity; +import org.jeecg.modules.commonCity.service.ICommonCityService; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -50,6 +55,10 @@ public class AppletOrderServiceImpl implements AppletOrderService { private ICommonTextService commonTextService; @Autowired private ICommonAddressService commonAddressService; + @Autowired + private ICommonReasonsService commonReasonsService; + @Autowired + private ICommonCityService commonCityService; // 联系客服问题相关列表数据带分页 @Override @@ -68,6 +77,7 @@ public class AppletOrderServiceImpl implements AppletOrderService { .eq(CommonOrder::getUserId,hanHaiMember.getId()) .eq(status != null,CommonOrder::getStatus,status) .eq(CommonOrder::getPid,"0") + .orderByDesc(CommonOrder::getCreateTime) .page(page); //得到集合数据 @@ -97,8 +107,20 @@ public class AppletOrderServiceImpl implements AppletOrderService { .lambdaQuery() .eq(CommonOrder::getPid,commonOrder.getId()) .list(); + commonOrder.setCommonOrderList(children); + //得到第三级集合数据 + for (CommonOrder order1 : children) { + //查询下级 + List order2 = commonOrderService + .lambdaQuery() + .eq(CommonOrder::getPid,commonOrder.getId()) + .list(); + order1.setCommonOrderList(order2); + } + + return Result.OK("订单详情",commonOrder); } @@ -121,7 +143,8 @@ public class AppletOrderServiceImpl implements AppletOrderService { //创建预约订单//把list转为对象 list = [{"shopId":"1","num":1},{"shopId":"2","num":2}] @Override - public Result createOrder(String token, String list, String addressId, String strTime) { + @Transactional + public Result createOrder(String token, String listJson, String addressId, String strTime) { HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token); //用户地址不能为空 if(StringUtils.isBlank(addressId)){ @@ -133,51 +156,68 @@ public class AppletOrderServiceImpl implements AppletOrderService { return Result.error("地址不存在"); } //把list转为对象 list = [{"shopId":"1","num":1,"pinId":1},{"shopId":"2","num":2,"pinId":1}] - List list1 = JSON.parseArray(list, CommonOrder.class); + List list = JSON.parseArray(listJson, CommonOrder.class); //创建订单标识 String orderId = IdWorker.getIdStr(); - if(null!=list1 && list1.size()>0) { - //订单总额 - BigDecimal totalPrice = new BigDecimal(0); - //总直推金额 - BigDecimal totalOneMoney = new BigDecimal(0); - //总二级代理金额 - BigDecimal totalTwoMoney = new BigDecimal(0); + + if(null!=list && list.size()>0) { //订单商品数量 Integer totalNum = 0; + BigDecimal minEstimatedPriceSum = BigDecimal.ZERO;//预估价格 + BigDecimal maxEstimatedPriceSum = BigDecimal.ZERO;//预估价格 //创建订单详情 - for (CommonOrder sku : list1) { + for (CommonOrder sku : list) { + BigDecimal minEstimatedPrice = BigDecimal.ZERO;//预估价格 + BigDecimal maxEstimatedPrice = BigDecimal.ZERO;//预估价格 //查询商品信息 CommonShop commonShop = commonShopService.getById(sku.getShopId()); //商品不能为空 if (commonShop == null) { return Result.error("商品不存在"); } + + if (commonShop.getPrice() != null){ + maxEstimatedPrice = commonShop.getMaxPrice().multiply(new BigDecimal(sku.getNum())); + } + if (commonShop.getMaxPrice() != null){ + maxEstimatedPrice = commonShop.getMaxPrice().multiply(new BigDecimal(sku.getNum())); + } + + minEstimatedPriceSum.add(commonShop.getPrice().multiply(new BigDecimal(sku.getNum()))); + maxEstimatedPriceSum.add(commonShop.getMaxPrice().multiply(new BigDecimal(sku.getNum()))); + //创建订单 - BigDecimal price = commonShop.getPrice().multiply(new BigDecimal(sku.getNum())); sku.setPid(orderId); - sku.setHasChild("0"); + sku.setHasChild("1"); sku.setShopId(commonShop.getId()); sku.setTitle(commonShop.getName()); sku.setImage(commonShop.getImage()); - sku.setPrice(price); - sku.setNum(sku.getNum()); - sku.setCreateTime(new Date()); - sku.setPrice(price); - sku.setImage(commonShop.getImage()); + sku.setShopClass(commonShop.getShopClass()); sku.setCreateTime(new Date()); - sku.setPinId(sku.getPinId()); + sku.setEstimatedPrice("" + minEstimatedPrice+ "-" + maxEstimatedPrice); commonOrderService.save(sku); - //计算总价格 - totalPrice = totalPrice.add(price); + + for (Integer i = 0; i < sku.getNum(); i++) { + //创建第三级的订单 + CommonOrder order3 = new CommonOrder(); + order3.setPid(sku.getId()); + order3.setHasChild("0"); + order3.setShopId(commonShop.getId()); + order3.setCreateTime(new Date()); + order3.setPinId(sku.getPinId()); + order3.setNum(1); + commonOrderService.save(order3); + } totalNum = totalNum + sku.getNum(); } + // 计算是否包邮 + boolean isFreeShipping = calculateFreeShipping(commonAddress); //创建主订单 CommonOrder cityOrder = new CommonOrder(); @@ -189,19 +229,17 @@ public class AppletOrderServiceImpl implements AppletOrderService { cityOrder.setName(commonAddress.getName()); cityOrder.setPhone(commonAddress.getPhone()); cityOrder.setAddressDetail(commonAddress.getAddressDetails()); - cityOrder.setName(commonAddress.getName()); - cityOrder.setTitle("组合订单"); - cityOrder.setPrice(totalPrice); - cityOrder.setOneMoney(totalOneMoney); - cityOrder.setTwoMoney(totalTwoMoney); + cityOrder.setTitle("组合订单" + (isFreeShipping ? "(包邮)" : "(需付邮费)")); cityOrder.setPid("0"); cityOrder.setHasChild("1"); cityOrder.setImage(null); cityOrder.setStatus(0); cityOrder.setGoTime(strTime); cityOrder.setAddressId(addressId); - cityOrder.setTestingStatus(0); cityOrder.setCreateTime(new Date()); + cityOrder.setEstimatedPrice("" + minEstimatedPriceSum + "-" + maxEstimatedPriceSum); + // 可以考虑在订单表中添加一个字段来记录是否包邮 + // cityOrder.setFreeShipping(isFreeShipping ? "Y" : "N"); commonOrderService.save(cityOrder); return Result.OK("创建预约订单成功",cityOrder); @@ -226,4 +264,118 @@ public class AppletOrderServiceImpl implements AppletOrderService { return Result.ok(count); } + @Override + @Transactional + public Result checkoutOrder(String token, String id, String listJson) { + + List list = JSON.parseArray(listJson, CommonOrder.class); + + CommonOrder order = commonOrderService.getById(id); + + if (order == null){ + Result.error("订单无效"); + } + + BigDecimal priceSum = new BigDecimal(0);//总价格 + Integer qualifiedNumSum = 0;//合格数量 + Integer noQualifiedNumSum = 0;//不合格数量 + Integer unrecyclableSum = 0;//不可回收数量 + + for (CommonOrder orderReq : list) { + + priceSum.add(orderReq.getPrice()); + qualifiedNumSum += orderReq.getQualifiedNum(); + noQualifiedNumSum += orderReq.getNoQualifiedNum(); + unrecyclableSum += orderReq.getUnrecyclable(); + + commonOrderService.updateById(orderReq); + + if (orderReq.getCommonOrderList() == null) { + continue; + } + + for (CommonOrder orderReq2 : orderReq.getCommonOrderList()) { + commonOrderService.updateById(orderReq2); + } + } + + order.setPrice(priceSum); + order.setQualifiedNum(qualifiedNumSum); + order.setNoQualifiedNum(noQualifiedNumSum); + order.setUnrecyclable(unrecyclableSum); + order.setState(2);//已完成 + order.setState(3);//现金打款 + + commonOrderService.updateById(order); + + return null; + } + + @Override + public Result getCeckoutReasons(String token, String classId, String type) { + if (StringUtils.isBlank(classId)){ + return Result.error("classId分类ID不能为空"); + } + if (StringUtils.isBlank(type)){ + return Result.error("type类型不能为空"); + } + + return Result.ok(commonReasonsService.lambdaQuery() + .eq(CommonReasons::getClassId, classId) + .eq(CommonReasons::getType, type) + ); + } + + /** + * 计算地址是否包邮 + * @param address 收货地址对象 + * @return true表示包邮,false表示不包邮 + */ + private boolean calculateFreeShipping(CommonAddress address) { + // 参数校验 + if (address == null || StringUtils.isBlank(address.getAddress())) { + return false; + } + + try { + // 获取开通包邮城市列表(含完整三级结构) + List openCityList = commonCityService.buildOpenCityTree(); + + // 使用 CommonAddress 服务检查地址是否在开放城市中 + return commonAddressService.isAddressInOpenCities(address.getAddress(), openCityList); + + } catch (Exception e) { + // 如果包邮计算出错,默认不包邮 + System.err.println("计算包邮状态出错: " + e.getMessage()); + return false; + } + } + + + + /** + * 根据地址字符串计算是否包邮(重载方法) + * @param addressString 地址字符串 + * @return true表示包邮,false表示不包邮 + */ + public boolean calculateFreeShippingByAddress(String addressString) { + // 参数校验 + if (StringUtils.isBlank(addressString)) { + return false; + } + + try { + // 获取开通包邮城市列表 + List openCityList = commonCityService.buildOpenCityTree(); + + // 使用 CommonAddress 服务检查地址是否在开放城市中 + return commonAddressService.isAddressInOpenCities(addressString, openCityList); + + } catch (Exception e) { + // 如果包邮计算出错,默认不包邮 + System.err.println("计算包邮状态出错: " + e.getMessage()); + return false; + } + } + } diff --git a/module-common/src/main/java/org/jeecg/api/service/impl/AppletPromotionServiceImpl.java b/module-common/src/main/java/org/jeecg/api/service/impl/AppletPromotionServiceImpl.java index fa34185..11f11c9 100644 --- a/module-common/src/main/java/org/jeecg/api/service/impl/AppletPromotionServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/api/service/impl/AppletPromotionServiceImpl.java @@ -15,6 +15,8 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.config.shiro.ShiroRealm; import org.jeecg.modules.commonConfig.entity.CommonConfig; import org.jeecg.modules.commonConfig.service.ICommonConfigService; +import org.jeecg.modules.commonDistributionRatio.entity.CommonDistributionRatio; +import org.jeecg.modules.commonDistributionRatio.service.ICommonDistributionRatioService; import org.jeecg.modules.commonOrder.entity.CommonOrder; import org.jeecg.modules.commonOrder.service.ICommonOrderService; import org.jeecg.modules.commonPromotion.entity.CommonPromotion; @@ -56,6 +58,8 @@ public class AppletPromotionServiceImpl implements AppletPromotionService { private ICommonConfigService commonConfigService; @Resource private ICommonOrderService commonOrderService; + @Resource + private ICommonDistributionRatioService commonDistributionRatioService; @Autowired private WxHttpUtils wxHttpUtils; @@ -252,22 +256,23 @@ public class AppletPromotionServiceImpl implements AppletPromotionService { Page page = new Page(pageBean.getPageNo(), pageBean.getPageSize()); Page pageList = hanHaiMemberService.lambdaQuery() .eq(HanHaiMember::getShareId,hanHaiMember.getId()) + .eq(state == 0, HanHaiMember::getShareId,hanHaiMember.getId()) + .eq(state != 0, HanHaiMember::getVid,hanHaiMember.getId()) .page(page); - if(state == 0){ - pageList = hanHaiMemberService.lambdaQuery() - .eq(HanHaiMember::getShareId,hanHaiMember.getId()) - .page(page); - }else{ - pageList = hanHaiMemberService.lambdaQuery() - .eq(HanHaiMember::getVid,hanHaiMember.getId()) - .page(page); - } +// if(state == 0){ +// pageList = hanHaiMemberService.lambdaQuery() +// .eq(HanHaiMember::getShareId,hanHaiMember.getId()) +// .page(page); +// }else{ +// pageList = hanHaiMemberService.lambdaQuery() +// .eq(HanHaiMember::getVid,hanHaiMember.getId()) +// .page(page); +// } //创建一个新的集合 Page pageListFans = new Page<>(); - List fansPageBean = new ArrayList<>(); pageList.getRecords().forEach(item->{ //创建一个新的对象 FansPageBean fansPageBean1 = new FansPageBean(); @@ -287,9 +292,7 @@ public class AppletPromotionServiceImpl implements AppletPromotionService { fansPageBean1.setCommission(commission); fansPageBean1.setCreateTime(item.getCreateTime()); - fansPageBean.add(fansPageBean1); }); - pageListFans.setRecords(fansPageBean); return Result.OK(pageListFans); } @@ -312,6 +315,20 @@ public class AppletPromotionServiceImpl implements AppletPromotionService { CommonPromotion commonPromotion = commonPromotionService.getById(id); commonPromotion.setStatus(1); commonPromotionService.updateById(commonPromotion); + + HanHaiMember byId = hanHaiMemberService.getById(commonPromotion.getUserId()); + if (byId != null){ + List list = commonDistributionRatioService. + lambdaQuery() + .orderByAsc(CommonDistributionRatio::getSort) + .list(); + if (list.size() > 0){ + String tid = list.get(0).getId(); + byId.setIsTuiType(tid); + byId.setIsTuiRole("Y"); + } + } + return Result.OK("通过推广表单申请成功"); } diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/controller/CommonRecyclingDestinationController.java b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/controller/CommonRecyclingDestinationController.java new file mode 100644 index 0000000..5d9c154 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/controller/CommonRecyclingDestinationController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.CommonRecyclingDestination.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.CommonRecyclingDestination.entity.CommonRecyclingDestination; +import org.jeecg.modules.CommonRecyclingDestination.service.ICommonRecyclingDestinationService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 回收去向 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Api(tags="回收去向") +@RestController +@RequestMapping("/CommonRecyclingDestination/commonRecyclingDestination") +@Slf4j +public class CommonRecyclingDestinationController extends JeecgController { + @Autowired + private ICommonRecyclingDestinationService commonRecyclingDestinationService; + + /** + * 分页列表查询 + * + * @param commonRecyclingDestination + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "回收去向-分页列表查询") + @ApiOperation(value="回收去向-分页列表查询", notes="回收去向-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(CommonRecyclingDestination commonRecyclingDestination, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(commonRecyclingDestination, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = commonRecyclingDestinationService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param commonRecyclingDestination + * @return + */ + @AutoLog(value = "回收去向-添加") + @ApiOperation(value="回收去向-添加", notes="回收去向-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody CommonRecyclingDestination commonRecyclingDestination) { + commonRecyclingDestinationService.save(commonRecyclingDestination); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param commonRecyclingDestination + * @return + */ + @AutoLog(value = "回收去向-编辑") + @ApiOperation(value="回收去向-编辑", notes="回收去向-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody CommonRecyclingDestination commonRecyclingDestination) { + commonRecyclingDestinationService.updateById(commonRecyclingDestination); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "回收去向-通过id删除") + @ApiOperation(value="回收去向-通过id删除", notes="回收去向-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + commonRecyclingDestinationService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "回收去向-批量删除") + @ApiOperation(value="回收去向-批量删除", notes="回收去向-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.commonRecyclingDestinationService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "回收去向-通过id查询") + @ApiOperation(value="回收去向-通过id查询", notes="回收去向-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + CommonRecyclingDestination commonRecyclingDestination = commonRecyclingDestinationService.getById(id); + if(commonRecyclingDestination==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(commonRecyclingDestination); + } + + /** + * 导出excel + * + * @param request + * @param commonRecyclingDestination + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, CommonRecyclingDestination commonRecyclingDestination) { + return super.exportXls(request, commonRecyclingDestination, CommonRecyclingDestination.class, "回收去向"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, CommonRecyclingDestination.class); + } + +} diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/entity/CommonRecyclingDestination.java b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/entity/CommonRecyclingDestination.java new file mode 100644 index 0000000..3da1af3 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/entity/CommonRecyclingDestination.java @@ -0,0 +1,69 @@ +package org.jeecg.modules.CommonRecyclingDestination.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 回收去向 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Data +@TableName("common_recycling_destination") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="common_recycling_destination对象", description="回收去向") +public class CommonRecyclingDestination implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + /**图片*/ + @Excel(name = "图片", width = 15) + @ApiModelProperty(value = "图片") + private java.lang.String icon; + /**标题*/ + @Excel(name = "标题", width = 15) + @ApiModelProperty(value = "标题") + private java.lang.String title; + /**描述*/ + @Excel(name = "描述", width = 15) + @ApiModelProperty(value = "描述") + private java.lang.String description; + /**内容*/ + @Excel(name = "内容", width = 15) + @ApiModelProperty(value = "内容") + private java.lang.String content; +} diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/mapper/CommonRecyclingDestinationMapper.java b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/mapper/CommonRecyclingDestinationMapper.java new file mode 100644 index 0000000..f11cdb9 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/mapper/CommonRecyclingDestinationMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.CommonRecyclingDestination.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.CommonRecyclingDestination.entity.CommonRecyclingDestination; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 回收去向 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +public interface CommonRecyclingDestinationMapper extends BaseMapper { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/mapper/xml/CommonRecyclingDestinationMapper.xml b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/mapper/xml/CommonRecyclingDestinationMapper.xml new file mode 100644 index 0000000..5164d79 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/mapper/xml/CommonRecyclingDestinationMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/service/ICommonRecyclingDestinationService.java b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/service/ICommonRecyclingDestinationService.java new file mode 100644 index 0000000..576a731 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/service/ICommonRecyclingDestinationService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.CommonRecyclingDestination.service; + +import org.jeecg.modules.CommonRecyclingDestination.entity.CommonRecyclingDestination; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 回收去向 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +public interface ICommonRecyclingDestinationService extends IService { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/service/impl/CommonRecyclingDestinationServiceImpl.java b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/service/impl/CommonRecyclingDestinationServiceImpl.java new file mode 100644 index 0000000..d96c249 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/service/impl/CommonRecyclingDestinationServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.CommonRecyclingDestination.service.impl; + +import org.jeecg.modules.CommonRecyclingDestination.entity.CommonRecyclingDestination; +import org.jeecg.modules.CommonRecyclingDestination.mapper.CommonRecyclingDestinationMapper; +import org.jeecg.modules.CommonRecyclingDestination.service.ICommonRecyclingDestinationService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 回收去向 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Service +public class CommonRecyclingDestinationServiceImpl extends ServiceImpl implements ICommonRecyclingDestinationService { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/CommonRecyclingDestinationList.vue b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/CommonRecyclingDestinationList.vue new file mode 100644 index 0000000..938f7f6 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/CommonRecyclingDestinationList.vue @@ -0,0 +1,191 @@ + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationForm.vue b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationForm.vue new file mode 100644 index 0000000..fa2febc --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationForm.vue @@ -0,0 +1,119 @@ + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationModal.Style#Drawer.vue b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationModal.Style#Drawer.vue new file mode 100644 index 0000000..6884361 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationModal.vue b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationModal.vue new file mode 100644 index 0000000..935fb8f --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue/modules/CommonRecyclingDestinationModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestination.api.ts b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestination.api.ts new file mode 100644 index 0000000..ec016c7 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestination.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/CommonRecyclingDestination/commonRecyclingDestination/list', + save='/CommonRecyclingDestination/commonRecyclingDestination/add', + edit='/CommonRecyclingDestination/commonRecyclingDestination/edit', + deleteOne = '/CommonRecyclingDestination/commonRecyclingDestination/delete', + deleteBatch = '/CommonRecyclingDestination/commonRecyclingDestination/deleteBatch', + importExcel = '/CommonRecyclingDestination/commonRecyclingDestination/importExcel', + exportXls = '/CommonRecyclingDestination/commonRecyclingDestination/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestination.data.ts b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestination.data.ts new file mode 100644 index 0000000..d077d42 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestination.data.ts @@ -0,0 +1,57 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '图片', + align:"center", + dataIndex: 'icon' + }, + { + title: '标题', + align:"center", + dataIndex: 'title', + customRender:render.renderAvatar, + }, + { + title: '描述', + align:"center", + dataIndex: 'description' + }, + { + title: '内容', + align:"center", + dataIndex: 'content', + slots: { customRender: 'htmlSlot' }, + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '图片', + field: 'icon', + component: 'Input', + }, + { + label: '标题', + field: 'title', + component: 'JImageUpload', + componentProps:{ + }, + }, + { + label: '描述', + field: 'description', + component: 'Input', + }, + { + label: '内容', + field: 'content', + component: 'JCodeEditor', //TODO String后缀暂未添加 + }, +]; diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestinationList.vue b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestinationList.vue new file mode 100644 index 0000000..6a7685e --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/CommonRecyclingDestinationList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/components/CommonRecyclingDestinationModal.vue b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/components/CommonRecyclingDestinationModal.vue new file mode 100644 index 0000000..854ce94 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/CommonRecyclingDestination/vue3/components/CommonRecyclingDestinationModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonAddress/service/ICommonAddressService.java b/module-common/src/main/java/org/jeecg/modules/commonAddress/service/ICommonAddressService.java index c651afc..4f36b8c 100644 --- a/module-common/src/main/java/org/jeecg/modules/commonAddress/service/ICommonAddressService.java +++ b/module-common/src/main/java/org/jeecg/modules/commonAddress/service/ICommonAddressService.java @@ -2,6 +2,8 @@ package org.jeecg.modules.commonAddress.service; import org.jeecg.modules.commonAddress.entity.CommonAddress; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.commonCity.entity.CommonCity; +import java.util.List; /** * @Description: 地址信息表 @@ -11,4 +13,12 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface ICommonAddressService extends IService { + /** + * 检查地址是否在开放城市列表中 + * @param address 地址字符串 + * @param openCityList 开放城市树形结构列表 + * @return true表示在开放城市中,false表示不在 + */ + boolean isAddressInOpenCities(String address, List openCityList); + } diff --git a/module-common/src/main/java/org/jeecg/modules/commonAddress/service/impl/CommonAddressServiceImpl.java b/module-common/src/main/java/org/jeecg/modules/commonAddress/service/impl/CommonAddressServiceImpl.java index 65a0205..97ae0e8 100644 --- a/module-common/src/main/java/org/jeecg/modules/commonAddress/service/impl/CommonAddressServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/modules/commonAddress/service/impl/CommonAddressServiceImpl.java @@ -3,9 +3,11 @@ package org.jeecg.modules.commonAddress.service.impl; import org.jeecg.modules.commonAddress.entity.CommonAddress; import org.jeecg.modules.commonAddress.mapper.CommonAddressMapper; import org.jeecg.modules.commonAddress.service.ICommonAddressService; +import org.jeecg.modules.commonCity.entity.CommonCity; import org.springframework.stereotype.Service; - +import org.apache.commons.lang.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; /** * @Description: 地址信息表 @@ -16,4 +18,121 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class CommonAddressServiceImpl extends ServiceImpl implements ICommonAddressService { + /** + * 检查地址是否在开放城市列表中 + * @param address 地址字符串 + * @param openCityList 开放城市树形结构列表 + * @return true表示在开放城市中,false表示不在 + */ + @Override + public boolean isAddressInOpenCities(String address, List openCityList) { + // 参数校验 + if (StringUtils.isBlank(address) || openCityList == null || openCityList.isEmpty()) { + return false; + } + + // 从地址中提取省市区信息 + String[] addressInfo = extractProvinceAndCityAndDistrict(address); + if (addressInfo == null || addressInfo.length < 3 || + StringUtils.isBlank(addressInfo[0]) || StringUtils.isBlank(addressInfo[1]) || StringUtils.isBlank(addressInfo[2])) { + return false; + } + + String province = addressInfo[0]; + String city = addressInfo[1]; + String district = addressInfo[2]; + + // 在开放城市列表中查找匹配的省市区 + return findMatchingCityInOpenList(province, city, district, openCityList); + } + + /** + * 从地址字符串中提取省市区信息 + * @param address 地址字符串 + * @return 返回长度为3的数组,[省份, 城市, 区县],如果提取失败返回null + */ + private String[] extractProvinceAndCityAndDistrict(String address) { + if (StringUtils.isBlank(address)) { + return null; + } + + String province = ""; + String city = ""; + String district = ""; + + // 匹配省份 + java.util.regex.Pattern provincePattern = java.util.regex.Pattern.compile("^(.*?省|.*?自治区|北京市|天津市|上海市|重庆市)"); + java.util.regex.Matcher provinceMatcher = provincePattern.matcher(address); + if (provinceMatcher.find()) { + province = provinceMatcher.group(1); + + // 匹配城市 + java.util.regex.Pattern cityPattern = java.util.regex.Pattern.compile(province + "(.*?市|.*?地区|.*?盟|.*?自治州)"); + java.util.regex.Matcher cityMatcher = cityPattern.matcher(address); + if (cityMatcher.find()) { + city = cityMatcher.group(1); + + // 匹配区县 + java.util.regex.Pattern districtPattern = java.util.regex.Pattern.compile(province + city + "(.*?区|.*?县|.*?市|.*?旗)"); + java.util.regex.Matcher districtMatcher = districtPattern.matcher(address); + if (districtMatcher.find()) { + district = districtMatcher.group(1); + } + } + } + + // 检查是否成功提取了三级结构 + if (StringUtils.isNotBlank(province) && StringUtils.isNotBlank(city) && StringUtils.isNotBlank(district)) { + return new String[]{province, city, district}; + } + + return null; + } + + /** + * 在开放城市列表中查找匹配的省市区 + * @param province 省份名称 + * @param city 城市名称 + * @param district 区县名称 + * @param openCityList 开放城市列表 + * @return true表示找到匹配,false表示未找到 + */ + private boolean findMatchingCityInOpenList(String province, String city, String district, + List openCityList) { + + // 遍历省级节点 + for (CommonCity provinceNode : openCityList) { + // 检查省份是否匹配,且必须有子节点 + if (StringUtils.isNotBlank(provinceNode.getName()) && + provinceNode.getName().equals(province) && + "1".equals(provinceNode.getHasChild()) && + "Y".equals(provinceNode.getOpen()) && + provinceNode.getChildren() != null && !provinceNode.getChildren().isEmpty()) { + + // 遍历市级节点 + for (CommonCity cityNode : provinceNode.getChildren()) { + // 检查城市是否匹配,且必须有子节点 + if (StringUtils.isNotBlank(cityNode.getName()) && + cityNode.getName().equals(city) && + "1".equals(cityNode.getHasChild()) && + "Y".equals(cityNode.getOpen()) && + cityNode.getChildren() != null && !cityNode.getChildren().isEmpty()) { + + // 遍历区县级节点 + for (CommonCity districtNode : cityNode.getChildren()) { + // 检查区县是否匹配且开通 + if (StringUtils.isNotBlank(districtNode.getName()) && + districtNode.getName().equals(district) && + "Y".equals(districtNode.getOpen())) { + return true; + } + } + } + } + } + } + + return false; + } + } diff --git a/module-common/src/main/java/org/jeecg/modules/commonCity/service/ICommonCityService.java b/module-common/src/main/java/org/jeecg/modules/commonCity/service/ICommonCityService.java index d0f31ee..3b24aa3 100644 --- a/module-common/src/main/java/org/jeecg/modules/commonCity/service/ICommonCityService.java +++ b/module-common/src/main/java/org/jeecg/modules/commonCity/service/ICommonCityService.java @@ -35,4 +35,7 @@ public interface ICommonCityService extends IService { /**查询所有数据,无分页*/ List queryTreeListNoPage(QueryWrapper queryWrapper); + /**构建开通包邮城市的完整树形结构*/ + List buildOpenCityTree(); + } diff --git a/module-common/src/main/java/org/jeecg/modules/commonCity/service/impl/CommonCityServiceImpl.java b/module-common/src/main/java/org/jeecg/modules/commonCity/service/impl/CommonCityServiceImpl.java index 94452ad..ac3dcbb 100644 --- a/module-common/src/main/java/org/jeecg/modules/commonCity/service/impl/CommonCityServiceImpl.java +++ b/module-common/src/main/java/org/jeecg/modules/commonCity/service/impl/CommonCityServiceImpl.java @@ -188,4 +188,38 @@ public class CommonCityServiceImpl extends ServiceImpl buildOpenCityTree() { + // 获取省级开通城市列表 + List openCityList = this.lambdaQuery() + .eq(CommonCity::getPid, "0") + .eq(CommonCity::getOpen, "Y") + .list(); + + // 构建完整的树形结构 + for (CommonCity provinceCity : openCityList) { + // 加载市级子节点 + List cityChildren = this.lambdaQuery() + .eq(CommonCity::getPid, provinceCity.getId()) + .eq(CommonCity::getOpen, "Y") + .list(); + + // 为每个市级城市加载区县级数据 + for (CommonCity cityNode : cityChildren) { + List districtChildren = this.lambdaQuery() + .eq(CommonCity::getPid, cityNode.getId()) + .eq(CommonCity::getOpen, "Y") + .list(); + cityNode.setChildren(districtChildren); + } + provinceCity.setChildren(cityChildren); + } + + return openCityList; + } + } diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/controller/CommonDistributionRatioController.java b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/controller/CommonDistributionRatioController.java new file mode 100644 index 0000000..bd627ad --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/controller/CommonDistributionRatioController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.commonDistributionRatio.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.commonDistributionRatio.entity.CommonDistributionRatio; +import org.jeecg.modules.commonDistributionRatio.service.ICommonDistributionRatioService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 分销比例 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Api(tags="分销比例") +@RestController +@RequestMapping("/commonDistributionRatio/commonDistributionRatio") +@Slf4j +public class CommonDistributionRatioController extends JeecgController { + @Autowired + private ICommonDistributionRatioService commonDistributionRatioService; + + /** + * 分页列表查询 + * + * @param commonDistributionRatio + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "分销比例-分页列表查询") + @ApiOperation(value="分销比例-分页列表查询", notes="分销比例-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(CommonDistributionRatio commonDistributionRatio, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(commonDistributionRatio, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = commonDistributionRatioService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param commonDistributionRatio + * @return + */ + @AutoLog(value = "分销比例-添加") + @ApiOperation(value="分销比例-添加", notes="分销比例-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody CommonDistributionRatio commonDistributionRatio) { + commonDistributionRatioService.save(commonDistributionRatio); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param commonDistributionRatio + * @return + */ + @AutoLog(value = "分销比例-编辑") + @ApiOperation(value="分销比例-编辑", notes="分销比例-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody CommonDistributionRatio commonDistributionRatio) { + commonDistributionRatioService.updateById(commonDistributionRatio); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "分销比例-通过id删除") + @ApiOperation(value="分销比例-通过id删除", notes="分销比例-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + commonDistributionRatioService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "分销比例-批量删除") + @ApiOperation(value="分销比例-批量删除", notes="分销比例-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.commonDistributionRatioService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "分销比例-通过id查询") + @ApiOperation(value="分销比例-通过id查询", notes="分销比例-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + CommonDistributionRatio commonDistributionRatio = commonDistributionRatioService.getById(id); + if(commonDistributionRatio==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(commonDistributionRatio); + } + + /** + * 导出excel + * + * @param request + * @param commonDistributionRatio + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, CommonDistributionRatio commonDistributionRatio) { + return super.exportXls(request, commonDistributionRatio, CommonDistributionRatio.class, "分销比例"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, CommonDistributionRatio.class); + } + +} diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/entity/CommonDistributionRatio.java b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/entity/CommonDistributionRatio.java new file mode 100644 index 0000000..461e8f8 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/entity/CommonDistributionRatio.java @@ -0,0 +1,69 @@ +package org.jeecg.modules.commonDistributionRatio.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 分销比例 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Data +@TableName("common_distribution_ratio") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="common_distribution_ratio对象", description="分销比例") +public class CommonDistributionRatio implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + /**名称*/ + @Excel(name = "名称", width = 15) + @ApiModelProperty(value = "名称") + private java.lang.String title; + /**直推百分比*/ + @Excel(name = "直推百分比", width = 15) + @ApiModelProperty(value = "直推百分比") + private java.math.BigDecimal direct; + /**间推百分比*/ + @Excel(name = "间推百分比", width = 15) + @ApiModelProperty(value = "间推百分比") + private java.math.BigDecimal indirect; + /**排序*/ + @Excel(name = "排序", width = 15) + @ApiModelProperty(value = "排序") + private java.lang.Integer sort; +} diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/mapper/CommonDistributionRatioMapper.java b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/mapper/CommonDistributionRatioMapper.java new file mode 100644 index 0000000..59cd404 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/mapper/CommonDistributionRatioMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.commonDistributionRatio.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.commonDistributionRatio.entity.CommonDistributionRatio; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 分销比例 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +public interface CommonDistributionRatioMapper extends BaseMapper { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/mapper/xml/CommonDistributionRatioMapper.xml b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/mapper/xml/CommonDistributionRatioMapper.xml new file mode 100644 index 0000000..db588c6 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/mapper/xml/CommonDistributionRatioMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/service/ICommonDistributionRatioService.java b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/service/ICommonDistributionRatioService.java new file mode 100644 index 0000000..e08deb7 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/service/ICommonDistributionRatioService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.commonDistributionRatio.service; + +import org.jeecg.modules.commonDistributionRatio.entity.CommonDistributionRatio; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 分销比例 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +public interface ICommonDistributionRatioService extends IService { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/service/impl/CommonDistributionRatioServiceImpl.java b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/service/impl/CommonDistributionRatioServiceImpl.java new file mode 100644 index 0000000..59ffe1e --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/service/impl/CommonDistributionRatioServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.commonDistributionRatio.service.impl; + +import org.jeecg.modules.commonDistributionRatio.entity.CommonDistributionRatio; +import org.jeecg.modules.commonDistributionRatio.mapper.CommonDistributionRatioMapper; +import org.jeecg.modules.commonDistributionRatio.service.ICommonDistributionRatioService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 分销比例 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Service +public class CommonDistributionRatioServiceImpl extends ServiceImpl implements ICommonDistributionRatioService { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/CommonDistributionRatioList.vue b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/CommonDistributionRatioList.vue new file mode 100644 index 0000000..41828a0 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/CommonDistributionRatioList.vue @@ -0,0 +1,189 @@ + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioForm.vue b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioForm.vue new file mode 100644 index 0000000..bb0a096 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioForm.vue @@ -0,0 +1,133 @@ + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioModal.Style#Drawer.vue b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioModal.Style#Drawer.vue new file mode 100644 index 0000000..a2cacd7 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioModal.vue b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioModal.vue new file mode 100644 index 0000000..332d04e --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue/modules/CommonDistributionRatioModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatio.api.ts b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatio.api.ts new file mode 100644 index 0000000..31d0604 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatio.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/commonDistributionRatio/commonDistributionRatio/list', + save='/commonDistributionRatio/commonDistributionRatio/add', + edit='/commonDistributionRatio/commonDistributionRatio/edit', + deleteOne = '/commonDistributionRatio/commonDistributionRatio/delete', + deleteBatch = '/commonDistributionRatio/commonDistributionRatio/deleteBatch', + importExcel = '/commonDistributionRatio/commonDistributionRatio/importExcel', + exportXls = '/commonDistributionRatio/commonDistributionRatio/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatio.data.ts b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatio.data.ts new file mode 100644 index 0000000..d07e93d --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatio.data.ts @@ -0,0 +1,75 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '名称', + align:"center", + dataIndex: 'title' + }, + { + title: '直推百分比', + align:"center", + dataIndex: 'direct' + }, + { + title: '间推百分比', + align:"center", + dataIndex: 'indirect' + }, + { + title: '排序', + align:"center", + dataIndex: 'sort' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '名称', + field: 'title', + component: 'Input', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入名称!'}, + ]; + }, + }, + { + label: '直推百分比', + field: 'direct', + component: 'InputNumber', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入直推百分比!'}, + { pattern: '/^([0-9][0-9]{0,1}|100)$/', message: '不符合校验规则!'}, + ]; + }, + }, + { + label: '间推百分比', + field: 'indirect', + component: 'InputNumber', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入间推百分比!'}, + ]; + }, + }, + { + label: '排序', + field: 'sort', + component: 'InputNumber', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入排序!'}, + { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'}, + ]; + }, + }, +]; diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatioList.vue b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatioList.vue new file mode 100644 index 0000000..6a0dc89 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/CommonDistributionRatioList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/components/CommonDistributionRatioModal.vue b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/components/CommonDistributionRatioModal.vue new file mode 100644 index 0000000..df26b92 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/commonDistributionRatio/vue3/components/CommonDistributionRatioModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/commonOrder/entity/CommonOrder.java b/module-common/src/main/java/org/jeecg/modules/commonOrder/entity/CommonOrder.java index f2a5ff1..d5b6d3f 100644 --- a/module-common/src/main/java/org/jeecg/modules/commonOrder/entity/CommonOrder.java +++ b/module-common/src/main/java/org/jeecg/modules/commonOrder/entity/CommonOrder.java @@ -49,11 +49,23 @@ public class CommonOrder implements Serializable { @Excel(name = "订单状态", width = 15, dicCode = "order_type") @Dict(dicCode = "order_type") @ApiModelProperty(value = "订单状态") + /* + 待取件 0 + 已取件 1 + 已完成 2 + 已取消 3 + */ private java.lang.Integer state; /**流程状态*/ @Excel(name = "流程状态", width = 15, dicCode = "order_state") @Dict(dicCode = "order_state") @ApiModelProperty(value = "流程状态") + /* + 在线预约 0 + 快递上门 1 + 透明质检 2 + 现金打款 3 + */ private java.lang.Integer status; /**下单用户*/ @Excel(name = "下单用户", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") @@ -64,6 +76,10 @@ public class CommonOrder implements Serializable { @Excel(name = "订单图片", width = 15) @ApiModelProperty(value = "订单图片") private java.lang.String image; + /**商品分类*/ + @Excel(name = "商品分类", width = 15) + @ApiModelProperty(value = "商品分类") + private java.lang.String shopClass; /**订单标题*/ @Excel(name = "订单标题", width = 15) @ApiModelProperty(value = "订单标题") @@ -160,7 +176,7 @@ public class CommonOrder implements Serializable { private java.util.Date testingTime; /**检测报告*/ @Excel(name = "检测报告", width = 15) - @ApiModelProperty(value = "检测报告") + @ApiModelProperty(value = "检测图片") private java.lang.String testingImages; /**是否包邮*/ @Excel(name = "是否包邮", width = 15) @@ -176,10 +192,25 @@ public class CommonOrder implements Serializable { @ApiModelProperty(value = "品牌标识") private java.lang.String pinId; - @Excel(name = "快递员电话", width = 15) - @ApiModelProperty(value = "快递员电话") - private String deliveryPhone; +// @Excel(name = "快递员电话", width = 15) +// @ApiModelProperty(value = "快递员电话") +// private String deliveryPhone; + @Excel(name = "合格数量", width = 15) + @ApiModelProperty(value = "合格数量") + private Integer qualifiedNum; + + @Excel(name = "不合格数量", width = 15) + @ApiModelProperty(value = "不合格数量") + private Integer noQualifiedNum; + + @Excel(name = "不可回收数量", width = 15) + @ApiModelProperty(value = "不可回收数量") + private Integer unrecyclable; + + @Excel(name = "不可回收数量", width = 15) + @ApiModelProperty(value = "不可回收数量") + private String estimatedPrice;//预估价格 @TableField (exist=false) private List commonOrderList; diff --git a/module-common/src/main/java/org/jeecg/modules/commonShop/entity/CommonShop.java b/module-common/src/main/java/org/jeecg/modules/commonShop/entity/CommonShop.java index 964f722..854b637 100644 --- a/module-common/src/main/java/org/jeecg/modules/commonShop/entity/CommonShop.java +++ b/module-common/src/main/java/org/jeecg/modules/commonShop/entity/CommonShop.java @@ -61,10 +61,10 @@ public class CommonShop implements Serializable { @Excel(name = "商品标题", width = 15) @ApiModelProperty(value = "商品标题") private java.lang.String name; - /**小说作者*/ - @Excel(name = "小说作者", width = 15) - @ApiModelProperty(value = "小说作者") - private java.lang.String author; +// /**小说作者*/ +// @Excel(name = "小说作者", width = 15) +// @ApiModelProperty(value = "小说作者") +// private java.lang.String author; /**商品图片*/ @Excel(name = "商品图片", width = 15) @ApiModelProperty(value = "商品图片") @@ -78,33 +78,33 @@ public class CommonShop implements Serializable { @Excel(name = "商品说明", width = 15) @ApiModelProperty(value = "商品说明") private java.lang.String service; - /**推荐票数*/ - @Excel(name = "推荐票数", width = 15) - @ApiModelProperty(value = "推荐票数") - private java.lang.Integer tuiNum; - /**作者累积亲密值*/ - @Excel(name = "作者累积亲密值", width = 15) - @ApiModelProperty(value = "作者累积亲密值") - private java.lang.Integer qmNum; +// /**推荐票数*/ +// @Excel(name = "推荐票数", width = 15) +// @ApiModelProperty(value = "推荐票数") +// private java.lang.Integer tuiNum; +// /**作者累积亲密值*/ +// @Excel(name = "作者累积亲密值", width = 15) +// @ApiModelProperty(value = "作者累积亲密值") +// private java.lang.Integer qmNum; /**回收规则*/ @Excel(name = "回收规则", width = 15) @ApiModelProperty(value = "回收规则") private java.lang.String details; - /**作者账户*/ - @Excel(name = "作者账户", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") - @Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") - @ApiModelProperty(value = "作者账户") - private java.lang.String userId; +// /**作者账户*/ +// @Excel(name = "作者账户", width = 15, dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") +// @Dict(dictTable = "han_hai_member", dicText = "nick_name", dicCode = "id") +// @ApiModelProperty(value = "作者账户") +// private java.lang.String userId; /**设置状态*/ - @Excel(name = "设置状态", width = 15, dicCode = "book_tool_status") - @Dict(dicCode = "book_tool_status") - @ApiModelProperty(value = "设置状态") - private java.lang.Integer toolStatus; +// @Excel(name = "设置状态", width = 15, dicCode = "book_tool_status") +// @Dict(dicCode = "book_tool_status") +// @ApiModelProperty(value = "设置状态") +// private java.lang.Integer toolStatus; /**作品状态*/ - @Excel(name = "作品状态", width = 15, dicCode = "book_my_status") - @Dict(dicCode = "book_my_status") - @ApiModelProperty(value = "作品状态") - private java.lang.Integer bookStatus; +// @Excel(name = "作品状态", width = 15, dicCode = "book_my_status") +// @Dict(dicCode = "book_my_status") +// @ApiModelProperty(value = "作品状态") +// private java.lang.Integer bookStatus; /**价格*/ @Excel(name = "价格", width = 15) @ApiModelProperty(value = "价格") @@ -113,8 +113,13 @@ public class CommonShop implements Serializable { @Excel(name = "单位", width = 15) @ApiModelProperty(value = "单位") private java.lang.String unit; - /**是否品牌*/ - @Excel(name = "是否品牌", width = 15) - @ApiModelProperty(value = "是否品牌") - private java.lang.String isPin; +// /**是否品牌*/ +// @Excel(name = "是否品牌", width = 15) +// @ApiModelProperty(value = "是否品牌") +// private java.lang.String isPin; + + /**最高价格*/ + @Excel(name = "最高价格", width = 15) + @ApiModelProperty(value = "最高价格") + private java.math.BigDecimal maxPrice; } diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/controller/CommonReasonsController.java b/module-common/src/main/java/org/jeecg/modules/common_reasons/controller/CommonReasonsController.java new file mode 100644 index 0000000..7dfe1c2 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/controller/CommonReasonsController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.common_reasons.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.common_reasons.entity.CommonReasons; +import org.jeecg.modules.common_reasons.service.ICommonReasonsService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 检验理由 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Api(tags="检验理由") +@RestController +@RequestMapping("/common_reasons/commonReasons") +@Slf4j +public class CommonReasonsController extends JeecgController { + @Autowired + private ICommonReasonsService commonReasonsService; + + /** + * 分页列表查询 + * + * @param commonReasons + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "检验理由-分页列表查询") + @ApiOperation(value="检验理由-分页列表查询", notes="检验理由-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(CommonReasons commonReasons, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(commonReasons, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = commonReasonsService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param commonReasons + * @return + */ + @AutoLog(value = "检验理由-添加") + @ApiOperation(value="检验理由-添加", notes="检验理由-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody CommonReasons commonReasons) { + commonReasonsService.save(commonReasons); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param commonReasons + * @return + */ + @AutoLog(value = "检验理由-编辑") + @ApiOperation(value="检验理由-编辑", notes="检验理由-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody CommonReasons commonReasons) { + commonReasonsService.updateById(commonReasons); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "检验理由-通过id删除") + @ApiOperation(value="检验理由-通过id删除", notes="检验理由-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + commonReasonsService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "检验理由-批量删除") + @ApiOperation(value="检验理由-批量删除", notes="检验理由-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.commonReasonsService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "检验理由-通过id查询") + @ApiOperation(value="检验理由-通过id查询", notes="检验理由-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + CommonReasons commonReasons = commonReasonsService.getById(id); + if(commonReasons==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(commonReasons); + } + + /** + * 导出excel + * + * @param request + * @param commonReasons + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, CommonReasons commonReasons) { + return super.exportXls(request, commonReasons, CommonReasons.class, "检验理由"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, CommonReasons.class); + } + +} diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/entity/CommonReasons.java b/module-common/src/main/java/org/jeecg/modules/common_reasons/entity/CommonReasons.java new file mode 100644 index 0000000..0ef3079 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/entity/CommonReasons.java @@ -0,0 +1,67 @@ +package org.jeecg.modules.common_reasons.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 检验理由 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Data +@TableName("common_reasons") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="common_reasons对象", description="检验理由") +public class CommonReasons implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; + /**理由*/ + @Excel(name = "理由", width = 15) + @ApiModelProperty(value = "理由") + private java.lang.String reason; + /**类型*/ + @Excel(name = "类型", width = 15, dicCode = "test_status") + @Dict(dicCode = "test_status") + @ApiModelProperty(value = "类型") + private java.lang.String type; + /**所属分类*/ + @Excel(name = "所属分类", width = 15, dictTable = "common_shop_class", dicText = "title", dicCode = "id") + @Dict(dictTable = "common_shop_class", dicText = "title", dicCode = "id") + @ApiModelProperty(value = "所属分类") + private java.lang.String classId; +} diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/mapper/CommonReasonsMapper.java b/module-common/src/main/java/org/jeecg/modules/common_reasons/mapper/CommonReasonsMapper.java new file mode 100644 index 0000000..fcbdd97 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/mapper/CommonReasonsMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.common_reasons.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.common_reasons.entity.CommonReasons; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 检验理由 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +public interface CommonReasonsMapper extends BaseMapper { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/mapper/xml/CommonReasonsMapper.xml b/module-common/src/main/java/org/jeecg/modules/common_reasons/mapper/xml/CommonReasonsMapper.xml new file mode 100644 index 0000000..736436e --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/mapper/xml/CommonReasonsMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/service/ICommonReasonsService.java b/module-common/src/main/java/org/jeecg/modules/common_reasons/service/ICommonReasonsService.java new file mode 100644 index 0000000..eaa5fb9 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/service/ICommonReasonsService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.common_reasons.service; + +import org.jeecg.modules.common_reasons.entity.CommonReasons; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 检验理由 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +public interface ICommonReasonsService extends IService { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/service/impl/CommonReasonsServiceImpl.java b/module-common/src/main/java/org/jeecg/modules/common_reasons/service/impl/CommonReasonsServiceImpl.java new file mode 100644 index 0000000..8346bd5 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/service/impl/CommonReasonsServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.common_reasons.service.impl; + +import org.jeecg.modules.common_reasons.entity.CommonReasons; +import org.jeecg.modules.common_reasons.mapper.CommonReasonsMapper; +import org.jeecg.modules.common_reasons.service.ICommonReasonsService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 检验理由 + * @Author: jeecg-boot + * @Date: 2025-06-26 + * @Version: V1.0 + */ +@Service +public class CommonReasonsServiceImpl extends ServiceImpl implements ICommonReasonsService { + +} diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/CommonReasonsList.vue b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/CommonReasonsList.vue new file mode 100644 index 0000000..024b79d --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/CommonReasonsList.vue @@ -0,0 +1,204 @@ + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsForm.vue b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsForm.vue new file mode 100644 index 0000000..6fd8485 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsForm.vue @@ -0,0 +1,114 @@ + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsModal.Style#Drawer.vue b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsModal.Style#Drawer.vue new file mode 100644 index 0000000..ba34073 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsModal.Style#Drawer.vue @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsModal.vue b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsModal.vue new file mode 100644 index 0000000..4ee44d7 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue/modules/CommonReasonsModal.vue @@ -0,0 +1,60 @@ + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasons.api.ts b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasons.api.ts new file mode 100644 index 0000000..503515b --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasons.api.ts @@ -0,0 +1,61 @@ +import {defHttp} from '/@/utils/http/axios'; +import {Modal} from 'ant-design-vue'; + +enum Api { + list = '/common_reasons/commonReasons/list', + save='/common_reasons/commonReasons/add', + edit='/common_reasons/commonReasons/edit', + deleteOne = '/common_reasons/commonReasons/delete', + deleteBatch = '/common_reasons/commonReasons/deleteBatch', + importExcel = '/common_reasons/commonReasons/importExcel', + exportXls = '/common_reasons/commonReasons/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + Modal.confirm({ + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasons.data.ts b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasons.data.ts new file mode 100644 index 0000000..a3f0448 --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasons.data.ts @@ -0,0 +1,67 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '理由', + align:"center", + dataIndex: 'reason' + }, + { + title: '类型', + align:"center", + dataIndex: 'type_dictText' + }, + { + title: '所属分类', + align:"center", + dataIndex: 'classId_dictText' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ + { + label: "类型", + field: "type", + component: 'JDictSelectTag', + componentProps:{ + dictCode:"test_status" + }, + colProps: {span: 6}, + }, + { + label: "所属分类", + field: "classId", + component: 'JMultiSelectTag',//暂无该组件 + componentProps:{ + dictCode:"query_field_dictCode?default("")" + }, + colProps: {span: 6}, + }, +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '理由', + field: 'reason', + component: 'Input', + }, + { + label: '类型', + field: 'type', + component: 'JDictSelectTag', + componentProps:{ + dictCode:"test_status" + }, + }, + { + label: '所属分类', + field: 'classId', + component: 'JMultiSelectTag',//TODO 暂无该组件 + componentProps:{ + dictCode:"common_shop_class,title,id" + }, + }, +]; diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasonsList.vue b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasonsList.vue new file mode 100644 index 0000000..a6d83fe --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/CommonReasonsList.vue @@ -0,0 +1,162 @@ + + + + + \ No newline at end of file diff --git a/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/components/CommonReasonsModal.vue b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/components/CommonReasonsModal.vue new file mode 100644 index 0000000..43f3d9b --- /dev/null +++ b/module-common/src/main/java/org/jeecg/modules/common_reasons/vue3/components/CommonReasonsModal.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file