diff --git a/.gitignore b/.gitignore index 2f70b8259..9b9617186 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,4 @@ .idea/** -mallinkAdmin/target/** -mallinkApi/target/** -mallinkService/target/** +*/target/** logs/** uploads/** \ No newline at end of file diff --git a/mallinkAdmin/src/main/java/com/simple/controller/WxCouponController.java b/mallinkAdmin/src/main/java/com/simple/controller/WxCouponController.java index e0802816c..f50e5f0e6 100644 --- a/mallinkAdmin/src/main/java/com/simple/controller/WxCouponController.java +++ b/mallinkAdmin/src/main/java/com/simple/controller/WxCouponController.java @@ -1,26 +1,39 @@ package com.simple.controller; +import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.Assert; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; import com.simple.common.Result; import com.simple.common.ResultData; - import com.simple.domain.po.WxCoupon; +import com.simple.domain.po.WxMerchant; import com.simple.service.WxCouponService; +import com.simple.service.WxMerchantService; + +import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @RestController @RequestMapping("wxCoupon") +@Api(description="优惠券接口") public class WxCouponController extends BaseController { @Autowired private WxCouponService wxCouponService; + + @Autowired + private WxMerchantService wxMerchantService; private Logger logger = Logger.getLogger(WxCouponController.class); @@ -43,13 +56,24 @@ public class WxCouponController extends BaseController public ResultData add(@RequestBody WxCoupon wxCoupon) { //Assert.notNull(wxCoupon.getName(), "角色名不能为空"); //Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名"); - wxCouponService.saveOrUpdate(wxCoupon); + if(StringUtils.isNotBlank(wxCoupon.getBusiness())) { + String[] arys = wxCoupon.getBusiness().split(","); + wxCoupon.setBusiness(JSON.toJSONString(arys)); + } + wxCouponService.saveOrUpdate(wxCoupon); return new ResultData(); } @ApiOperation("根据id更新接口") @PostMapping("update") public ResultData update(@RequestBody WxCoupon wxCoupon) { + if(wxCoupon.getId()==null) { + return new ResultData(ResultData.ERROR,"缺少id"); + } + if(StringUtils.isNotBlank(wxCoupon.getBusiness())) { + String[] arys = wxCoupon.getBusiness().split(","); + wxCoupon.setBusiness(JSON.toJSONString(arys)); + } wxCouponService.saveOrUpdate(wxCoupon); return new ResultData(); } @@ -66,7 +90,10 @@ public class WxCouponController extends BaseController @GetMapping("/findById") @ApiImplicitParam(name="id",value="id",dataType="Long", paramType = "query",required=true) public ResultData findById(Long id) { - return new ResultData(Result.SUCCESS,"查询成功",wxCouponService.getById(id)); + WxCoupon c = wxCouponService.getById(id); + WxMerchant merchant = wxMerchantService.getById(c.getMerchantId()); + c.setWxMerchant(merchant); + return new ResultData(Result.SUCCESS,"查询成功",c); } diff --git a/mallinkAdmin/src/main/java/com/simple/controller/WxUserCouponController.java b/mallinkAdmin/src/main/java/com/simple/controller/WxUserCouponController.java new file mode 100644 index 000000000..cffbc4bf1 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/simple/controller/WxUserCouponController.java @@ -0,0 +1,36 @@ +package com.simple.controller; + +import com.simple.common.Result; +import com.simple.common.ResultData; +import com.simple.domain.dto.WxUserCouponDto; +import com.simple.service.WxUserCouponService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Created by syf on 2018/8/10. + */ +@RestController +@RequestMapping("wxUserCoupon") +public class WxUserCouponController { + + + @Autowired + private WxUserCouponService wxUserCouponService; + + + @ApiOperation("查询用户卡券接口") + @PostMapping("findByStatus") + public ResultData findByStatus(@RequestBody WxUserCouponDto wxUserCoupon) { + //根据用户id,用户卡券状态查找 + if(wxUserCoupon==null||wxUserCoupon.getcUserId()==null||wxUserCoupon.getCouponStatus()==null){ + return new ResultData(Result.ERROR,"查询失败"); + } + return new ResultData(Result.SUCCESS,"查询成功",wxUserCouponService.findList(wxUserCoupon.getcUserId(),wxUserCoupon.getCouponStatus())); + } + +} diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index f32db38e0..5c5754a03 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -20,8 +20,8 @@ spring: poolPreparedStatements: true maxOpenPreparedStatements: 20 connectionProperties: "druid.stat.mergeSql=true;druid.stat.slowSqlMillis=6000" - jackson: - date-format: yyyy-MM-dd HH:mm:ss + #jackson: + #date-format: yyyy-MM-dd HH:mm:ss # REDIS redis: diff --git a/mallinkApi/pom.xml b/mallinkCclientApi/pom.xml similarity index 72% rename from mallinkApi/pom.xml rename to mallinkCclientApi/pom.xml index 3ac70aff9..0e7f141ff 100644 --- a/mallinkApi/pom.xml +++ b/mallinkCclientApi/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - + mallink com.simple 1.0 - mallinkApi + mallinkCclientApi @@ -22,12 +22,10 @@ - org.apache.maven.plugins - maven-compiler-plugin - 3.1 + org.springframework.boot + spring-boot-maven-plugin - 1.8 - 1.8 + true diff --git a/mallinkApi/src/main/java/com/simple/UserApplication.java b/mallinkCclientApi/src/main/java/com/simple/UserApplication.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/UserApplication.java rename to mallinkCclientApi/src/main/java/com/simple/UserApplication.java diff --git a/mallinkApi/src/main/java/com/simple/controller/BaseController.java b/mallinkCclientApi/src/main/java/com/simple/controller/BaseController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/BaseController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/BaseController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxAppinfoController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxAppinfoController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxAppinfoController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxAppinfoController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxBLogController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxBLogController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxBLogController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxBLogController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxBannersController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxBannersController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxBannersController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxBannersController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxBusinessController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxBusinessController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxBusinessController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxBusinessController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCLogController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCLogController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCLogController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCLogController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCUserCarsController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCUserCarsController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCUserCarsController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCUserCarsController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCUserController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCUserController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCUserController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCUserController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCUserTagsController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCUserTagsController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCUserTagsController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCUserTagsController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCarCmdLogsController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCarCmdLogsController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCarCmdLogsController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCarCmdLogsController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCouponActionLogController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCouponActionLogController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCouponActionLogController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCouponActionLogController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCouponCarController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCouponCarController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCouponCarController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCouponCarController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCouponChannelController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCouponChannelController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCouponChannelController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCouponChannelController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCouponController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCouponController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCouponController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCouponController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCouponSendController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCouponSendController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCouponSendController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCouponSendController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCouponTypeController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCouponTypeController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCouponTypeController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCouponTypeController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxCouponVerifyController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxCouponVerifyController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxCouponVerifyController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxCouponVerifyController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMallBuildingController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMallBuildingController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMallBuildingController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMallBuildingController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMallController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMallController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMallController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMallController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMallFloorController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMallFloorController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMallFloorController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMallFloorController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMerchantBUserController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantBUserController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMerchantBUserController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantBUserController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMerchantController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMerchantController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMerchantShopController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantShopController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMerchantShopController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantShopController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMerchantTradeDailyController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantTradeDailyController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMerchantTradeDailyController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMerchantTradeDailyController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMsgCallbackController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMsgCallbackController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMsgCallbackController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMsgCallbackController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMsgConfigController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMsgConfigController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMsgConfigController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMsgConfigController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMsgController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMsgController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMsgController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMsgController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMsgModelController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMsgModelController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMsgModelController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMsgModelController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxMsgSignatureController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxMsgSignatureController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxMsgSignatureController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxMsgSignatureController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxOrderController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxOrderController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxOrderController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxOrderController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxParkController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxParkController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxParkController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxParkController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxPayOrderController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxPayOrderController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxPayOrderController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxPayOrderController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxScoreHistoryController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxScoreHistoryController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxScoreHistoryController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxScoreHistoryController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxScoreRulesController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxScoreRulesController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxScoreRulesController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxScoreRulesController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxScoreValidityPeriodController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxScoreValidityPeriodController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxScoreValidityPeriodController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxScoreValidityPeriodController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxShopController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxShopController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxShopController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxShopController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxTagsController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxTagsController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxTagsController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxTagsController.java diff --git a/mallinkApi/src/main/java/com/simple/controller/WxWebLogController.java b/mallinkCclientApi/src/main/java/com/simple/controller/WxWebLogController.java similarity index 100% rename from mallinkApi/src/main/java/com/simple/controller/WxWebLogController.java rename to mallinkCclientApi/src/main/java/com/simple/controller/WxWebLogController.java diff --git a/mallinkApi/src/main/resources/application-dev.yml b/mallinkCclientApi/src/main/resources/application-dev.yml similarity index 81% rename from mallinkApi/src/main/resources/application-dev.yml rename to mallinkCclientApi/src/main/resources/application-dev.yml index 9878c17ce..c40f720f9 100644 --- a/mallinkApi/src/main/resources/application-dev.yml +++ b/mallinkCclientApi/src/main/resources/application-dev.yml @@ -1,7 +1,7 @@ spring: # JDBC datasource: - url: jdbc:mysql://202.165.179.86:63306/mallink?characterEncoding=UTF-8&useSSL=false + url: jdbc:mysql://202.165.179.86:3306/mallink?characterEncoding=UTF-8&useSSL=false username: mallone password: m@1l0ne123@# type: com.alibaba.druid.pool.DruidDataSource @@ -19,12 +19,12 @@ spring: testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20 - jackson: - date-format: yyyy-MM-dd HH:mm:ss + #jackson: + #date-format: yyyy-MM-dd HH:mm:ss # REDIS redis: - host: 127.0.0.1 + host: 202.165.179.86 port: 6789 password: JGtest123 timeout: 0 @@ -33,7 +33,6 @@ spring: max-active: 8 max-idle: 8 max-wait: -1 - min-idle: 0 logging: level: diff --git a/mallinkApi/src/main/resources/application-prod.yml b/mallinkCclientApi/src/main/resources/application-prod.yml similarity index 100% rename from mallinkApi/src/main/resources/application-prod.yml rename to mallinkCclientApi/src/main/resources/application-prod.yml diff --git a/mallinkApi/src/main/resources/application.yml b/mallinkCclientApi/src/main/resources/application.yml similarity index 95% rename from mallinkApi/src/main/resources/application.yml rename to mallinkCclientApi/src/main/resources/application.yml index 74ae8cbee..969f60a12 100644 --- a/mallinkApi/src/main/resources/application.yml +++ b/mallinkCclientApi/src/main/resources/application.yml @@ -1,6 +1,6 @@ server: - port: 9001 - context-path: / + port: 8000 + context-path: /C spring: application: diff --git a/mallinkCclientApi/src/main/resources/logback.xml b/mallinkCclientApi/src/main/resources/logback.xml new file mode 100644 index 000000000..41e865f70 --- /dev/null +++ b/mallinkCclientApi/src/main/resources/logback.xml @@ -0,0 +1,95 @@ + + + + + + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] --%mdc{client}%msg%n + + + + + ${PATH}/trace.log + + logs/trace.%d{yyyy-MM-dd}.log + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + + + ${PATH}/info.log + + logs/info.%d{yyyy-MM-dd}.log + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + INFO + ACCEPT + DENY + + + + + ${PATH}/debug.log + + logs/debug.%d{yyyy-MM-dd}.log + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + DEBUG + ACCEPT + DENY + + + + + + ${PATH}/warn.log + + logs/warn.%d{yyyy-MM-dd}.log + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + WARN + ACCEPT + DENY + + + + + + + ${PATH}/error.log + + logs/error.%d{yyyy-MM-dd}.log + + + [%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line]--%mdc{client} %msg%n + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mallinkService/src/main/java/com/simple/domain/dto/WxUserCouponDto.java b/mallinkService/src/main/java/com/simple/domain/dto/WxUserCouponDto.java new file mode 100644 index 000000000..64e8394fb --- /dev/null +++ b/mallinkService/src/main/java/com/simple/domain/dto/WxUserCouponDto.java @@ -0,0 +1,69 @@ +package com.simple.domain.dto; + +import java.io.Serializable; +import java.util.Date; + +/** + * Created by syf on 2018/8/10. + * 用户卡券 + */ +public class WxUserCouponDto implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer couponStatus; + private Long orderId; + private Long cUserId; + private Long couponId; + private String couponTitle; + private Date validDate; + + public WxUserCouponDto(){ + } + + public Integer getCouponStatus() { + return couponStatus; + } + + public void setCouponStatus(Integer couponStatus) { + this.couponStatus = couponStatus; + } + + public Long getOrderId() { + return orderId; + } + + public void setOrderId(Long orderId) { + this.orderId = orderId; + } + + public Long getcUserId() { + return cUserId; + } + + public void setcUserId(Long cUserId) { + this.cUserId = cUserId; + } + + public Long getCouponId() { + return couponId; + } + + public void setCouponId(Long couponId) { + this.couponId = couponId; + } + + public String getCouponTitle() { + return couponTitle; + } + + public void setCouponTitle(String couponTitle) { + this.couponTitle = couponTitle; + } + public Date getValidDate() { + return validDate; + } + + public void setValidDate(Date validDate) { + this.validDate = validDate; + } +} diff --git a/mallinkService/src/main/java/com/simple/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/simple/domain/po/WxCoupon.java index cbe651cd7..b2b295daa 100644 --- a/mallinkService/src/main/java/com/simple/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/simple/domain/po/WxCoupon.java @@ -119,6 +119,18 @@ public class WxCoupon implements Serializable { /*业态**/ @io.swagger.annotations.ApiModelProperty(value="业态",name="business") private String business; + + @Transient + private WxMerchant wxMerchant; + + public WxMerchant getWxMerchant() { + return wxMerchant; + } + + public void setWxMerchant(WxMerchant wxMerchant) { + this.wxMerchant = wxMerchant; + } + public String getTenantId() { return tenantId; } diff --git a/mallinkService/src/main/java/com/simple/pay/WxPayOrder.java b/mallinkService/src/main/java/com/simple/pay/WxPayOrderP.java similarity index 98% rename from mallinkService/src/main/java/com/simple/pay/WxPayOrder.java rename to mallinkService/src/main/java/com/simple/pay/WxPayOrderP.java index 133fc2287..d40500676 100644 --- a/mallinkService/src/main/java/com/simple/pay/WxPayOrder.java +++ b/mallinkService/src/main/java/com/simple/pay/WxPayOrderP.java @@ -1,9 +1,9 @@ package com.simple.pay; /** - * Created by fanglong on 2017/8/14. + * Created by Stormeye on 2018/8/10. */ -public class WxPayOrder { +public class WxPayOrderP { private String appid; // 公众账号ID private String mch_id; // 商户号 private String nonce_str; // 随机字符串 diff --git a/mallinkService/src/main/java/com/simple/pay/WxRefundOrder.java b/mallinkService/src/main/java/com/simple/pay/WxRefundOrder.java new file mode 100644 index 000000000..521b02090 --- /dev/null +++ b/mallinkService/src/main/java/com/simple/pay/WxRefundOrder.java @@ -0,0 +1,94 @@ +package com.simple.pay; + +/** + * Created by Stormeye on 2018/8/10. + */ +public class WxRefundOrder { + private String appid; // 公众账号ID + private String mch_id; // 商户号 + private String nonce_str; // 随机字符串 + private String sign; // 签名 + private String out_trade_no; // 商户订单号 + private String out_refund_no; // 商户退款单号 + private Integer total_fee; // 支付金额 + private Integer refund_fee; // 退款金额 + + public String getAppid() { + return appid; + } + + public void setAppid(String appid) { + this.appid = appid; + } + + public String getMch_id() { + return mch_id; + } + + public void setMch_id(String mch_id) { + this.mch_id = mch_id; + } + + public String getNonce_str() { + return nonce_str; + } + + public void setNonce_str(String nonce_str) { + this.nonce_str = nonce_str; + } + + public String getSign() { + return sign; + } + + public void setSign(String sign) { + this.sign = sign; + } + + public String getOut_trade_no() { + return out_trade_no; + } + + public void setOut_trade_no(String out_trade_no) { + this.out_trade_no = out_trade_no; + } + + public String getOut_refund_no() { + return out_refund_no; + } + + public void setOut_refund_no(String out_refund_no) { + this.out_refund_no = out_refund_no; + } + + public Integer getTotal_fee() { + return total_fee; + } + + public void setTotal_fee(Integer total_fee) { + this.total_fee = total_fee; + } + + public Integer getRefund_fee() { + return refund_fee; + } + + public void setRefund_fee(Integer refund_fee) { + this.refund_fee = refund_fee; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("WxRefundOrder{"); + sb.append("appid='").append(appid).append('\''); + sb.append(", mch_id='").append(mch_id).append('\''); + sb.append(", nonce_str='").append(nonce_str).append('\''); + sb.append(", sign='").append(sign).append('\''); + sb.append(", out_trade_no='").append(out_trade_no).append('\''); + sb.append(", out_refund_no='").append(out_refund_no).append('\''); + sb.append(", total_fee=").append(total_fee); + sb.append(", refund_fee=").append(refund_fee); + sb.append('}'); + return sb.toString(); + } +} diff --git a/mallinkService/src/main/java/com/simple/service/WxOrderService.java b/mallinkService/src/main/java/com/simple/service/WxOrderService.java index a3d9a6bbd..d1dba36b8 100644 --- a/mallinkService/src/main/java/com/simple/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/simple/service/WxOrderService.java @@ -52,6 +52,13 @@ public interface WxOrderService { * @param id */ void deleteById(Long id); + /** + * 条件查询不分页 + * @param record + * @return + */ + List findList(WxOrder record); + diff --git a/mallinkService/src/main/java/com/simple/service/WxUserCouponService.java b/mallinkService/src/main/java/com/simple/service/WxUserCouponService.java new file mode 100644 index 000000000..d9394967e --- /dev/null +++ b/mallinkService/src/main/java/com/simple/service/WxUserCouponService.java @@ -0,0 +1,15 @@ +package com.simple.service; + + + +import com.simple.domain.dto.WxUserCouponDto; + +import java.util.List; + +/** + * Created by syf on 2018/8/10. + */ +public interface WxUserCouponService { + List findList(Long userId, int status); + +} diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java index 1d79cda00..e516a5632 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxOrderServiceImpl.java @@ -128,12 +128,11 @@ public class WxOrderServiceImpl implements WxOrderService { public void deleteById(Long id) { wxOrderMapper.deleteByPrimaryKey(id); } - - - - - - - - + + @Override + public List findList(WxOrder record) { + return wxOrderMapper.findList(record); + } + + } diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java index 3e7198deb..f1f0abe41 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java @@ -15,9 +15,12 @@ import com.simple.exception.BizMessageException; import com.simple.exception.MallinkException; import com.simple.mapper.WxOrderMapper; import com.simple.mapper.WxPayOrderMapper; +import com.simple.pay.WxPay; +import com.simple.pay.WxPayOrderP; import com.simple.pay.WxPayment; import com.simple.service.WxOrderService; import com.simple.service.WxPayOrderService; +import com.simple.utils.BeanUtils; import com.simple.utils.Utility; import com.simple.utils.XmlUtil; import org.apache.log4j.Logger; @@ -44,6 +47,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { @Override public ResultData createPayOrder(WxPayOrder record, EnumPayWay payWay) { + String partnerKey = null; try { // 1. check 订单 WxOrder order = wxOrderMapper.selectByPrimaryKey(record.getOrderId()); @@ -55,6 +59,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.warn("pay order, order status not allow, repaymentReq: " + order.toString() + " , payWay: " + payWay.toString()); throw new MallinkException(ErrorCode.ORDER_IS_NOT_PAY); } + // TODO body + String body = ""; // 2. 创建支付订单 Date currentDate = new Date(); final IdWorker idworker = IdWorker.get(); @@ -73,9 +79,48 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { record.setPayOrderStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); wxPayOrderMapper.insertSelective(record); + + // 统一下单 + String noncestr = Utility.generate32UUID(); + WxPayOrderP wxPayOrderP = new WxPayOrderP(); + //wxPayOrderP.setAppid(wechatAppId); + //wxPayOrderP.setMch_id(wechatMchId); + wxPayOrderP.setNonce_str(noncestr); + //wxPayOrderP.setBody(body); + wxPayOrderP.setOut_trade_no(record.getPayOrderNo()); + BigDecimal llp = order.getPayment().multiply(new BigDecimal(100)); + wxPayOrderP.setTotal_fee(llp.intValue()); + wxPayOrderP.setSpbill_create_ip(record.getIp()); // 终端IP + //wxPayOrderP.setNotify_url(wxpayNotifyUrl); + wxPayOrderP.setTrade_type(WxPay.TradeType.APP.name()); // 终端类型 + wxPayOrderP.setProduct_id(String.valueOf(order.getId())); // 订单ID + wxPayOrderP.setTime_start(Utility.getDataFormatStringYYYYMMDDHHmmss(currentTime)); + wxPayOrderP.setTime_start(Utility.getDataFormatStringYYYYMMDDHHmmss(currentTime + 15 * 60)); // 15分钟结束 + wxPayOrderP.setSign(WxPayment.createSign(BeanUtils.toStringMap(wxPayOrderP), partnerKey)); + String response = WxPay.pushOrder(BeanUtils.toStringMap(wxPayOrderP)); + logger.info("pay order, wechat pushOrder, wxPayOrder:" + wxPayOrderP.toString() + ", response: " + response.toString()); + Map returnMap = WxPayment.xmlToMap(response); + if ("SUCCESS".equals(returnMap.get("result_code"))) { + String timestamp = String.valueOf(Utility.getCurrentTimeStamp()); + Map sighMap = new HashMap<>(); + sighMap.put("appid", returnMap.get("appid")); + sighMap.put("partnerid", returnMap.get("mch_id")); + sighMap.put("prepayid", returnMap.get("prepay_id")); + sighMap.put("package", "Sign=WXPay"); + sighMap.put("noncestr", noncestr); + sighMap.put("timestamp", timestamp); + String signAgent = WxPayment.createSign(sighMap, partnerKey); + returnMap.put("timestamp", timestamp); + returnMap.put("nonce_str", noncestr); + returnMap.put("package", "Sign=WXPay"); + returnMap.put("sign", signAgent); + return new ResultData(200, "创建支付订单成功", returnMap); + } return new ResultData(record); } catch (RuntimeException e) { throw new MallinkException(ErrorCode.PAYORDER_ERROR); + } catch (Exception e) { + throw new MallinkException(ErrorCode.PAYORDER_ERROR); } } diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxUserCouponServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxUserCouponServiceImpl.java new file mode 100644 index 000000000..ff8c1172e --- /dev/null +++ b/mallinkService/src/main/java/com/simple/service/impl/WxUserCouponServiceImpl.java @@ -0,0 +1,65 @@ +package com.simple.service.impl; +import com.simple.domain.dto.WxUserCouponDto; +import com.simple.domain.po.WxCoupon; +import com.simple.domain.po.WxOrder; +import com.simple.mapper.WxCouponMapper; +import com.simple.service.WxOrderService; +import com.simple.service.WxUserCouponService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * Created by syf on 2018/8/10. + */ +@Service +public class WxUserCouponServiceImpl implements WxUserCouponService { + + @Autowired + private WxOrderService wxOrderService; + @Autowired + private WxCouponMapper wxCouponMapper; + + /** + * + * @param userId 用户id + * @param status 用户卡券状态 + * @return + */ + @Override + public List findList(Long userId, int status) { + //TODO 待测试优化 + List wxUserCoupons = new ArrayList<>(); + //查询订单表 + WxOrder wxOrder = new WxOrder(); + wxOrder.setCUserId(userId); + wxOrder.setCouponStatus(status); + List orders = wxOrderService.findList(wxOrder); + List ids = orders.stream().map(p->p.getCouponId()+"").distinct().collect(Collectors.toList()); + if(ids.size()>0){ + //查询WxCoupon + WxCoupon wxCoupon = new WxCoupon(); + wxCoupon.setIds(ids); + List wxCoupons = wxCouponMapper.findList(wxCoupon); + Map couponNamesMap = wxCoupons.stream().collect(Collectors.toMap(WxCoupon::getId,p->p.getTitle())); + for (WxOrder temp:orders) { + wxUserCoupons.add(getWxUserCoupon(temp,couponNamesMap.get(temp.getCouponId()))); + } + } + return wxUserCoupons; + } + public WxUserCouponDto getWxUserCoupon(WxOrder wxOrder, String title){ + WxUserCouponDto wxUserCoupon = new WxUserCouponDto(); + wxUserCoupon.setOrderId(wxOrder.getId()); + wxUserCoupon.setcUserId(wxOrder.getCUserId()); + wxUserCoupon.setCouponId(wxOrder.getCouponId()); + wxUserCoupon.setCouponStatus(wxOrder.getCouponStatus()); + wxUserCoupon.setValidDate(wxOrder.getValidDate()); + wxUserCoupon.setCouponTitle(title); + return wxUserCoupon; + } +} diff --git a/mallinkService/src/main/java/com/simple/utils/BeanUtils.java b/mallinkService/src/main/java/com/simple/utils/BeanUtils.java new file mode 100644 index 000000000..328a6583d --- /dev/null +++ b/mallinkService/src/main/java/com/simple/utils/BeanUtils.java @@ -0,0 +1,167 @@ +package com.simple.utils; + +import com.google.gson.internal.LinkedTreeMap; + +import java.beans.BeanInfo; +import java.beans.IntrospectionException; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * Created by Stormeye on 2018/8/10. + */ +public class BeanUtils { + + /** + * 如果是null,将返回字符串0 + * + * @param param + * @return + */ + public static String ifNullTo0(String param) { + if (param == null || param.equals("null")) { + return "0"; + } + return param; + } + + public static Object getValue(Object obj, String pro) throws NoSuchMethodException { + return getValue(obj, pro, null); + } + + /** + * 根据属性名称获取JavaBean中对应的属性值 + * + * @param obj 对象 + * @param pro 对应属性名称 + * @param num 整型参数 + * @return 对象对应属性值 + */ + public static Object getValue(Object obj, String pro, Integer num) throws NoSuchMethodException { + Class clazz = obj.getClass(); + do { + try { + String methodName = "getSimpleRegionModel" + pro.substring(0, 1).toUpperCase() + pro.substring(1); + Method method; + if (!Objects.isNull(num)) { + method = clazz.getDeclaredMethod(methodName, Integer.class); + return method.invoke(obj, num); + } else { + method = clazz.getDeclaredMethod(methodName); + return method.invoke(obj); + } + } catch (NoSuchMethodException e) { + clazz = clazz.getSuperclass(); + } catch (InvocationTargetException | IllegalAccessException e) { + e.printStackTrace(); + } + } while (clazz != Object.class); + throw new NoSuchMethodException("no such method name : " + "getSimpleRegionModel" + pro.substring(0, 1).toUpperCase() + pro.substring(1)); + } + + + public static void transMap2Bean2(Map map, Object obj) { + if (map == null || obj == null) { + return; + } + try { + org.apache.commons.beanutils.BeanUtils.populate(obj, map); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 根据key数组和value数组拼接json + * + * @param keys key数组 + * @param values value数据 + * @return json + * @throws Exception + */ + public static String wrapToJsonByKeyValue(String[] keys, String[] values) throws Exception { + StringBuilder stringBuilder = new StringBuilder(); + if (keys.length != values.length) { + throw new Exception("长度不匹配,不能进行JSON格式的转换"); + } + for (int i = 0; i < keys.length; i++) { + stringBuilder.append("\"").append(keys[i]).append("\":\"").append(values[i]).append("\","); + } + return "{" + stringBuilder.substring(0, stringBuilder.length() - 1) + "}"; + } + + /** + * Converts a JavaBean to a map + * + * @param bean JavaBean to convert + * @return map converted + * @throws IntrospectionException failed to get class fields + * @throws IllegalAccessException failed to instant JavaBean + * @throws InvocationTargetException failed to call setters + */ + public static final Map toMap(Object bean) + throws Exception { + Map returnMap = new LinkedTreeMap(); + if (bean instanceof Map) { + returnMap.putAll((Map)bean); + return returnMap; + } + BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass()); + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + for (int i = 0; i< propertyDescriptors.length; i++) { + PropertyDescriptor descriptor = propertyDescriptors[i]; + String propertyName = descriptor.getName(); + if (!propertyName.equals("class")) { + Method readMethod = descriptor.getReadMethod(); + Object result = readMethod.invoke(bean, new Object[0]); + if (result != null) { + returnMap.put(propertyName, result); + } else { + returnMap.put(propertyName, ""); + } + } + } + return returnMap; + } + + /** + * Converts a JavaBean to a map + * + * @param bean JavaBean to convert + * @return map converted + * @throws IntrospectionException failed to get class fields + * @throws IllegalAccessException failed to instant JavaBean + * @throws InvocationTargetException failed to call setters + */ + public static final Map toStringMap(Object bean) + throws Exception { + Map returnMap = new LinkedTreeMap(); + if (bean instanceof Map) { + returnMap.putAll((Map)bean); + return returnMap; + } + BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass()); + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + for (int i = 0; i< propertyDescriptors.length; i++) { + PropertyDescriptor descriptor = propertyDescriptors[i]; + String propertyName = descriptor.getName(); + if (!propertyName.equals("class")) { + Method readMethod = descriptor.getReadMethod(); + Object result = readMethod.invoke(bean, new Object[0]); + if (result != null) { + returnMap.put(propertyName, String.valueOf(result)); + } else { + returnMap.put(propertyName, ""); + } + } + } + return returnMap; + } + +} diff --git a/pom.xml b/pom.xml index 87b0c02a2..d6afbe7db 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ mallinkService mallinkAdmin - mallinkApi + mallinkCclientApi @@ -200,6 +200,13 @@ dom4j 2.1.1 + + + com.google.code.gson + gson + 2.8.5 + +