From 4ebc8d5540e8dcdd8a2312168a331926a5ce17ef Mon Sep 17 00:00:00 2001 From: xhxu Date: Thu, 3 Jun 2021 14:49:01 +0800 Subject: [PATCH] tt --- .../controller/tt/WxCampaignController.java | 203 ++++++++++++++++++ .../controller/WxCampaignController.java | 104 +++++++++ 2 files changed, 307 insertions(+) create mode 100644 mallinkTTAdmin/src/main/java/com/iformall/controller/tt/WxCampaignController.java create mode 100644 mallinkTTCApi/src/main/java/com/iformall/controller/WxCampaignController.java diff --git a/mallinkTTAdmin/src/main/java/com/iformall/controller/tt/WxCampaignController.java b/mallinkTTAdmin/src/main/java/com/iformall/controller/tt/WxCampaignController.java new file mode 100644 index 000000000..0a97044b1 --- /dev/null +++ b/mallinkTTAdmin/src/main/java/com/iformall/controller/tt/WxCampaignController.java @@ -0,0 +1,203 @@ +package com.iformall.controller.tt; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.github.pagehelper.PageInfo; +import com.iformall.annotation.SystemControllerLog; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.po.WxCampaign; +import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxCouponChannel; +import com.iformall.domain.po.base.BaseEntity; +import com.iformall.domain.vo.WxCouponChannelVo; +import com.iformall.enums.EnumCampaignStatus; +import com.iformall.enums.EnumCampaignType; +import com.iformall.enums.EnumCouponChannelType; +import com.iformall.enums.EnumCouponStatus; +import com.iformall.service.WxCampaignService; +import com.iformall.service.WxCouponChannelService; +import com.iformall.service.WxCouponService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +@RestController +@RequestMapping("wxCampaign") +@Api(description = "促销和banner接口") +public class WxCampaignController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxCampaignService wxCampaignService; + + @Autowired + WxCouponService wxCouponService; + + @Autowired + private WxCouponChannelService wxCouponChannelService; + + @ApiOperation("分页列表接口") + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + @SystemControllerLog(description = "宣传页-列表") + public ResultData list(@ModelAttribute WxCampaign wxCampaign, Integer pageNum, Integer pageSize) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::list"); + if (null == wxCampaign) wxCampaign = new WxCampaign(); + if (wxCampaign.getStatus() != null && wxCampaign.getStatus() == -1) { + wxCampaign.setStatus(null); + } + wxCampaign.updateTenantInfo(ifParentUpdateTenantInfo()); + wxCampaign.setSortColumns(BaseEntity.SortField.CreateTime_DESC,BaseEntity.SortField.Id_DESC); + final PageInfo page = wxCampaignService.listAsPage(wxCampaign, pageNum, pageSize); + return new ResultData(page); + } + + @ApiOperation("新增接口") + @PostMapping("add") + @SystemControllerLog(description = "宣传页-新增") + public ResultData add(@RequestBody WxCampaign wxCampaign) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::add"); + if (StringUtils.isNotBlank(wxCampaign.getCouponIds())) { + String[] arys = wxCampaign.getCouponIds().split(","); + wxCampaign.setCouponIds(JSON.toJSONString(arys)); + } else { + wxCampaign.setCouponIds(JSONArray.toJSONString(new String[0])); + } + wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); + wxCampaign.updateTenantInfo(ifParentUpdateAloneTenantInfo()); + return wxCampaignService.saveOrUpdate(wxCampaign); + } + + @ApiOperation(value = "新增接口-小程序路径", notes = "produceType,produceId,pagePath,pageScene必填") + @PostMapping("addByPath") + @SystemControllerLog(description = "宣传页-新增") + public ResultData addByPath(@RequestBody WxCampaign wxCampaign) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::addByPath"); + wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); + wxCampaign.updateTenantInfo(ifParentUpdateAloneTenantInfo()); + return wxCampaignService.addForPath(wxCampaign); + } + + @ApiOperation(value = "新增接口-小程序路径", notes = "produceType,produceId,pagePath,pageScene必填") + @PostMapping("addByAPPPath") + @SystemControllerLog(description = "宣传页-新增") + public ResultData addByAPPPath(@RequestBody WxCampaign wxCampaign) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::addByAPPPath"); + wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); + wxCampaign.updateTenantInfo(ifParentUpdateAloneTenantInfo()); + return wxCampaignService.addByAPPPath(wxCampaign); + } + + @ApiOperation("根据id更新接口") + @PostMapping("update") + @SystemControllerLog(description = "宣传页-id更新") + public ResultData update(@RequestBody WxCampaign wxCampaign) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::update"); + ifParentUpdateAloneTenantInfo(); + if (StringUtils.isNotBlank(wxCampaign.getCouponIds())) { + String[] arys = wxCampaign.getCouponIds().split(","); + wxCampaign.setCouponIds(JSON.toJSONString(arys)); + } else { + wxCampaign.setCouponIds(JSONArray.toJSONString(new String[0])); + } + return wxCampaignService.saveOrUpdate(wxCampaign); + } + + @ApiOperation("根据id更新接口") + @PostMapping("updateStatus") + @SystemControllerLog(description = "宣传页-更新状态") + public ResultData updateStatus(@RequestBody WxCampaign wxCampaign) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::updateStatus"); + ifParentUpdateAloneTenantInfo(); + WxCampaign campaign = wxCampaignService.getById(wxCampaign.getId()); + // check coupon 状态 + if (campaign.getType().equals(EnumCampaignType.STABLE.getCode())) { + if (campaign.getStatus().equals(EnumCampaignStatus.STATUS_THROW_IN.getCode()) + && !wxCampaign.getStatus().equals(EnumCampaignStatus.STATUS_TAKE_OFFF.getCode())) { + // 宣传页 - 下架不检查状态 + List ids = JSONArray.parseArray(campaign.getCouponIds(), String.class); + for (String couponIdStr : ids) { + Long couponId = Long.parseLong(couponIdStr); + + WxCoupon wxCoupon = wxCouponService.getById(couponId,campaign.getTenantId()); + if (wxCoupon == null) { + return new ResultData(ErrorCode.COUPON_IS_EMPTY); + } + if (wxCoupon.getStatus() != EnumCouponStatus.COUPON_STATUS_THROW_IN.getCode()) { + return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); + } + if (wxCoupon.getValidEndDate() != null && wxCoupon.getValidEndDate().before(new Date())) { + return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); + } + } + } + } + return wxCampaignService.updateStatus(wxCampaign); + } + + @ApiOperation("根据id删除接口") + @GetMapping("/del") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "宣传页-删除") + public ResultData delete(Long id) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::delete"); + ifParentUpdateAloneTenantInfo(); + wxCampaignService.deleteById(id); + return new ResultData(Result.SUCCESS, "删除成功", null); + } + + @ApiOperation("根据id查询接口") + @GetMapping("/findById") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + @SystemControllerLog(description = "宣传页-查询") + public ResultData findById(Long id) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::findById"); + WxCampaign wxCampaign = wxCampaignService.getById(id); + if (wxCampaign != null) { + WxCouponChannel wxCouponChannel = new WxCouponChannel(); + wxCouponChannel.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_CAMPAIN.getCode()); + wxCouponChannel.setSubTargetId(wxCampaign.getId()); + wxCouponChannel.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); + List couponList = wxCouponChannelService.listVo(wxCouponChannel); + wxCampaign.setCoupons(couponList); + } + return new ResultData(Result.SUCCESS, "查询成功", wxCampaign); + } + + @ApiOperation("调整顺序") + @GetMapping("/move") + @ApiImplicitParams({ + @ApiImplicitParam(name = "sourceId", value = "", dataType = "Long", paramType = "query", required = true), + @ApiImplicitParam(name = "targetId", value = "", dataType = "Long", paramType = "query", required = true)}) + @SystemControllerLog(description = "宣传页-调整顺序") + public ResultData move(Long sourceId, Long targetId) { + logger.debug("[" + getIpAddr() + "] WxCampaignController::move"); + WxCampaign source = wxCampaignService.getById(sourceId); + WxCampaign target = wxCampaignService.getById(targetId); + if (source == null || target == null) { + return new ResultData(Result.ERROR, "调整顺序失败", null); + } + int temp = source.getSortNum(); + source.setSortNum(target.getSortNum()); + target.setSortNum(temp); + wxCampaignService.saveOrUpdate(source); + wxCampaignService.saveOrUpdate(target); + return new ResultData(Result.SUCCESS, "调整顺序成功", null); + } + + +} diff --git a/mallinkTTCApi/src/main/java/com/iformall/controller/WxCampaignController.java b/mallinkTTCApi/src/main/java/com/iformall/controller/WxCampaignController.java new file mode 100644 index 000000000..c6f4f3db7 --- /dev/null +++ b/mallinkTTCApi/src/main/java/com/iformall/controller/WxCampaignController.java @@ -0,0 +1,104 @@ +package com.iformall.controller; + +import com.github.pagehelper.PageInfo; +import com.iformall.annotation.RedisCache; +import com.iformall.common.Result; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxCampaign; +import com.iformall.domain.po.WxCouponChannel; +import com.iformall.domain.po.base.BaseEntity; +import com.iformall.domain.vo.WxCouponChannelVo; +import com.iformall.enums.EnumCampaignStatus; +import com.iformall.enums.EnumCouponChannelType; +import com.iformall.enums.EnumPayWay; +import com.iformall.service.WxCampaignService; +import com.iformall.service.WxCouponChannelService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.util.Date; +import java.util.List; + + +@RestController +@RequestMapping("/api/wxCampaign") +@Api(description = "促销和banner接口") +public class WxCampaignController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxCampaignService wxCampaignService; + @Autowired + private WxCouponChannelService wxCouponChannelService; + + @RedisCache + @ApiOperation("分页列表接口") + @GetMapping("list") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) + public ResultData list(@ModelAttribute WxCampaign wxCampaign, Integer pageNum, Integer pageSize) { + if (null == wxCampaign) wxCampaign = new WxCampaign(); + wxCampaign.updateTenantInfo(getTenantInfo()); + wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); + wxCampaign.setSortColumns(BaseEntity.SortField.SortNum_ASC, BaseEntity.SortField.CreateTime_ASC); + // TODO 缓存优化 + final PageInfo page = wxCampaignService.clistAsPage(wxCampaign, pageNum, pageSize); + return new ResultData(page); + } + + @ApiOperation("根据id查询接口") + @GetMapping("/findById") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + public ResultData findById(Long id) { + WxCampaign wxCampaign = wxCampaignService.getById(id); + if (wxCampaign != null) { + WxCouponChannel wxCouponChannel = new WxCouponChannel(); + wxCouponChannel.updateTenantInfo(getTenantInfo()); + wxCouponChannel.setTargetAd(EnumCouponChannelType.COUPON_CHANNEL_ID_CAMPAIN.getCode()); + wxCouponChannel.setSubTargetId(wxCampaign.getId()); + wxCouponChannel.setStatus(0); + wxCouponChannel.setShowBeginTime(new Date()); + List couponList = wxCouponChannelService.listVo(wxCouponChannel); + wxCampaign.setCoupons(couponList); + } + return new ResultData(Result.SUCCESS, "查询成功", wxCampaign); + } + + @ApiOperation("调整顺序") + @GetMapping("/move") + @ApiImplicitParams({ + @ApiImplicitParam(name = "sourceId", value = "", dataType = "Long", paramType = "query", required = true), + @ApiImplicitParam(name = "targetId", value = "", dataType = "Long", paramType = "query", required = true)}) + public ResultData move(Long sourceId, Long targetId,EnumPayWay payWay) { + WxCampaign source = wxCampaignService.getById(sourceId); + WxCampaign target = wxCampaignService.getById(targetId); + if (source == null || target == null) { + return new ResultData(Result.ERROR, "调整顺序失败", null); + } + int temp = source.getSortNum(); + source.setSortNum(target.getSortNum()); + target.setSortNum(temp); + wxCampaignService.saveOrUpdate(source); + wxCampaignService.saveOrUpdate(target); + return new ResultData(Result.SUCCESS, "调整顺序成功", null); + } + + @ApiOperation("输出富文本内容") + @GetMapping("/printHtmlById") + @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) + public void printHtmlById(Long id,HttpServletResponse response){ + wxCampaignService.printHtmlById(id,response); + } + +}