diff --git a/deploy/util/lazy.sh b/deploy/util/lazy.sh index 65a6afad093f613c6b6593a0d6fe8ea2056d64a2..87b169b4d2aa704f1144c97a97bb0201f7da2047 100644 --- a/deploy/util/lazy.sh +++ b/deploy/util/lazy.sh @@ -7,10 +7,11 @@ # 请设置云服务器的IP地址和账户 # 例如 ubuntu@122.51.199.160 -REMOTE=root@118.24.130.185 +#REMOTE=root@118.24.130.185 +REMOTE=root@192.144.174.36 # 请设置本地SSH私钥文件id_rsa路径 # 例如 /home/litemall/id_rsa -ID_RSA=/Users/zhangxinli/.ssh/login_tencent.dms +ID_RSA=/Users/zhangxinli/.ssh/login_36.dms if test -z "$REMOTE" then diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/dto/KindergartenAllinone.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/dto/KindergartenAllinone.java new file mode 100644 index 0000000000000000000000000000000000000000..7d7c413abd79a7017ad162497fad8cdefccc1dd4 --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/dto/KindergartenAllinone.java @@ -0,0 +1,60 @@ +package org.linlinjava.litemall.admin.dto; + +import org.linlinjava.litemall.db.domain.*; + +public class KindergartenAllinone { + LitemallKindergarten kindergarten; + LitemallKindergartenGrade[] kindergartenGrades; + LitemallKindergartenClass[] kindergartenClasses; + LitemallKindergartenRole[] kindergartenRoles; + LitemallKindergartenStudent[] kindergartenStudents; + LitemallKindergartenStudentRelative[] kindergartenStudentRelatives; + + public LitemallKindergarten getKindergarten() { + return kindergarten; + } + + public void setKindergarten(LitemallKindergarten kindergarten) { + this.kindergarten = kindergarten; + } + + public LitemallKindergartenGrade[] getKindergartenGrades() { + return kindergartenGrades; + } + + public void setKindergartenGrades(LitemallKindergartenGrade[] kindergartenGrades) { + this.kindergartenGrades = kindergartenGrades; + } + + public LitemallKindergartenClass[] getKindergartenClasses() { + return kindergartenClasses; + } + + public void setKindergartenClasses(LitemallKindergartenClass[] kindergartenClasses) { + this.kindergartenClasses = kindergartenClasses; + } + + public LitemallKindergartenRole[] getKindergartenRoles() { + return kindergartenRoles; + } + + public void setKindergartenRoles(LitemallKindergartenRole[] kindergartenRoles) { + this.kindergartenRoles = kindergartenRoles; + } + + public LitemallKindergartenStudent[] getKindergartenStudents() { + return kindergartenStudents; + } + + public void setKindergartenStudents(LitemallKindergartenStudent[] kindergartenStudents) { + this.kindergartenStudents = kindergartenStudents; + } + + public LitemallKindergartenStudentRelative[] getKindergartenStudentRelatives() { + return kindergartenStudentRelatives; + } + + public void setKindergartenStudentRelatives(LitemallKindergartenStudentRelative[] kindergartenStudentRelatives) { + this.kindergartenStudentRelatives = kindergartenStudentRelatives; + } +} diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/BenefitJob.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/BenefitJob.java index 81c38bda7268612a2e6c8a6e8c473ef861b27082..70b9e8c22365269a67fe01c1995dd300dd565882 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/BenefitJob.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/BenefitJob.java @@ -54,7 +54,9 @@ public class BenefitJob { */ // @Scheduled(cron = "1 0 0 * * ?") // public void distributeIn0Clock1minuteEveryDay() { -// this.distributeBenefit(); +// if (SystemConfig.isFirstTypeMall()) { +// this.distributeBenefit(); +// } // } /** @@ -62,7 +64,9 @@ public class BenefitJob { */ @Scheduled(fixedDelay = 10 * 1000) public void testDistributeBenefit() { - this.distributeBenefit(); + if (SystemConfig.isFirstTypeMall()) { + this.distributeBenefit(); + } } private void distributeBenefit() { @@ -314,12 +318,16 @@ public class BenefitJob { */ // @Scheduled(cron = "0 0 1 16 * ?") // public void kernelDistributeInSixthEveryMonth() { -// this.distributeBenefitForKernel(); +// if (SystemConfig.isFirstTypeMall()) { +// this.distributeBenefitForKernel(); +// } // } // // @Scheduled(cron = "0 0 1 1 * ?") // public void kernelDistributeInFirstEveryMonth() { -// this.distributeBenefitForKernel(); +// if (SystemConfig.isFirstTypeMall()) { +// this.distributeBenefitForKernel(); +// } // } public void testKernelDistribution() { diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/KindergartenBenefitJob.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/KindergartenBenefitJob.java new file mode 100644 index 0000000000000000000000000000000000000000..fefdf1f3514a614e2f66bf00fc9ec4fe1156a834 --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/job/KindergartenBenefitJob.java @@ -0,0 +1,186 @@ +package org.linlinjava.litemall.admin.job; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.linlinjava.litemall.core.system.SystemConfig; +import org.linlinjava.litemall.db.domain.*; +import org.linlinjava.litemall.db.service.*; +import org.linlinjava.litemall.db.util.OrderUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 检测订单状态 + */ +@Component +public class KindergartenBenefitJob { + private final Log logger = LogFactory.getLog(org.linlinjava.litemall.admin.job.KindergartenBenefitJob.class); + + @Autowired + private LitemallUserService userService; + @Autowired + private LitemallGoodsBenefitService goodsBenefitService; + @Autowired + private LitemallGoodsBenefitingService goodsBenefitingService; + @Autowired + private LitemallGoodsBenefitRecordService goodsBenefitRecordService; + @Autowired + private LitemallGoodsBenefitedService goodsBenefitedService; + @Autowired + private LitemallWithdrawService withdrawService; + @Autowired + private LitemallOrderService orderService; + @Autowired + private LitemallKindergartenStudentService kindergartenStudentService; + @Autowired + private LitemallKindergartenRoleService kindergartenRoleService; + + //分润状态 0初始状态 1支付成功等待分润 11已经开始分润 12分润完成 13董事分润完成 + private byte BENEFITING_TYPE_INIT = 0; + private byte BENEFITING_TYPE_PAYED = 1; + private byte BENEFITING_TYPE_START = 11; + private byte BENEFITING_TYPE_AGENT_DONE = 12; + + /** + * 每日凌晨12时1分进行分润 + */ +// @Scheduled(cron = "1 0 0 * * ?") +// public void distributeIn0Clock1minuteEveryDay() { +// if (SystemConfig.isSecondTypeMall()) { +// distributeBenefit(); +// } +// } + + /** + * Test distribute + */ + @Scheduled(fixedDelay = 10 * 1000) + public void testDistributeBenefit() { + if (SystemConfig.isSecondTypeMall()) { + distributeBenefit(); + } + } + + public void distributeBenefit() { + // 这里是每天凌晨 把支付成功订单下面的商品加入分润 但是要考虑找一个高效算法 注意检索的时候要看付款是否成功 + this.sonTaskAddOrderGoodsToBenefiting(); + // 进行分润 + this.sonTaskGoodsBenefit(); + } + + private void sonTaskAddOrderGoodsToBenefiting() { + logger.info("系统开启检索分润商品表 把支付成功的订单商品加入到分润表"); + List goodsBenefitingList = goodsBenefitingService.getAllInitBenefitingItem(); + for (LitemallGoodsBenefiting goodsBenefiting : goodsBenefitingList) { + if (goodsBenefiting.getStatus() != BENEFITING_TYPE_INIT) { + continue; + } + + // 根据分润表初始状态的商品 检索对应订单是否支付完成 如果完成修改分润表商品状态至待分润 + Integer orderId = goodsBenefiting.getOrderId(); + LitemallOrder order = orderService.findById(orderId); + if (order != null) { + if (OrderUtil.isAbleToBenefit(order)) { + // 更新分润表 + goodsBenefiting.setStatus(BENEFITING_TYPE_PAYED); + goodsBenefitingService.updateById(goodsBenefiting); + } else if (OrderUtil.isCancelStatus(order) || OrderUtil.isAutoCancelStatus(order)) { + // 没有进度的订单 如果取消需要删除当前分润商品记录 + goodsBenefiting.setDeleted(true); + goodsBenefitingService.updateById(goodsBenefiting); + } + } + } + logger.info("系统结束检索分润商品表 把支付成功的订单商品加入到分润表"); + } + + private void sonTaskGoodsBenefit() { + logger.info("系统开启分润任务"); + List goodsBenefitingList = goodsBenefitingService.getAllActiveBenefitingItem(); + for (LitemallGoodsBenefiting goodsBenefiting : goodsBenefitingList) { + + if (goodsBenefiting.getStatus() != BENEFITING_TYPE_PAYED && goodsBenefiting.getStatus() != BENEFITING_TYPE_START) { + continue; + } + + LitemallOrder order = orderService.findById(goodsBenefiting.getOrderId()); + if (order == null) { + logger.error("sonTaskGoodsBenefit ==> 数据错误 无效的订单"); + continue; + } + LitemallUser buyerUser = userService.findById(goodsBenefiting.getUserId()); + if (buyerUser == null) { + logger.error("sonTaskGoodsBenefit ==> 数据错误 无效的买家"); + continue; + } + LitemallGoodsBenefit goodsBenefit = goodsBenefitService.queryByGid(goodsBenefiting.getGoodsId()); + if (goodsBenefit == null) { + logger.error("sonTaskGoodsBenefit ==> 数据错误 无效的商品分润规则"); + continue; + } + LitemallKindergartenStudent kindergartenStudent = kindergartenStudentService.findById(order.getStudentId()); + if (kindergartenStudent == null) { + logger.error("sonTaskGoodsBenefit ==> 数据错误 无效的学生信息"); + continue; + } + + // ------ 老师用户分润 + boolean headerMasterBenefited = false; + LitemallKindergartenRole teacher = + kindergartenRoleService.findHeadmasterByKIdGIdCId( + kindergartenStudent.getKindergartenId(), + kindergartenStudent.getGradeId(), + kindergartenStudent.getClassId()); + if (teacher != null) { + LitemallUser teacherUser = userService.findById(teacher.getUserId()); + if (teacherUser != null) { + BigDecimal teacherUnitBenefit = goodsBenefit.getFirstLineBenefit().multiply(new BigDecimal(goodsBenefiting.getNumber())); + this.addBenefit2User2Record(teacherUser, teacherUnitBenefit, goodsBenefiting, (byte) 11); + headerMasterBenefited = true; + } + } + + // ------ 园长用户分润 + boolean gardenerBenefited = false; + LitemallKindergartenRole gardener = kindergartenRoleService.findGardenerByKId(kindergartenStudent.getKindergartenId()); + if (gardener != null ) { + LitemallUser gardenerUser = userService.findById(gardener.getUserId()); + if (gardenerUser != null) { + BigDecimal gardenerUnitBenefit = goodsBenefit.getSecondLineBenefit().multiply(new BigDecimal(goodsBenefiting.getNumber())); + this.addBenefit2User2Record(gardenerUser, gardenerUnitBenefit, goodsBenefiting, (byte) 12); + gardenerBenefited = true; + } + } + + // 更改状态 只要老师和园长任一分润完成就算完成 + if (headerMasterBenefited || gardenerBenefited) { + goodsBenefiting.setStatus(BENEFITING_TYPE_AGENT_DONE); + goodsBenefitingService.updateById(goodsBenefiting); + } + } + + logger.info("系统结束分润任务"); + } + + private void addBenefit2User2Record(LitemallUser user, BigDecimal benefit, LitemallGoodsBenefiting goodsBenefiting, byte type) { + user.setMoney(user.getMoney().add(benefit)); + userService.updateById(user); + + LitemallGoodsBenefitRecord goodsBenefitRecord = new LitemallGoodsBenefitRecord(); + goodsBenefitRecord.setOrderId(goodsBenefiting.getOrderId()); + goodsBenefitRecord.setGoodsId(goodsBenefiting.getGoodsId()); + goodsBenefitRecord.setNumber(goodsBenefiting.getNumber()); + goodsBenefitRecord.setUserId(user.getId()); +// goodsBenefitRecord.setStageDay(stageDay); + goodsBenefitRecord.setBenefitAmount(benefit); + goodsBenefitRecord.setBenefitType(type); + goodsBenefitRecordService.add(goodsBenefitRecord); + +// goodsBenefitedService.addBalanceBenefit(user.getId(), goodsBenefiting.getGoodsId(), benefit); + } + +} diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminGoodsService.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminGoodsService.java index 7e6ef32f1c2a22f021a8af7b5c67ff88e529640e..118ba78976ac527214a50f500915c66be4d227ae 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminGoodsService.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminGoodsService.java @@ -20,6 +20,8 @@ import java.util.List; import java.util.Map; import static org.linlinjava.litemall.admin.util.AdminResponseCode.GOODS_NAME_EXIST; +import static org.linlinjava.litemall.admin.util.AdminResponseCode.GOODS_STORE_NOTEXIST; +import static org.linlinjava.litemall.admin.util.AdminResponseCode.GOODS_STORE_NULL; @Service public class AdminGoodsService { @@ -38,6 +40,8 @@ public class AdminGoodsService { @Autowired private LitemallBrandService brandService; @Autowired + private LitemallStoreService storeService; + @Autowired private LitemallCartService cartService; @Autowired private QCodeService qCodeService; @@ -79,6 +83,14 @@ public class AdminGoodsService { return ResponseUtil.badArgumentValue(); } } + // 所属商店必须设置 + Integer storeId = goods.getStoreId(); + if (storeId == null || storeId == 0) { + return ResponseUtil.fail(GOODS_STORE_NULL, "从属商店不能为空"); + } + else if (storeService.findById(storeId) == null) { + return ResponseUtil.fail(GOODS_STORE_NOTEXIST, "从属商店不存在"); + } LitemallGoodsAttribute[] attributes = goodsAllinone.getAttributes(); for (LitemallGoodsAttribute attribute : attributes) { diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminKindergartenService.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminKindergartenService.java new file mode 100644 index 0000000000000000000000000000000000000000..aa9b3b869a472d2c70a682abaf9e471d1d020e8d --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/service/AdminKindergartenService.java @@ -0,0 +1,276 @@ +package org.linlinjava.litemall.admin.service; + +import io.swagger.models.auth.In; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.linlinjava.litemall.admin.dto.KindergartenAllinone; +import org.linlinjava.litemall.core.util.RegexUtil; +import org.linlinjava.litemall.core.util.ResponseUtil; +import org.linlinjava.litemall.db.domain.*; +import org.linlinjava.litemall.db.service.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class AdminKindergartenService { + private final Log logger = LogFactory.getLog(AdminKindergartenService.class); + + @Autowired + private LitemallKindergartenService kindergartenService; + @Autowired + private LitemallUserService userService; + + + public Object list(Integer kindergartenId, String name, Integer page, Integer limit, String sort, String order) { + List kindergartenList = kindergartenService.findAll(); + return ResponseUtil.okList(kindergartenList); + } + + @Transactional + public Object delete(Integer kindergartenId) { + kindergartenService.delete(kindergartenId); + kindergartenService.deleteGradeUnderKindergarten(kindergartenId); + return ResponseUtil.ok(); + } + + @Transactional + public Object create(KindergartenAllinone kindergartenAllinone) { + Integer kindergartenId = kindergartenService.add(kindergartenAllinone.getKindergarten()); + if (kindergartenId <= 0) { + return ResponseUtil.fail(); + } + + LitemallKindergartenGrade[] kindergartenGrades = kindergartenAllinone.getKindergartenGrades(); + LitemallKindergartenClass[] kindergartenClasses = kindergartenAllinone.getKindergartenClasses(); + LitemallKindergartenRole[] kindergartenRoles = kindergartenAllinone.getKindergartenRoles(); + LitemallKindergartenStudent[] kindergartenStudents = kindergartenAllinone.getKindergartenStudents(); + LitemallKindergartenStudentRelative[] kindergartenStudentRelatives = kindergartenAllinone.getKindergartenStudentRelatives(); + + for (LitemallKindergartenGrade kindergartenGrade : kindergartenGrades) { + kindergartenGrade.setKindergartenId(kindergartenId); + kindergartenService.addGrade(kindergartenGrade); + } + + for (LitemallKindergartenClass kindergartenClass : kindergartenClasses) { + kindergartenClass.setKindergartenId(kindergartenId); + kindergartenService.addClass(kindergartenClass); + } + + for (LitemallKindergartenRole kindergartenRole : kindergartenRoles) { + kindergartenRole.setKindergartenId(kindergartenId); + kindergartenService.addRole(kindergartenRole); + } + + for (LitemallKindergartenStudent kindergartenStudent : kindergartenStudents) { + kindergartenStudent.setKindergartenId(kindergartenId); + kindergartenService.addStudent(kindergartenStudent); + } + + for (LitemallKindergartenStudentRelative kindergartenStudentRelative : kindergartenStudentRelatives) { + kindergartenStudentRelative.setKindergartenId(kindergartenId); + kindergartenService.addStudentRelative(kindergartenStudentRelative); + } + + return ResponseUtil.ok(); + } + @Transactional + public Object create(LitemallKindergarten kindergarten) { + Integer kindergartenId = kindergartenService.add(kindergarten); + if (kindergartenId <= 0) { + return ResponseUtil.fail(); + } + return ResponseUtil.ok(kindergarten); + } + + /** + * + * @param kindergartenAllinone + * @return + * + * 前后端这里使用了一个小技巧(跟goods的方法相同): + * 如果前端传来的update_time字段是空,则说明前端已经更新了某个记录,则这个记录会更新; + * 否则说明这个记录没有编辑过,无需更新该记录。 + */ + @Transactional + public Object update(KindergartenAllinone kindergartenAllinone) { + kindergartenService.update(kindergartenAllinone.getKindergarten()); + + LitemallKindergartenGrade[] kindergartenGrades = kindergartenAllinone.getKindergartenGrades(); + LitemallKindergartenClass[] kindergartenClasses = kindergartenAllinone.getKindergartenClasses(); + LitemallKindergartenRole[] kindergartenRoles = kindergartenAllinone.getKindergartenRoles(); + LitemallKindergartenStudent[] kindergartenStudents = kindergartenAllinone.getKindergartenStudents(); + LitemallKindergartenStudentRelative[] kindergartenStudentRelatives = kindergartenAllinone.getKindergartenStudentRelatives(); + + for (LitemallKindergartenGrade kindergartenGrade : kindergartenGrades) { + kindergartenGrade.setKindergartenId(kindergartenAllinone.getKindergarten().getId()); + if (kindergartenGrade.getId() == null) { + kindergartenService.addGrade(kindergartenGrade); + } + else { + kindergartenService.updateGrade(kindergartenGrade); + } + } + + for (LitemallKindergartenClass kindergartenClass : kindergartenClasses) { + kindergartenClass.setKindergartenId(kindergartenAllinone.getKindergarten().getId()); + if (kindergartenClass.getId() == null) { + kindergartenService.addClass(kindergartenClass); + } + else { + kindergartenService.updateClass(kindergartenClass); + } + } + + for (LitemallKindergartenRole kindergartenRole : kindergartenRoles) { + kindergartenRole.setKindergartenId(kindergartenAllinone.getKindergarten().getId()); + if (kindergartenRole.getId() == null) { + kindergartenService.addRole(kindergartenRole); + } + else { + kindergartenService.updateRole(kindergartenRole); + } + } + + for (LitemallKindergartenStudent kindergartenStudent : kindergartenStudents) { + kindergartenStudent.setKindergartenId(kindergartenAllinone.getKindergarten().getId()); + if (kindergartenStudent.getId() == null) { + kindergartenService.addStudent(kindergartenStudent); + } + else { + kindergartenService.updateStudent(kindergartenStudent); + } + } + + for (LitemallKindergartenStudentRelative kindergartenStudentRelative : kindergartenStudentRelatives) { + kindergartenStudentRelative.setKindergartenId(kindergartenAllinone.getKindergarten().getId()); + if (kindergartenStudentRelative.getId() == null) { + kindergartenService.addStudentRelative(kindergartenStudentRelative); + } + else { + kindergartenService.updateStudentRelative(kindergartenStudentRelative); + } + } + + return ResponseUtil.ok(); + } + @Transactional + public Object update(LitemallKindergarten kindergarten) { + kindergartenService.update(kindergarten); + return ResponseUtil.ok(); + } + + @Transactional + public Object detail(Integer kindergartenId) { + + LitemallKindergarten kindergarten = kindergartenService.findById(kindergartenId); + + List kindergartenGrades = kindergartenService.findGradesUnderKindergarten(kindergartenId); + List kindergartenClasses = kindergartenService.findClassesUnderKindergarten(kindergartenId); + List kindergartenRoles = kindergartenService.findRolesUnderKindergarten(kindergartenId); + List kindergartenStudents = kindergartenService.findStudentsUnderKindergarten(kindergartenId); + List kindergartenStudentRelatives = kindergartenService.findStudentRelativesUnderKindergarten(kindergartenId); + + Map data = new HashMap<>(); + data.put("kindergarten", kindergarten); + data.put("kindergartenGrades", kindergartenGrades); + data.put("kindergartenClasses", kindergartenClasses); + data.put("kindergartenRoles", kindergartenRoles); + data.put("kindergartenStudents", kindergartenStudents); + data.put("kindergartenStudentRelatives", kindergartenStudentRelatives); + + return ResponseUtil.ok(data); + } + + @Transactional + public Object createGrade(LitemallKindergartenGrade kindergartenGrade) { + if (kindergartenService.addGrade(kindergartenGrade)) { + return ResponseUtil.ok(kindergartenGrade); + } + return ResponseUtil.fail(); + } + + @Transactional + public Object createClass(LitemallKindergartenClass kindergartenClass) { + if (kindergartenService.addClass(kindergartenClass)) { + return ResponseUtil.ok(kindergartenClass); + } + return ResponseUtil.fail(); + } + + @Transactional + public Object createRole(LitemallKindergartenRole kindergartenRole) { + if (RegexUtil.isMobileExact(kindergartenRole.getMobile())) { + LitemallUser user = userService.findByMobile(kindergartenRole.getMobile()); + if (user != null) + kindergartenRole.setUserId(user.getId()); + } + if (kindergartenService.addRole(kindergartenRole)) { + return ResponseUtil.ok(kindergartenRole); + } + return ResponseUtil.fail(); + } + + @Transactional + public Object createStudent(LitemallKindergartenStudent kindergartenStudent) { + if (RegexUtil.isMobileExact(kindergartenStudent.getMobile())) { + LitemallUser user = userService.findByMobile(kindergartenStudent.getMobile()); + if (user != null) + kindergartenStudent.setUserId(user.getId()); + } + if (kindergartenService.addStudent(kindergartenStudent)) { + return ResponseUtil.ok(kindergartenStudent); + } + return ResponseUtil.fail(); + } + + @Transactional + public Object createStudentRelative(LitemallKindergartenStudentRelative kindergartenStudentRelative) { + if (RegexUtil.isMobileExact(kindergartenStudentRelative.getMobile())) { + LitemallUser user = userService.findByMobile(kindergartenStudentRelative.getMobile()); + if (user != null) + kindergartenStudentRelative.setUserId(user.getId()); + } + if (kindergartenService.addStudentRelative(kindergartenStudentRelative)) { + return ResponseUtil.ok(kindergartenStudentRelative); + } + return ResponseUtil.fail(); + } + + @Transactional + public Object deleteGrade(Integer gradeId) { + kindergartenService.deleteGrade(gradeId); + return ResponseUtil.ok(); + } + + @Transactional + public Object deleteClass(Integer classId) { + kindergartenService.deleteClass(classId); + return ResponseUtil.ok(); + } + + @Transactional + public Object deleteRole(Integer roleId) { + kindergartenService.deleteRole(roleId); + return ResponseUtil.ok(); + } + + @Transactional + public Object deleteStudent(Integer studentId) { + kindergartenService.deleteStudent(studentId); + return ResponseUtil.ok(); + } + + @Transactional + public Object deleteStudentRelative(Integer studentRelativeId) { + kindergartenService.deleteStudentRelative(studentRelativeId); + return ResponseUtil.ok(); + } +} diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java index 3b926b30e6205f7ce9abe23ee6a0233be73556a9..3d8a82735150d0d07149b413231194ae1697bba0 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/AdminResponseCode.java @@ -9,6 +9,8 @@ public class AdminResponseCode { public static final Integer ADMIN_INVALID_ACCOUNT = 605; public static final Integer GOODS_UPDATE_NOT_ALLOWED = 610; public static final Integer GOODS_NAME_EXIST = 611; + public static final Integer GOODS_STORE_NULL = 612; + public static final Integer GOODS_STORE_NOTEXIST = 613; public static final Integer ORDER_CONFIRM_NOT_ALLOWED = 620; public static final Integer ORDER_REFUND_FAILED = 621; public static final Integer ORDER_REPLY_EXIST = 622; diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminKindergartenController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminKindergartenController.java new file mode 100644 index 0000000000000000000000000000000000000000..d825c267e539df32daf9c925b02a6daaae31f74e --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminKindergartenController.java @@ -0,0 +1,260 @@ +package org.linlinjava.litemall.admin.web; + +import io.swagger.models.auth.In; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc; +import org.linlinjava.litemall.admin.dto.KindergartenAllinone; +import org.linlinjava.litemall.admin.service.AdminKindergartenService; +import org.linlinjava.litemall.core.validator.Order; +import org.linlinjava.litemall.core.validator.Sort; +import org.linlinjava.litemall.db.domain.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotNull; +import java.util.ArrayList; +import java.util.List; + +@RestController +@RequestMapping("/admin/kindergarten") +@Validated +public class AdminKindergartenController { + private final Log logger = LogFactory.getLog(AdminKindergartenController.class); + + @Autowired + private AdminKindergartenService adminKindergartenService; + + + /** + * 列表幼儿园 + * + * @param kindergartenId + * @param name + * @param page + * @param limit + * @param sort + * @param order + * @return + */ + @RequiresPermissions("admin:kindergarten:list") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "查询") + @GetMapping("/list") + public Object list(Integer kindergartenId, String name, + @RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer limit, + @Sort @RequestParam(defaultValue = "add_time") String sort, + @Order @RequestParam(defaultValue = "desc") String order) { + return adminKindergartenService.list(kindergartenId, name, page, limit, sort, order); + } + + /** + * 删除幼儿园 + * + * @param kindergartenId + * @return + */ + @RequiresPermissions("admin:kindergarten:delete") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "删除") + @GetMapping("/delete") + public Object delete(@NotNull Integer kindergartenId) { + return adminKindergartenService.delete(kindergartenId); + } + + /** + * 添加幼儿园全家桶 + * + * @param kindergartenAllinone + * @return + */ + @RequiresPermissions("admin:kindergarten:createAllInOne") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "上架") + @PostMapping("/createAllInOne") + public Object createAllInOne(@RequestBody KindergartenAllinone kindergartenAllinone) { + return adminKindergartenService.create(kindergartenAllinone); + } + + /** + * 编辑幼儿园全家桶 + * + * @param kindergartenAllinone + * @return + */ + @RequiresPermissions("admin:kindergarten:updateAllInOne") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "编辑") + @PostMapping("/updateAllInOne") + public Object updateAllInOne(@RequestBody KindergartenAllinone kindergartenAllinone) { + return adminKindergartenService.update(kindergartenAllinone); + } + + /** + * 添加幼儿园 + * + * @param kindergarten + * @return + */ + @RequiresPermissions("admin:kindergarten:create") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "上架") + @PostMapping("/create") + public Object create(@RequestBody LitemallKindergarten kindergarten) { + return adminKindergartenService.create(kindergarten); + } + + /** + * 编辑幼儿园 + * + * @param kindergarten + * @return + */ + @RequiresPermissions("admin:kindergarten:update") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "编辑") + @PostMapping("/update") + public Object update(@RequestBody LitemallKindergarten kindergarten) { + return adminKindergartenService.update(kindergarten); + } + + /** + * 幼儿园详情 + * + * @param kindergartenId + * @return + */ + @RequiresPermissions("admin:kindergarten:detail") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "详情") + @GetMapping("/detail") + public Object detail(@NotNull Integer kindergartenId) { + return adminKindergartenService.detail(kindergartenId); + } + + /** + * 添加年级 + * + * @param kindergartenGrade + * @return + */ + @RequiresPermissions("admin:kindergarten:createGrade") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "创建") + @PostMapping("/createGrade") + public Object createGrade(@RequestBody LitemallKindergartenGrade kindergartenGrade) { + return adminKindergartenService.createGrade(kindergartenGrade); + } + + /** + * 删除年级 + * + * @param kindergartenGradeId + * @return + */ + @RequiresPermissions("admin:kindergarten:deleteGrade") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "删除") + @GetMapping("/deleteGrade") + public Object deleteGrade(@NotNull Integer kindergartenGradeId) { + return adminKindergartenService.deleteGrade(kindergartenGradeId); + } + + /** + * 添加班级 + * + * @param kindergartenClass + * @return + */ + @RequiresPermissions("admin:kindergarten:createClass") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "创建") + @PostMapping("/createClass") + public Object createClass(@RequestBody LitemallKindergartenClass kindergartenClass) { + return adminKindergartenService.createClass(kindergartenClass); + } + + /** + * 删除班级 + * + * @param kindergartenClassId + * @return + */ + @RequiresPermissions("admin:kindergarten:deleteClass") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "删除") + @GetMapping("/deleteClass") + public Object deleteClass(@NotNull Integer kindergartenClassId) { + return adminKindergartenService.deleteClass(kindergartenClassId); + } + + /** + * 添加角色 + * + * @param kindergartenRole + * @return + */ + @RequiresPermissions("admin:kindergarten:createRole") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "创建") + @PostMapping("/createRole") + public Object createRole(@RequestBody LitemallKindergartenRole kindergartenRole) { + return adminKindergartenService.createRole(kindergartenRole); + } + + /** + * 删除角色 + * + * @param kindergartenRoleId + * @return + */ + @RequiresPermissions("admin:kindergarten:deleteRole") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "删除") + @GetMapping("/deleteRole") + public Object deleteRole(@NotNull Integer kindergartenRoleId) { + return adminKindergartenService.deleteRole(kindergartenRoleId); + } + + /** + * 添加学生 + * + * @param kindergartenStudent + * @return + */ + @RequiresPermissions("admin:kindergarten:createStudent") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "创建") + @PostMapping("/createStudent") + public Object createStudent(@RequestBody LitemallKindergartenStudent kindergartenStudent) { + return adminKindergartenService.createStudent(kindergartenStudent); + } + + /** + * 删除学生 + * + * @param kindergartenStudentId + * @return + */ + @RequiresPermissions("admin:kindergarten:deleteStudent") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "删除") + @GetMapping("/deleteStudent") + public Object deleteStudent(@NotNull Integer kindergartenStudentId) { + return adminKindergartenService.deleteStudent(kindergartenStudentId); + } + + /** + * 添加家长 + * + * @param kindergartenStudentRelative + * @return + */ + @RequiresPermissions("admin:kindergarten:createStudentRelative") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "创建") + @PostMapping("/createStudentRelative") + public Object createStudentRelative(@RequestBody LitemallKindergartenStudentRelative kindergartenStudentRelative) { + return adminKindergartenService.createStudentRelative(kindergartenStudentRelative); + } + + /** + * 删除家长 + * + * @param kindergartenStudentRelativeId + * @return + */ + @RequiresPermissions("admin:kindergarten:deleteStudentRelative") + @RequiresPermissionsDesc(menu = {"幼儿园管理", "幼儿园管理"}, button = "删除") + @GetMapping("/deleteStudentRelative") + public Object deleteStudentRelative(@NotNull Integer kindergartenStudentRelativeId) { + return adminKindergartenService.deleteStudentRelative(kindergartenStudentRelativeId); + } +} diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java index 6835f24e83cac38291f2106c38b9f62454a30290..9e35105123809c104e185285b74420fd10de3109 100644 --- a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRegionController.java @@ -1,5 +1,6 @@ package org.linlinjava.litemall.admin.web; +import io.swagger.models.auth.In; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.linlinjava.litemall.admin.vo.RegionVo; @@ -33,6 +34,13 @@ public class AdminRegionController { return ResponseUtil.okList(regionList); } + @GetMapping("/provinceList") + public Object provinceList() { + byte provinceType = 1; + List provinceList = regionService.queryByType(provinceType); + return ResponseUtil.okList(provinceList); + } + @GetMapping("/list") public Object list() { List regionVoList = new ArrayList<>(); diff --git a/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminStoreController.java b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminStoreController.java new file mode 100644 index 0000000000000000000000000000000000000000..929a7cd76488d12fa9e11ce776eff131a1dc2452 --- /dev/null +++ b/litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminStoreController.java @@ -0,0 +1,148 @@ +package org.linlinjava.litemall.admin.web; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc; +import org.linlinjava.litemall.core.util.ResponseUtil; +import org.linlinjava.litemall.db.service.LitemallStoreService; +import org.linlinjava.litemall.db.service.LitemallStoreRoleService; +import org.linlinjava.litemall.core.validator.Order; +import org.linlinjava.litemall.core.validator.Sort; +import org.linlinjava.litemall.db.domain.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.NotNull; + +@RestController +@RequestMapping("/admin/store") +@Validated +public class AdminStoreController { + private final Log logger = LogFactory.getLog(AdminStoreController.class); + + @Autowired + private LitemallStoreService storeService; + @Autowired + private LitemallStoreRoleService storeRoleService; + + + /** + * 列表商店 + * + * @param storeId + * @param name + * @param page + * @param limit + * @param sort + * @param order + * @return + */ + @RequiresPermissions("admin:store:list") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "查询") + @GetMapping("/list") + public Object list(Integer storeId, String name, + @RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer limit, + @Sort @RequestParam(defaultValue = "add_time") String sort, + @Order @RequestParam(defaultValue = "desc") String order) { + return ResponseUtil.okList(storeService.findAll()); + } + + /** + * 添加商店 + * + * @param store + * @return + */ + @RequiresPermissions("admin:store:create") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "上架") + @PostMapping("/create") + public Object create(@RequestBody LitemallStore store) { + storeService.add(store); + return ResponseUtil.ok(store); + } + + /** + * 编辑商店 + * + * @param store + * @return + */ + @RequiresPermissions("admin:store:update") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "编辑") + @PostMapping("/update") + public Object update(@RequestBody LitemallStore store) { + storeService.update(store); + return ResponseUtil.ok(store); + } + + /** + * 商店详情 + * + * @param storeId + * @return + */ + @RequiresPermissions("admin:store:detail") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "详情") + @GetMapping("/detail") + public Object detail(@NotNull Integer storeId) { + return ResponseUtil.ok(storeService.findById(storeId)); + } + + /** + * 删除商店 + * + * @param storeId + * @return + */ + @RequiresPermissions("admin:store:delete") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "删除") + @GetMapping("/delete") + public Object delete(@NotNull Integer storeId) { + storeService.delete(storeId); + return ResponseUtil.ok(); + } + + /** + * 角色列表 + * + * @param storeId + * @return + */ + @RequiresPermissions("admin:store:listRole") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "查询") + @GetMapping("/listRole") + public Object listRole(@NotNull Integer storeId) { + return ResponseUtil.okList(storeRoleService.findByStoreId(storeId)); + } + + /** + * 添加角色 + * + * @param storeRole + * @return + */ + @RequiresPermissions("admin:store:createRole") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "创建") + @PostMapping("/createRole") + public Object createRole(@RequestBody LitemallStoreRole storeRole) { + storeRoleService.add(storeRole); + return ResponseUtil.ok(storeRole); + } + + /** + * 删除角色 + * + * @param storeRoleId + * @return + */ + @RequiresPermissions("admin:store:deleteRole") + @RequiresPermissionsDesc(menu = {"商店管理", "商店管理"}, button = "删除") + @GetMapping("/deleteRole") + public Object deleteRole(@NotNull Integer storeRoleId) { + storeRoleService.delete(storeRoleId); + return ResponseUtil.ok(); + } +} diff --git a/litemall-admin/.env.deployment b/litemall-admin/.env.deployment index 947a280af3b8fc3f9c81680bd375eed7446d6883..fa4e896ce7313311b90c30e063e3318c49b6d6d6 100644 --- a/litemall-admin/.env.deployment +++ b/litemall-admin/.env.deployment @@ -4,5 +4,6 @@ NODE_ENV = production ENV = 'deploymenet' # base api -VUE_APP_BASE_API = 'https://ubangtuan.lwbkj.com/admin' +# VUE_APP_BASE_API = 'https://ubangtuan.lwbkj.com/admin' +VUE_APP_BASE_API = 'https://shop.huliantiancheng.com/admin' diff --git a/litemall-admin/src/api/kindergarten.js b/litemall-admin/src/api/kindergarten.js new file mode 100644 index 0000000000000000000000000000000000000000..14e2f55364c18c29c0a227717a2ace271bc144f2 --- /dev/null +++ b/litemall-admin/src/api/kindergarten.js @@ -0,0 +1,140 @@ +import request from '@/utils/request' + +export function listKindergarten(query) { + return request({ + url: '/kindergarten/list', + method: 'get', + params: query + }) +} + +export function batchListKindergarten(data) { + return request({ + url: '/kindergarten/batchList', + method: 'post', + data + }) +} + +export function deleteKindergarten(data) { + return request({ + url: '/kindergarten/delete', + method: 'get', + params: data + }) +} + +export function createKindergartenAllInOne(data) { + return request({ + url: '/kindergarten/createAllInOne', + method: 'post', + data + }) +} + +export function updateKindergartenAllInOne(data) { + return request({ + url: '/kindergarten/updateAllInOne', + method: 'post', + data + }) +} + +export function createKindergarten(data) { + return request({ + url: '/kindergarten/create', + method: 'post', + data + }) +} + +export function updateKindergarten(data) { + return request({ + url: '/kindergarten/update', + method: 'post', + data + }) +} + +export function detailKindergarten(data) { + return request({ + url: '/kindergarten/detail', + method: 'get', + params: data + }) +} + +export function createGrade(data) { + return request({ + url: '/kindergarten/createGrade', + method: 'post', + data + }) +} +export function deleteKindergartenGrade(data) { + return request({ + url: '/kindergarten/deleteGrade', + method: 'get', + params: data + }) +} + +export function createClass(data) { + return request({ + url: '/kindergarten/createClass', + method: 'post', + data + }) +} +export function deleteKindergartenClass(data) { + return request({ + url: '/kindergarten/deleteClass', + method: 'get', + params: data + }) +} + +export function createRole(data) { + return request({ + url: '/kindergarten/createRole', + method: 'post', + data + }) +} +export function deleteKindergartenRole(data) { + return request({ + url: '/kindergarten/deleteRole', + method: 'get', + params: data + }) +} + +export function createStudent(data) { + return request({ + url: '/kindergarten/createStudent', + method: 'post', + data + }) +} +export function deleteKindergartenStudent(data) { + return request({ + url: '/kindergarten/deleteStudent', + method: 'get', + params: data + }) +} + +export function createStudentRelative(data) { + return request({ + url: '/kindergarten/createStudentRelative', + method: 'post', + data + }) +} +export function deleteKindergartenStudentRelative(data) { + return request({ + url: '/kindergarten/deleteStudentRelative', + method: 'get', + params: data + }) +} diff --git a/litemall-admin/src/api/region.js b/litemall-admin/src/api/region.js index a114c4d7508157e731d1b6b6176fcb4520e0dcec..81d4d6d81a8a4e63e9b9b6978c2512275a3262b2 100644 --- a/litemall-admin/src/api/region.js +++ b/litemall-admin/src/api/region.js @@ -14,3 +14,10 @@ export function listSubRegion(query) { params: query }) } + +export function listProvinceRegion() { + return request({ + url: '/region/provinceList', + method: 'get' + }) +} diff --git a/litemall-admin/src/api/store.js b/litemall-admin/src/api/store.js new file mode 100644 index 0000000000000000000000000000000000000000..32b315ae2c89f68cd5c98012daaf1e941b460a36 --- /dev/null +++ b/litemall-admin/src/api/store.js @@ -0,0 +1,66 @@ +import request from '@/utils/request' + +export function listStore(query) { + return request({ + url: '/store/list', + method: 'get', + params: query + }) +} + +export function createStore(data) { + return request({ + url: '/store/create', + method: 'post', + data + }) +} + +export function updateStore(data) { + return request({ + url: '/store/update', + method: 'post', + data + }) +} + +export function detailStore(data) { + return request({ + url: '/store/detail', + method: 'get', + params: data + }) +} + +export function deleteStore(data) { + return request({ + url: '/store/delete', + method: 'get', + params: data + }) +} + +export function listRole(query) { + return request({ + url: '/store/listRole', + method: 'get', + params: query + }) +} + +export function createRole(data) { + return request({ + url: '/store/createRole', + method: 'post', + data + }) +} + +export function deleteRole(data) { + return request({ + url: '/store/deleteRole', + method: 'get', + params: data + }) +} + diff --git a/litemall-admin/src/router/index.js b/litemall-admin/src/router/index.js index dabb2deb56601ea37bbad03b01df95d70dee0411..b33538a59383b0a4036d40ffdce5c131fe1cd388 100644 --- a/litemall-admin/src/router/index.js +++ b/litemall-admin/src/router/index.js @@ -235,6 +235,72 @@ export const asyncRouterMap = [ ] }, + { + path: '/store', + component: Layout, + redirect: 'noredirect', + alwaysShow: true, + name: 'storeManage', + meta: { + title: '商店管理', + icon: 'chart' + }, + children: [ + { + path: 'list', + component: () => import('@/views/store/list'), + name: 'region', + meta: { + title: '商店列表', + noCache: true + } + }, + { + path: 'create', + component: () => import('@/views/store/create'), + name: 'create', + meta: { + perms: ['GET /admin/store/list', 'POST /admin/store/create', 'GET /admin/store/read', 'POST /admin/store/update', 'POST /admin/store/delete'], + title: '添加商店', + noCache: true + } + } + ] + }, + + { + path: '/kindergarten', + component: Layout, + redirect: 'noredirect', + alwaysShow: true, + name: 'kindergartenManage', + meta: { + title: '幼儿园管理', + icon: 'chart' + }, + children: [ + { + path: 'list', + component: () => import('@/views/kindergarten/list'), + name: 'region', + meta: { + title: '幼儿园列表', + noCache: true + } + }, + { + path: 'create', + component: () => import('@/views/kindergarten/create'), + name: 'create', + meta: { + perms: ['GET /admin/kindergarten/list', 'POST /admin/kindergarten/create', 'GET /admin/kindergarten/read', 'POST /admin/kindergarten/update', 'POST /admin/kindergarten/delete'], + title: '添加幼儿园', + noCache: true + } + } + ] + }, + { path: '/goods', component: Layout, @@ -568,61 +634,61 @@ export const asyncRouterMap = [ title: '提现列表', noCache: true } - }, - { - path: 'systemWithdrawList', - component: () => import('@/views/finance/systemWithdrawList'), - name: 'systemWithdrawList', - meta: { - perms: ['GET /admin/withdraw/systemWithdrawList'], - title: '本金佣金', - noCache: true - } } + // { + // path: 'systemWithdrawList', + // component: () => import('@/views/finance/systemWithdrawList'), + // name: 'systemWithdrawList', + // meta: { + // perms: ['GET /admin/withdraw/systemWithdrawList'], + // title: '本金佣金', + // noCache: true + // } + // } ] }, - { - path: 'external-link', - component: Layout, - redirect: 'noredirect', - alwaysShow: true, - name: 'externalLink', - meta: { - title: '外链', - icon: 'link' - }, - children: [ - { - path: 'https://cloud.tencent.com/product/cos', - meta: { title: '腾讯云存储', icon: 'link' } - }, - { - path: 'https://cloud.tencent.com/product/sms', - meta: { title: '腾讯云短信', icon: 'link' } - }, - { - path: 'https://pay.weixin.qq.com/index.php/core/home/login', - meta: { title: '微信支付', icon: 'link' } - }, - { - path: 'https://mpkf.weixin.qq.com/', - meta: { title: '小程序客服', icon: 'link' } - }, - { - path: 'https://www.alibabacloud.com/zh/product/oss', - meta: { title: '阿里云存储', icon: 'link' } - }, - { - path: 'https://www.qiniu.com/products/kodo', - meta: { title: '七牛云存储', icon: 'link' } - }, - { - path: 'http://www.kdniao.com/api-track', - meta: { title: '快递鸟', icon: 'link' } - } - ] - }, + // { + // path: 'external-link', + // component: Layout, + // redirect: 'noredirect', + // alwaysShow: true, + // name: 'externalLink', + // meta: { + // title: '外链', + // icon: 'link' + // }, + // children: [ + // { + // path: 'https://cloud.tencent.com/product/cos', + // meta: { title: '腾讯云存储', icon: 'link' } + // }, + // { + // path: 'https://cloud.tencent.com/product/sms', + // meta: { title: '腾讯云短信', icon: 'link' } + // }, + // { + // path: 'https://pay.weixin.qq.com/index.php/core/home/login', + // meta: { title: '微信支付', icon: 'link' } + // }, + // { + // path: 'https://mpkf.weixin.qq.com/', + // meta: { title: '小程序客服', icon: 'link' } + // }, + // { + // path: 'https://www.alibabacloud.com/zh/product/oss', + // meta: { title: '阿里云存储', icon: 'link' } + // }, + // { + // path: 'https://www.qiniu.com/products/kodo', + // meta: { title: '七牛云存储', icon: 'link' } + // }, + // { + // path: 'http://www.kdniao.com/api-track', + // meta: { title: '快递鸟', icon: 'link' } + // } + // ] + // }, { path: '/profile', component: Layout, diff --git a/litemall-admin/src/views/config/mall.vue b/litemall-admin/src/views/config/mall.vue index a7ac934b17fcf564a9bcbd3ce5481c23c37ecfc4..dc79c3a69bc5125c75d996ae0bc194fab6b7da16 100644 --- a/litemall-admin/src/views/config/mall.vue +++ b/litemall-admin/src/views/config/mall.vue @@ -1,27 +1,40 @@