dingxin 5 years ago
parent
commit
93fbe0cdb4

+ 1
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java View File

@@ -428,4 +428,5 @@ public class CommConstant {
428 428
 	//分享活动
429 429
 	public static final Object GROUP_ACTIVITY = "groupActivity";
430 430
 	public static final String TARGET_TYPE_H5 = "H5";
431
+    public static final String ACTIVITY_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/checkin/index\"}";
431 432
 }

+ 17
- 3
src/main/java/com/huiju/estateagents/controller/TaBuildingDynamicController.java View File

@@ -18,9 +18,7 @@ import com.huiju.estateagents.event.EventBus;
18 18
 import com.huiju.estateagents.excel.HelpInitiateRecordSucceed;
19 19
 import com.huiju.estateagents.excel.TaActivityDynamicEnlistExport;
20 20
 import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
21
-import com.huiju.estateagents.mapper.TaActivityDynamicEnlistMapper;
22
-import com.huiju.estateagents.mapper.TaBuildingMapper;
23
-import com.huiju.estateagents.mapper.TaSharePersonFromMapper;
21
+import com.huiju.estateagents.mapper.*;
24 22
 import com.huiju.estateagents.service.*;
25 23
 import io.swagger.annotations.Api;
26 24
 import io.swagger.annotations.ApiImplicitParam;
@@ -86,6 +84,14 @@ public class TaBuildingDynamicController extends BaseController {
86 84
     @Autowired
87 85
     private ApplicationContext applicationContext;
88 86
 
87
+    @Autowired
88
+    private IMiniAppService miniAppService;
89
+
90
+    @Autowired
91
+    private TaMiniappMapper taMiniappMapper;
92
+
93
+    @Autowired
94
+    private TaMiniappQrcodeMapper taMiniappQrcodeMapper;
89 95
 
90 96
     @InitBinder
91 97
     protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
@@ -379,7 +385,15 @@ public class TaBuildingDynamicController extends BaseController {
379 385
 //        dynamic.setDynamicId(idGen.nextId()+"");
380 386
         dynamic.setPublishDate(LocalDateTime.now());
381 387
         dynamic.setCreateDate(LocalDateTime.now());
388
+
389
+         // 根据ORGID查询当前小程序表的miniapp_id
390
+        QueryWrapper<TaMiniapp> taMiniappQuery= new QueryWrapper<>();
391
+        taMiniappQuery.eq("org_id",getOrgId(request));
392
+        TaMiniapp taMiniapp = taMiniappMapper.selectOne(taMiniappQuery);
382 393
         iBuildingDynamicService.save(dynamic);
394
+        TaMiniappQrcode taMiniappQrcode = miniAppService.createActivityQrcode(taMiniapp.getMiniappId(),CommConstant.ACTIVITY_QRCODE.replace("#0",dynamic.getDynamicId()).replace("#1","activity"));
395
+        dynamic.setQrCode(taMiniappQrcode.getQrCode());
396
+        iBuildingDynamicService.updateById(dynamic);
383 397
         responseBean.addSuccess(dynamic);
384 398
         return responseBean;
385 399
     }

+ 8
- 0
src/main/java/com/huiju/estateagents/service/IMiniAppService.java View File

@@ -40,4 +40,12 @@ public interface IMiniAppService {
40 40
     TaMiniappQrcode getQrCodeBySerialNo(Integer id);
41 41
 
42 42
     List<TaMiniapp> getAllAvaliableMiniapps();
43
+
44
+    /**
45
+     * 活动二维码生成
46
+     * @param miniappId
47
+     * @param replace
48
+     * @return
49
+     */
50
+    TaMiniappQrcode createActivityQrcode(String miniappId, String replace);
43 51
 }

+ 32
- 0
src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java View File

@@ -220,6 +220,38 @@ public class MiniAppServiceImpl implements IMiniAppService {
220 220
         return taMiniappList;
221 221
     }
222 222
 
223
+    @Override
224
+    public TaMiniappQrcode createActivityQrcode(String miniappId, String replace) {
225
+
226
+        WxMaService wxService = wxUtils.getMiniApp(miniappId);
227
+
228
+        JSONObject params = JSONObject.parseObject(replace);
229
+        String scene = params.getString("scene");
230
+        String page = StringUtils.ifNull(params.getString("page"), "");
231
+        String lineColorStr = StringUtils.ifNull(params.getString("line_color"), "{\"r\":0,\"g\":0,\"b\":0}");
232
+        WxMaCodeLineColor lineColor = JSONObject.parseObject(lineColorStr, WxMaCodeLineColor.class);
233
+
234
+            TaMiniappQrcode taQrcode = new TaMiniappQrcode();
235
+            taQrcode.setAppid(miniappId);
236
+            taQrcode.setCreateDate(LocalDateTime.now());
237
+            taQrcode.setExpireDate(LocalDateTime.now().plusDays(7));
238
+            taQrcode.setQrParams(replace);
239
+            taMiniappQrcodeMapper.insert(taQrcode);
240
+        try {
241
+            // 使用ID作为场景值
242
+            File qrFile = wxService.getQrcodeService().createWxaCodeUnlimit(scene, page, 430, true, lineColor, true);
243
+            String qrcode = AliOSSUtils.putObject(qrFile, CommConstant.ALIOSS_DEFAULT_UPLOAD);
244
+            taQrcode.setQrCode(qrcode);
245
+            taMiniappQrcodeMapper.updateById(taQrcode);
246
+            taQrcode.setQrCode(qrcode);
247
+            return  taQrcode;
248
+        }catch (Exception e) {
249
+            e.printStackTrace();
250
+            log.error("活动二维码生成失败", e);
251
+        }
252
+        return taQrcode;
253
+    }
254
+
223 255
     private void sendMessage(String tplName, TaPerson toUser, String link, List<WxMaTemplateData> data) {
224 256
         String appid = toUser.getMiniappId();
225 257
         if (StringUtils.isEmpty(appid)) {