| @@ -3,16 +3,17 @@ package com.simple.controller; | |||||
| import com.alibaba.fastjson.JSON; | import com.alibaba.fastjson.JSON; | ||||
| import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
| import com.simple.annotation.AuthIgnore; | |||||
| import com.simple.common.ErrorCode; | import com.simple.common.ErrorCode; | ||||
| import com.simple.common.Result; | import com.simple.common.Result; | ||||
| import com.simple.common.ResultData; | import com.simple.common.ResultData; | ||||
| import com.simple.domain.po.*; | import com.simple.domain.po.*; | ||||
| import com.simple.domain.vo.WxCouponOrderCarCVo; | |||||
| import com.simple.enums.EnumCarVendor; | import com.simple.enums.EnumCarVendor; | ||||
| import com.simple.enums.EnumCouponOrderStatus; | |||||
| import com.simple.enums.EnumETCPCode; | import com.simple.enums.EnumETCPCode; | ||||
| import com.simple.enums.EnumTJDCode; | import com.simple.enums.EnumTJDCode; | ||||
| import com.simple.service.WxCUserCarService; | |||||
| import com.simple.service.WxMerchantService; | |||||
| import com.simple.service.WxParkService; | |||||
| import com.simple.service.*; | |||||
| import com.simple.utils.ETCPUtil; | import com.simple.utils.ETCPUtil; | ||||
| import com.simple.utils.TJDCarUtil; | import com.simple.utils.TJDCarUtil; | ||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| @@ -49,6 +50,9 @@ public class WxCarController extends BaseController | |||||
| @Autowired | @Autowired | ||||
| WxMerchantService wxMerchantService; | WxMerchantService wxMerchantService; | ||||
| @Autowired | |||||
| WxCouponOrderService wxCouponOrderService; | |||||
| private WxPark getCurrentPark(WxCUser user) { | private WxPark getCurrentPark(WxCUser user) { | ||||
| WxPark parkQ = new WxPark(); | WxPark parkQ = new WxPark(); | ||||
| parkQ.setTenantId(user.getTenantId()); | parkQ.setTenantId(user.getTenantId()); | ||||
| @@ -635,4 +639,28 @@ public class WxCarController extends BaseController | |||||
| } | } | ||||
| return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券领取失败"); | return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券领取失败"); | ||||
| } | } | ||||
| @ApiOperation("券包分页列表接口") | |||||
| @GetMapping("couponOrderList") | |||||
| @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 WxCouponOrderCarCVo wxCouponOrder, Integer pageNum, Integer pageSize) { | |||||
| if(pageNum == null || pageSize == null) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | |||||
| if (wxCouponOrder == null) wxCouponOrder = new WxCouponOrderCarCVo(); | |||||
| WxCUser user = getUser(); | |||||
| wxCouponOrder.setTenantId(user.getTenantId()); | |||||
| wxCouponOrder.setCUserId(user.getId()); | |||||
| if (wxCouponOrder.getCouponOrderStatus() == null) | |||||
| wxCouponOrder.setSortColumns(WxCouponOrder.Field.CreateDate_DESC); | |||||
| else if (wxCouponOrder.getCouponOrderStatus() == EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode()) | |||||
| wxCouponOrder.setSortColumns(WxCouponOrder.Field.CreateDate_DESC); | |||||
| else | |||||
| wxCouponOrder.setSortColumns(WxCouponOrder.Field.UpdateDate_DESC); | |||||
| return wxCouponOrderService.carlistCUserVoAsPage(wxCouponOrder, pageNum, pageSize); | |||||
| } | |||||
| } | } | ||||
| @@ -0,0 +1,96 @@ | |||||
| package com.simple.domain.vo; | |||||
| import com.simple.domain.po.WxCouponOrder; | |||||
| import javax.persistence.Id; | |||||
| import javax.persistence.Transient; | |||||
| import java.util.Date; | |||||
| import java.util.List; | |||||
| public class WxCouponOrderCarCVo extends WxCouponOrderCVo { | |||||
| /** | |||||
| * | |||||
| */ | |||||
| private static final long serialVersionUID = 6687954932922444531L; | |||||
| /*couponFreeId**/ | |||||
| @io.swagger.annotations.ApiModelProperty(value="couponFreeId",name="couponFreeId") | |||||
| private Integer couponFreeId; | |||||
| public Integer getCouponFreeId() { | |||||
| return couponFreeId; | |||||
| } | |||||
| public void setCouponFreeId(Integer couponFreeId) { | |||||
| this.couponFreeId = couponFreeId; | |||||
| } | |||||
| public static enum Field { | |||||
| Id_ASC("`id` ASC"), Id_DESC("`id` DESC"), | |||||
| TenantId_ASC("`tenant_id` ASC"), TenantId_DESC("`tenant_id` DESC"), | |||||
| CouponId_ASC("`coupon_id` ASC"), couponId_DESC("`coupon_id` DESC"), | |||||
| CUserId_ASC("`c_user_id` ASC"), CUserId_DESC("`c_user_id` DESC"), | |||||
| BUserId_ASC("`b_user_id` ASC"), BUserId_DESC("`b_user_id` DESC"), | |||||
| OrderId_ASC("`order_id` ASC"), OrderId_DESC("`order_id` DESC"), | |||||
| ExpiredTime_ASC("`expired_iime` ASC"), ExpiredTime_DESC("`expired_iime` DESC"), | |||||
| CouponOrderStatus_ASC("`coupon_order_status` ASC"), CouponOrderStatus_DESC("`coupon_order_status` DESC"), | |||||
| CreateDate_ASC("`create_date` ASC"), CreateDate_DESC("`create_date` DESC"), | |||||
| UpdateDate_ASC("`update_date` ASC"), UpdateDate_DESC("`update_date` DESC"), | |||||
| CouponPrice_ASC("`coupon_price` ASC"), CouponPrice_DESC("`coupon_price` DESC"), | |||||
| CouponFreeId_ASC("`coupon_free_id` ASC"), CouponFreeId_DESC("`coupon_free_id` DESC"); | |||||
| private String value; | |||||
| Field(String value) { | |||||
| this.value = value; | |||||
| } | |||||
| public String getValue() { | |||||
| return value; | |||||
| } | |||||
| public void setCol(String value) { | |||||
| this.value = value; | |||||
| } | |||||
| @Override | |||||
| public String toString() { | |||||
| return this.getValue(); | |||||
| } | |||||
| } | |||||
| public void setSortColumns(WxCouponOrder.Field... fields) { | |||||
| if (fields == null || fields.length == 0) { | |||||
| return; | |||||
| } | |||||
| for (int k = 0; k < fields.length; k++) { | |||||
| if (fields[k] == null) { | |||||
| return; | |||||
| } | |||||
| } | |||||
| StringBuilder sb = new StringBuilder(fields[0].toString()); | |||||
| for (int k = 1; k < fields.length; k++) { | |||||
| sb.append(","); | |||||
| sb.append(fields[k].toString()); | |||||
| } | |||||
| this.sortColumns = sb.toString(); | |||||
| } | |||||
| public void setSortColumns(String sortColumns) { | |||||
| if (sortColumns == null || "".equals(sortColumns.trim())) { | |||||
| return; | |||||
| } | |||||
| if (sortColumns.contains(",")) { | |||||
| String[] cols = sortColumns.split(","); | |||||
| List<WxCouponOrder.Field> fList = new java.util.ArrayList(); | |||||
| for (int k = 0; k < cols.length; k++) { | |||||
| fList.add(WxCouponOrder.Field.valueOf(cols[k])); | |||||
| } | |||||
| this.setSortColumns(fList.toArray(new WxCouponOrder.Field[fList.size()])); | |||||
| } else { | |||||
| this.setSortColumns(WxCouponOrder.Field.valueOf(sortColumns)); | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -23,9 +23,11 @@ public interface WxCouponOrderMapper extends CommonMapper<WxCouponOrder, Long> { | |||||
| WxCouponOrderCVo selectDetailOfUser(Map paramMap); | WxCouponOrderCVo selectDetailOfUser(Map paramMap); | ||||
| List<WxCouponOrderCVo> findListOfCUser(WxCouponOrder wxCouponOrder); | |||||
| List<WxCouponOrderCVo> findListOfCUser(WxCouponOrderCVo wxCouponOrder); | |||||
| List<WxCouponOrderBVo> findListOfAdmin(WxCouponOrder wxCouponOrder); | List<WxCouponOrderBVo> findListOfAdmin(WxCouponOrder wxCouponOrder); | ||||
| List<WxCouponOrderCarCVo> findCarListOfCUser(WxCouponOrderCarCVo wxCouponOrder); | |||||
| //营销报表 券数据图表 | //营销报表 券数据图表 | ||||
| List<MarkingCouponDataReportVo> couponDataMap(HashMap<String,Object> params); | List<MarkingCouponDataReportVo> couponDataMap(HashMap<String,Object> params); | ||||
| @@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import com.simple.domain.vo.WxCouponOrderCVo; | import com.simple.domain.vo.WxCouponOrderCVo; | ||||
| import com.simple.domain.vo.WxCouponOrderCarCVo; | |||||
| import org.apache.ibatis.annotations.Param; | import org.apache.ibatis.annotations.Param; | ||||
| public interface WxCouponOrderService { | public interface WxCouponOrderService { | ||||
| @@ -78,6 +79,14 @@ public interface WxCouponOrderService { | |||||
| ResultData listCUserVoAsPage(WxCouponOrderCVo record, Integer pageIndex, Integer pageSize); | ResultData listCUserVoAsPage(WxCouponOrderCVo record, Integer pageIndex, Integer pageSize); | ||||
| /** | |||||
| * C用户查券carlist | |||||
| * | |||||
| * @param record C端用户 | |||||
| */ | |||||
| ResultData carlistCUserVoAsPage(WxCouponOrderCarCVo record, Integer pageIndex, Integer pageSize); | |||||
| /** | /** | ||||
| * C用户查券详情 | * C用户查券详情 | ||||
| * | * | ||||
| @@ -11,6 +11,7 @@ import com.simple.domain.po.*; | |||||
| import com.simple.domain.vo.CUserDateAmountVo; | import com.simple.domain.vo.CUserDateAmountVo; | ||||
| import com.simple.domain.vo.WxCouponOrderBVo; | import com.simple.domain.vo.WxCouponOrderBVo; | ||||
| import com.simple.domain.vo.WxCouponOrderCVo; | import com.simple.domain.vo.WxCouponOrderCVo; | ||||
| import com.simple.domain.vo.WxCouponOrderCarCVo; | |||||
| import com.simple.enums.EnumCouponOrderStatus; | import com.simple.enums.EnumCouponOrderStatus; | ||||
| import com.simple.enums.EnumRefundStatus; | import com.simple.enums.EnumRefundStatus; | ||||
| import com.simple.exception.MallinkException; | import com.simple.exception.MallinkException; | ||||
| @@ -165,6 +166,11 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||||
| return new ResultData(PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfCUser(record))); | return new ResultData(PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfCUser(record))); | ||||
| } | } | ||||
| @Override | |||||
| public ResultData carlistCUserVoAsPage(WxCouponOrderCarCVo record, Integer pageIndex, Integer pageSize) { | |||||
| return new ResultData(PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findCarListOfCUser(record))); | |||||
| } | |||||
| @Override | @Override | ||||
| public ResultData detailCUserVo(Long cUserId, String couponOrderId) { | public ResultData detailCUserVo(Long cUserId, String couponOrderId) { | ||||
| WxCUser wxCuser = wxCUserMapper.selectByPrimaryKey(cUserId); | WxCUser wxCuser = wxCUserMapper.selectByPrimaryKey(cUserId); | ||||
| @@ -440,4 +440,74 @@ | |||||
| where expired_time < now() and coupon_price > 0 and coupon_order_status = 0 | where expired_time < now() and coupon_price > 0 and coupon_order_status = 0 | ||||
| </select> | </select> | ||||
| <sql id="allCUserCouponOrderCarListColumns"> | |||||
| c.id,c.expired_time,c.coupon_order_status,c.create_date,c.update_date,c.coupon_price, | |||||
| co.cover_img,co.title,co.sub_title,co.sale_price,co.use_price,co.price, | |||||
| m.name,json_extract(car.vendor_params,'$.id') as coupon_free_id | |||||
| </sql> | |||||
| <resultMap id="CCarVoResultMap" type="com.simple.domain.vo.WxCouponOrderCarCVo"> | |||||
| <id column="id" jdbcType="BIGINT" property="id" /> | |||||
| <result column="tenant_id" jdbcType="BIGINT" property="tenantId" /> | |||||
| <result column="coupon_id" jdbcType="BIGINT" property="couponId" /> | |||||
| <result column="c_user_id" jdbcType="BIGINT" property="cUserId" /> | |||||
| <result column="b_user_id" jdbcType="BIGINT" property="bUserId" /> | |||||
| <result column="order_id" jdbcType="BIGINT" property="orderId" /> | |||||
| <result column="expired_time" jdbcType="TIMESTAMP" property="expiredTime" /> | |||||
| <result column="coupon_order_status" jdbcType="INTEGER" property="couponOrderStatus" /> | |||||
| <result column="create_date" jdbcType="TIMESTAMP" property="createDate" /> | |||||
| <result column="update_date" jdbcType="TIMESTAMP" property="updateDate" /> | |||||
| <result column="coupon_price" jdbcType="INTEGER" property="couponPrice" /> | |||||
| <result column="merchant_id" jdbcType="BIGINT" property="merchantId" /> | |||||
| <result column="type" jdbcType="INTEGER" property="type" /> | |||||
| <result column="cover_img" jdbcType="VARCHAR" property="coverImg" /> | |||||
| <result column="title" jdbcType="VARCHAR" property="title" /> | |||||
| <result column="sub_title" jdbcType="VARCHAR" property="subTitle" /> | |||||
| <result column="sale_price" jdbcType="INTEGER" property="salePrice" /> | |||||
| <result column="use_price" jdbcType="INTEGER" property="usePrice" /> | |||||
| <result column="detail" jdbcType="VARCHAR" property="detail" /> | |||||
| <result column="price" jdbcType="INTEGER" property="price" /> | |||||
| <result column="remark" jdbcType="VARCHAR" property="remark" /> | |||||
| <result column="img_url" jdbcType="VARCHAR" property="merchantImgUrl" /> | |||||
| <result column="name" jdbcType="VARCHAR" property="merchantName" /> | |||||
| <result column="link_phone" jdbcType="VARCHAR" property="merchantLinkPhone" /> | |||||
| <result column="status" jdbcType="VARCHAR" property="merchantStatus" /> | |||||
| <result column="addr" jdbcType="VARCHAR" property="addr"/> | |||||
| <result column="shop_number" jdbcType="VARCHAR" property="shopNumber"/> | |||||
| <result column="building_name" jdbcType="VARCHAR" property="buildingName" /> | |||||
| <result column="floor_name" jdbcType="VARCHAR" property="floorName" /> | |||||
| <result column="baidu_poi" jdbcType="VARCHAR" property="baiduPoi"/> | |||||
| <result column="coupon_free_id" jdbcType="INTEGER" property="couponFreeId"/> | |||||
| </resultMap> | |||||
| <select id="findCarListOfCUser" parameterType="com.simple.domain.vo.WxCouponOrderCarCVo" resultMap="CCarVoResultMap"> | |||||
| select <include refid="allCUserCouponOrderCarListColumns" /> | |||||
| from wx_coupon_order c,wx_coupon co,wx_merchant m, wx_coupon_car car | |||||
| where 1=1 | |||||
| and c.coupon_id = co.id | |||||
| and c.coupon_id = car.id | |||||
| and co.merchant_id = m.id | |||||
| <if test="cUserId != null"> | |||||
| and c.c_user_id = #{cUserId} | |||||
| </if> | |||||
| <if test="tenantId != null"> | |||||
| and c.tenant_id = #{tenantId} | |||||
| </if> | |||||
| <if test="type != null"> | |||||
| and co.type = #{type} | |||||
| </if> | |||||
| <if test="couponOrderStatus != null"> | |||||
| AND c.coupon_order_status = #{couponOrderStatus} | |||||
| </if> | |||||
| <if test=" null != sortColumns"> order by ${sortColumns} </if> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||