diff --git a/src/main/java/cn/com/tenlion/operator/controller/api/coupon/CouponController.java b/src/main/java/cn/com/tenlion/operator/controller/api/coupon/CouponController.java index 3da3635..abacb6c 100644 --- a/src/main/java/cn/com/tenlion/operator/controller/api/coupon/CouponController.java +++ b/src/main/java/cn/com/tenlion/operator/controller/api/coupon/CouponController.java @@ -16,6 +16,7 @@ import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -34,6 +35,29 @@ public class CouponController extends DefaultBaseController { @Autowired private CouponService couponService; + @ApiOperation(value = "修改优惠券", notes = "修改优惠券接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "couponId", value = "优惠券ID", paramType = "path") + }) + @PutMapping("copy/{couponId}") + public SuccessResult copy(@PathVariable("couponId") String couponId) { + couponService.saveCopy(couponId); + return new SuccessResult(); + } + + @ApiOperation(value = "删除套餐包-订单", notes = "删除套餐包-订单接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "ids", value = "ID列表,用下划线分隔", paramType = "path", example = "1_2_3") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @DeleteMapping("remove/{ids}") + public SuccessResult remove(@PathVariable("ids") String ids) { + couponService.remove(Arrays.asList(ids.split("\\_"))); + return new SuccessResult(); + } + + @ApiOperation(value = "新增优惠券", notes = "新增优惠券接口") @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) @PostMapping("save") diff --git a/src/main/java/cn/com/tenlion/operator/controller/resource/packageorder/PackageOrderResourceController.java b/src/main/java/cn/com/tenlion/operator/controller/resource/packageorder/PackageOrderResourceController.java index 95b2339..809d095 100644 --- a/src/main/java/cn/com/tenlion/operator/controller/resource/packageorder/PackageOrderResourceController.java +++ b/src/main/java/cn/com/tenlion/operator/controller/resource/packageorder/PackageOrderResourceController.java @@ -19,6 +19,7 @@ import cn.com.tenlion.operator.pojo.vos.packageorder.PackageOrderVO; import cn.com.tenlion.operator.service.packageorder.IPackageOrderService; import ink.wgink.pojo.vos.IdsVO; import io.swagger.annotations.*; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -43,6 +44,13 @@ public class PackageOrderResourceController extends DefaultBaseController { @Autowired private IPackageInfoService iPackageInfoService; + @ApiOperation(value = "当前人所有餐包订单", notes = "当前人所有餐包订单接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("count/{userId}") + public Map count(@PathVariable String userId) { + return packageOrderService.getCount(userId); + } + @ApiOperation(value = "套餐包详情", notes = "套餐包详情接口") @ApiImplicitParams({ @ApiImplicitParam(name = "access_token", value = "access_token", paramType = "query"), @@ -52,7 +60,9 @@ public class PackageOrderResourceController extends DefaultBaseController { @GetMapping("getByNo/{packageNo}") public PackageOrderDTO getByNo(@PathVariable("packageNo") String packageNo) { PackageOrderDTO orderDTO = packageOrderService.getByPackageNo(packageNo); - PackageInfoAppDTO appDTO = iPackageInfoService.getById(orderDTO.getPackageInfoId()); + PackageInfoDTO infoDTO = iPackageInfoService.getByPackageInfoId(orderDTO.getPackageInfoId()); + PackageInfoAppDTO appDTO = new PackageInfoAppDTO(); + BeanUtils.copyProperties(infoDTO, appDTO); orderDTO.setPackageInfoAppDTO(appDTO); return orderDTO; } @@ -66,7 +76,9 @@ public class PackageOrderResourceController extends DefaultBaseController { @GetMapping("get/{packageOrderId}") public PackageOrderDTO get(@PathVariable("packageOrderId") String packageOrderId) { PackageOrderDTO orderDTO = packageOrderService.get(packageOrderId); - PackageInfoAppDTO appDTO = iPackageInfoService.getById(orderDTO.getPackageInfoId()); + PackageInfoDTO infoDTO = iPackageInfoService.getByPackageInfoId(orderDTO.getPackageInfoId()); + PackageInfoAppDTO appDTO = new PackageInfoAppDTO(); + BeanUtils.copyProperties(infoDTO, appDTO); orderDTO.setPackageInfoAppDTO(appDTO); return orderDTO; } @@ -119,6 +131,7 @@ public class PackageOrderResourceController extends DefaultBaseController { public List list(@RequestBody IdsVO idsVO) { Map params = requestParams(); params.put("packageOrderIds", idsVO.getIds()); + params.put("packagePayStatus", "1"); params.put("toResource", "对外提供查询info信息"); return packageOrderService.list(params); } diff --git a/src/main/java/cn/com/tenlion/operator/daoother/copyright1/coupon/ICouponDao.java b/src/main/java/cn/com/tenlion/operator/daoother/copyright1/coupon/ICouponDao.java index 42f6ff2..bdf0fd3 100644 --- a/src/main/java/cn/com/tenlion/operator/daoother/copyright1/coupon/ICouponDao.java +++ b/src/main/java/cn/com/tenlion/operator/daoother/copyright1/coupon/ICouponDao.java @@ -34,5 +34,5 @@ public interface ICouponDao { List listPO(Map params); - + void remove(Map params); } diff --git a/src/main/java/cn/com/tenlion/operator/service/packageorder/IPackageOrderService.java b/src/main/java/cn/com/tenlion/operator/service/packageorder/IPackageOrderService.java index 297c19d..3d99fd5 100644 --- a/src/main/java/cn/com/tenlion/operator/service/packageorder/IPackageOrderService.java +++ b/src/main/java/cn/com/tenlion/operator/service/packageorder/IPackageOrderService.java @@ -200,4 +200,6 @@ public interface IPackageOrderService { Boolean updateOrder2(PackageOrderAppVO packageOrderVO); void updateClose(String packageNo); + + Map getCount(String userId); } \ No newline at end of file diff --git a/src/main/java/cn/com/tenlion/operator/service/packageorder/impl/PackageOrderServiceImpl.java b/src/main/java/cn/com/tenlion/operator/service/packageorder/impl/PackageOrderServiceImpl.java index 2a15e4c..21ac3c1 100644 --- a/src/main/java/cn/com/tenlion/operator/service/packageorder/impl/PackageOrderServiceImpl.java +++ b/src/main/java/cn/com/tenlion/operator/service/packageorder/impl/PackageOrderServiceImpl.java @@ -272,6 +272,28 @@ public class PackageOrderServiceImpl extends DefaultBaseService implements IPack packageOrderDao.remove(params); } + @Override + public Map getCount(String userId) { + Map result = new HashMap<>(); + result.put("ALL", 0); + result.put("MATERIAL", 0); + Map params = getHashMap(2); + params.put("keYong", "可用的"); + params.put("userId", userId); + params.put("packagePayStatus", "1"); + params.put("packageType", "ALL"); + List list = list(params); + for(PackageOrderDTO dto : list) { + result.put("ALL", result.get("ALL") + dto.getPackageTotalSurplusCount()); + } + params.put("packageType", "MATERIAL"); + List list2 = list(params); + for(PackageOrderDTO dto : list2) { + result.put("MATERIAL", result.get("MATERIAL") + dto.getPackageTotalSurplusCount()); + } + return result; + } + @Override public List list(Map params) { List list = packageOrderDao.list(params); diff --git a/src/main/java/cn/com/tenlion/operator/serviceother/copyright1/coupon/CouponService.java b/src/main/java/cn/com/tenlion/operator/serviceother/copyright1/coupon/CouponService.java index ed8175b..655defe 100644 --- a/src/main/java/cn/com/tenlion/operator/serviceother/copyright1/coupon/CouponService.java +++ b/src/main/java/cn/com/tenlion/operator/serviceother/copyright1/coupon/CouponService.java @@ -6,9 +6,11 @@ import cn.com.tenlion.operator.enums.coupon.CouponTypeEnum; import cn.com.tenlion.operator.pojo.dtos.coupon.CouponDTO; import cn.com.tenlion.operator.pojo.dtos.coupon.CouponSimpleDTO; import cn.com.tenlion.operator.pojo.dtos.coupon.related.user.CouponRelatedUserDTO; +import cn.com.tenlion.operator.pojo.dtos.coupon.related.user.RelatedUserDTO; import cn.com.tenlion.operator.pojo.pos.coupon.CouponPO; import cn.com.tenlion.operator.pojo.vos.coupon.CouponVO; import cn.com.tenlion.operator.pojo.vos.coupon.user.CouponUserVO; +import cn.com.tenlion.operator.pojo.vos.coupon.user.RelatedUserVO; import cn.com.tenlion.operator.util.PayUtil; import cn.com.tenlion.operator.util.TenlionSMS; import com.alibaba.fastjson.JSONArray; @@ -24,6 +26,7 @@ import ink.wgink.pojo.ListPage; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.util.UUIDUtil; import ink.wgink.util.map.HashMapUtil; +import org.apache.commons.lang3.StringUtils; import org.joda.time.LocalDateTime; import org.joda.time.format.DateTimeFormat; import org.springframework.beans.BeanUtils; @@ -32,6 +35,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -247,6 +251,19 @@ public class CouponService extends DefaultBaseService { return new SuccessResultList<>(couponDTOS, pageInfo.getPageNum(), pageInfo.getTotal()); } + public void remove(List ids) { + Map params = getHashMap(2); + params.put("couponIds", ids); + for(String id : ids) { + CouponDTO dto = get(id); + if (dto.getStatus().getText().equals(CouponStatusEnum.ACTIVE.getText())) { + throw new SaveException(dto.getTitle() + "
已激活不允许删除"); + } + } + setUpdateInfo(params); + couponDao.remove(params); + } + public List listCanClaim() { LocalDateTime now = LocalDateTime.now(); Map params = getHashMap(6); @@ -289,4 +306,35 @@ public class CouponService extends DefaultBaseService { LocalDateTime endDatetime = LocalDateTime.parse(endTime, DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD)); return now.isEqual(startDatetime) || now.isAfter(startDatetime) && (now.isBefore(endDatetime) || now.isEqual(endDatetime)); } + public void saveCopy(String couponId) { + CouponDTO couponDTO = get(couponId); + if (couponDTO.getReleaseQuantity() < 1) { + throw new SaveException("发布数量不合法"); + } + if(couponDTO.getRelatedUsers().size() > 0) { + couponDTO.setReleaseQuantity(couponDTO.getRelatedUsers().size()); + couponDTO.setType(CouponTypeEnum.QUOTA_USERS); + }else{ + couponDTO.setType(CouponTypeEnum.QUOTA); + } + couponDTO.setStatus(CouponStatusEnum.UN_ACTIVE); + String couponId1 = UUIDUtil.getUUID(); + Map params = HashMapUtil.beanToMap(couponDTO); + params.put("couponId", couponId1); + params.put("remainingQuantity", couponDTO.getReleaseQuantity()); + params.put("type", couponDTO.getType().name()); + setSaveInfo(params); + couponDao.save(params); + + List couponRelatedUserDTOS = couponDTO.getRelatedUsers(); + List couponRelatedUserVOS = new ArrayList<>(); + for(CouponRelatedUserDTO dto : couponRelatedUserDTOS) { + RelatedUserVO userVO = new RelatedUserVO(); + userVO.setUserId(dto.getUserId()); + userVO.setUserInfoName(dto.getUserInfoName()); + userVO.setUserUsername(dto.getUserUsername()); + couponRelatedUserVOS.add(userVO); + } + couponRelatedUserService.saveBatch(couponId1, couponRelatedUserVOS); + } } diff --git a/src/main/resources/mybatis/mapper-copyright1/coupon/coupon-mapper.xml b/src/main/resources/mybatis/mapper-copyright1/coupon/coupon-mapper.xml index 4f0e83f..cbcb3ce 100644 --- a/src/main/resources/mybatis/mapper-copyright1/coupon/coupon-mapper.xml +++ b/src/main/resources/mybatis/mapper-copyright1/coupon/coupon-mapper.xml @@ -129,6 +129,21 @@ coupon_id = #{couponId} + + + UPDATE + cr_coupon + SET + gmt_modified = #{gmtModified}, + modifier = #{modifier}, + is_delete = 1 + WHERE + coupon_id IN + + #{couponIds[${index}]} + + + UPDATE cr_coupon diff --git a/src/main/resources/templates/coupon/list.html b/src/main/resources/templates/coupon/list.html index f75eefc..c548e98 100644 --- a/src/main/resources/templates/coupon/list.html +++ b/src/main/resources/templates/coupon/list.html @@ -62,6 +62,12 @@ + + @@ -324,6 +330,38 @@ } }); } + } else if(layEvent === 'copyEvent') { + if(checkDatas.length === 0) { + top.dialog.msg(top.dataMessage.table.selectEdit); + } else if(checkDatas.length > 1) { + top.dialog.msg(top.dataMessage.table.selectOneEdit); + } else { + top.dialog.confirm("确定复制?", function(index) { + var loadLayerIndex; + top.restAjax.put(top.restAjax.path('api/coupon/copy/{couponId}', [checkDatas[0].couponId]), {}, null, function(code, data) { + reloadTable(); + }, function(code, data) { + top.dialog.msg(data.msg); + }, function() { + loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3}); + }, function() { + top.dialog.close(loadLayerIndex); + }); + }); + } + } else if(layEvent === 'removeEvent') { + if(checkDatas.length === 0) { + top.dialog.msg(top.dataMessage.table.selectDelete); + } else { + var ids = ''; + for(var i = 0, item; item = checkDatas[i++];) { + if(i > 1) { + ids += '_'; + } + ids += item['couponId']; + } + removeData(ids); + } } });