Commit c4ddba09 authored by libin's avatar libin

优惠券

parent 91c9966b
...@@ -16,7 +16,7 @@ public class UserCouponFindDTO extends PageParam { ...@@ -16,7 +16,7 @@ public class UserCouponFindDTO extends PageParam {
private String phone; private String phone;
private String title; private Integer couponId;
private BigDecimal usedAmount; private BigDecimal usedAmount;
......
...@@ -20,7 +20,8 @@ import tk.mybatis.spring.annotation.MapperScan; ...@@ -20,7 +20,8 @@ import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication(scanBasePackages = { @SpringBootApplication(scanBasePackages = {
"com.xxfc.platform", "com.xxfc.platform",
"com.github.wxiaoqi.security.common.handler", "com.github.wxiaoqi.security.common.handler",
"com.github.wxiaoqi.security.common.log" "com.github.wxiaoqi.security.common.log",
"com.github.wxiaoqi.security.admin.support.aop"
}) })
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableScheduling @EnableScheduling
......
...@@ -50,7 +50,7 @@ public class CouponBiz extends BaseBiz<CouponMapper, Coupon> { ...@@ -50,7 +50,7 @@ public class CouponBiz extends BaseBiz<CouponMapper, Coupon> {
Example example = new Example(Coupon.class); Example example = new Example(Coupon.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
if (!StringUtils.isEmpty(couponFindDTO.getTitle())){ if (!StringUtils.isEmpty(couponFindDTO.getTitle())){
criteria.andLike("title",couponFindDTO.getTitle()); criteria.andLike("title",String.format("%%%s%%",couponFindDTO.getTitle()));
} }
if (Objects.nonNull(couponFindDTO.getChannel())){ if (Objects.nonNull(couponFindDTO.getChannel())){
criteria.andEqualTo("channel",couponFindDTO.getChannel()); criteria.andEqualTo("channel",couponFindDTO.getChannel());
...@@ -74,7 +74,7 @@ public class CouponBiz extends BaseBiz<CouponMapper, Coupon> { ...@@ -74,7 +74,7 @@ public class CouponBiz extends BaseBiz<CouponMapper, Coupon> {
CouponPagVo coupon ; CouponPagVo coupon ;
for (Coupon coup : data) { for (Coupon coup : data) {
coupon = new CouponPagVo(); coupon = new CouponPagVo();
BeanUtils.copyProperties(coupon,coup); BeanUtils.copyProperties(coup,coupon);
couponPagVos.add(coupon); couponPagVos.add(coupon);
} }
couponPagVo.setPageNum(couponPage.getPageNum()); couponPagVo.setPageNum(couponPage.getPageNum());
......
...@@ -300,7 +300,7 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> { ...@@ -300,7 +300,7 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
userCoupon.setExpireTime(couponVo.getValidEndTime()); userCoupon.setExpireTime(couponVo.getValidEndTime());
userCoupons.add(userCoupon); userCoupons.add(userCoupon);
} }
return mapper.insertList(userCoupons); return mapper.inserBatch(userCoupons);
} }
public long importUserCoupon(Integer couponId,List<String[]> userCounponData) { public long importUserCoupon(Integer couponId,List<String[]> userCounponData) {
...@@ -316,10 +316,11 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> { ...@@ -316,10 +316,11 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
userCoupon.setCouponId(couponId); userCoupon.setCouponId(couponId);
userCoupon.setStartTime(couponVo.getValidStartTime()); userCoupon.setStartTime(couponVo.getValidStartTime());
userCoupon.setExpireTime(couponVo.getValidEndTime()); userCoupon.setExpireTime(couponVo.getValidEndTime());
userCoupon.setCrtTime(Instant.now().toEpochMilli());
userCoupon.setUserId(phoneAndAppUserLoginMap.get(userCounponData.get(i)[0])); userCoupon.setUserId(phoneAndAppUserLoginMap.get(userCounponData.get(i)[0]));
userCoupons.add(userCoupon); userCoupons.add(userCoupon);
} }
return mapper.insertList(userCoupons); return mapper.inserBatch(userCoupons);
} }
} }
\ No newline at end of file
...@@ -49,10 +49,9 @@ public class SwaggerConfig { ...@@ -49,10 +49,9 @@ public class SwaggerConfig {
pars.add(ticketPar2.build()); pars.add(ticketPar2.build());
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
.host("10.1.37.248:8765/api/activity")
.select() .select()
.apis(RequestHandlerSelectors.basePackage("com.xxfc.platform.activity")) .apis(RequestHandlerSelectors.basePackage("com.xxfc.platform.activity"))
//.apis(RequestHandlerSelectors.any()) .apis(RequestHandlerSelectors.any())
.build() .build()
.globalOperationParameters(pars) .globalOperationParameters(pars)
.apiInfo(apiInfo()); .apiInfo(apiInfo());
......
...@@ -32,4 +32,6 @@ public interface UserCouponMapper extends Mapper<UserCoupon> , InsertListMapper< ...@@ -32,4 +32,6 @@ public interface UserCouponMapper extends Mapper<UserCoupon> , InsertListMapper<
List<UserCouponDTO> findUserCoupons(UserCouponFindDTO userCouponFindDTO); List<UserCouponDTO> findUserCoupons(UserCouponFindDTO userCouponFindDTO);
int inserBatch(@Param("userCoupons") List<UserCoupon> userCoupons);
} }
\ No newline at end of file
package com.xxfc.platform.activity.rest.admin; package com.xxfc.platform.activity.rest.admin;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
......
package com.xxfc.platform.activity.rest.admin; package com.xxfc.platform.activity.rest.admin;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.excel.ExcelImport; import com.github.wxiaoqi.security.common.util.excel.ExcelImport;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
...@@ -54,11 +56,6 @@ public class UserCouponAdminController { ...@@ -54,11 +56,6 @@ public class UserCouponAdminController {
if (userCounponData.size() < 1) { if (userCounponData.size() < 1) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!"); return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
} }
for (String[] userCounponDateNum : userCounponData) {
if (userCounponDateNum.length!=4){
return ObjectRestResponse.createFailedResult(1002, "数据不完整!!!");
}
}
userCounponData.remove(0); userCounponData.remove(0);
userCouponBiz.importUserCoupon(couponId,userCounponData); userCouponBiz.importUserCoupon(couponId,userCounponData);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
...@@ -66,12 +63,12 @@ public class UserCouponAdminController { ...@@ -66,12 +63,12 @@ public class UserCouponAdminController {
@ApiOperation("用户劵excel模板下载") @ApiOperation("用户劵excel模板下载")
@GetMapping("/excel_model/dowload") @GetMapping("/excel_model/dowload")
public ResponseEntity<byte[]> dowloadUserMemberExcelModel(HttpServletResponse response){ public ResponseEntity<byte[]> dowloadUserMemberExcelModel(HttpServletResponse response) {
// 重置response // 重置response
response.reset(); response.reset();
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data"); response.setContentType("multipart/form-data");
response.addHeader("Content-Disposition", "attachment;filename=usermember.xlsx"); response.addHeader("Content-Disposition", "attachment;filename=usercoupon.xlsx");
InputStream inputStream = ActivityApplication.class.getClassLoader().getResourceAsStream("file/usercoupon.xlsx"); InputStream inputStream = ActivityApplication.class.getClassLoader().getResourceAsStream("file/usercoupon.xlsx");
try { try {
byte[] bytes = IOUtils.toByteArray(inputStream); byte[] bytes = IOUtils.toByteArray(inputStream);
...@@ -81,5 +78,4 @@ public class UserCouponAdminController { ...@@ -81,5 +78,4 @@ public class UserCouponAdminController {
} }
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
} }
} }
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </resultMap>
<select id="selectTitles" resultType="string"> <select id="selectTitles" resultType="com.xxfc.platform.activity.vo.CouponTitleVo">
select `id`,`title` from `coupon` where `is_del`=0 select `id`,`title` from `coupon` where `is_del`=0
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -85,21 +85,28 @@ ...@@ -85,21 +85,28 @@
uc.expire_time AS `expireTime`, uc.expire_time AS `expireTime`,
uc.use_time AS `useTime` uc.use_time AS `useTime`
FROM FROM
( SELECT `id`, coupon_id, `user_id`, `is_use`, `crt_time`, `expire_time`, `use_time` FROM user_coupon WHERE ( SELECT `id`, `coupon_id`, `user_id`, `is_use`, `crt_time`, `expire_time`, `use_time` FROM `user_coupon` WHERE
`is_del` = 0 `is_del` = 0
<if test="userId != null"> <if test="userId != null">
`user_id`=#{userId} AND `user_id`=#{userId}
</if> </if>
<if test="status != null"> <if test="status != null">
`is_use`=#{status} AND `is_use`=#{status}
</if>) AS `uc` </if>) AS `uc`
INNER JOIN ( SELECT `id`, `title`, `used_amount` FROM `coupon` WHERE 1=1 INNER JOIN ( SELECT `id`, `title`, `used_amount` FROM `coupon` WHERE 1=1
<if test="title != null and title != ''"> <if test="couponId != null">
AND `title`=#{title} AND `id`=#{couponId}
</if> </if>
<if test="usedAmount != null"> <if test="usedAmount != null">
AND `used_amount`=#{usedAmount} AND `used_amount`=#{usedAmount}
</if> </if>
) AS `cp` ON uc.coupon_id = cp.id; ) AS `cp` ON uc.coupon_id = cp.id order by `crtTime` DESC
</select> </select>
<insert id="inserBatch">
INSERT INTO `user_coupon`(`user_id`,`coupon_id`,`start_time`,`expire_time`,`crt_time`) VALUES
<foreach collection="userCoupons" item="userCoupon" separator=",">
(#{userCoupon.userId},#{userCoupon.couponId},#{userCoupon.startTime},#{userCoupon.expireTime},#{userCoupon.crtTime} )
</foreach>
</insert>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment